本页使用了标题或全文手工转换

后台智能传输服务

维基百科,自由的百科全书
跳转至: 导航搜索

后台智能传输服务Background Intelligent Transfer Service,缩写BITS)是微软Windows 2000及后续版本中包含的一个组件。它有助于利用空闲网络带宽在计算机之间异步、有优先级及自我限制地传输文件,并主要在较新版本的Windows UpdateMicrosoft UpdateWindows Server更新服务系统管理服务器英语Systems Management Server用于交付修補程式到客户端。反病毒软件Microsoft Security Essentials(及之后的Windows Defender)也使用它获取签名更新,并且微软的即时通讯产品会使用它来传输文件。BITS通过组件对象模型(COM)接口供外部调用。

技术[编辑]

BITS只采用空闲的带宽传输数据。通常来说,BITS在后台传输数据,即BITS仅在其他应用程序没有使用带宽时传输数据。BITS支持在中断后继续传输。[來源請求]

BITS的1.0版只支持下载。自1.5版开始,BITS支持下载与上传。上传需要接收方使用網際網路資訊服務及BITS服务器扩展。

传输[编辑]

BITS会代表请求的应用程序异步完成传输,即应用程序请求BITS服务进行传输后,可以自由地去执行其他任务,乃至终止。只要网络已连接并且任务所有者已登录,则传输就会在后台进行。当任务所有者未登录时,BITS任务不会进行。

BITS将在网络连接断开或操作系统关闭时暂停所有正在进行的传输。在计算机重新开启并恢复网络连接时,它将从之前的位置继续重新开始传输。BITS支持通过SMBHTTPHTTPS进行传输。

带宽[编辑]

BITS只会尝试利用空闲带宽。例如,当应用程序使用80%的可用带宽时,BITS将只使用剩下的20%。 BITS会不断监控网络流量以增加或减少流量,并遏制英语Bandwidth throttling自己的传输以确保其他前台应用程序(如网页浏览器)获得所需的带宽。注意,BITS不需要测量实际带宽。BITS 3.0及更高版本将尝试使用互联网网关设备英语Internet Gateway Device Protocol计数器,从而更准确地计算可用带宽。如果其不可用,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 ToolsWindows Server 2003 Service Pack 1 Support Tools及两者的更新版本中,以及是Windows Vista中的标准命令行工具。在Windows 7,BITSAdmin.exe已不推荐使用,建议改用Windows PowerShell cmdlets。[2]

版本历史[编辑]

  • 版本1.0(2001年10月)
  • 版本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月)
    • 添加对在安全HTTP传输和自定义HTTP标头时基于证书的客户端身份验证的支持。
    • 支持IPv6
    • 可以为Windows XP和Windows Server 2003下载[3],并包含在Windows XP Service Pack 3中。[4][5]
  • 版本3.0(2006年11月)
    • 添加支持:加入英语Windows Server domain的计算机可以对等缓存[6](允许同一子网中的计算机从对等端下载内容,以及将内容提供给对等端);在文件已下载时得到通知;在下载进行时访问临时文件;控制HTTP重定向。BITS 3.0还使用互联网网关设备英语Internet Gateway Device Protocol计数器来更准确地计算可用带宽。
    • 添加组策略来控制对等缓存、下载时间和任务数量与文件下载。BITS 3.0还会将诊断和故障排除事件写入系统日志,可以使用事件檢視器查看。
    • BITS 3.0随Windows Vista引入,并包含在后续Windows版本中。BITS 2.5功能也包含在Windows Vista和Windows Server 2008中。
  • 版本4.0(2009年7月)
    • Windows 7Windows Server 2008 R2引入,并可用于Windows Vista SP2和Windows Server 2008 RTM[7]
    • 添加一个新的资源访问模型,允许应用程序使用BITS分配两个不同权限访问令牌英语Access token进行BITS传输任务。
    • 对于Windows Server,BITS 4.0添加了一个基于HTTP的文件服务器,称为BITS紧凑型服务器,适用于同一个域内的计算机。[8]
    • 更细粒度的带宽限制组策略。
    • 在BITS 4.0中,对等缓存模型已不推荐使用,并被BranchCache子网级对等缓存取代。
  • 版本5.0(2012年8月)
    • Windows 8Windows Server 2012引入。
    • 添加新的应用程序编程接口(API) [9]
    • 可以允许或禁止BITS任务通过按流量计费/蜂窝链路传输。 [10]
    • BITS 5.0也包含在Windows 8.1Windows 10中。 Windows 10中的BITS版本支持在PowerShell远程会话中的传输任务。

使用BITS的非微软应用程序[编辑]

参见[编辑]

参考资料[编辑]

外部链接[编辑]