Chord: A Scalable P2P Lookup Protocol for Internet Applications
---------------------------------------------------------------
I. Stoica et al.

The paper presents a P2P lookup protocol for various Internet 
applications.

The Chord protocol has some important strengths, the first being
its generality. By supporting just one opperation (mapping a given 
key onto a node), Chord can be used for example to implement a 
decentralized DNS service.
The second strength is the scalability obtained by using consistent
hashing and tables on the peers side with pointers to O(logN) other
peers. What they do in fact is improving a simple liniar key location
scheme that passes through all the with a scheme that uses routing
information in an efficient way.
Also, the protocol uses consistent hashing to guarantee with "high 
probability" load balancing among nodes.

As paper weakness, the assumption made in section IV is pretty 
important. The communication in the underlying network may not be 
symmetric (in terms of A can route to B <=> B can route to A) nor 
transitive. In fact I think it would be interesting to see the degree 
of symmetry and transitivity in the internet. For example I know that 
for the PlanetLab nodes, an important percent of failures can be 
avoided by routing through an intermediate node. (If A cannot route 
to C there exists B so that A can route to B and B can route to C).

Another thing is when a node joins, how does he actually find that 
"any Chord node" n'. Is it a simple process? I think they should have 
talked a little bit more about this issue and explain the existing 
possibilities. One other problem is a misbehaving node that can 
disrupt the ring. However, this is stated as future work.

As a conclusion, the Chord protocol seems very strong. It manage to
achieve generality, scalability, load balancing in a decentralized 
manner.