Penn-Chord Distributed Hash Table

Published:

This is a course project for CIS553 Computer Network(Fall 2023) at University of Pennsylvania.

Our team built a peer-to-peer Penn Chord Distributed Hash Table with self-built routing protocol at Network Layer, supporting the key-value pair storage.

Here is the Github Repo.

The diagram is as follows:

Components

Routing Protocol

Our team implemented the traditional Distance Vector and Link State routing protocol at network layer to facilitate efficient nodes communication, with the help of Bellman-Ford algorithm and Dijkstra algorithm. This implementation leverages C++ and NS-3 network simulator to model and test the system’s performance.

  • Distance Vector: Utilized the Bellman-Ford algorithm, which is more suitable for large scale distributed and peer-to-peer environment. More privacy.
  • Link State: Utilized the Dijkstra algorithm, which is more efficient in small-to-middle scale distributed and more centrialized environment. More efficient but less privacy.

Based on the Routing protocol in Network Layer, our team built a Chord-based search system that integrates consistent hashing and data replication mechanisms.

  • Efficient lookup and storage: Utilized the chord-based protocol and finger table to reduce time complexity from \(O(N)\) to \(O(logN)\) in large scale fully distributed environment.
  • Dynamic membership: Leveraged the data transfer mechanism to handle the dynamic addition and removal of nodes, maintaining the balanced and resilient distributed hash table(DHT).