February 8, 2010

How to avoid Bell Canada's torrent throttling

In late 2007, Bell Canada started throttling bittorrent transfers on their network down to 60KB/s or 30KB/s depending on the time of day. As you might expect, many people got frustrated with it and switched to using some of the many Wholesale DSL Internet Service Providers such as Acanac, Electronicbox, TekSavvy, Velcom, etc. Around March 2008, Bell Canada started throttling users of these wholesale ISPs without telling them. Sometime around May 2008, members on the TekSavvy forum on DSLReports found that MLPPP (meant to bond lines) has a side effect that it bypasses the throttle. In July 2008, a company called Per Vices publicly mentioned a way to bypass the throttle. Whenever the µTorrent 1.9 beta was released, it was found that Bell Canada does not throttle the UDP protocol. µTorrent 1.9 beta and later supports torrent transfers over UDP instead of TCP.

I'll start off with the ISP specific methods, then the methods that should work for all ISPs.

1) MLPPP

In order to use MLPPP, your ISP must first support it. TekSavvy officially supports it and charges $4/month to use it. Velcom supports it unofficially at no charge (I think this is still the case), and the same is true for Caneris. Electronicbox is currently beta testing MLPPP on their network.

The main purpose of MLPPP is to bond multiple lines, therefore gaining that many times the speed increase. A side effect is that it throws of Bell's DPI (Deep Packet Inspection) boxes by adding a few bytes to the packet header(s). You can run MLPPP in "Single-Link" mode which will only bypass the throttle. MLPPP is the only method which will bypass throttling for all devices on the network. It will also bypass false positives caused by the DPI box which incorrectly detect some applications as P2P (Peer-2-Peer), some examples are Skype and Ventrilo.

There are multiple ways to connect using MLPPP, the most popular of which is Tomato/MLPPP. Tomato/MLPPP is a mod of the Tomato firmware which can be flashed onto a supported router. TekSavvy has a FAQ on Everything MLPPP.

2) SSH Tunnel

Acanac's method of bypassing the throttle is by using their SSH tunnel. Since I don't use Acanac, I don't know the specifics of it, but I would be surprised if it didn't use SSH.

3) The Per Vices Method

Bell throttles all encrypted data, unless you're using VPN and have it set up for the default VPN port. This method involves setting up your torrent client to ONLY use encrypted transfers over the VPN port (port 1723). The PDF that I linked to above describes the setup for µTorrent and Ktorrent. Since I use Transmission, the options are a bit different, but I got it working.

An analogy of this would be driving in the bus lane with a blanket over your car. Or something like that.

On the peers tab, I disabled peer exchange and distributed hash table within the connections section. I enforced encryption by preferring encrypted peers and ignoring unencrypted peers.

On the network tab, I set port 1723 as the Peer Listening Port, disabled randomizing the port, disabled automatically mapping the port with UPnP (Universal Plug and Play), and forwarded the port within my router's settings.

NOTE: If you start getting throttled, disconnect/reconnect your PPPoE session if you know how. If you don't know how to do that, either turn your modem off and on, or if it doesn't have a power switch, unplug it and plug it back in.

4) Using UDP with µTorrent

µTorrent 2.0+ (Actually 1.9beta+) supports torrent transfers using the UDP protocol. The catch is that it only works in µTorrent, so if you set the transfer settings to UDP only, you might get low speeds if not many people are using µTorrent 2.0 .

Here is a forum post with instructions on how to set it up to bypass Bell's throttling.

Unfortunately, the Mac version of µTorrent has very few options. I did what I could to get it working and got reasonable speeds. I managed to get around 240 KB/s which is quite a bit higher than 30 KB/s, so I'd count that as it working properly.

NOTE: Like the above method, a modem reset might be required.

No comments:

Post a Comment