NAT traversal in P2P systems using relays

State: completed by Raphael Voellmy

TomP2P is a well-known and established P2P DHT within the P2P community. It has been developed in the CSG group over the years and it is already being used in a range of applications. Nowadays, TomP2P has support to discover the node's network interfaces (network discovering), as well as to auto-configure routers through UPnP, in order to properly configure Node's P2P network. Therefore, if
the Node is running behind a NAT (Network Address Translation) or Firewall, TomP2P attempts to auto-adapt to the environment through the two mentioned techniques to turn the Node reachable from Nodes in different locations around the globe.

However, network discovery and auto-configuration through UPnP has demonstrated to not be effective in all infrastructure scenarios (e.g., different operating systems, routers that do not implement UPnP, etc). Therefore, a third option should be implemented to try give a more reliable means to be publicly reachable to other Nodes in the P2P network.

Even though TomP2P aims to work in a fully decentralized manner, one solution that demonstrated to be effective in these scenarios is to employ the notion of "super nodes" acting as relaying servers. Skype is an example that uses super nodes in their P2P architecture to overcome the communication between two Nodes behind the NAT. These super nodes, or relay servers, are nodes that has a public IP address and enough computational and bandwidth resources to relay DHT content for other nodes who are behind restrictive firewalls, or are unable to directly communicate with each other. The use of super nodes (or relay servers) is not against the notion of a P2P system. It just adds another layer of reliability with the use of selected nodes to support DHT content exchange if methods like network discovery and UPnP auto-configuration fail.

Therefore, the student should design and implement the notion of super nodes (relay servers) in TomP2P. In order to evaluate the implemented solution, the student should observe if an application that uses TomP2P (in this case, PiCsMu -- a Cloud Storage Management System) do not suffer any impact with the implemented capability, as well as have glimpses of performance and overhead.



Wikipedia Website: "Traversal Using Relays around NAT". Available at: http://en.wikipedia.org/wiki/Traversal_Using_Relays_around_NAT . Last visited at: March, 2013.

15% design, 75% implementation, 10% documentation
Java skills

Supervisors: Prof. Dr. Burkhard Stiller, Dr. Thomas Bocek, Guilherme Sperb Machado, Andri Lareida

back to the main page