CS 264. Peer-to-Peer Systems

Lectures (Spring 2005): Tuesdays and Thursdays 11:30-1:00 pm
Location: Maxwell-Dworkin 319

Name E-mail Office Office Hours
Professor Mema Roussopoulos cs264-staff@eecs.harvard.edu Maxwell Dworkin 227 Fridays, 3:00-5:00 pm
Nathan Blecharczyk cs264-staff@eecs.harvard.edu ---- After class or by appointment.


1) Be sure to send email to cs264-staff@eecs by Monday, 2/7 with your paper preference.

2) Project suggestions are now available here.

3) The proposal format and a sample proposal are available.

4) A Latex template for writing your paper and status report is available here

5) Here is the description of what your status report should contain.

Course Description

Peer-to-peer systems have recently gained a lot of attention in the social, academic, and commercial communities. One of the early driving forces behind the peer-to-peer concept is that there are many PCs in homes and offices that lie idle for large chunks of time. Why not leverage these idle resources to do something useful, like share computation or share content? In fact, peer-to-peer systems have become synonymous with file-sharing systems as systems like Napster, Gnutella, and Kazaa have enjoyed explosive popularity.

While file-sharing has been very successful, peer-to-peer systems are important and useful for more than just (illegal) sharing of song files. In this class, we will study peer-to-peer systems in depth to understand what they are, what they are good for, and how to improve them. The class will be primarily based on discussions of recent research papers on peer-to-peer systems. Topics include: routing, search, caching, security, reputation and trust, incentives, and applications.

This class is geared toward graduate students at all levels as well as advanced undergraduates (Computer Science 161 or Computer Science 143 are required).


This course will involve reading papers, taking short quizzes, leading class discussions, and completing a research project.

Students will be required to write reviews for papers they read. Look here to get information on how to write a review. Reviews are due before each class by email. (Send these as a single email with the current lecture date in the subject line, to cs264-reviews@eecs. Please send reviews in plain text.)

Students will be required to lead a class discussion of a paper. You must discuss the paper with one of the TFs before it is your turn to lead the class. This gives you a chance to ask questions on aspects of the paper you find confusing or difficult. Be sure to send email to cs264-staff@eecs by Monday, 2/7 with your paper preference.

There will be a short quiz at the beginning of each class covering the reading assigned for that day. The quiz will consist of 3-5 questions. The quiz has two purposes: to ensure students have read the paper(s) carefully and to help guide the discussion. Students leading the discussion for that day must send a list of 3-5 suggestions for questions to cs264-staff@eecs two days before their turn to lead.

Finally, students will be required to undertake a major research project of their choice. Students are to work in groups of one, two, or three (two preferred). The goal is to identify a problem that you think is not currently addressed in the peer-to-peer literature, to propose a solution to the problem, and to evaluate the solution using analysis, simulation, or experimental results. At the end of the course, students will present their work to the class in a short talk. The goal is to help students gain experience in research and to produce a result that might lead to a publishable paper in the future. Here is a list of suggested projects.


Reviews: 10%
Class Participation: 10%
Quizzes: 10%
Project: 70%

Syllabus & Schedule

Date Topic Readings Lecturer
2/3 Course Overview,
P2P Overview
-- No reading -- Mema Roussopoulos
2/8 Routing A Scalable Content Addressable Network Mema
2/10 Routing Chord,
Serving DNS Using a Peer-to-Peer Lookup Service
Victor S.,
Alan D.
2/15 Routing,
Applications: Middleboxes
Spurring Adoption of DHTs with OpenHash, a Public DHT Service
Middleboxes No Longer Considered Harmful
2/17 Routing, Incentives Making Gnutella-like P2P Systems Scalable ,
Designing Incentives for Peer-to-Peer Routing
2/22 Applications: Samsara Samsara: Honor Among Thieves in Peer-to-Peer Storage Geoffrey
2/24 Applications: File-sharing
Measurement, Modeling, and Analysis of a Peer-to-Peer File-Sharing Workload Jimming
3/1 Applications: LOCKSS Preserving Peer Replicas By Rate-Limited Sampled Voting
3/3 Legal issues in P2P
Peer-to-Peer File Sharing and Copyright Law: A Primer for Developers ,
Are Contributions to P2P Technical Forums Private or Public Goods? - An Empirical Investigation
Mike H.
3/8 Legal and Security Issues in P2P SPIES: Secret Protection Incentive-based Escrow System,
A Survey of Peer-to-Peer Security Issues
Allan S.
3/10 Incentives Incentives Build Robustness in Bit Torrent
Faithfulness in Internet Algorithms
3/15 Security The Sybil Attack ,
A First Look at Peer-to-Peer Worms: Threats and Defenses
Mike H.,
Allan S.
3/17 Incentives,
Applications: Network Measurement
Kill the Messenger: A Taxonomy of Rational Attacks ,
Network Measurement as a Cooperative Enterprise
Project Proposals Due
3/22 Reputation,
Applications: FreeHaven
A Robust Reputation System for P2P and Mobile Ad-hoc Networks ,
The Free Haven Project: Distributed Anonymous Storage Service
David H.,
3/24 Applications: Tor Tor: The Second-Generation Onion Router Victor
3/29 Spring Break -- No Reading -- --
3/31 Spring Break -- No Reading -- --
4/5 Incentives, Reputation Robust Incentive Techniques for Peer-to-Peer Networks ,
Balances of Power on eBay: Peers or Unequals?
Ben H.
4/7 Routing The Impact of DHT Routing on Resilience and Proximity Jinsoo
4/12 Applications: Application-level Multicast SplitStream: High-Bandwidth Multicast in a Cooperative Environment ,
Incentives-Compatible Peer-to-Peer Multicast
Adam K.,
Will C.
4/14 Security Defending against Eclipse attacks on overlay networks ,
ConChord: Cooperative SDSI Certificate Storage and Name Resolution
Jeff F.,
4/19 Applications: Information Retrieval Mercury: Supporting Scalable Multi-Attribute Range Queries
Status Reports Due
4/21 Exploring Design Spaces,
2 P2P or Not 2 P2P?
Exploring the Design Space of Distributed and P2P Systems ,
2 P2P or Not 2 P2P?
Dave H.,
4/26 Incentives Rationality and Self-Interest in Peer-to-Peer Networks ,
Enforcing Fair Sharing of Peer-to-Peer Resources
Alan D.
4/28 Incentives, Reputation SWIFT: A System With Incentives For Trading ,
Reputation in P2P Anonymity Systems
Robert M.,
5/3 Project Presentations -- No Reading -- --
5/5 Project Presentations -- No Reading -- --
5/10 No Class (Reading Period) -- No Reading -- --
5/12 No Class (Reading Period) -- No Reading -- --
5/18 No Class (Last Day of Reading Period) Final Project Due --


Previous Years

Spring 2004