This story appeared in the December 2004 issue of Web Host Industry Review magazine. Click here to subscribe for free.
December 13, 2004 -- (WEB HOST INDUSTRY REVIEW) -- On the Web, popularity is a mixed blessing. Every Web site owner dreams of his or her site being as popular as eBay, but at the same time those owners fear the cost of success. In the geek world, for example, it's great when your site gets SlashDotted until you receive the bandwidth bill at the end of the month. The same is true for Web hosts. On one hand you make a portion of your revenues by selling bandwidth. On the other, you hope your customers don't use more than you can supply.
At best, traditional content distribution scales linearly — double the number of downloaders and you double the bandwidth required to serve them. IP multicast and broadcast are designed to improve scalability, but they're not available on the public Internet.
In a sense, peer-to-peer file sharing tools like Kazaa and the original Napster can be viewed as schemes to improve the scalability of content distribution in that peers can exchange files among themselves without resorting to downloading from the origin site. For that matter, even the P2P exchange of files as email attachments lessens the load on the source.
But all of these schemes require the active participation of the users. BitTorrent, on the other hand, is a peer-to-peer distribution mechanism that's virtually passive from the user's point of view. Downloading a "torrent" is no different than downloading any other large file.
Haven't heard of BitTorrent yet? According to a report by Reuters, BitTorrent clients currently use more than one-third of the Internet's bandwidth. But a Web host might not see much of that traffic, and that's the whole idea. Web hosts and Web site owners should get to know BitTorrent. It allows small sites to deliver large files to thousands of visitors at low cost, and the Web hosts that support it will have an edge over those that don't.
BitTorrent is based on the idea that while person A is downloading a file, he has unused upload bandwidth that can be used unobtrusively to transmit to other users seeking to download the same file. If person B wants to download the same file at the same time as person A is downloading it, person B can download from person A instead of from the origin server. In theory, this simultaneous sharing of upload and download bandwidth can continue indefinitely. If one thousand people are downloading the same file at approximately the same time, the total load on the origin site can be just a single "seed" download. In practice, this has proven to be nearly the case. BitTorrent scales nearly infinitely from the Web hosting perspective.
The architecture is quite simple. To receive torrents you need a small plug-in for your browser. When you click on a torrent link, your browser activates the BitTorrent plug-in, which then handles the file download. If you've enabled the BitTorrent sharing mechanism (and opened inbound ports 6881 through 6889), the plug-in will offer the torrents currently in your cache to other BitTorrent users. In exchange for this, you'll be able to download torrents from peers at high speed. If you don't enable P2P sharing, you'll still be able to receive torrent files, but at a much slower speed. After all, BitTorrent follows the Golden Rule of P2P: Give unto others as you would have them give unto you. And it works.
The requirements from the Web hosting end are not too much. To transmit a torrent you only need a standard HTTP Web server and a free program called a "tracker." The Web server should be configured to use MIME type application/x-bittorrent for any file with the ".torrent" extension. The tracker's job is to keep track of which clients can serve which files to other clients. The tracker can be installed either on individual Web servers or operated centrally by the Web host. Its traffic load is relatively light, and offering a tracker to your hosting customers can make using BitTorrent to distribute content a much simpler process for your customers.
One other required component is a seed client that can service the first request for a torrent, when it arrives. The seed will actually deliver files, so it doesn't make sense for a Web host to offer this as a centralized service, but it would be helpful to install a seed client as an optional module on standard server configurations. Normally, there must be a single seed client for each file being served, but the open-source Java client Azureus is capable of acting as a seed for multiple source files simultaneously.
Over the next six months I expect the most progressive hosts for small sites to support BitTorrent. It's not that customers are not able to install BitTorrent on their own, but getting a little help from the Web hosting vendor can sometimes make the difference for customers still choosing between vendors.
About the Author:
Doug Kaye is host and producer of the Internet talk-radio channel IT Conversations and an IT strategy author and publisher.