Improving the Performance of the Gnutella Network



Using Synthetic Coordinates to Improve Gnutella Network Performance

Gnutella is a distributed file sharing protocol. It forms an application-layer overlay which does not take into consideration the underlying physical network. We propose to use the Vivaldi coordinate system and an intelligent neighbour selection algorithm to bias the formation of the overlay to favour connections between nodes that are physically close. This improves the response time for queries and query hits and leads to improved user quality of experience (QoE).


Installing the Gnutaldi Simulator

The Gnutaldi simulator implements the neighbour selection algorithm and builds upon the ns-2 and GnutellaSim simulators. In order to install Gnutaldi in a Linux environment, follow these steps:
  1. Install ns-2 version 2.26, which can be obtained here.
  2. Install GnutellaSim as described here.
  3. Go to the ns-2 installation directory (something like /guests/johndoe/ns-allinone-2.26/ns-2.26) and create a "gnutella" subdirectory.
  4. Copy the Gnutaldi archive to the new gnutella subdirectory and decompress it (tar xzvf gnutella.tar.gz).
  5. Copy the ns-gnutella.tcl file to the tcl/lib subdirectory, from the ns-2 installation folder. Overwrite the existing file.
  6. Rebuild the ns-2 software by changing to the ns-2 installation directory and typing ./install
  7. Copy the sample execution script and topology file to the ns-2 installation directory and modify to suit your needs. Comments in the files provide details on the effect of each parameter.


Using Gnutaldi

To use the simulator, simply execute ./ns scenario.tcl. You may redirect the output into a file for logging.

Publications and Presentations

Questions

Please email questions or bug reports to André Dufour at adufour at cs.sfu.ca.

André Dufour