PDA

View Full Version : What the HELL is Microsoft BITS 6.6?


Insomnia Radio
Mar 26th, 2005, 02:27 AM
Hey gang;
This one is directed right at the techies...

For the last 4 weeks or so, I have consistently noticed the following referral in my Libsyn stats, under download referrals:

Other Clients: 2880

NSPlayer/8.9 WMPMac/8.9.0.3307 (3)
CFNetwork/1.1 (4)
Wget/1.8.2 (4)
CoralWebPrx/0.1.12 (9)
Wget/1.9.1 (9)
NSPlayer/7.0 WMPMac/7.1.3.0267 (1)
IDA (1)
Microsoft BITS/6.6 (2813)


That BITS number is roughly twice as high as my subscriptions.

All I know about it is that it's used in Windows Update. And I don't notice any Internet Explorer referrals. So, is this a legit #? Is it a client? Or just IE?

If anyone can offer any knowledge here, I would greatly appreciate. Even the Libsyn guys are stumped...

theFerf
Mar 26th, 2005, 03:16 AM
I found a software that uses BITS found here:

Using BITS – Background Intelligent Transfer System – downloads will automaticly adjust their download speed depending on how much you surf. Solid browser integration, both for Mozilla Firefox browser and Internet Explorer. Accelerates downloads by up to 30% by using multiple download threads. No more broken downloads! GoFetch can resume almost all broken downloads!
http://www.softaward.com/9286.html

Another thing I found was the ability for people to write applications using BITS technology and APIs to download while their computers were idle.

My computer is connected to the Internet about 85 percent of the time that it is turned on and yet, like most people, I certainly don't use the network that much. Windows XP takes advantage of this unused bandwidth by comparing the most recent service packs and hotfixes available online with those installed on my machine. If it finds I need updates, it downloads them in the background. Once completed, Windows notifies me of the arrival of new bits that need to be installed.
http://msdn.microsoft.com/msdnmag/issues/03/02/BITS/default.aspx

This could mean 2 things in my opinion. Someone is workin gon integrating BITS into their podcatcher (doppler, ipodder or some other app) or maybe Microsoft is playing with their own ideas (most likely the prior).

All i can say is, BITS is kinda interesting. The ability for your computer to throttle your podcast downloads to use more bandwidth and CPU when you are not using your computer, or to minimize cpu and bandwidth usage while you were using your machine is an awesome concept.

**Imagine a world where all content, audio + video, is distributed via RSS or podcasts. You would rely on the productivity of your computer. If you were getting music, games, news, tv programs, audio programs, advertising, sales sheets ... ANYTHING ... delivered in podcast format, it would be a sweet deal to not have your bandwidth stolen by your podcatching client on your machine while you were trying to work, check email or surf the net.

PS > I may have a had a few beers tonight and not have fully grasped the idea of BITS. If so, ignore this post, or better yet...research it and tell me where i went wrong.

cc_chapman
Mar 26th, 2005, 07:12 AM
I've been noticing this in my Libsyn stats as well. I thought perhaps it had something to do with PodcastMania but now seeing this I'm not so sure.

allthewhile
Mar 26th, 2005, 10:05 AM
I'd love my podcasting client to be able to simply recognize when I've been idle and only start downloading then. Wouldn't that be simple enough? It seems like that could be done without all the pesky bandwidth issues.

cc_chapman
Mar 26th, 2005, 10:57 AM
I'd love my podcasting client to be able to simply recognize when I've been idle and only start downloading then.

Huh? I don't follow............

Insomnia Radio
Mar 26th, 2005, 11:28 AM
CC, Microsoft BITS is a technology that basically allows your PC to download content when you aren't using bandwidth, much like 'Windows Update' slowly trickles the files into your machine.

It's being speculated that someone may be experimenting with this on a podcasting client....

Other than that, we're all in the dark.

I spoke with Todd of Geek News Central last night. Even stumped him..

He is dropping a line directly to Scoble, so we should have an answer...

cid92
Mar 26th, 2005, 12:19 PM
My computer is connected to the Internet about 85 percent of the time that it is turned on and yet, like most people, I certainly don't use the network that much. Windows XP takes advantage of this unused bandwidth by comparing the most recent service packs and hotfixes available online with those installed on my machine. If it finds I need updates, it downloads them in the background. Once completed, Windows notifies me of the arrival of new bits that need to be installed.
http://msdn.microsoft.com/msdnmag/issues/03/02/BITS/default.aspx


If you follow the MSDN link and scroll down a bit there is a very good description of BITS. It's a bit techincal but still easy to understand:

BITS is a cool new file transfer feature of Windows that asynchronously downloads files from a remote server over HTTP. BITS can manage multiple downloads from multiple users while making use of idle bandwidth exclusively. Although the use of BITS is not limited to auto-updating applications, it is the underlying API used by Windows Update. And since it is available to any application, it can be used to do much of the really tough work involved in creating an auto-updating application.

Here is the basic idea. An application asks BITS to manage the download of a file or set of files. BITS adds the job to its queue and associates the job with the user context under which the application is running. As long as the user is logged on, BITS will drizzle the files across the network using idle bandwidth. In fact, the code-name for the BITS technology is Drizzle, which, it turns out, is quite descriptive of what BITS does.

How does all of this work? The technology is actually fairly sophisticated. First, BITS is implemented as a Windows service that maintains a collection of jobs organized into a set of priority queues: foreground, high, normal, and low. Each job in the same priority level is given bandwidth via time slices of about five minutes, in a round-robin fashion. Once there are no jobs remaining in a queue, the next priority queue is inspected for jobs.

Jobs in the foreground queue use as much network bandwidth as they can, and for this reason the foreground priority should only be used by code that is responding to a user request. The remaining priorities—high, normal, and low—are much more interesting because they are all background priorities, which is to say that they only make use of network bandwidth that's not in use.

To achieve this background feature, BITS monitors network packets and disregards packets that it recognizes as its own. The remaining packets are considered the active load on the machine's bandwidth. BITS uses the active load information along with the connection speed and some other statistics to decide whether it should continue downloading files or back off in order to increase throughput for the active user. Because of this, the user doesn't experience bandwidth problems.

The ability to drop what it is doing at a moment's notice is very important for BITS. In many cases, only part of a file is downloaded before BITS must give up the network or even lose connection altogether. The partially downloaded file is saved, however, and when BITS gets another crack at the network, it picks up where it left off. This ability to recover does have some side effects.

Remember that BITS is used to transfer files from HTTP servers. A server should be HTTP 1.1-compliant or at least support the Range header in the GET method for BITS to work. This is because BITS needs to be able to request a portion of a file. In addition, the content being downloaded must be static content such as a markup file, code file, bitmap, or sound. A GET request including a Range header makes no sense when requesting dynamic content such as that produced by CGI, ISAPI, or ASP.NET.

Currently, there are two versions of BITS: 1.0 and 1.5. BITS 1.0 ships with Windows XP and has the following features: interruptible background downloading of files, download prioritization, optional notification of completed jobs and error situations, and optional progress notifications for use with dialog boxes and other UI elements. BITS 1.5 ships with Windows .NET Server. In addition to the features contained in BITS 1.0, version 1.5 has interruptible background uploading of files and authenticated connections using Basic, Digest, NTLM, Negotiate (Kerberos) or Passport. BITS 1.5 is available as a redistributable that is compatible with Windows 2000 and greater (see Background Intelligent Transfer Service).

The BITS 1.0 feature set is sufficient for writing auto-updating applications, but the BITS 1.5 features allow you to perform more complicated tasks like selling updates or handling interaction between the application and the server.

allthewhile
Mar 26th, 2005, 12:25 PM
I'd love my podcasting client to be able to simply recognize when I've been idle and only start downloading then.

Huh? I don't follow............

I should have said, "when I am idle"

What I mean is right now I have it scheduled to download at a certain time. But I'd rather have it download whenever I'm away from the computer aka "idle".

Insomnia Radio
Mar 26th, 2005, 02:22 PM
So now, we just need to figure out if a client is experimenting with it, and how exactly it works. My newest show is being hit over 3,000 times by Microsoft BITS.

allthewhile
Mar 26th, 2005, 02:27 PM
http://www.nuparadigm.com/Products/Toys/DrizzleCast/

google is fun!

insomnia, is it giving you so many hits because it starts and stops and maybe that's counting as a hit?

Insomnia Radio
Mar 26th, 2005, 02:33 PM
I highly doubt the hits are coming from DrizzleCast at all. But that is interesting. It's a very obscure app at this point. Whatever this is is generating more hits than iPodder and iPodderX combined...

ethornber
Mar 26th, 2005, 09:28 PM
Looking at the MSDN overview, I would say that each 'chunk' grabbed by BITS would count as a single hit on a webserver (a single http GET request) so if it's sliced fine enough, a single file download could be 50, 100, or even more GET requests and thus hits.

justSue
Mar 27th, 2005, 12:20 AM
Looking at the MSDN overview, I would say that each 'chunk' grabbed by BITS would count as a single hit on a webserver (a single http GET request) so if it's sliced fine enough, a single file download could be 50, 100, or even more GET requests and thus hits.

I think that's exactly right. It would be interesting to see the log files on an XP OS that's doing this. I'm running 2000 P, but I'll be on XP on the new laptop next week.

It would also be interesting to see how BITS prioritizes high-meduim-low, and also how it defines 'idle' (unless I missed something). What happens on a machine that's running VPN or is running some client that is always 'GET'ing something?

Sorry, just went into a MS stupor. Back to your regularly scheduled program...