The course objective is to understand principles of distributed systems, with special emphasis on Peer-to-Peer (P2P) applications.
Starting from a broad view of exisiting P2P applications, the course introduces problems common to all systems, that are either tied to the application design (e.g., routing, peer and content selection, etc.) or its interaction with the lower layers(e.g., impact of transport layer on user quality of experience, network awareness, etc.) of the TCP/IP protocol stack. Solutions to each of the above issues are then illustrated, considering unstructured, hyerarchical and structured network designs principles. Lectures are then structured around the most relevant applications (in terms of historical impact, or popularity) such as Gnutella, BitTorrent, Skype, Kademlia, etc. that are dissected from several viewpoints (ranging from the most theoretical to the most practical).
A personal project carried over the whole course duration, allow to better grasp P2P system with a problem solving attitude. Performance evaluation of project topic are carried with a rigorous scientific method, and a bibliography of recent scientific papers completes the panorama.
Course grade is the mean of
- written Multiple Choice Question (MCQ) examination over the course lectures
- oral defense of the project
- written report of the project achievement
The most successful projects can be selected for submission to scientific conferences at the end of the course and the paper acceptace entitles student to the participation to the international conference to present her/his work (note: additional work is typically needed).
Les meilleurs projets pourraient donner lieu à une soumission du travail à une conference du secteur (au dela du cours; travail supplementaire à prevoir). L'acceptation du papier donnerait la possiblité à l'étudiant de presenter ses travaux à la conference.
- [pdf] All course content in a single document (``Poly'')
- [pdf] Organization
- [pdf] Introduction
- [pdf] Skype
- [pdf] P2P-TV
- [pdf] BitTorrent
- [pdf] LEDBAT/uTP
- [pdf] DHT and lookup
- [pdf] Topology management and network awareness
note: lecture slides in pptx format are only available to INF570 students
- [pdf] Meta-research & Projects
- [pdf] Skype (experiments; some useful scritps, that make use of a hacked version of tcpdump)
- [pdf] P2P-TV (peer instruction; see reading list below)
- [pdf] BitTorrent (simulation; see these detailed instructions on how to use this pre-compiled simulator
Full list of previous years projects at the external course page. Here some examples of projects success (and failure) stories: following are some examples of past projects submitted or accepted at IEEE P2P or other workshops with similar acceptance rates.
- Zen and the art of network troubleshooting (accepted at 7th International Workshop on Traffic Monitoring and Analysis: more info to come)
- The 2A internship of François Espinet (X2011) at LINCS has been awarded Honourable Distinction with Unanimous Congratulations from the Jury
- Peeking Through the BitTorrent Seedbox Hosting Ecosystem (accepted at 6th International Workshop on Traffic Monitoring and Analysis: defense, paper, reviews)
- Protection against Sybil attacks using proof of work and randomized identifiers (short paper submitted to P2P'XIII: defense, paper, reviews)
- I tube, YouTube, P2PTube: assessing ISP benefits of peer-assisted caching of YouTube content (extended abstract, accepted at P2P'XIII: defense, paper, reviews, poster)
Written: English only
Spoken: English, French or Italian
The course weights 4 ECTS credits