582615: Overlay and P2P Networks, Spring 2013

Exercise Package III (20 OEPs)

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.

Schedule

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)

Submission Instructions

  1. Create a document with your answers to the presented assignments.
  2. Include names and student numbers of both participants in the document.
  3. Produce a txt file or a pdf file for submission.
  4. Name the file snumber1-snumber2-ex3.extension
    (where you replace
    snumber1 with the student number of one student in the pair,
    snumber2 with the student number of the other student in the pair, and
    extension with the correct file extension)
  5. Send the file to toni.ruottu@cs.helsinki.fi with "Overlay Exercise III" as the subject

Assignment 9 (5 OEPs)

Content-Addressable Network (CAN) is a DHT model where object mapping is based on dividing a multidimensional space among the nodes.

  1. What happens when a new node joins a CAN instance?
  2. How does the selected amount of dimensions affect a CAN instance?
  3. How does the selected amount of realities affect a CAN instance?

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.

Assignment 10 (5 OEPs)

Kademlia is a DHT algorithm which uses bitwise exclusive or (XOR) operation as a metric for node distance.

  1. What are the trade-offs in selecting k-bucket sizes for a Kademlia overlay?
  2. How much memory does the Kademlia routing table consume?
  3. How does Kademlia compare to other DHTs?

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.

Assignment 11 (5 OEPs)

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.

  1. What are some of the key requirements for Dynamo?
  2. What steps does Dynamo take to provide consistent shopping carts?
  3. Why do not all DHTs copy the zero-hop routing technique from Dynamo?

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.

Assignment 12 (5 OEPs)

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.

  1. How does DNS and the overlay based alternatives compare?
  2. What is an appropriate division of work between an overlay user and an overlay provider in securing the name resolution?
  3. What might be the reasons behind OpenLookup performing better than Bamboo DHT in the experiment?

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.

Turbo Challenge 3

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.

  1. What functionalities does the RTCWeb datagram connection stack have?
  2. How does a WebRTC application programmer designate the target node for a peer connection?
  3. In addition to the web server hosting static files, your friend will need two types of overlay specific services. What for?

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".