Peer-to-peer networks started in 1999 when the 19 year old Shawn (Napster) Fanning programmed a simple network software which facilitated a distributed file sharing over the Internet. The direct access is called peer to peer since the server of this small network just served as a mediator and not as a database system storing all the data. The following year Gutella was released as the first full peer-to-peer network allowing also the indexing and search in full peer-to-peer mode. Yet, Gnutella was slow and unreliable.

The inefficiency of Gnutella was the chief motivation to invent better peer-to-peer networks. In 2001 the scientific world saw CAN and Chord as such networks with an efficient search and soon further networks followed. While researcher kept improving the distributed network algorithms, programmers released better software implementing these ideas. The dark side of this story is the misuse of theses peer-to-peer networks for massive copyright infringements. Although this is not a problem specific to peer-to-peer networks, the lack of a central client providing the material made it harder to find the evil-doers.

The goal of this lecture is to present methods and algorithms suited for the design of up-to-date peer-to-peer networks. The lecture aims at students studying at least four semester of computer science for bachelor or master of science. As prerequisites participants should have basic knowledg in algorithms and computer networks (as being taught in Datenstrukturen und Algorithmen and Systeme II).

Possible Contents

  • A short history of P2P networks
  • The Internet: Under the overlay
  • Early peer-to-peer networks
  • CAN
  • Chord
  • Pastry and Tapestry
  • Minimal networks
  • Tree networks
  • Self-organization
  • Security
  • Anynomity
  • Download
  • P2P in the wild
  • P2P and the Law

Einordung  in der Prüfungsordnung

  • 3-stündige englisch-sprachige Vorlesung mit 1-stündiger Übung (3V+1Ü SWS)
  • Wahl/Spezialvorlesung des Master-Studiums oder Bachelor-Studiums Informatik, Angewandte Informatik und Applied Computer Science ab dem 5. Semester
  • ECTS: 6