In TCP-based overlay applications, the TCP connections of one peer typically share one physical Internet link. Using real-world experiments, we demonstrate that this can lead to undesirable interactions, causing significant throughput loss. We argue that such effects should be taken into account in the design of overlay networks, and identify readily deployable countermeasures. In a first step, we show that with existing operating system QoS functionality some relief is possible. Yet, this alone is not fully effective if peers communicate bidirectionally, due to piggybacked ACKs. We propose to separate bidirectionally used overlay links into two independent TCP connections, and demonstrate the effectiveness of this strategy.
"Unleashing Tor, BitTorrent & Co.: How to relieve TCP deficiencies in overlays", , vol. 00, no. , pp. 320-323, 2010, doi:10.1109/LCN.2010.5735732