后台智能传输服务
此條目翻譯自其他語言維基百科,需要相關領域的編者協助校對翻譯。 |
后台智能传输服务(Background Intelligent Transfer Service,缩写BITS)是微软在Windows 2000及后续版本中包含的一个组件。它有助于利用空闲网络带宽在计算机之间异步、有优先级及自我限制地传输文件,并主要在较新版本的Windows Update、Microsoft Update、Windows Server更新服务和系统管理服务器用于交付修補程式到客户端。反病毒软件Microsoft Security Essentials(及之后的Windows Defender)也使用它获取签名更新,并且微软的即时通讯产品会使用它来传输文件。BITS通过组件对象模型(COM)接口供外部调用。
技术
[编辑]BITS只采用空闲的带宽传输数据。通常来说,BITS在后台传输数据,即BITS仅在其他应用程序没有使用带宽时传输数据。BITS支持在中断后继续传输。[來源請求]
BITS的1.0版只支持下载。自1.5版开始,BITS支持下载与上传。上传需要接收方使用網際網路資訊服務及BITS服务器扩展。
传输
[编辑]BITS会代表请求的应用程序异步完成传输,即应用程序请求BITS服务进行传输后,可以自由地去执行其他任务,乃至终止。只要网络已连接并且任务所有者已登录,则传输就会在后台进行。当任务所有者未登录时,BITS任务不会进行。
BITS将在网络连接断开或操作系统关闭时暂停所有正在进行的传输。在计算机重新开启并恢复网络连接时,它将从之前的位置继续重新开始传输。BITS支持通过SMB、HTTP和HTTPS进行传输。
带宽
[编辑]BITS只会尝试利用空闲带宽。例如,当应用程序使用80%的可用带宽时,BITS将只使用剩下的20%。 BITS会不断监控网络流量以增加或减少流量,并遏制自己的传输以确保其他前台应用程序(如网页浏览器)获得所需的带宽。注意,BITS不需要测量实际带宽。BITS 3.0及更高版本将尝试使用互联网网关设备计数器,从而更准确地计算可用带宽。如果其不可用,BITS将使用网卡(NIC)报告的速度来计算带宽。这可能导致带宽的计算错误,例如当快速的网络适配器(如10 Mbit/s)通过慢速链路(56 kbit/s)接入网络。[1]
任务
[编辑]BITS采用队列管理文件传输。一个BITS会话是由一个应用程序创建一个任务(Job)而开始。一个任务就是一份容器,它有一个或多个要传输的文件。新创建的任务是空的,需要指定来源与目标URI来添加文件。下载任务可以包含任意多的文件,而上传任务中只能有一个文件。可以为各个文件设置属性。任务将继承创建它的应用程序的安全上下文。BITS提供API接口来控制任务。通过编程可以来启动、停止、暂停、继续任务以及查询状态。在启动一个任务前,必须先设置它相对于传输队列中其他任务的优先级。默认情况下,所有任务均为正常优先级,而任务可以被设置为高、低或前台优先级。BITS将优化后台传输被,根据可用的空闲网络带宽来增加或减少(抑制)传输速率。如果一个网络应用程序开始耗用更多带宽,BITS将限制其传输速率以保证用户的交互式体验,但前台优先级的任务除外。
调度
[编辑]BITS的调度采用分配给每个任务有限时间片的机制,一个任务被暂停时,另一个任务才有机会获得传输时机[來源請求]。较高优先级的任务将获得较多的时间片。BITS采用循環制处理相同优先级的任务,并防止大的传输任务阻塞小的传输任务。
在任务新建时,它被自动挂起(暂停),等待明确的继续(激活)。继续会将任务转移到排队状态。在它开始传输数据时,它首先需要连接到远端服务器,然后开始传输。在任务的时间片到期时,传输将被暂停,任务返回到排队状态。当作业获得另一个时间片时,它必须重新连接才能传输。当任务完成时,BITS将任务的所有权转移到创建任务的应用程序。
BITS内置有一个错误处理和尝试恢复的机制。错误可以是致命(fatal)或暂时(transient)的,这分别移动错误到不同的状态;暂时错误可以在一段时间后自我解决。对于暂时错误,BITS会等待一段时间并重试。对于致命错误,BITS会将任务的控制转移到创建它的应用程序,并尽量提供错误的相关信息。
工具
[编辑]BITSAdmin (页面存档备份,存于互联网档案馆) - BITS管理工具,管理BITS任务的命令行工具。
它存在于Windows XP Service Pack 2 Support Tools (页面存档备份,存于互联网档案馆)或Windows Server 2003 Service Pack 1 Support Tools (页面存档备份,存于互联网档案馆)及两者的更新版本中,以及是Windows Vista中的标准命令行工具。在Windows 7,BITSAdmin.exe已不推荐使用,建议改用Windows PowerShell cmdlets。[2]
版本历史
[编辑]- 版本1.0(2001年10月)
- 初始版本。包含在Windows XP RTM中。
- 版本1.2(2002年7月)
- 包含在Windows XP Service Pack 1和Windows 2000 Service Pack 3中。Windows 2000的BITS将自动更新功能带入了操作系统的核心。
- 没有其他外部变更。
- 版本1.5(2003年9月)
- 包含在Windows Server 2003,并提供适用于Windows 2000和Windows XP的单独下载。
- 添加上传和上传回复能力,事件的命令行执行,显式凭证,以及对Windows 2000的支持。
- 版本2.0(2004年8月)
- 包含在Windows XP Service Pack 2和Windows Server 2003 Service Pack 1中,并可以为Windows 2000 Service Packs 3、4以及Windows XP和Server 2003的早期版本单独下载。
- 添加支持:并发执行前台下载,为远程名称使用Server Message Block路径,下载文件某部分,更改远程名称的前缀或完整名称,以及限制客户端的带宽使用。
- BITS 2.0是Windows Server Update Services必备设施。
- 版本2.5(2007年6月)
- 版本3.0(2006年11月)
- 版本4.0(2009年7月)
- 版本5.0(2012年8月)
- 随Windows 8和Windows Server 2012引入。
- 添加新的应用程序编程接口(API) [9]
- 可以允许或禁止BITS任务通过按流量计费/蜂窝链路传输。 [10]
- BITS 5.0也包含在Windows 8.1和Windows 10中。 Windows 10中的BITS版本支持在PowerShell远程会话中的传输任务。
使用BITS的非微软应用程序
[编辑]- AppSense:使用BITS在客户端安装软件包。
- BITS Download Manager (页面存档备份,存于互联网档案馆):一个面向Windows的下载管理器,它创建BITS任务。
- BITSync:开源工具,在SMB网络共享上执行使用BITS执行文件同步。
- Civilization V:使用BITS下载遊戲模組(mod)包。
- EVE Online:它使用BITS下载所有补丁。也在客户端修复工具中使用。
- 部分Google服务(包括Chrome、Gears, Pack和YouTube Uploader)使用BITS。[來源請求]
- KBOX Systems Management Appliance:一个系统管理应用程序,可以使用BITS来交付文件到Windows系统。
- RSS Bandit:使用BITS下载网络供稿中的附件。
- Oxygen media platform:使用BITS分发媒体内容和软件更新。
- SharpBITS (页面存档备份,存于互联网档案馆):一个适用于Windows的开源下载管理器,它处理BITS任务。
- WinBITS (页面存档备份,存于互联网档案馆):一个适用于Windows的开源下载器,它创建BITS任务来下载文件。
- Novell ZENworks Desktop Management:一个系统管理软件,可以使用BITS来交付应用程序文件到工作站。[11]
- Specops Deploy/App (页面存档备份,存于互联网档案馆):一个系统管理软件,在可用时使用BITS在后台交付包到客户端。
参见
[编辑]参考资料
[编辑]- ^ MSDN BITS Network Bandwidth. [2017-04-19]. (原始内容存档于2017-04-19).
- ^ Manage BITS (Background Intelligent Transfer Service) with Windows PowerShell. TechNet Magazine. Microsoft. [2015-09-25]. (原始内容存档于2016-03-04).
- ^ An update package for Background Intelligent Transfer Service (BITS) is now available for Windows Server 2003 and for Windows XP. Microsoft. 2007-10-11 [2007-10-23]. (原始内容存档于2007-10-05).
- ^ What's New. Microsoft. 2007-10-01 [2007-10-23]. (原始内容存档于2007-10-12).
- ^ Overview of Windows XP Service Pack 3 (PDF). Microsoft. 2008-05-06 [2008-12-22]. (原始内容 (PDF)存档于2009-01-17).
- ^ Peer caching: MSDN Library. [2017-04-19]. (原始内容存档于2017-04-20).
- ^ Windows Management Framework BITS package. [2017-04-19]. (原始内容存档于2015-01-20).
- ^ Compact Server. [2017-04-19]. (原始内容存档于2012-10-20).
- ^ What's New in Background Intelligent Transfer Service. [2017-04-19]. (原始内容存档于2017-05-18).
- ^ 存档副本. [2017-04-19]. (原始内容存档于2017-03-22).
- ^ Zenworks 7. [2021-08-23]. (原始内容存档于2009-02-12).