From Wikipedia, the free encyclopedia
Jump to: navigation, search
TopBT Software logo.jpg
Developer(s) The Ohio State University
Operating system Cross-platform
Platform Java
Type BitTorrent client
License GNU General Public License

TopBT (originally called Top-BT), is a topology-aware BitTorrent client implemented with open-source Vuze code base Version It is developed as a research result from The Ohio State University. The "Top" in its name stands for "Topology" and it refers to the program's network topology-awareness feature. it actively discovers its network proximities to its connected peers by actively sending packets to those peers, and inspecting their responses. Through topology-awareness, TopBT aims to reduce unnecessary network traffic and at the same time, on average maintain its download speed. The paper "TopBT: a topology-aware and infrastructure-independent BitTorrent client"[1] describes how it works.

The evaluation results of TopBT show it can achieve comparable download speed and at the same time reduce 25% download traffic on average.

For a comprehensive study of BitTorrent-like systems, see "Measurement, analysis, and modeling of BitTorrent-like systems"[2]

TopBT System Framework[edit]

Discovering Path Proximity[edit]

A TopBT client uses the following steps to measure path proximity.

Probing Connection Paths[edit]

This is done with (TCP) Ping and Traceroute (using standard tools). The steps are:

  • Packet initial TTL values are limited to several.
  • Link-hop examiner checks response packet's TTL value.
  • TCP Ping based on SYN/ACK or RST packets is used to explore more remote hosts.

In most systems, “ping” is usually implemented using the ICMP ECHO facility. A ping host sends an ICMP_REQUEST packet to the given destination. When no filtering device drops the packet and it arrives at the destination, the destination host creates an ICMP ECHO_REPLY packet with the same payload and sends it back as a response message.

Due to widely deployed firewalls and packet filters on routers and end hosts, a TopBT client frequently gets no response for traceroute and ping packets they send. To obtain a high response rate, a TopBT client sends TCP ping instead. That is, the client sends TCP SYN packets to peers, and extracts TTL values of subsequent SYN/ACK or RST packets.

Calculating link-hops[edit]

Ping and TCP ping results returned by remote peers contain TTL values when arriving at the original probing host. Depending on the operating systems of remote peers, the initial TTL values of a response packet can be set to different values. Typical and common initial TTL values are among 255 (most UNIX systems), 128 (Windows NT/2000/XP), 64 (Linux and Compaq Tru64), and 32 (Windows 95/98/ME). Earlier studies have shown that 95% of Internet paths have link-hops of no more than 30. Therefore, based on the TTL of the returning packets, programs can infer the initial TTL of the packet, and thus the link-hops. The initial TTL of the packet can be inferred based on the TTL of the returning packet. Therefore, the link-hops can be inferred.

Handling asymmetric traceroute paths[edit]

The path from a TopBT host to a remote peer on which traceroute packets traverse, known as forward path, might differ from the reverse path through which the remote peer reaches this host. This is because routing tables on border gateway routers can dictate different paths due to their autonomous nature.

To overcome this difference, two connected hosts can exchange AS-hop data with each other, so that a host can use reverse path proximity for its peer selection process.

Handling Multi-Protocol Label Switching (MPLS) networks[edit]

In large ISPs where Multiprotocol Label Switching (MPLS) is deployed, Label Switch Routers (LSRs) exchange labels to decide forwarding paths for incoming packets. The routers in the MPLS core network are hidden from IP routing based traceroute and ping. Fortunately, as long as ingress and egress routers in the MPLS network appear on the traceroute path, the AS hops are not affected by MPLS.

MPLS ping, when available on a TopBT host, can help calculate link hops to peers.

Monitoring Connection Rates[edit]

For every packet a TopBT client sends or receives, the client tracks the specific peer that the data go to or come from.

Using a moving average method, in a time window that slides forward, the client counts the total bytes being transmitted and received, and divides the sums by the time window size to get connection download/upload rates.

TopBT Software[edit]

There are both Windows version and Linux version of TopBT, which are now based on Vuze. It used to be built upon LH-ABC, and BitTornado.


TopBT 2.2 – released on Mar. 24th, 2010

TopBT 2.0 – released on Sep. 04th, 2009

TopBT 1.5 – released on Jan. 22nd, 2009

TopBT 1.1 – released on Oct. 23rd, 2008

TopBT 1.0 – released on Aug. 24th, 2008

See also[edit]


  1. ^ Shansi Ren, Enhua Tan, Tian Luo, Lei Guo, Songqing Chen, and Xiaodong Zhang, "TopBT: a topology-aware and infrastructure-independent BitTorrent client", Proceedings of INFOCOM'10, San Diego, California, March 15–19, 2010.
  2. ^ Lei Guo, Songqing Chen, Zhen Xiao, Enhua Tan, Xiaoning Ding, and Xiaodong Zhang, "Measurement, analysis, and modeling of BitTorrent-like systems", Proceedings of ACM SIGCOMM Internet Measurement Conference, (IMC'05), New Orleans, LA, October 19–21, 2005.

External links[edit]