后台智能传输服务

技术

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。