
P2P Networking
1. Introduction to P2P Networking
This report explores various issues regarding P2P networking. We first give an overview of related work in P2P networks. We then examine the network behavior of a Chord DHT in the presence of dynamism and locally generated traffic load. We then proceed to a simplified but realistic model of a network of P2P nodes which form unstructured global connections on top of local structured overlay networks. This component of the work focuses on maximizing the profitability of a file-sharing service through intelligent provision of bandwidth resources and minimizing capital expenditure on the underlying network.
Peer-to-peer (P2P) networking is a relatively new paradigm for structured networked systems that is capable of supporting various applications in a distributed environment. The critical challenge in a structured P2P system is to construct a correct and efficient global network view in the face of continuous membership changes coupled with the high network dynamism. It may be possible to leverage locality in structured overlay networks to make them scalable to handle the perhaps millions of nodes expected in future Internet-wide P2P systems. An in-depth understanding of the complex interactions between these factors and the resulting global network behavior is necessary in order to gauge the trade-offs between system cost and performance.
2. Benefits of P2P Networking
The cost efficiency of P2P networks can be seen in other areas. A company that specializes in the distribution of software can benefit from using a P2P network to distribute the software, as it can dramatically reduce the bandwidth costs. With a central server, the server’s owner is billed for each download that is made. P2P networks reduce this cost, as the file is distributed in fragments and each downloader is effectively taking a piece of the load, transferring the data file between themselves and the other people accessing that file. Bandwidth costs to the server’s owner are reduced because the owner is not charged for data which does not originate or terminate on his server.
Efficiency. A P2P network is an efficient way to share data. In a P2P network, all computers are able to communicate with each other; there is no need for a central server. Each computer has equal status and is able to share data files with any other computer on the network. There is no need to store data on a central server; instead, the data is stored on all the computers in the network. This makes the P2P network ideal for sharing a data file with a group of people. The data file only needs to be stored once, and the other people involved can access the file from the computer of the person who initially shared it. This reduces the cost of data storage for an individual as they are only required to store the files they have.
3. Challenges in P2P Networking
Both the server and the peer create a socket which is given its own unique ID known as a combination of the local IP address and port number. For a server or peer behind a NAT or firewall, which can have private IP addresses and ports assigned dynamically by the NAT from a private pool, the socket is invisible outside the local network. This means that any addressing scheme employing private IP addresses does not work for P2P. Beyond this, there is an increasing number of ISPs, especially in Asia and Europe, that provide home users with a dynamic IP which changes each time they connect and is shared among multiple users using a technique known as IP masquerading. An IP-mapped P2P system will not operate in this case either.
In the case of the NAT, a peer behind it is able to make outgoing connections to any global endpoint. However, in order for a global endpoint to initiate a connection to the peer, it must have knowledge of the source IP address and port number that the NAT assigned to the peer. This is due to the fact that the NAT maintains a mapping for each outgoing connection. Static mapping bindings are easy to create, in which case a peer can configure the NAT to forward incoming connection requests on a certain port to the peer. However, dynamic mappings are far more complex as the binding only exists as long as the connection in question, and it will only be known to the global endpoint that is going to send data to the peer.
One of the main criticisms of the pure P2P model is the fact that it introduces a number of complexities and challenges which hinder the deployment of large-scale peer-to-peer systems. In the client-server model, complexity is mainly introduced at the server side, but in a pure P2P system, complexity is introduced at both the clients and the server. This additional complexity on the client side reduces the performance of the standard client and limits the potential for the replacement of its current server-based system. This is due to the fact that the client behind a firewall or a home user that uses Network Address Translation (NAT) will be unable to act as a server because of the restrictions that the NAT and firewall place on incoming connections.
4. P2P Networking Protocols
4.1. Application layer The most important network protocol from the perspective of the P2P application is still TCP and to a lesser extent UDP. The overlay network topologies used by many P2P applications, especially those for file sharing, mean that end-to-end network paths are much longer than classic client/server applications. This will make future developments in new reliable multicast and anycast transmission protocols of great interest to P2P. Protocols related to naming and service discovery such as JXTA and the Internet Registry Information Service (IRIS) will also be important to future P2P networks. JXTA has its own suite of protocols but TCP/IP is not tied to JXTA transport. JXTA defines its own addressing which can be used over IP or any similar transport and has a specification for a TCP/IP transport which may be useful in the short term. JXTA protocols were too immature to test and thus are not included in the analysis.
P2P networking has a rather uneasy relationship with traditional network protocols. Classic network protocols are designed to work in fixed function topologies, which are the exact opposite of the dynamically changing overlay topologies common to P2P applications. Thus, there are today very few P2P-specific protocols, and while P2P applications can leverage off the existing protocols that run over the Internet, the fact that P2P generates and consumes most Internet traffic means that it is P2P that will be leading the evolution of new network protocols in the future.
5. Future of P2P Networking
– In the area of distributed data storage, techniques will be developed to control the placement of shared data. Data may be replicated, regenerated, or coded for fault resilience and managed in a way that meets an application’s needs in terms of bandwidth, storage cost, and quality of service. Quality of service is also a major attribute for content delivery systems that will continue to be productively addressed via P2P networking. This screenshot shows a future case study simulating a P2P live video streaming system based on Real application networks.
– An increasing number of P2P systems will be deployed on top of widely deployed management infrastructures such as PlanetLab and Emulab. This requires systems to be deployed under realistic network conditions. A major challenge is to use resources located at different providers on best effort commercial networks. A good example of such a hybrid network is an ongoing case study by Akamai. Akamai uses dedicated nodes (at various universities) to get better throughput and at the same time, it uses under-utilized shared resources in these networks. QoS guarantees using some form of resource reservation will also be a common scenario in the future for P2P networks running delay-sensitive applications. Simulation in such a case can be a complex interaction of resource reservation at the routing level with application-level QoS-aware overlay networks.
P2P networking has come a long way from being used only for file sharing to a cost-effective and robust method of content delivery on the internet. It is still in the evolution phase and has the potential to grow in many directions. A few potential future directions include:

