Background Intelligent Transfer Service

Background Intelligent Transfer Service (BITS) is a component of Microsoft Windows XP and later iterations of the operating systems, which facilitates asynchronous, prioritized, and throttled transfer of files between machines using idle network bandwidth.

BITS is exposed through the Component Object Model (COM) and the UWP API Windows.Networking.BackgroundTransfer.

The transfer will continue in the background as long as the network connection is there and the job owner is logged in.

BITS suspends any ongoing transfer when the network connection is lost or the operating system is shut down.

It resumes the transfer from where it left off when (the computer is turned on later and) the network connection is restored.

BITS constantly monitors network traffic for any increase or decrease in network traffic and throttles its own transfers to ensure that other foreground applications (such as a web browser) get the bandwidth they need.

BITS versions 3.0 and up will use Internet Gateway Device counters, if available, to more accurately calculate available bandwidth.

A job can be programmatically started, stopped, paused, resumed, and queried for status.

If a network application begins to consume more bandwidth, BITS decreases its transfer rate to preserve the user's interactive experience, except for Foreground priority downloads.

BITS includes a built-in mechanism for error handling and recovery attempts.

[6] The BitsTransfer PowerShell module provides eight cmdlets with which to manage BITS jobs.