Thursday, June 08, 2006

BitTorrent for Software Distribution

Have you ever wanted to download the latest version of an Open Source Software release, or a free beta release of a commercial software product but been unable to do so (in a timely fashion) because the download site was overwhelmed? Well, this is where BitTorrent technology may be able to help out.

BitTorrent is the name of a peer-to-peer (P2P) file distribution client application and also of a file sharing protocol that is designed to distribute large amounts of data widely without incurring the corresponding consumption in costly server and bandwidth resources. It allows groups of computers to share files with one another, instead of having to access a central repository, thus reducing or eliminating that bottleneck of a central download site.

The other day, I went to download the latest and greatest Knoppix 5.0.1 DVD edition ISO file (just over 4GB in size) using a direct-download link (non-torrent), only to have it take nearly a day and ultimately fail at around 98% complete! What a waste of time. So, I installed the latest Azureus Java BitTorrent Client and used it to download that same Knoppix 5.01 DVD in a matter of 4 hours - it went flawlessly!

The BitTorrent client (Azureus in this case) is an amazing piece of work. It provides you with an incredible amount of control over the entire file-sharing process, and gives you plenty of visual and text indicators to let you know exactly what is going on. You have to see it in action to appreciate.

Basically, to download a desired torrent, like the openSUSE Linux 10.1 DVD, from the Azureus client you just go to File / Open Torrent / Add URL, and paste in the URL of the torrent (i.e., file) you wish to acquire. You can use the link to openSUSE that I provided for an example (which, is a great piece of software in itself). Then, Azureus will locate other "seeds" and "peers" from which to download the software you want. Here is a link to a list of Azureus BitTorrent terminology and definitions you may find helpful.

Keep in mind that for this technology to work well, you must also share the file(s) once you have them in your possession, since, if others had not shared you would never have the opportunity to get them. So, return the favor, and allow the BitTorrent client to run and act as a "seed" for others once your download is complete. You can throttle the upload bandwidth with very fine-grained settings - including per-file upload limitations as well as global limitations. Also, if you are concerned about security, run the entire BitTorrent process from within a dedicated VM (Virtual Machine); if that is a new concept to you, see my prior posts regarding Virtual Machine Technology with VMWare.

After using BitTorrent (Azureus) to successfully download Knoppix and openSUSE, and doing so in much less time than would have been required if downloading from a single central server, I am a firm believer in the Torrent technology and sharing. And, I live by what I say: I keep a BitTorrent client running well after I am done downloading in order to help others quickly acquire these latest open-source offerings. My Share-Ratio is 1.5 currently, meaning I have uploaded 150% of the amount of downloading I have done. It is recommended that you at least achieve a 1.0 ratio, sharing at least the same amount of bandwidth that you have used from others. And, in the case of OSS (Open Source Software), it is a great way to further the cause of your favorite operating systems and applications.

No comments: