Top-BT - A BitTorrent Client To Double Download Speeds

October 31, 2008 by sharky

Researchers at the Ohio State University have implemented and released a new BitTorrent client software written in Python, called Top-BT. Different from previously released BT clients, Top-BT actively discovers Internet topology, and uses this intelligence to always choose close peers to download file pieces. Their study shows that, compared to other native BT clients, Top-BT can accelerate downloading up to twice, but save up to 40% induced Internet traffic. So, naturally, what did we do? We put Top-BT head-to-head in a speedtest with µTorrent using public trackers.

NOTE: TopBT has withdrawn from LH-ABC, and is now built onto Vuze. Read our updated article here:

TopBT on Vuze - A Topology-Aware BitTorrent Client

Top-BT is currently available for download from their SourceForge page as a windows installer, and for Linux as source code. More information can also be found on the developers’ Ohio State homepage.

Top-BT is based on LH-ABC code with a more friendly user interface. By default, the Top-BT settings are turned off in the client, and need to be enabled. To turn on Top-BT feature, look under the "File" menu, "Preferences", "Network" tab, "Advanced Network Settings", there is a "TopBT" field. Drag down to choose either "Enabled (Link-Hop Aware)" or "Enabled (AS-Hop Aware)".

A Comparison of Top-BT to P4P/Ono

Q: How does Top-BT differ from Ono and P4P?

A: Ono utilizes existing CDN (Content Distribution Network) infrastructures to localize hosts, so that a host can choose close peers to connect to. Ono also has a few challenges: 1) when there are many native BT clients online, an Ono client is not able to accurately tell its distances to those native clients, because they do not localize themselves; 2) although a single Ono client sends only 32Kb DNS traffic per day, if there are 1 million Ono clients online simultaneously, it can cause 32Gb DNS traffic on CDN nameservers. This can trigger CDN to filter Ono DNS traffic.

On the other hand, P4P is a framework through which ISPs can provide information to applications, so that applications can optimize their performance. P4P requires ISPs to widely deploy their frameworks. Another challenge for P4P is, what type of information ISPs should provide to satisfy different applications quality requirements.

In comparison, our Top-BT client:  1) does not require modification to existing Internet infrastructure, and is a completely user-level tool; and 2) it runs well even when all the rest clients are native BT-clients; and 3) it directly measures distances to other peers, instead of using coordinates to calculate distances.

In our Top-BT code, we not only do "ping" to peers, but also do "traceroute". In this way, we can measure how many AS-hops (Autonomous System Hops) and link-hops to those peers. To balance download time and induced cross-ISP traffic, we also consider connections download rates and upload rates when deciding which peers to unchoke.

Top-BT vs. uTorrent: The Speedtests (Public Trackers)

Naturally we couldn’t just take their word for it, hence we conducted our own Top-BT speedtests against µTorrent using popular public torrents. There was no point in experimenting with private trackers, for the reason that a smaller number of high-quality peers will almost always result in faster download speeds (when compared to public torrents that contain 1000’s of peers with no upload bandwidth). Thus, public trackers are absolutely ideal for this test, since there will always be "closer" peers to connect with to exploit and maximize the efficacy of the Top-BT technology, especially with torrents containing 20,000 peers. Besides, there’s no official clearance on this exact version of Top-BT/LH-ABC on any private tracker’s "allowable client list", although it appears to be a safe client, at least on some.

The Tests:

Since there are two options in Top-BT/LH-ABC to apply the topology; (Link-Hop Aware) or (AS-Hop Aware), we conducted multiple distinct scenarios. Both BT clients’ upload speed were capped at 80 KB/s, and download speed was set to "0" (or unlimited).

Between each of these tests, the exact same torrents were used but the ‘data’ was deleted in each client (in each test instance) to ensure a clean restart using the new settings. Thus, torrents were started at 0% data downloaded.

Test #1: DHT Disabled with "Link-Hop: Aware" (ON)

For this first test, the exact same torrent was loaded simultaneously in both clients. µTorrent was previously optimized to connect at the highest rate possible through tweaking some advanced settings, thus we altered a few things in Top-BT to level the playing field. A couple of settings we needed to change in Top-BT: enable PEX and UPnP (both of which are already turned on in µTorrent) and for this test DHT was disabled in both clients. In this example, we set Top-BT to "Link-Hop Aware".

The Results: µTorrent seemed to win out over the connections, and when we paused the downloads in µTorrent, Top-BT began to increase DL speeds & connectivity. It became clear that we weren’t going to be able to successfully conduct "live" testing with each client running simultaneously, for whatever reason.

We let Top-BT run for about an hour, with these results, which hovered around 60 KB/s for downloading:

Alternatively, we let µTorrent run for a similar amount of time:

The Winner: Clearly in our tests µTorrent seemed to be the faster client in Test #1.

Test #2: DHT Enabled with "Link-Hop: Aware" (ON)

For the second test, DHT was enabled in both clients and likewise they both ran the same torrents, albeit again non-simultaneously. "Link-Hop Aware" was still set to ON in Top-BT, and it should be noted that any changes to DHT required a restart of the client. Additionally PEX, NAT-PMP and UPnP were enabled in both clients. The images below reflect our settings in Top-BT:

The Results: Top-BT took a little longer to connect to DHT, but managed to top out with between 165-180 ‘DHT connections’ while µTorrent remained true to form and hit 300+ DHT nodes. Again, we let both clients run for about one hour.

The Winner: Once again, µTorrent edged out Top-BT with a 172 KB/s download speed, which actually topped out at 188 KB/s (when we allowed µTorrent to finish the 2 torrents). Top-BT hit around 137 KB/s, as shown in the second screenshot.

Test #3: DHT Enabled with "AS-Hop: Aware" (ON)

For test #3 we changed the settings in Top-BT to "Enabled (AS-Hop Aware)". It should be noted that the client uses a lot more RAM in this mode, which adversely caused the program to lag quite a bit. To confirm this, we ran Top-BT in this mode on two different computers (one of which is a Core2Duo 6600 with 4 Gb RAM) and results were the same. A quick check into our Task Manager confirms that the TraceRoute is certainly working, as shown by the Tracert.exe application:

The Results: Clearly, we had absolutely no success with Top-BT in "AS-Hop Aware" mode (although both UL and DL speeds were consistently similar), at least not with the torrents we chose for the example. By looking at the connected seed/peer list above, the problem could not be attributed to a lack of connections. A look at the traffic graph confirms the irregularities in responsiveness & refresh times, as marked by the long periods of similar (horizontal) bandwidth patterns.

Test #4: DHT Enabled with NO Top-BT

For the last test, we turned OFF the Top-BT topology settings and ran the client with DHT, UPnP, NAT-PMP and PEX all turned on. Results were very similar to (Link-HOP Aware=on).

Overall Results:

This was not a clinical analysis, and the statistics should not be considered valid or standard. Whether or not Top-BT works better in a Linux environment, we couldn’t speculate. Additionally, perhaps Top-BT works better with torrents that have a smaller peerlist - again, this is inconclusive on our end. Finally, Top-BT may have more success when connected to other Top-BT (enabled) clients, but again this is purely speculation.

Link-Hop Aware=ON - Our Synopsis:

When Top-BT topology "Link-Hop Aware" was set to ON, it seemed to slightly increase the download speeds, and we also tested this on-the-fly (on and off) during the torrent transfer to monitor the differences. Thus we would conclude that it does work to some degree. Nonetheless, Top-BT/LH-ABC could not compete with µTorrent’s DL speed, regardless of the client settings.

AS-Hop Aware=ON - Our Synopsis:

With AS-Hop enabled, we were clearly unable to generate quality download speeds on the two torrents that we tested. For us, it just did not produce. After one hour or so, we managed a top download speed of just 13.0 KB/s.