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 1.2.2013 at 14:15 in D122 (you ask questions about the questions)
Exercise deadline: Thursday 7.2.2013 at 16:00 (you return the answers by email)
Publication of the correct answers: Friday 8.2.2013 at 14:15 in D122 (we go through the correct answers together)
Chord is a distributed hash table (DHT) that assigns objects to nodes based on their identifiers.
In the provided file input.json you will find a json dictionary. The dictionary contains two lists of Chord identifiers. It has node identifiers stored under key "nodes" and object identifiers stored under key "objects". Your task is to write a computer program that computes the responsible node for each object.
You need to attach two additional files with your submission email:
You may pick any programming language you wish. Using a json library is recommended. For example, to get started in Python you might do something like...
#!/usr/bin/python
import json
input_handle = open('input.json')
json_data = input_handle.read()
input_data = json.loads(json_data)
nodes = input_data['nodes']
objects = input_data['objects']
Generating small inputs for testing your software during the development phase is highly recommended. You may familiarize yourself with json at http://json.org/.
Tapestry is a distributed hash table (DHT) that routes requests based on routing tables.
Operation of Tapestry is explained in the journal article "Tapestry: A Resilient Global-scale Overlay for Service Deployment" by Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph and John D. Kubiatowicz. The article was published in the IEEE Journal on Selected Areas in Communications volume 22 issue 1 in 2004. When this exercise package was created it was available from http://www.cs.ucsb.edu/~ravenben/publications/pdf/tapestry_jsac.pdf
The Freenet Project is building and overlay with the goal of enhancing online privacy. Efficient operation of the system is based on a location swapping technique.
The basic operation of Freenet is described in the journal article "Protecting Free Expression Online with Freenet" by Ian Clarke, Scott G. Miller, Theodore W. Hong, Oskar Sandberg and Brandon Wiley. It was published in IEEE Internet Computing journal volume 6 issue 1 in 2002. When this exercise package was created it was available from https://freenetproject.org/papers/freenet-ieee.pdf.
The location swapping algorithm was later introduced as an addition to Freenet's basic model. Ian Clarke and Oskar Sandberg explained the changes in the talk "Routing in the Dark: Freenet's new design" that they gave in December 2005 at the 22nd Chaos Communication Congress in Berlin. The presentation was recorded and published on the Internet. When this exercise package was created it was available from http://vimeo.com/22488244.
Sometimes network researchers discuss mathematical network models such as small-world networks, scale-free networks and the power law.
The video from assignment 7 should help you get started with the basic concepts, but finding other sources is required.
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.
Some researchers have pointed out possible flaws in the location swapping technique employed by Freenet.
Some possible problems are described in the scientific paper "Routing in the Dark: Pitch Black" published by Nathan S. Evans, Chris GauthierDickey and Christian Grothoff at the 23rd Annual Computer Security Applications Conference (ACSAC) in 2007. When this exercise package was created it was available from http://grothoff.org/christian/pitchblack.pdf.