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技术

现在在应用商店下载和系统的更新走的都是微软的 P2P 下载方式,通过 P2P 下载方式不仅可以帮微软省很多服务器费用,同时也能让用户的下载速度快很多,特别是局域网

打开任务管理器,看一下 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

对应的关键属性如下

  • 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可以使用空闲服务器做系统升级等,所以更多看重的是速度的提升

从上面的数据可以看到,这次下载的文件都是从 P2P 下载的,部分从外网的设备下载资源,更多的是从局域网下载的,此时的下载速度将会很快。同时没有从 HTTP 服务器下载资源,也就是这个资源的下载,微软只是告诉存在这个资源,资源的下载都是从P2P下载不占用任何微软的服务器

通过 Get-DeliveryOptimizationPerfSnap -Verbose 可以知道总的下载和上传文件大小

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更新服务器

2019-9-27-微软的-P2P-下载方式的更多相关文章

  1. Visual Studio 2019 与 Visual Studio 2022的下载方式

    相信大家目前百度或者其他搜索引擎搜索到的都是2022了,那么vs2019该如何安装呢? vs2019下载地址:https://visualstudio.microsoft.com/zh-hans/th ...

  2. 常用下载方式的区别-BT下载、磁力链接、电驴

    出处:https://www.jianshu.com/p/72b7a64e5be1 打开 115 离线下载的窗口,看到支持这么多种链接,你都清楚他们是什么原理嘛?接下来我们一个一个说. 一.HTTP( ...

  3. Beta冲刺(6/7)——2019.5.27

    所属课程 软件工程1916|W(福州大学) 作业要求 Beta冲刺(6/7)--2019.5.27 团队名称 待就业六人组 1.团队信息 团队名称:待就业六人组 团队描述:同舟共济扬帆起,乘风破浪万里 ...

  4. js、css引用文件的下载方式

    js.css引用文件的下载方式 一.测试(chrome):1.直接使用<script...>.<link...>标签来混合引入脚本文件和css文件, <script as ...

  5. Quartus 11.0 的AS 下载方式和JTAG下载jic文件的方式

    FPGA下载的三种方式:主动配置方式(AS)和被动配置方式(PS)和最常用的(JTAG)配置方式: AS由FPGA器件引导配置操作过程,它控制着外部存储器和初始化过程,EPCS系列.如EPCS1,EP ...

  6. [转]SRTM、ASTER GDEM等全球数字高程数据(DEM)下载方式简介

    之前写过一篇短文对比过几种数字高程数据的区别:5种全球高程数据对比,这篇文章简要介绍下如何下载这些数据.       1.DLR的数字高程数据.该数据也是SRTM(shuttle radar topo ...

  7. aptana 插件离线下载方式

    aptana 插件离线下载方式 Aptana 网站改版后取消了eclipse 插件的zip直接下载地址,其实aptana 官网仍还提供aptana 插件的zip包下载不过比较隐蔽而已.很多人在线安装时 ...

  8. Duanxx的STM32学习:STM32下载方式选择

    前几天熟悉了STM32的启动方式.主要由Boot0和Boot1设置 如今须要解决的就是STM32的下载的问题. 一開始的时候,我选择的是SWD下载.这样的下载方式须要Boot0=0.Boot1=0.占 ...

  9. FLASH MAGIC LPC ISP下载方式说明

    硬件:EASYARM2131 开发板软件:FLASH MAGIC     下载地址:http://www.flashmagictool.com/程序:Demo2131.hex LPC的ISP下载方式, ...

  10. python练习七—P2P下载

    最近有些事儿比较忙,python的学习就断断续续,这个练习来得比预期的晚,不过还好,不管做什么,我都希望能认真对待,认真做好每一件事. 引入 这个练习原书中称作“使用XML-RPC进行文件共享”,题目 ...

随机推荐

  1. 「AntV」路网数据获取与L7可视化

    1. 引言 L7 地理空间数据可视分析引擎是一种基于 WebGL 技术的地理空间数据可视化引擎,可以用于实现各种地理空间数据可视化应用.L7 引擎支持多种数据源和数据格式,包括 GeoJSON.CSV ...

  2. 记录--极致舒适的Vue页面保活方案

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 为了让页面保活更加稳定,你们是怎么做的? 我用一行配置实现了 Vue页面保活是指在用户离开当前页面后,可以在返回时恢复上一次浏览页面的状态 ...

  3. 记录--有关CSS盒模型之内边距、边框、外边距的十九问题

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 本篇文章主要探讨盒模型,以及内边距.边框.外边距的面试题与思考,也希望您能把您的思考和遇到的问题以评论的方式补充下,后期,我将会补充到文章 ...

  4. archlinux 时间,时钟设置与详解,时区对应的时间不正确

    参照 https://wiki.archlinux.org/title/System_time 1.使用命令查看时间 timedatectl 显示类似 Local time: Wed 2024-01- ...

  5. 在idea/webstorm等terminal运行命令报错:Command rejected by the operating system没有权限【已解决】

    在idea/webstorm等编译器terminal窗口运行命令报错:Command rejected by the operating system没有权限[已解决] 1.修改terminal窗口 ...

  6. Windows10基于Visual Studio 2019配置OpenCV4.X

    下载OpenCV OpenCV官网 我们是Windows环境所以选择 Windows 配置环境变量 创建一个Visual Studio项目 配置Visual Studio属性 在包含目录中引入路径: ...

  7. 并发框架 LMAX Disruptor

    Introduction   Michael Barker edited this page on 2 Mar 2015 · 8 revisions The best way to understan ...

  8. 驾考宝典携手HMS Core统一扫码服务,构建复杂场景中的流畅扫码体验

    "驾考宝典"是一款颇具人气的互联网综合驾照考试学习应用,通过强大的驾考功能,在手机移动端为学车学员提供从报名.学习到拿本的全方位驾考服务.作为一个专业的驾培平台,"驾考宝 ...

  9. 攻防世界 debug

    题目 分析过程 丢到PE里面 一开始,我看到下面的脱壳提示,以为是我没见过的壳,下载了相关工具脱壳--发现脱了后又出现没见过的脱壳提示,根据提示脱壳弄出来的东西怪怪的 卡题,查了资料 学到一个新知识点 ...

  10. 《深入理解Java虚拟机》读书笔记:HotSpot的算法实现

    HotSpot的算法实现 HotSpot的算法实现概要 1.枚举根节点 由于目前的主流Java虚拟机使用的都是准确式GC(这个概念在第1章介绍Exact VM对Classic VM的改进时讲过),所以 ...