AppSense – Uses BITS to install Packages on clients.PS C:\> Start-BitsTransfer -Source "" -Destination "C:\file.zip" -DisplayName "myDownloadJob" List of non-Microsoft applications that use BITS For fatal errors, BITS transfers control of the job to the creating application, with as much information regarding the error as it can provide.Ĭommand-line interface tools BITSAdmin command BITSAdmin Developer(s) For a transient error, BITS waits for some time and then retries. A transient error is a temporary error that resolves itself after some time. Errors can be either fatal or transient either moves a job to the respective state. When the job is complete, BITS transfers ownership of the job to the application that created it.īITS includes a built-in mechanism for error handling and recovery attempts. When the job gets another time slice, it has to connect again before it can transfer. After the job's time slice expires, the transfer is temporarily paused, and the job is moved back to the queued state. On its turn to transfer data, it first connects to the remote server and then starts transferring. Resuming moves the job to the queued state. It has to be explicitly resumed to be activated. When a job is newly created, it is automatically suspended (or paused). BITS uses round-robin scheduling to process jobs in the same priority and to prevent a large transfer job from blocking smaller jobs. Higher priority jobs get a higher chunk of time slice. 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.īITS 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. 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. Jobs can optionally be set to High, Low, or Foreground priority.
By default, all jobs are of Normal priority. 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. A job can be programmatically started, stopped, paused, resumed, and queried for status.
Jobs inherit the security context of the application that creates them.īITS provides API access to control jobs. Properties can be set for individual files.
While a download job can have any number of files, upload jobs can have only one. Files must be added, specifying both the source and destination URIs. A job is a container, which has one or more files to transfer. A BITS session has to be started from an application by creating a Job. Jobs īITS uses a queue to manage file transfers. 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). Otherwise, BITS will use the speed as reported by the NIC to calculate bandwidth. BITS versions 3.0 and up will use Internet Gateway Device counters, if available, to more accurately calculate available bandwidth. Note that BITS does not necessarily measure the actual bandwidth. 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. For example, when applications use 80% of the available bandwidth, BITS will use only the remaining 20%. BITS supports transfers over SMB, HTTP and HTTPS.īITS attempts to use only spare bandwidth. It resumes the transfer from where it left off when (the computer is turned on later and) the network connection is restored. BITS jobs do not transfer when the job owner is not signed in.īITS suspends any ongoing transfer when the network connection is lost or the operating system is shut down. The transfer will continue in the background as long as the network connection is there and the job owner is logged in.
Uploads require the IIS web server, with BITS server extension, on the receiving side.īITS 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. From version 1.5, BITS supports both downloads and uploads. BITS also supports resuming transfers in case of disruptions.īITS version 1.0 supports only downloads. 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. 2 List of non-Microsoft applications that use BITSīITS uses idle bandwidth to transfer data.