Chord and Freenet Comparison

Because of the differences between the way Freenet and Chord distributes keys, stores items and handles queries, hypothetically the initial number of hops required by a query to locate a document will be significantly higher in Freenet than Chord. However, because of the adaptive nature of nodes and the caching used by the Freenet technology, over time the number of hops between queries will be significantly reduced, eventually becoming more efficient than Chord.

Since Freenet caches duplicate copies of data, dropping nodes should have minimal effect on the efficiency of queries. However, due to the querying nature of Freenet, where nodes with similar key values are queried first, along with the way that Freenet caches documents along the path between requestor and storer, the network eventually organizes itself with keys of similar values in specific regions. This could lead to the loss of specific documents if an extremely large section of the network is lost. Since the documents keys are not related to the document content, the odds of all documents of a specific topic being lost is nearly impossible. In comparison, the Chord search protocol does not have a built-in caching scheme. When a node fails, all its associated keys are lost.

The original plan was to simulate identical networks using Freenet and Chord. Unfortunately, the differences in capabilities between the two simulators did not allow us to construct a useful comparison.We did simulate each protocol separately and chose to analyze Freenet at a deeper level, mainly because the limitations of the Chord simulator and the fact that Chord has no complete applications.

The results we received from the Chord simulator (available in the Chord distribution) simply confirmed what we already knew about the protocol. Each document key was mapped to the appropriate node as was expected. Through modification of the simulation so that the range of keys generated for documents was limited, we found that we could place all documents on a specific node. While node numbers in the simulation were on the order of hundreds of thousands, we forced the document keys within the range from 1 to 1000. Upon simulation, each document was assigned to the node with the lowest number, which is exactly what should be expected.

In addition, through simulation we found that Chord does not distinguish between a node failing or leaving. We expected a leaving node to transfer its associated keys to its successor before disconnecting from the network. After reviewing the Chord documentation, we learned that this was intentional and any key tranfer would be handled by an application layer.

The Freenet simulator (available on the Neurogrid homepage) gave us much more interesting facts about the network. It allowed us to adjust more parameters of the network and provided log files containing information about network coverage, TTL left per query, and number of messages per query. These data is used to show how the Freenet network adapts to queries over time. We further discuss the Freenet simulation on the Simulation Results page.