The book examines the different legitimate applications used over a peer to peer network (p2p). It examines the design and development of novel applications designed to leverage the distributed nature of peer to peer environments. The book will go beyond the most popular application of file-sharing (including sharing of video and audio files) and discuss the many different applications, including: 1. Distributed Directory Services. 2. Self Managing Personal Web Sites. 3. Resilient Applications. 4. High Volume Publish-Subscribe. 5. Distributed Indexing and Retrieval. 6. Anonymous and Private web-surfing. 7. Highly Available and Efficient Mail Services. 8. Instant Messaging.
Preface. Who Will Benefit from This Book? Who Is This Book Not For? Organization of the Book. 1 The Peer-to-Peer Architecture. 1.1 Distributed Applications. 1.1.1 A Distributed Computing Example. 1.1.2 Client-Server Architecture. 1.1.3 Peer-to-Peer Architecture. 1.2 The Peer-to-Peer Software Structure. 1.2.1 Base Overlay Layer. 1.2.2 Middleware Functions. 1.2.3 Application Layer. 1.3 Comparison of Architectures. 1.3.1 Ease of Development. 1.3.2 Manageability. 1.3.3 Scalability. 1.3.4 Administrative Domains. 1.3.5 Security. 1.3.6 Reliability. 2 Peer Discovery and Overlay Formation. 2.1 Discovery. 2.1.1 Static Configuration. 2.1.2 Centralized Directory. 2.1.3 Using the Domain Name Service. 2.1.4 Member Propagation Techniques with Initial Member Discovery. 2.1.4.1 Member Propagation with Full Member List. 2.1.4.2 Member Propagation with Partial Member List. 2.1.4.3 Member Propagation with a Hint Server. 2.2 Overlay Formation. 2.2.1 Creating an Overlay Link. 2.2.1.1 Communicating Across Firewalls. 2.2.1.2 Communicating Across Two Firewalls. 2.3 Topology Selection. 2.3.1 Random Mesh Formation. 2.3.2 Tiered Formation. 2.3.3 Ordered Lattices. 3 Application-Layer Multicast. 3.1 General Multicast Techniques. 3.1.1 Group Addressing. 3.1.2 Group Maintenance. 3.1.3 Message Forwarding Scheme. 3.1.4 Multicast Routing. 3.1.5 Secure Multicast. 3.1.6 Reliable Multicast. 3.1.7 Multicast Flow and Congestion Control. 3.2 Network-Layer MulticastIP Multicast. 3.2.1 Problems with IP-Layer Multicast. 3.3 Application-Layer Multicast. 3.3.1 Broadcast Mechanisms in Peer-to-Peer Networks. 3.3.2 Multicast in Peer-to-Peer Overlays. 4 File-Sharing Applications. 4.1 File-Sharing Overview. 4.1.1 Disk Space Management. 4.1.2 File Indexing. 4.1.3 File Search/Retrieval. 4.1.4 Access Control and Security. 4.1.5 Anonymous File Retrieval. 4.1.6 Search Acceleration Techniques. 4.1.7 Digital Rights Management. 4.2 Usage of File-Sharing Applications. 4.2.1 Limitations of File-Sharing Applications. 4.3 Preventing Unauthorized File Sharing. 4.3.1 Firewall-Based Techniques. 4.3.2 Asset Inventory. 4.3.3 Port Scanning. 4.3.4 Usage-Based Rate Control. 4.3.5 Malicious Participation. 5 File Storage Service. 5.1 Handle Management. 5.2 Retrieving Files with Handles. 5.2.1 Circular Ring Routing. 5.2.2 Plaxton Scheme. 5.2.3 CAN Routing Algorithm. 5.2.4 Modified Network Routing Schemes. 5.2.5 Modified Broadcast. 5.3 Miscellaneous Functions. 5.3.1 Access Control. 5.3.2 Availability and Reliability. 5.4 Usage Scenarios. 5.4.1 Distributed File Systems. 5.4.2 Anonymous Publishing. 6 Data Backup Service. 6.1 The Traditional Data Management System. 6.2 The Peer-to-Peer Data Management System. 6.2.1 The Backup/Restore Manager. 6.2.2 The Peer Searcher. 6.2.3 The File Searcher. 6.2.4 The Properties Manager. 6.2.5 The Data Manager. 6.2.6 The Schedule Manager. 6.3 Security Issues. 6.4 Hybrid Data Management Approach. 6.5 Feasibility of Peer-to-Peer Data Backup Service. 7 Peer-to-Peer Directory System. 7.1 LDAP Directory Servers. 7.2 Why Use Peer-to-Peer Directories? 7.3 A Peer-to-Peer Directory System. 7.3.1 Schema Maintenance. 7.3.2 Operation Processing. 7.3.2.1 Local Placement of Records. 7.3.2.2 Name Space Partitioning. 7.3.3 Access Management. 7.4 Example Applications of Peer-to-Peer Directory. 8 Publish-Subscribe Middleware. 8.1 Overview of Publish-Subscribe Systems. 8.2 Server-Centric Publish-Subscribe Services. 8.3 Peer-to-Peer Publish-Subscribe Services. 8.3.1 Broadcast Scheme. 8.3.2 Multicast Group Approach. 8.4 Comparison of Approaches. 8.5 Example Application. 9 Collaborative Applications. 9.1 General Issues. 9.2 Instant Messaging. 9.3 IP Telephony. 9.4 Shared Collaboration Databases. 9.5 Collaborative Content Hosting. 9.6 Anonymous Web Surfing.0 Related Topics. 10.1 Legacy Peer-to-Peer Applications. 10.2 Grid Computing. References. Index.
Dinesh C Verma is Manager of the Enterprise Networking Group at the IBM T.J. Watson Research Center, NY. He received his PhD from Berkeley and holds more than 10 patents in the area of computer working. Dr. Verma is the author of Content Distribution Networks: An Engineering Approach, John Wiley & Sons, Inc. 2002.