In this chapter, we explored the nature and use of P2P networks. This architecture treats all nodes as equals avoiding the use of a central server. Nodes are mapped using an overlay network, which effectively creates a subnetwork of nodes in an IP address space. These nodes will vary in their capabilities and will join and leave the network in a random manner.
We saw how a distributed hash table supports identifying and locating nodes in a network. A routing algorithm uses this table to fulfill requests by sending messages between nodes. We demonstrated the Java Distributed Hashing Table to illustrate the used of DHTs.
There are several open source Java based P2P frameworks available. We used FreePastry to demonstrate how P2P networks work. Specifically, we showed you how nodes join a network and how messages are sent between nodes. This provided a better understanding of how these frameworks function.
In the next chapter, we will examine the nature of the UDP protocol and how it supports...