Background Intelligent Transfer Service
   HOME

TheInfoList



OR:

Background Intelligent Transfer Service (BITS) is a component of
Microsoft Windows XP Windows XP is a major release of Microsoft's Windows NT operating system. It was released to manufacturing on August 24, 2001, and later to retail on October 25, 2001. It is a direct upgrade to its predecessors, Windows 2000 for high-end and ...
and later iterations of the operating systems, which facilitates asynchronous, prioritized, and throttled transfer of files between machines using idle network bandwidth. It is most commonly used by recent versions of
Windows Update Windows Update is a Microsoft service for the Windows 9x and Windows NT families of operating system, which automates downloading and installing Microsoft Windows software updates over the Internet. The service delivers software updates for Wind ...
,
Microsoft Update Windows Update is a Microsoft service for the Windows 9x and Windows NT families of operating system, which automates downloading and installing Microsoft Windows software updates over the Internet. The service delivers software updates for Win ...
,
Windows Server Update Services Windows Server Update Services (WSUS), previously known as Software Update Services (SUS), is a computer program and network service developed by Microsoft Corporation that enables administrators to manage the distribution of updates and hot ...
, and System Center Configuration Manager to deliver
software update A patch is a set of changes to a computer program or its supporting data designed to update, fix, or improve it. This includes fixing security vulnerabilities and other bugs, with such patches usually being called bugfixes or bug fixes. Patches ...
s to clients,
Microsoft Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
's anti-virus scanner
Microsoft Security Essentials Microsoft Security Essentials (MSE) is an antivirus software (AV) product that provides protection against different types of malicious software, such as computer viruses, spyware, rootkits, and Trojan horses. Prior to version 4.5, MSE ran on , ...
(a later version of
Windows Defender Microsoft Defender Antivirus (formerly Windows Defender) is an anti-malware component of Microsoft Windows. It was first released as a downloadable free anti-spyware program for Windows XP and was shipped with Windows Vista and Windows 7. It has ...
) to fetch signature updates, and is also used by Microsoft's instant messaging products to transfer files. BITS is exposed through the Component Object Model (COM).


Technology

BITS uses idle
bandwidth Bandwidth commonly refers to: * Bandwidth (signal processing) or ''analog bandwidth'', ''frequency bandwidth'', or ''radio bandwidth'', a measure of the width of a frequency range * Bandwidth (computing), the rate of data transfer, bit rate or thr ...
to transfer data. Normally, BITS transfers data in the background, i.e., BITS will only transfer data whenever there is bandwidth which is not being used by other applications. BITS also supports resuming transfers in case of disruptions. BITS version 1.0 supports only downloads. From version 1.5, BITS supports both downloads and uploads. Uploads require the IIS web server, with BITS server extension, on the receiving side.


Transfers

BITS transfers files on behalf of requesting applications asynchronously, i.e., once an application requests the BITS service for a transfer, it will be free to do any other task, or even terminate. The transfer will continue in the background as long as the network connection is there and the job owner is logged in. BITS jobs do not transfer when the job owner is not signed 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 supports transfers over SMB,
HTTP The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
and
HTTPS Hypertext Transfer Protocol Secure (HTTPS) is an extension of the Hypertext Transfer Protocol (HTTP). It is used for secure communication over a computer network, and is widely used on the Internet. In HTTPS, the communication protocol is enc ...
.


Bandwidth

BITS attempts to use only spare bandwidth. For example, when applications use 80% of the available bandwidth, BITS will use only the remaining 20%. 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 A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
) get the bandwidth they need. Note that BITS does not necessarily measure the actual bandwidth. BITS versions 3.0 and up will use
Internet Gateway Device The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
counters, if available, to more accurately calculate available bandwidth. Otherwise, BITS will use the speed as reported by the NIC to calculate bandwidth. This can lead to bandwidth calculation errors, for example when a fast network adapter (10 Mbit/s) is connected to the network via a slow link (56 kbit/s).


Jobs

BITS uses a queue to manage file transfers. A BITS session has to be started from an application by creating a ''Job''. A job is a container, which has one or more files to transfer. A newly created job is empty. Files must be added, specifying both the source and destination
URI Uri may refer to: Places * Canton of Uri, a canton in Switzerland * Úri, a village and commune in Hungary * Uri, Iran, a village in East Azerbaijan Province * Uri, Jammu and Kashmir, a town in India * Uri (island), an island off Malakula Islan ...
s. While a download job can have any number of files, upload jobs can have only one. Properties can be set for individual files. Jobs inherit the security context of the application that creates them. BITS provides
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
access to control jobs. A job can be programmatically started, stopped, paused, resumed, and queried for status. Before starting a job, a priority has to be set for it to specify when the job is processed relative to other jobs in the transfer queue. By default, all jobs are of ''Normal'' priority. Jobs can optionally be set to ''High'', ''Low'', or ''Foreground'' priority. Background transfers are optimized by BITS,1 which increases and decreases (or throttles) the rate of transfer based on the amount of idle network bandwidth that is available. 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.


Scheduling

BITS schedules each job to receive only a finite
time slice In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preempt ...
, for which only that job is allowed to transfer, before it is temporarily paused to give another job a chance to transfer. Higher priority jobs get a higher chunk of time slice. BITS uses
round-robin scheduling Round-robin (RR) is one of the algorithms employed by process and network schedulers in computing. Guowang Miao, Jens Zander, Ki Won Sung, and Ben Slimane, Fundamentals of Mobile Data Networks, Cambridge University Press, , 2016. As the term ...
to process jobs in the same priority and to prevent a large transfer job from blocking smaller jobs. When a job is newly created, it is automatically ''suspended'' (or paused). It has to be explicitly ''resumed'' to be activated. ''Resuming'' moves the job to the ''queued'' state. On its turn to transfer data, it first connects to the remote server and then starts transferring. After the job's time slice expires, the transfer is temporarily paused, and the job is moved back to the ''queued'' state. When the job gets another time slice, it has to connect again before it can transfer. When the job is complete, BITS transfers ownership of the job to the application that created it. BITS includes a built-in mechanism for error handling and recovery attempts. Errors can be either ''fatal'' or ''transient''; either moves a job to the respective state. A ''transient'' error is a temporary error that resolves itself after some time. For a transient error, BITS waits for some time and then retries. For ''fatal'' errors, BITS transfers control of the job to the creating application, with as much information regarding the error as it can provide.


Command-line interface tools


BITSAdmin command

Microsoft provides a BITS Administration Utility (BITSAdmin)
command-line A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
utility As a topic of economics, utility is used to model worth or value. Its usage has evolved significantly over time. The term was introduced initially as a measure of pleasure or happiness as part of the theory of utilitarianism by moral philosopher ...
to manage BITS jobs. The utility is part of
Windows Vista Windows Vista is a major release of the Windows NT operating system developed by Microsoft. It was the direct successor to Windows XP, which was released five years before, at the time being the longest time span between successive releases of ...
and later. It is also available as a part of the ''Windows XP Service Pack 2 Support Tools'' or ''Windows Server 2003 Service Pack 1 Support Tools''. Usage example: C:\>bitsadmin /transfer myDownloadJob /download /priority normal https://example.com/file.zip C:\file.zip


PowerShell BitsTransfer

In
Windows 7 Windows 7 is a major release of the Windows NT operating system developed by Microsoft. It was released to manufacturing on July 22, 2009, and became generally available on October 22, 2009. It is the successor to Windows Vista, released nearly ...
, the BITSAdmin utility is deprecated in favor of
Windows PowerShell PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-sourc ...
cmdlets. The BitsTransfer PowerShell module provides eight cmdlets with which to manage BITS jobs. The following example is the equivalent of the BITSAdmin example above: PS C:\> Start-BitsTransfer -Source "https://example.com/file.zip" -Destination "C:\file.zip" -DisplayName "myDownloadJob"


List of non-Microsoft applications that use BITS

* AppSense – Uses BITS to install Packages on clients. * BITS Download Manager – A
download manager A download manager is a software tool that manages the downloading of files from the Internet, which may be built: into a Web browser, or as a, usually more sophisticated program Program, programme, programmer, or programming may refer to: Bu ...
for Windows that creates BITS Jobs. * BITSync – An
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
utility that uses BITS to perform
file synchronization File synchronization (or syncing) in computing is the process of ensuring that computer files in two or more locations are updated via certain rules. In ''one-way file synchronization'', also called mirroring, updated files are copied from a sour ...
on
Server Message Block Server Message Block (SMB) is a communication protocol originally developed in 1983 by Barry A. Feigenbaum at IBM and intended to provide shared access to files and printers across nodes on a network of systems running IBM's OS/2. It also provides ...
network shares. * ''
Civilization V ''Sid Meier's Civilization V'' is a 4X video game in the ''Civilization'' series developed by Firaxis Games. The game was released on Microsoft Windows on September 21, 2010, on OS X on November 23, 2010, and on Linux on June 10, 2014. In ...
'' – Uses BITS to download
mod Mod, MOD or mods may refer to: Places * Modesto City–County Airport, Stanislaus County, California, US Arts, entertainment, and media Music * Mods (band), a Norwegian rock band * M.O.D. (Method of Destruction), a band from New York City, US ...
packages. * Endless OS installer for Windows – Uses BITS to download OS images. * ''
Eve Online ''Eve Online'' (stylised ''EVE Online'') is a space-based, persistent world massively multiplayer online role-playing game (MMORPG) developed and published by CCP Games. Players of ''Eve Online'' can participate in a number of in-game profess ...
'' – Uses BITS to download all the patches post-Apocrypha (March 10, 2009). It is also now used in the client repair tool. * Some
Google Google LLC () is an American multinational technology company focusing on search engine technology, online advertising, cloud computing, computer software, quantum computing, e-commerce, artificial intelligence, and consumer electronics. ...
services including Chrome,
Gears A gear is a rotating circular machine part having cut teeth or, in the case of a cogwheel or gearwheel, inserted teeth (called ''cogs''), which mesh with another (compatible) toothed part to transmit (convert) torque and speed. The basic p ...
, Pack, Flutter updater and YouTube Uploader used BITS. *
Firefox Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
(since version 68) for updates. * KBOX Systems Management Appliance – A
systems management Systems management refers to enterprise-wide administration of distributed systems including (and commonly in practice) computer systems. Systems management is strongly influenced by network management initiatives in telecommunications. The ap ...
appliance that can use BITS to deliver files to Windows systems. * RSS Bandit – Uses BITS to download attachments in web feeds. * Oxygen media platform – Uses BITS to distribute Media Content and Software Updates. * SharpBITS – An
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
download manager A download manager is a software tool that manages the downloading of files from the Internet, which may be built: into a Web browser, or as a, usually more sophisticated program Program, programme, programmer, or programming may refer to: Bu ...
for Windows that handles BITS jobs. * WinBITS – An
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
Downloader for Windows that downloads files by creating BITS Jobs. * Novell ZENworks Desktop Management – A
systems management Systems management refers to enterprise-wide administration of distributed systems including (and commonly in practice) computer systems. Systems management is strongly influenced by network management initiatives in telecommunications. The ap ...
software that can use BITS to deliver application files to workstations. * Specops Deploy/App – A
systems management Systems management refers to enterprise-wide administration of distributed systems including (and commonly in practice) computer systems. Systems management is strongly influenced by network management initiatives in telecommunications. The ap ...
software that (when available) uses BITS for delivering packages to the clients in the background.


See also

*
List of Microsoft Windows components The following is a list of Microsoft Windows computer program, components. Configuration and maintenance User interface Applications and utilities Windows Server components File systems Core components Services This list i ...
*
Protocols for file transfer This article lists communication protocols that are designed for file transfer over a telecommunications network. Protocols for shared file systems—such as 9P and the Network File System—are beyond the scope of this article, as are file ...


References


External links


Background Intelligent Transfer Service in Windows Server 2008Fix Background Intelligent Transfer Service in Windows 10BITS version historybitsadmin , Microsoft Docs
{{Microsoft APIs Distributed data storage Network file transfer protocols Hypertext Transfer Protocol clients Windows services Windows administration