Background Intelligent Transfer Service

Background Intelligent Transfer Service

Background Intelligent Transfer Service (BITS) is a component of modern Microsoft Windows operating systems that facilitates prioritized, throttled, and asynchronous transfer of files between machines using idle network bandwidth. It is most commonly used by recent versions of Windows Update, Windows Server Update Services, and Systems Management Server to deliver software updates to clients, and is also used by Microsoft's instant messaging products to transfer files. BITS is exposed through Component Object Model (COM), making it possible to use with virtually any programming language.

Technology

BITS uses unused 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, 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 accordingly throttles its own transfers to ensure that other foreground applications (such as a web browser) get the bandwidth they need. 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.

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 job, or even terminate. The transfer will continue in the background as long as the network connection is there. Even when a user is not logged on, BITS continues the data transfer.

BITS suspends any ongoing transfer when the network connection is lost, or the operating system is shut down. It resumes the transfer from when it left off when the computer is turned on later and the network connection is restored. BITS supports transfers over both HTTP and HTTPS.

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 doesn't have any file, files must be added to it 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 which created it.

BITS provides API access to control a job. 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, which can be optionally be set to "High", "Low", or "Foreground". Background transfers are optimized by BITS, 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.

cheduling

BITS schedules each job to receive only a finite time slice, 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 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 "queued" state. When it is its turn to transfer data, it first connects to the remote server and then starts transferring. After the time slice expires, the transfer is temporarily paused and the job is moved to "queued" state. When it 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 built-in mechanism for error handling and recovery attempts. Errors can be either "fatal" or "transient", either moves a job to its respective state. A "transient" error is a temporary error that resolves itself after some time. For a transient error, BITS waits for sometime and then retries. For "fatal" errors, transfers the control of the job to its creating application, with as much information regarding the error as it can provide.

Tools

[http://technet2.microsoft.com/windowsserver/en/library/68bbf6f1-99df-4db5-8bd8-d80e3586255e1033.mspx?mfr=true Bitsadmin] - BITS Administration Utility,command line tool to manage BITS jobs.

It's available as a part of [http://www.microsoft.com/downloads/details.aspx?familyid=6ec50b78-8be1-4e81-b3be-4e7ac4f0912d&displaylang=en Windows Server 2003 Service Pack 1 Support Tools]

Version history

* Version 1.0 (October 2001)
** Initial release. Included with Windows XP RTM.
* Version 1.2 (July 2002)
** Included with Windows XP Service Pack 1 and Windows 2000 Service Pack 3. BITS' inclusion with Windows 2000 brought Automatic Updates capabilities into the core of that operating system.
** No other external changes were made.
* Version 1.5 (September 2003)
** Included with Windows Server 2003 and made available as a separate download for Windows 2000 and Windows XP.
** Added upload and upload-reply capability, command-line execution for events, explicit credentials, and support for Windows 2000.
* Version 2.0 (August 2004)
** Included with Windows XP Service Pack 2 and Windows Server 2003 Service Pack 1, and made available as a separate download for Windows 2000 Service Packs 3 and 4, and prior releases of Windows XP and Server 2003.
** Added support for performing concurrent foreground downloads, using Server Message Block paths for remote names, downloading portions of a file, changing the prefix or complete name of a remote name, and limiting client bandwidth usage.
** BITS 2.0 is a minimum requirement for Windows Server Update Services.
* Version 2.5 (June 2007)
** Adds support for certificate-based client authentication for secure HTTP transports and custom HTTP headers.
** Support for IPv6
** Available for download for Windows XP and Windows Server 2003, [Cite web |url=http://support.microsoft.com/kb/923845 |title=An update package for Background Intelligent Transfer Service (BITS) is now available for Windows Server 2003 and for Windows XP |publisher=Microsoft |accessdate=2007-10-23 |date=2007-10-11] and will be included with Windows XP Service Pack 3.Cite web |url=http://msdn2.microsoft.com/en-us/library/aa363167.aspx |title=What's New |publisher=Microsoft |accessdate=2007-10-23 |date=2007-10-01 "The 2.5 features are available in the Windows Server 2008, Windows Vista, and Windows XP SP3 operating systems."]
* Version 3.0 (November 2007)
** Adds "peer caching" which allows users to download content from peers and also serve content to peers, receive notification when a file is downloaded, access the temporary file while the download is in progress, and control HTTP redirects. BITS 3.0 also uses Internet Gateway Device counters to more accurately calculate available bandwidth.
** Adds Group policies to control peer caching and limit download times, number of jobs and files download. BITS 3.0 also writes diagnostic and troubleshooting events to the "system log" which can be viewed in Event Viewer.
** BITS 3.0 was introduced with Windows Vista, and will be included in Windows Server 2008. BITS 2.5 capabilities are also included in Windows Vista and Windows Server 2008.

List of non-Microsoft applications that use BITS

* [http://klinkby.wordpress.com/2008/01/19/bitsync/ BITSync] : An Open source utility that uses BITS to perform file synchronization on Server Message Block network shares.
* [http://www.novell.com/documentation/zenworks7/dm7install/index.html?page=/documentation/zenworks7/dm7install/data/b3qayj3.html Zenworks 7] : Novell ZENworks Desktop Management: A systems management software that can use BITS to deliver application files to workstations.
* KBOX Systems Management Appliance: A systems management appliance that can use BITS to deliver files to Windows systems.
* RSS Bandit: Uses BITS to download attachments in web feeds.
* EVE-Online: Uses BITS to download new graphical content for the Trinity Expansion.
* [http://www.darvin.de/english/index.html WinBITS] : An Open source [http://sourceforge.net/projects/winbits/] Downloader for Windows that downloads files by creating BITS Jobs.
* Google Gears Installer: Uses BITS to download gears data.
* Google Pack: Uses BITS to download managed applications.
* Oxygen media platform: Uses BITS to distribute Media Content and Software Updates
* YouTube uploader: Uses BITS

See also

* List of Microsoft Windows components
* Protocols for file transfer

References

External links

* [http://www.microsoft.com/windowsserver2003/techinfo/overview/bits.mspx Background Intelligent Transfer Service in Windows Server 2003]
* [http://msdn2.microsoft.com/en-us/library/aa363167.aspx BITS version history]


Wikimedia Foundation. 2010.

Look at other dictionaries:

  • Background Intelligent Transfer Service — Background Intelligent Transfer Service, soit service de tranfert intelligent en arrière plan, (BITS) est un composant des systèmes d exploitation Microsoft Windows (Vista et Windows 2003) qui est utilisé par les services de mises à jour… …   Wikipédia en Français

  • Background Intelligent Transfer Service — (BITS) служба фоновой передачи файлов между клиентом и HTTP сервером. Использование BITS Приложения могут управлять передачей файлов при помощи COM интерфейсов: IBackgroundCopyCallback реализуется приложением для получения уведомлений о… …   Википедия

  • Background Intelligent Transfer Service — Der Background Intelligent Transfer Service (engl. für Intelligenter Hintergrundübertragungsdienst, kurz BITS) ist eine Softwarekomponente in neueren Versionen von Microsoft Windows zur Übertragung von Daten über HTTP im Hintergrund. Für den… …   Deutsch Wikipedia

  • BITS — Background Intelligent Transfer Service Background Intelligent Transfer Service, soit service de tranfert intelligent en arrière plan, (BITS) est un composant des systèmes d exploitation Microsoft Windows (Vista et Windows 2003) qui est utilisé… …   Wikipédia en Français

  • BITS — Background Intelligent Transfer Service (Computing » General) *** Bitstream, Inc. (Business » NASDAQ Symbols) ** Building Integrated Timing Supply (Business » General) * British Isles Traveller Support (Community) * Blues In The Schools… …   Abbreviations dictionary

  • Windows Vista networking technologies — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features …   Wikipedia

  • Windows XP — Windows Experience redirects here. For Windows Experience Index, see Windows System Assessment Tool. Windows XP Part of the Microsoft Windows family …   Wikipedia

  • Microsoft Update Catalog — URL Microsoft Update Catalog Type of site Downloads Owner …   Wikipedia

  • Windows PowerShell — Screenshot of a sample PowerShell session …   Wikipedia

  • List of Microsoft Windows components — The following is a list of Microsoft Windows components. Contents 1 Configuration and maintenance 2 User interface 3 Applications and utilities 4 Windows Server components …   Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.