后台智能传输服务

后台智能传输服务（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）接入网络。

任务 
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。

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

使用BITS的非微软应用程序 
 ：使用BITS在客户端安装软件包。
 BITS Download Manager ：一个面向Windows的，它创建BITS任务。
 BITSync：开源工具，在SMB网络共享上执行使用BITS执行文件同步。
 Civilization V：使用BITS下载遊戲模組（mod）包。
 EVE Online：它使用BITS下载所有补丁。也在客户端修复工具中使用。
 部分Google服务（包括Chrome、Gears, Pack和YouTube Uploader）使用BITS。
 ：一个系统管理应用程序，可以使用BITS来交付文件到Windows系统。
 ：使用BITS下载网络供稿中的附件。
 Oxygen media platform：使用BITS分发媒体内容和软件更新。
 SharpBITS ：一个适用于Windows的开源，它处理BITS任务。
 WinBITS ：一个适用于Windows的开源下载器，它创建BITS任务来下载文件。
 Novell ZENworks Desktop Management：一个系统管理软件，可以使用BITS来交付应用程序文件到工作站。
 Specops Deploy/App ：一个系统管理软件，在可用时使用BITS在后台交付包到客户端。

参见 
 Windows 组件列表

参考资料

外部链接 
 Background Intelligent Transfer Service in Windows Server 2003 
 Background Intelligent Transfer Service in Windows Server 2008 
 BITS version history 

分布式数据存储
HTTP客户端
网络文件传输协议
Windows管理
Windows命令