Skip to Main Content
Traversing network address translation (NAT) for peer-to-peer (P2P) communication has become a hot topic recently. Compared to UDP, establishing TCP connections for hosts behind different NATs is more complex. Thus, many TCP-based applications do not address TCP traversal through NATs. Some solutions suggest using delegates to relay all communications, or tunneling TCP over UDP. However, they require a big reform to network architecture, or using a nonstandard TCP/IP stack. In this paper, we present a novel idea called TCPBridge. TCPBridge converts TCP traversal to UDP traversal without modifying any binaries of the TCP-based applications. Our design can be integrated with those P2P applications which have not solved TCP traversal problem, and extends them to support direct communications between NAT hosts. It deals with the problem of TCP traversal, so as to improve the usability of applications. We have implemented TCPBridge in several existing P2P systems. Statistics prove that TCPBridge is scalable and robust, and we believe it will benefit many other existing P2P applications.