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)