Background Intelligent Transfer Service (BITS)

 

BITS is Earth’s most widely used file transfer service, with more than 600 million unique users across the planet. It has shipped “in the box” since Windows XP and is used by numerous applications for large file transfers. Both uploads and downloads are supported. Its resilience is validated everyday as Windows & Microsoft update distributes software updates to millions of customers worldwide. BITS is “the” easiest way to reliably and politely transfer files over HTTP/HTTPS.

BITS asynchronously transfers files in the foreground or background (default) and automatically resumes file transfers after network disconnects and machine restarts. Background transfers use only idle network bandwidth in an effort to preserve the user’s interactive experience with other network applications, such as Internet Explorer. BITS does this by examining the network traffic, and using only the idle portion of the network bandwidth. BITS throttles its use of the bandwidth as the user increases or decreases their use of the bandwidth. BITS performs the transfers asynchronously, which means your application does not need to be running for BITS to perform the transfer.

Applications use the BITS application program interface (API) to create transfer jobs and to monitor the progress of jobs in the transfer queue. The BITS API is included in the Microsoft® Platform Software Development Kit (SDK). In Win7 BITS also provides a scriptable interface via PowerShell cmdlets.

 BITS users will greatly benefit from new features coming in Win7. Subsequent blog entries will be covering these features in more detail, but here is a teaser:

1. BITS Compact Server: Easy to manage “lightweight” HTTP server, compliments BITS client to provide ubiquitous file transfers. Enables Admin’s to orchestrate secure file transfers remotely.

2. BITS PowerShell Cmdlets: An in-box file transfer solution for PowerShell users. Provides a simple yet rich scripting interface to the BITS service.

3. BITS Peercaching: Leverages the BranchCaching infrastructure to provide authenticated and authorized shared cached based content distribution.

4. Network Bandwidth Management: Allows enterprises to more granularly allocate/schedule available network bandwidth to applications using BITS.

For more information about BITS please visit https://msdn.microsoft.com/en-us/library/aa362708.aspx

Vipul Bansal [MSFT]

Comments

  • Anonymous
    January 20, 2009
    This is cool stuff! BITS PowerShell Cmdlets seems exiting.

  • Anonymous
    August 12, 2009
    The comment has been removed

  • Anonymous
    December 01, 2009
    I have the exact same questons as JTBS. Since my application would have quite a few heavy dll's, BITS is an excellent solution to use. If we could make the ClickOnce framework to download files using BITS it would be awesome.

  • Anonymous
    December 05, 2009
    If we are transferring an 80GB VHD (Virtual Hard Drive) from one Hyper-V node to another Hyper-V R2 node (using SCVMM 2008 R2) how can we be 100% absolutely certain the BITS transfer did not corrupt the VHD during the transfer. I looked into it and all i see is filesize and timestamp verifications are performed natively. Thanks,

  • Anonymous
    January 01, 2010
    How can BITS be made to download a file only if the version on the server is newer than the same file name in the download directory?

  • Anonymous
    January 28, 2010
    I wrote a C++ program using the BITS API to download files from a server. It works on a public server (ftp.gnu.org) but I'm having problems downloading files from my company's (intranet) Windows 2003 server(SP2). It errors when it tries to download a file: "URL does not exist on the server". I use an URL like: http://server_name.mycompany.com/mydir/myfile.txt">http://server_name.mycompany.com/mydir/myfile.txt I installed IIS and BITS on the server and created a virtual directory for the web site. I have very little experience setting up web services so there's probably some settings that still need to be configured. More hints: when I type http://ftp.gnu.org in a web brower I see the directory structure and files. But when I type http://server_name.mycompany.com in the browser I get an error. Any help would be greatly appreciated. Thanks, Mark (newbie)

  • Anonymous
    July 21, 2010
    I have a Question: I have a problem while using Background Intelligent Transfer Service (BITS). I have a code that Upload/download the file in virtual directory. I have tested that code in my local domain on IIS6 its working very fine but when I am trying to upload the file to the external network its not working its give the error “request URL not found on the server”, I am able to download from same external URL. I have also done the entire configuration in IIS like enable Upload using BITS Server Extension and create rule using WebDev. But I am still getting the same error. Please Help…

  • Anonymous
    November 23, 2010
    We have BITS configured background. I have a support group that needs to force updates from WSUS, but quicker than the general population BITS settings. Is there a way the support group can run the updates in the foreground, or without the throttle?

  • Anonymous
    October 25, 2014
    BITS is completely missing from Control Panel/Administrative Tools/Services on this Windows 7 computer, so no Windows updates can be downloaded or installed.  How can this be fixed?