jump to navigation

The Problem With BitTorrent July 21, 2014

Posted by Maniac in Editorials.
trackback

In the original design of the internet, data of all types can be hosted on a server, and when a user accesses that server from their computer (called a “Client”), they can retrieve all the data they need from that server. In the case of video files, the server will copy those files to the client and send that data through the internet. Transfer speed is limited by the top speeds of the Client and the Server at the time of transfer, and either the limitations of the Client’s top internet speed or the sheer amount of users accessing information from the server could affect a user’s download speed. However, due to the existence of an inexpensive high-speed internet infrastructure for servers to be hosted on, internet speeds typically would only be limited by what the client’s hardware would support, and at the time most clients were still stuck with abysmal dial-up modem speeds. By the time the world hit a wider adoption of high-speed internet connections through cable, satellite, and DSL, speeds improved and large downloads finally became practical.  Before the turn of the millennium, some very smart web programmers asked themselves if they really needed to have a client/server interface in order to transfer files. Why couldn’t clients just openly share data amongst each other? That birthed a new protocol that would become known Peer to Peer (P2P).  In the early 2000s, the P2P protocol saw popularity among college students who could share high-speed local networks.  In 2001, Bram Cohen thought he could improve on the P2P protocol and created BitTorrent.

In 2005 I had the pleasure of to watch a wonderful independently produced documentary on Halo fandom. It was released before the days of YouTube and other HTML based streaming content providers were widely available, so if you wanted to view video content you would typically have to download the entire video file to your PC’s Hard Drive.  The host who was providing the documentary was using a new protocol that was seeing a huge degree of popularity online called BitTorrent, and if I wanted to watch the documentary I would need to install the BitTorrent program to my PC and set it to download the file.  I downloaded an installer and completed the program’s installation, after which I was greeted by a plea from the protocol’s creator asking me for money. In the installer’s plea, the BitTorrent creator explained that he had no job or any other source of income except from donations from BitTorrent users. While I wouldn’t call this panhandling I did think this was a little suspicious. I mean, wasn’t this guy hired by Valve Software shortly after creating BitTorrent? He must’ve impressed someone, because Valve is one of the most successful privately held companies in the world, and that is not an easy job to get. I think he had left Valve by the time I had first installed the program, so his message about being unemployed was technically valid at the time.  Apparently he must’ve preferred being unemployed and asking for donations from total strangers rather than drawing a stable salary from a successful software company. There must have been something to that, as he has formed his own company around BitTorrent a few years ago.  While this may sound like a great story about the wonders of capitalism at face value, I cannot help but wonder if he had kept the job he earned at Valve, would he still need to ask people for money in his program installer?

After that negative experience with the installer completed, I connected to the seed hosting the documentary and hoped to download the video quickly on my brand new high speed internet service.  Sadly, it was not to be.  While I was able to eventually download the film, the experience downloading it was just horrible.  I had just come from spending nearly ten years stuck on an abysmal dial-up connection as all the high-speed providers refused to service my area until 2004.  When I finally installed high-speed internet to my home, my download speeds jumped from 2.9Kb/s to speeds hundreds of times faster.  Now, downloading this BitTorrent file, I felt like I was back on dial-up speeds.  My connection speed to the users hosting portions of the film was abysmal.  I was typically getting speeds I would have gotten had I kept my dial-up service.  I would even go long stretches of time where my computer was unable to download the file at all because BitTorrent could not find any connections to users hosting portions of the documentary I hadn’t already received. What I would have normally downloaded in less than an hour took several.  After the experience had left me with a bad taste in my mouth, all I could think was, “I cannot for the life of me understand how a protocol like BitTorrent is as popular as it is.”

So why did I have such a bad experience?  First off, why was the protocol downloading so slow?  I looked closely at how it was designed to work and concluded its entire premise is based on a flawed understanding of what its users should be willing to do.  Users who seed BitTorrent traffic are spreading out their bandwidth among as many users that their connection will allow. When a stable connection is established with the other peer, it’s literally at the lowest speed the uploader’s connection will allow.  Sure a user could change their upload settings manually to support just one or two users at a time to improve their upload bandwidth, but web servers are capable of hundreds of simultaneous connections without flinching.  You don’t have the benefit of millions of users connected to a single download when you’re sharing less popular files.  Most users, if they even allow someone to download from them at all, will typically not adjust their upload settings, and for the users who are lucky enough to get a decent speed when connected to another user, there’s no way to predict how long that other client with a decent upload speed will stay online. A few minutes? A few hours? Data is transmitted with file sizes in the GBs nowadays, and some users could spend days waiting for their downloads to complete. Sure, logging into a user with a decent connection for a few minutes could save a downloader several hours of download time, but there’s no guarantee you’ll be connected to a user with a decent connection for very long, and when they eventually log off you’re back to abysmal download speeds.  When I wrote on a message board about my issues with download speeds I was told I should be forwarding my ports so that my router would allow direct connection for several ports BitTorrent used, essentially punching holes in my firewall. For security purposes, I don’t forward my ports for any thing and in today’s day and age routers are smart enough to adjust traffic without the need of a user overriding their port controls.  I can typically host game servers from behind a firewall without needing to change my router’s settings manually, if BitTorrent can’t work well simply because its user has a router, then that’s another serious flaw.

Speed and security performance aside, here’s the biggest flaw with the service.  It makes the assumption that users will stay connected to the seed after they finished their download. The seed cannot transmit data its users don’t have,  so if everyone with a complete version of the file leaves the seed the seed could become useless, wasting the time of anyone currently connected to it and wasting the time of any new users expecting to download a complete file.   The seed does not shut down or terminate in the event it does not have at least a single a user logged in with a complete file connected to the service.  In all, it becomes a waste of time and bandwidth for everyone logged into it.

Nowadays, with ISPs everywhere forcing arbitrary data caps (with tiered plans on the way) that limit how much data a user can upload as well as download, do you honestly think a user would be as willing to keep the protocol active after they’ve received all the content they requested? I can’t in good consience endorse such a flawed service, nor do I plan to use it ever again. I can assure you I was heavily disappointed that the service which had done so badly for me was being widely adopted by reputable companies who could have done better themselves.  As the Server/Client interface has shown itself to be a superior method for interacting online, this service will likely be looked back upon as an odd little experiment during the development of the internet.  Keep it in the past, where it belongs.

Comments»

No comments yet — be the first.

Leave a comment