Peer-To-Peer (P2P) architectures have become a very successful networking paradigm over the last decade. For what ever reason applied, they support eﬃcient 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 conﬁguration to work properly with NAT devices. This is complicated and error-prone, especially for the average computer user. Misconﬁguration 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
eﬃciently and in a conﬁguration-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: )
 D. Eichhorn, A Peer-to-Peer Network Framework with Network Address Translation Traversal, Master Thesis, University of Zurich, Department of Informatics, IFI, May 2006