||This is not a Wikipedia article: It is an individual user's work in progress page, and may be incomplete and/or unreliable.
For guidance on developing this draft, see Wikipedia:So you made a userspace draft. This draft was last edited three years ago .
|Developer(s)||The Ohio State University|
|License||GNU General Public License|
TopBT (originally called Top-BT), is a topology-aware BitTorrent client implemented with open-source Vuze code base Version 220.127.116.11. 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.
The evaluation results of TopBT show it can acheive comparable download speed and at the same time reduce 25% download traffic on average.
- 1 Overview
- 2 History
- 3 References
- 4 External Links
TopBT System Framework
The feature of TopBT lies in its comprehensive peer selection metric considering both the downloading speed and network topology with a candidate peer simultaneously. More specifically, a TopBT client launches lightweight ping or traceroute probes to its connected peers periodically, and maps connections to their corresponding link hops or Autonomous System (AS) hops. By passively monitoring connection transmission rates, a TopBT client always tries to unchoke peers with low routing hops, high download rates, and low reciprocal upload rates at which those peers do not choke the client.
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 been inferred based on the TTL of the returning packet. Therefore, the link-hops can been 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 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
- 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. http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/abs10-1.html
- 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. http://www.cse.ohio-state.edu/hpcs/WWW/HTML/publications/abs05-12.html