Friday, March 23, 2007

Online File Sharing Programs: What is BitTorrent?

Much of the discussion of online file sharing that has grown out of the recent pre-litigation letters sent by the RIAA to universities and university students has been throwing out terms relating to file sharing programs and protocols without explaining to readers what these things are and how they work. Let's take a quick look at what BitTorrent, one of the most popular file sharing protocols is and how it works.

BitTorrent is a protocol that was created by a programmer named Bram Cohen in 2001 and 2002. (A protocol is simply a standardized method of communication.) Cohen also created a program to use that protocol - also named BitTorrent. The BitTorrent protocol is relatively simple from a conceptual standpoint:

Users' computers directly connect to one another over the Internet, using the BitTorrent protocol, in order to share files. The various computers achieve this connection by running a program called a BitTorrent client. There are many clients out there made by many different software companies or individuals, but all use the same technology under the hood - the BitTorrent protocol - to communicate.

The BitTorrent protocol allows users to identify multiple other computers that have copies of the files for which they are searching. Once identified, BitTorrent looks at that file as a series of digital chunks called packets. In order to achieve a fast download, the BitTorrent client downloads the various packets of the desired file one at a time, in order or out of order. When the packets arrive, the client re-assembles the packets into the whole. This is possible because: 1) each packet has an identifier that essentially says "I am packet 14 of 255"; and 2) since it's digital, all the 1's and 0's in each packet are still right where they need to be within the whole. Two obvious benefits of this method are that the user can download each packet from the fastest of multiple sources and should any source go offline, the download can continue from the remaining sources.

So far, this isn't much different than file-sharing programs like Kazaa. But here's where BitTorrent gets interesting and attractive to people who do significant sharing. The protocol weights the connections between users in order to reward the users for sharing as well as downloading. Users who download but do not make files available for upload are known as leeches. Those who provide files for upload are seeds. Since seeds are a needed source of content for download, the BitTorrent protocol gives faster downloads and higher priority to users who seed, while leeches do not get this benefit. So...the more you share the faster you can download. Further, since users are downloading in packets, they can begin sharing each packet as they receive it; no need to have the whole in order to share.

The final point: how do the clients know how to find each other? Various websites host "trackers" for torrents. These are lists of the available torrents and by downloading the torrent file related to the desired download, the user's client knows how to announce its desire to the protocol and join the torrent (i.e. the wave of uploading and downloading).

That's pretty much all there is to it. Have questions? Drop me an email.

Labels: , , , ,

0 Comments:

Post a Comment

Subscribe to Post Comments [Atom]

<< Home