NAT Traversal in P2P Networks


Peer-To-Peer (P2P) architectures have become a very successful networking paradigm over the last decade. For what ever reason applied, they support efficient distribution of resources and are stable against disturbances such as denial-of-service-attacks or local network failures.

Nonetheless, the P2P paradigm is still young and shows teething problems in a network environment that was originally designed for other purposes. In this context, Network Address Translation (NAT) is a widely used technique to connect local area networks with the public internet. While it works very well for networking applications following the traditional client/server paradigm, it poses a serious problem for P2P networks.

Many of today’s P2P applications require manual device configuration to work properly with NAT devices. This is complicated and error-prone, especially for the average computer user. Misconfiguration can even introduce severe security issues to the local network. In addition, the group of internet users behind a NAT device is expected to grow to an important—but by many P2P applications neglected—resource for distributed computing-power or storage space.

For all these reasons, the diploma thesis at hand will present necessary concepts to enable future P2P applications to handle NAT devices efficiently and in a configuration-free way. These concepts are then applied and collected in a NAT traversal framework for P2P developers. In addition, a simple chat application using this framework will provide a simple example of how the framework can be used. (Source: [1])


The final result of Daniel Eichhorn's Master Thesis can be found below:


[1] D. Eichhorn, A Peer-to-Peer Network Framework with Network Address Translation Traversal, Master Thesis, University of Zurich, Department of Informatics, IFI, May 2006