Saturday, December 10, 2005
Morpheus to BitTorrents
I recently embarked on a long cherished dream of mine - Peer to Peer Networking. I remember the first time I got introduced to this concept was when I was training with the PCQuest labs. Those were the days of AudioGalaxy and Napster. I revisited the concept, at least the theoritical aspect of it, when I delivered a seminar on it while at college. A casual discussion in the cab back home from work recently, reinstated the fire in me to actually check out the world of P2P in practise.
My first attempt to join the P2P community was Morpheus. Lots of computer magazines had lately been recommending this client as the best in the business. However, as luck would have it, Morpheus refused to work when I switched from Norton Internet Security 2005 to freeware alternatives like Avast! AntiVirus and Zone Alarm. The client seemed to keep crashing on me. Hence, I made the switch to LimeWire.
The more I explored LimeWire, the more I liked it. It is one of those rare P2P clients completely free from Spyware. It is fast and its interface looks really groovy, what with its lemon green color and its similarity to Morpheus in terrms of functionality (making the transition much easier for me). It can not connect to netwoks apart from Gnutella to share files (unlike Morpheus), but, heck! what do I care as long as it can find the file I am looking for and find it fast. And boy! is LimeWire fast or what? I liked LimeWire so much that one of the first applications I installed when I made the final cross over - from Windows to Linux, was LimeWire. More about the pains of that installation (more so cause of my limited knowledge of Linux, then any actual problem with the LimeWire RPM) later...
The latest thing to rock the P2P world is Bit Torrents, and it seemed, but logical, that I would bump across it some day. Like many of the world's greatest discoveries, my initiation to Bit Torrents, was by chance. I happened to be searching for the video of 'Right here, right now' from the movie Bluffmaster. I had already scoured the Gnutella network for it with LimeWire without any luck. And then, I came across this video at www.desitorrents.com while googling for it. That is where I found the torrent file for the same. I downloaded the file and it started the actual video download automatically in the BitTorrent client, thoughtfully bundled with my Linux distribution. And the rest, as they say, is history.
So, what is it about BitTorrents, that excites me so much?
BitTorrent refers to both the protocol and the very first client, used to share large files on the Internet. What is so special about the BitTorrent network is its architecture. Unlike the traditional, server-client architecture where the performance of the server diminshes with increasing client load, the performance of the BitTorrent network actually improves as more and more clients share a file.
How does it work?
Say, I want to share a file with others on BitTorrent, I will first create a .torrent file that will contain meta-data (data about data) like filename, size, address of 'Tracker server' (discussed later) and post it on some web-site like www.desitorrents.com. Users will be required to download this torrent file and open it up in their BitTorrent client. This will start the actual download process on their machines. When a BitTorrent user is downloading a file, he is called a 'Peer'. However, a Peer's BitTorrent software, unlike the traditional P2P clients would not simply be downloading the concerned file, but, would also be making available blocks of it to the other users of the BitTorrent network, simultaneously. So, a BitTorrent client doesn't simply download files from Peers who have the complete file on their machines, but also from Peers, who are still downloading that file. Peers like me, who have the complete file and are yet running BitTorrent clients on their computers, to make the file available to other users, are known as 'Seeds'. Conversely, Peers, who while downloading the file, artificially throttle the uploading, are known as 'Leechs'. The BitTorrent protocol is so designed that it rewards the Seeds with better bandwidth than Leechs . Also, a BitTorrent client always tries to fetch the rarest blocks of a file first. This ensures, that the number of Peers, a BitTorrent client can download a particular block of the file from, keeps growing. All the Peers engaged in downloading (and uploading) a particular torrent are known as a 'Swarm'. Tracker server is the server which manages this Swarm. It keeps a log of which users are downloading a file and where the different blocks of the file reside.
How can I contribute to the BitTorrent network?
As you can make out from the description of the BitTorrent's architecture, the speed of the network depends a lot on the Seeds and on the users who do not throttle the uploads being carried out by their BitTorrent client. It is gnerally considered a good practise to leave one's BitTorrent client running after finishing a particular download. The ratio of the MBs uploaded to the MBs downloaded is known as the 'Share Ratio'. Most BiTorrent clients report this Share Ratio, as well as allow you to adjust the upload speed. A Share Ratio of 1.00 is generally considered ideal (give back as much as you get).
NOTE - In its latest avatar, the BitTorrent protocol has also eliminated the need of centralized Tracker servers to maintain the Swarm.
Reference URLs -
(1) The BitTorrent Wiki -
http://en.wikipedia.org/wiki/Bit_torrent
http://en.wikipedia.org/wiki/BitTorrent_client
(2) http://blog.commonbits.org/2005/05/how_to_start_us.html
(3) About.com article -
http://compnetworking.about.com/od/p2ppeertopeer/g/bldef_torrent.htm
Subscribe to:
Posts (Atom)