Friday, June 02, 2006

BitTorrent Frustrations and Solution

Here's the solution

Now I'll explain the problem.

My wife likes to play online FPS games. Whenever her framerates are too low, she calls downstairs to me "Are you running a torrent?", to which I always respond "No" because I know that running a torrent while she is gaming brings our home network to its knees. The funny thing is, my torrents rarely achieved speeds more than 10 KB/s, so how could they impact her games?

With the Ubuntu and Kubuntu releases announced yesterday, I wanted to download the 700 MB ISOs, so I fired up KTorrent, pasted in the torrent urls and .. once again about 10, maybe 20 KB/s. At that rate, KTorrent tells me I'll complete the Kubuntu iso in 2 days. But I noticed a funny thing. When the torrents first start up, they achieve rates above 100 KB/s, but then drop down to the lethargic 10 KB/s. Strange.

I've been Googling for an answer to these low rates for a couple of months now. The usual advice includes playing with the maximum up/down bandwidth settings, changing the max connection slots, making sure port forwarding is set up on your router, installing UPnP, etc. None of this advice was working for me. Finally I happened on the uTorrent FAQ I linked above. About a third of the way down, it mentions problems with LinkSys routers. I have a LinkSys WRT54GS v4 running the DD-WRT v23 firmware. The FAQ says v23+ is OK, but I check if there's an update, download and install the v23 (SP1) update, apply the other tweaks the FAQ advises, and .. problem solved! It seems that LinkSys routers can't handle the large numbers of connections that p2p apps like torrents create. The router becomes overwhelmed, loses its mind, and overall network throughput drops to almost nil. Apparently, this problem isn't restricted to just LinkSys routers. Check the FAQ for a list of known problems with many other routers.

I suspect A LOT of households have this or related problems.

BTW, KTorrent is a very fine program. The latest code is in KDE's svn trunk/extragear/network. A recent enhancement includes protocol encryption, which means my ISP can't snoop on my torrents, or bandwidth limit them. Recommended.