582615: Overlay and P2P Networks, Spring 2013
Pair work (groups of two people). Four exercises and one turbo challenge. Doing the exercises awards you overlay exercise points (OEPs). There are three exercise packages, each worth 20 OEPs. 5 OEPs will buy you one point in the exam. The theoretical maximum for the exercises is 60 OEPs. Doing all the exercises will grant you 12 points in the exam.
Clarifications session: Friday 15.2.2013 at 14:15 in D122 (you ask questions about the questions)
Exercise deadline: Friday 22.2.2013 at 12:00 (you return the answers by email)
Publication of the correct answers: Friday 22.2.2013 at 14:15 in D122 (we go through the correct answers together)
Content-Addressable Network (CAN) is a DHT model where object mapping is based on dividing a multidimensional space among the nodes.
CAN is described in the article "A Scalable Content-Addressable Network" by Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp and Scott Shenker. The article was published at the ACM SIGCOMM conference in 2001. When this exercise package was created the article was available from http://conferences.sigcomm.org/sigcomm/2001/p13-ratnasamy.pdf.
Kademlia is a DHT algorithm which uses bitwise exclusive or (XOR) operation as a metric for node distance.
Kademlia is described in the article "Kademlia: A Peer-to-peer Information System Based on the XOR Metric" by Petar Maymounkov and David Mazières. It was published in the 1st International Workshop on Peer-to-peer Systems (IPTPS) in 2002. When this exercise package was created the article was available from http://pdos.csail.mit.edu/~petar/papers/maymounkov-kademlia-lncs.pdf.
Dynamo is a cloud storage system used by Amazon. One of the use cases for Dynamo is to power Amazon's online shopping experiences. Dynamo is said to be a zero-hop DHT as all nodes contain enough information for routing directly to the content.
Dynamo is described in the article "Dynamo: amazon's highly available key-value store" by Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall and Werner Vogels. It was published at the ACM Symposium on Operating Systems Principles (SOSP) in 2007. When this exercise package was created the article was available from http://www.allthingsdistributed.com/files/amazon-dynamo-sosp2007.pdf.
Some computer systems use overlay based storage services for name resolution instead of relying on the basic Domain Name System (DNS) alone. To be a sensible replacement for DNS the overlay based name resolution systems need to be secured so that they meet an equivalent or stronger level of security. Bamboo DHT and OpenLookup are some of the overlays that are used to provide name resolution. Bamboo DHT distributes the items between the nodes, while OpenLookup stores each data item on every node. A related experiment (check the reference below questions) seems to indicate that OpenLookup has better performance despite the lack of distribution.
Use of overlay based systems for name resolution is discussed in the article "Secure Resolution of End-Host Identifiers for Mobile Clients" by Samu Varjonen, Tobias Heer, Ken Rimey and Andrei Gurtov. The article was published at the IEEE Global Telecommunications Conference (GLOBECOM) in 2011. When this exercise package was created the article was available from http://www.cs.helsinki.fi/u/gurtov/papers/globecom11.pdf.
Disclaimer: The turbo challenge presented below is extremely hard and does not grant you extra points. However a decent solution for the turbo challenge may award some compensation for lack of points in other assignments.
Your friend is attending a course where the students are expected to build web application overlays using WebRTC. Your friend has decided to work on a chat application. A web folder for hosting static web content has been provided by the computer science department. The web folder can be used to deliver static html, javascript and css files, but server side programming is not allowed. Your friend knows you are an overlay expert, and hopes you could help with some of the basics.
The IETF RTCWeb working group describes different parts of the wire protocol in separate drafts. The latest version of the datagram connection is described in draft-ietf-rtcweb-data-channel-02. It is edited by Randell Jesup (Mozilla), Salvatore Loreto (Ericsson) and Michael Tuexen (Muenster Univ. of Appl. Sciences). When this exercise package was created it was available from http://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-02.
While the WebRTC wire protocols are developed at the IETF, the W3C works on corresponding browser APIs. The W3C WebRTC specification draft is edited by Adam Bergkvist (Ericsson), Daniel C. Burnett (Voxeo), Cullen Jennings (Cisco), and previously by Anant Narayanan (Mozilla) as well. The draft was last updated on 16 January 2013. The update includes a complete code example for using the API for browser-to-browser communication. When this exercise package was created the draft revision was available from http://dev.w3.org/2011/webrtc/editor/archives/20130116/webrtc.html. The code example can be found in the draft under chapter 10.3 "Peer-to-peer Data Example".