title | author | date | CreateTime | categories |
---|---|---|---|---|
微軟的 P2P 下載方式
|
lindexi
|
2019-09-27 09:44:44 +0800
|
2019-09-27 09:32:42 +0800
|
微軟在 2016 的時候就說要作 P2P 提供的更新,由於微軟說每次系統更新使用的服務器費用很大,同時不少用戶都說連不上微軟的服務器。可是很快微軟就砍了這個技術,緣由是P2P的水很深。不過微軟收購了 Pando Networks 公司,這是專業作 NYC-based P2P 技術的公司,後續微軟就在更新和商店下載使用了P2P技術html
如今在應用商店下載和系統的更新走的都是微軟的 P2P 下載方式,經過 P2P 下載方式不只能夠幫微軟省不少服務器費用,同時也能讓用戶的下載速度快不少,特別是局域網windows
打開任務管理器,看一下 Background Intelligent Transfer Service 服務是否是佔用了不少的 CPU 若是是那麼證實系統在進行 P2P 的上傳或下載瀏覽器
做爲開發,我關注的是微軟正在使用 P2P 下載什麼內容,打開 PowerShell 輸入下面命令服務器
PS Get-DeliveryOptimizationStatus
若是此時在進行上傳或下載,那麼將會顯示下面差很少的內容網絡
FileId : 46de28dd16e575167f79299f5bffa163a8f10266 FileSize : 52978067 TotalBytesDownloaded : 41443731 PercentPeerCaching : 100 BytesFromPeers : 41443731 BytesFromHttp : 0 Status : Caching Priority : Background BytesFromCacheServer : 0 BytesFromLanPeers : 40395155 BytesFromGroupPeers : 0 BytesFromInternetPeers : 1048576 BytesToLanPeers : 80790310 BytesToGroupPeers : 0 BytesToInternetPeers : 14352384 DownloadDuration : 00:00:18.7020000 HttpConnectionCount : 0 LanConnectionCount : 7 GroupConnectionCount : 0 InternetConnectionCount : 128 DownloadMode : 3 SourceURL : http://tlu.dl.delivery.mp.microsoft.com/filestreamingservice/files/20852e53-5ebc-49f2-bfc 1-1c032251c75e?P1=1569511260&P2=402&P3=2&P4=iQHSHSFDobj/rWWd1RT/ln/38wPW6hNrkyk+pwU8bp6CE lL6E5/RNVGM8ZoCWq5WjQCwpjUlfqH+gak8Fj+wiw== NumPeers : 290 PredefinedCallerApplication : WU Client Download ExpireOn : 2019/9/29 22:55:18 IsPinned : False
對應的關鍵屬性以下spa
經過對比 BytesFromPeers 和 BytesFromHttp 的大小就能夠知道使用了 P2P 能夠給微軟節省了多少服務器費用,雖然微軟有Azure可使用空閒服務器作系統升級等,因此更多看重的是速度的提高code
從上面的數據能夠看到,此次下載的文件都是從 P2P 下載的,部分從外網的設備下載資源,更多的是從局域網下載的,此時的下載速度將會很快。同時沒有從 HTTP 服務器下載資源,也就是這個資源的下載,微軟只是告訴存在這個資源,資源的下載都是從P2P下載不佔用任何微軟的服務器htm
經過 Get-DeliveryOptimizationPerfSnap -Verbose
能夠知道總的下載和上傳文件大小blog
FilesDownloaded : 2
FilesUploaded : 2
TotalBytesDownloaded : 58,276,025
TotalBytesUploaded : 137,054,360
AverageDownloadSize : 29,138,012
AverageUploadSize : 68,527,180
DownloadMode : 3
Files : 2
CacheSizeBytes : 58,276,025
TotalDiskBytes : 126,915,186,688
AvailableDiskBytes : 9,873,575,936
NumberOfPeers : 518
CdnConnections : 7
LanConnections : 10
GroupConnections : 0
InternetConnections : 249
DownlinkBps : 35,382
UplinkBps : 6,834
ForegroundDownloadRatePct : 90
BackgroundDownloadRatePct : 45
UploadRatePct : 100
UploadCount : 2
在 1903 和以上的系統能夠有更多的 PowerShell 命令用於控制 P2P 文件的分發,詳細請看官方文檔資源
我找了不少文檔,如今微軟沒有將P2P網絡開放給開發者,同時限定了資源分發的域名。也就是本身的資源是沒法接入到微軟的P2P網絡的
在 1511 以上的系統都默認開啓了 P2P 功能,在世界上有不少電腦都會開啓這個P2P功能,因而微軟就搭建了世界上最大的P2P網絡,若是能接入這個網絡,那麼網絡發現等問題均可以讓系通通一作,可是我認爲若是微軟開放了開發,那麼將會很快被幹掉,由於會存在大量版權問題,以及zz問題
使用P2P更新不只能夠省服務器也能夠提升用戶的下載速度,難道只有機智微軟會這麼作?其實微軟是落後好久才作出來的,在谷歌瀏覽器的 Update Engine 就能夠經過修改 device policy 開啓P2P的功能。另外一個大公司 Twitter 也使用了 P2P 作更新,不過不是更新客戶端,而是更新服務器
BitTorrent-like P2P software updates could be coming to Windows 10 - ExtremeTech
http://patents.com/us-7639805.html
Configure Delivery Optimization for Windows 10 updates (Windows 10)