Background Intelligent Transfer Service
Developer(s) | Microsoft |
---|---|
Initial release | October 2001 |
Stable release | 10.3
/ December 7, 2019 |
Operating system | Microsoft Windows |
Type | Download manager |
License | Proprietary commercial software |
Website | learn |
Background Intelligent Transfer Service (BITS) is a component of
Technology
BITS uses idle bandwidth 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
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) 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 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).[1]
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 URIs. 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
Scheduling
BITS
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 utility to manage BITS jobs. The utility is part of Windows Vista and later.[2][3] It is also available as a part of the Windows XP Service Pack 2 Support Tools[4] or Windows Server 2003 Service Pack 1 Support Tools.[5]
Usage example:
C:\>bitsadmin /transfer myDownloadJob /download /priority normal https://example.com/file.zip C:\file.zip
PowerShell BitsTransfer
In
BitsTransfer
PowerShell module provides eight cmdlets with which to manage BITS jobs.[7]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 for Windows that creates BITS Jobs.[8]
- BITSync – An open source utility that uses BITS to perform file synchronization on Server Message Block network shares.[9]
- modpackages.
- Endless OS installer for Windows – Uses BITS to download OS images.[10]
- Eve Online – Uses BITS to download all the patches post-Apocrypha (March 10, 2009). It is also now used in the client repair tool.
- Some ]
- Firefox (since version 68) for updates.[11]
- KBOX Systems Management Appliance – A systems managementappliance 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.[12]
- SharpBITS – An open source download manager for Windows that handles BITS jobs.[13]
- WinBITS – An open source Downloader for Windows that downloads files by creating BITS Jobs.[14]
- Novell ZENworks Desktop Management – A systems management software that can use BITS to deliver application files to workstations.[15]
- Specops Deploy/App – A systems management software that (when available) uses BITS for delivering packages to the clients in the background.[16]
See also
References
- ^ "MSDN BITS Network Bandwidth". Archived from the original on 2017-04-19. Retrieved 2015-05-01.
- ^ Satran, Michael; Smith, Peter (5 March 2019). "BITSAdmin tool". Windows Dev Center. Microsoft. Archived from the original on 18 April 2020. Retrieved 28 April 2020.
- ^ Ross, Elizabeth; White, Steven; Poggemeyer, Liza; Lee, Thomas; Plett, Corey (16 October 2017). "bitsadmin". Windows IT Pro Center. Microsoft. Archived from the original on 30 April 2019. Retrieved 9 June 2019.
- ^ "Windows XP Service Pack 2 Support Tools". Download Center. Microsoft. 10 August 2004. Archived from the original on 29 April 2020. Retrieved 28 April 2020.
- ^ "Windows Server 2003 Service Pack 1 32-bit Support Tools". Download Center. Microsoft. 30 March 2005. Archived from the original on 21 July 2020. Retrieved 28 April 2020.
- ^ "Manage BITS (Background Intelligent Transfer Service) with Windows PowerShell". TechNet Magazine. Microsoft. Archived from the original on 22 August 2020. Retrieved 25 September 2015.
- ^ "BitsTransfer". Windows IT Pro Center. Microsoft. Archived from the original on 11 November 2020. Retrieved 28 April 2020.
- ^ "BITS Download Manager". Archived from the original on 2020-08-15. Retrieved 2010-01-07.
- ^ "BITSync". Archived from the original on 2009-01-24. Retrieved 2008-12-31.
- ^ Endless Installer for Windows DownloadManager class
- ^ "Firefox 68.0, See All New Features, Updates and Fixes". Mozilla. Archived from the original on 2019-07-11. Retrieved 2019-07-09.
- ^ Oxygen media platform
- ^ "SharpBITS". Archived from the original on 2018-01-22. Retrieved 2021-03-31.
- ^ "WinBITS". Archived from the original on 2019-05-18. Retrieved 2007-11-19.
- ^ "Zenworks 7". Archived from the original on 2009-02-12. Retrieved 2021-03-31.
- ^ "Specops Deploy/App". Archived from the original on 2020-12-20. Retrieved 2021-03-31.