2019-9-27-微軟的-P2P-下載方式

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

  • FileId 說明下載的是什麼文件
  • FileSize 文件的大小
  • TotalBytesDownloaded 總下載大小
  • BytesFromPeers 從 P2P 下載的文件大小
  • BytesFromHttp 從 HTTP 下載的文件大小,也就是從微軟服務器下載的大小是多少
  • BytesFromLanPeers 從局域網的下載的文件大小
  • DownloadMode 0 僅從HTTP下載,1 從局域網下載,2 從 Group 下載,3 從 Internet 的其餘P2P設備下載
  • BytesFromInternetPeers 從外網的P2P設備下載的文件大小
  • BytesToLanPeers 傳給局域網設備的文件大小
  • BytesToInternetPeers 傳給外網P2P設備的文件大小

經過對比 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

Set up Delivery Optimization

Configure Delivery Optimization for Windows 10 updates (Windows 10)

Twitter 使用P2P更新服務器

相關文章
相關標籤/搜索