language-icon Old Web
English
Sign In

Peer-to-Peer in Practice

2008 
The goal of building large-scale P2P systems is challenging from an implementation perspective; therefore, this chapter surveys some of the key lessons that come from experience with existing overlays as well as general knowledge about network programming and protocol design for distributed systems. A protocol is a set of messages, the rules for exchanging the messages between endpoints, and the semantics for the interpretation of the messages. The importance of having a published protocol with well-defined syntax and meaning is that independent implementations of the peer software can interoperate. Each message includes a message type that identifies its meaning to the recipient. In addition, details of protocols for Gnutella, BitTorrent, and structured overlays are discussed, followed by solutions to the crucial problem of NAT traversal. Practical techniques are presented for a peer to determine its capability and for bootstrapping a peer, needed for peers to self-organize and join an overlay. The chapter concludes with a review of P2P networking support in Microsoft Windows.
    • Correction
    • Source
    • Cite
    • Save
    • Machine Reading By IdeaReader
    0
    References
    0
    Citations
    NaN
    KQI
    []