Peer to peer file sharing systems

Peer to peer systems are starting to emerge, most well-know are probably file sharing systems such as Napster (although technically not a real peer to peer system) and Gnutella. This lecture provides an introduction to peer to peer system and to the challenges they pose, as well as case study of particular peer to peer systems.

Literature

[DS] Chapter 10

Supplementary Reading

Exercises
  1. Consider the Pastry routing table below (from LNCS 3485 chapter 8), and identify the entries used to route the following keys

    1. 103302
    2. 103113
    3. 311122
    4. 103303
    5. 103011
       
  2. Suppose that the students at Dat3/F7S/SSE1 become unhappy with the file-service (space, availability, backup, security etc, ) provided by the system administration for your project work and that they therefore decide to create a P2P system instead by pooling their own resources (disk) on their local computers (in PC's group rooms and private lap-tops).

    Design a file sharing system for group project work based on a distributed hash table (assume an API like in Figure 10.4). It must be possible for a group to list its files, add, read, modify,  and remove files.

    Discuss your design in light of the questions raised in questions  [DS] 10.5 and 10.6
     
  3. Try to "Google" around and locate some operational peer2peer file sharing systems. What service is provided? What about security,  anonymity, and availability of the shared files? What are their implementation principles (architecture/routing etc) ?