|
CMU-ISRI-05-104
Institute for Software Research International
School of Computer Science, Carnegie Mellon University
CMU-ISRI-05-104
TCP Connections for P2P Apps:
A Software Approach to Solving the NAT Problem
Jeffrey L. Eppinger
January 2005
CMU-ISRI-05-104.pdf
Keywords: P2P, peer-to-peer, NAT Traversal, TCP, network address
translation
Many P2P applications need to connect to each other via TCP,
but are increasingly stymied by NAT boxes. Some popular P2P
applications do not address NAT traversal or do so poorly. A
few newer ones route communications between NATed peers through
relay servers or through non-NATed peers, or they ask users to
reconfigure their NAT boxes. Some emerging solutions suggest using
SIP to set up tunneling over UDP, using UPnP, or even deploying IPv6.
This paper argues that the above approaches suffer from
scalability problems, do not address mobility issues, require
deploying new network infrastructure, or require using nonstandard
communications interfaces, non-standard communication stacks,
and non-standard security protocols. We advocate direct TCP
connections between peers. We present NatTrav, our NAT Traversal
Java package that makes TCP connections between NATed peers and
addresses all of the above concerns. We then compare NatTrav
with some of the other current and emerging solutions.
8 pages
|