Girish Mahajan (Editor)

TopBT

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Operating system
  
Cross-platform

Type
  
BitTorrent client

Platform
  
Java

TopBT

Developer(s)
  
The Ohio State University

License
  
GNU General Public License

Website
  
topbt.cse.ohio-state.edu

TopBT (originally called Top-BT), is a topology-aware BitTorrent client implemented with open-source Vuze code base Version 4.0.0.4. 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" describes how it works.

Contents

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"

Discovering Path Proximity

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

Probing Connection Paths

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.

    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

    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

    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

    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

    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.

    History

    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

    References

    TopBT Wikipedia