Simulator of Pharos Network Coordinates

 
Overview of Pharos
  • Network coordinates (NC) system is an efficient mechanism for Internet latency prediction with scalable measurements. Vivaldi coordinates is the representative distributed NC system, and it is deployed in many well-known Internet systems, such as Bamboo DHT (Distributed hash table), Stream-Based Overlay Network (SBON) and Azureus BitTorrent.
  • Pharos is a fully decentralized NC system. All nodes in Pharos form two levels of overlays, namely base overlay for long link prediction, and local cluster overlay for short link prediction. Vivaldi algorithm is applied to both base overlay and local cluster. As a result, each Pharos node has two sets of coordinates. The coordinates calculated in the base overlay, which is named global NC, is used for the global scale, and the coordinates calculated in the corresponding local cluster, which is named local NC, covers a smaller range of distance.
  • To form the local cluster, Pharos uses a method similar to binning and chooses some nodes called anchors to help node clustering. This method only requires a one-time measurement (with possible periodic refreshes) by the client to a small, fixed set of anchors. Any stable nodes which are able to response ICMP ping message can serve as anchor, such as the existing DNS servers.
  • The experimental results show that Pharos greatly outperforms Vivaldi in Internet distance prediction without adding any significant overhead.
Papers of Pharos
  • Yang Chen, Yongqiang Xiong, Xiaohui Shi, Jiwen Zhu, Beixing Deng, Xing Li. Pharos: Accurate and Decentralized Network Coordinate System. To appear in IET Communications. [PDF] (Journal Version)
  • Yang Chen, Yongqiang Xiong, Xiaohui Shi, Beixing Deng, Xing Li. Pharos: A Decentralized and Hierarchical Network Coordinate System for Internet Distance Pediction. In Proceeding of the 50th Annual IEEE Global Telecommunications Conference (GLOBECOM'07), Washington, D.C., USA, Nov. 2007. [PDF] (Conference Version)
Download and Usage
  • Download the Pharos Simulator here (Our code is based on Jonathan Ledlie's Vivaldi simulator)
  • Enter the following commands to complie the execute file

unzip Pharos_Simulator.zip
cd Pharos_Simulator
make clean
make

  • If you want to run simualtor with PlanetLab dataset (226 nodes), please enter

python process.py 226 median 20 10

  • If you want to run simualtor with King dataset (1740 nodes), please enter

python process.py 1740 king.txt 20 10