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:
- Install ns-2 version 2.26, which can be obtained here.
- Install GnutellaSim as described here.
- Go to the ns-2 installation directory (something like /guests/johndoe/ns-allinone-2.26/ns-2.26) and create a "gnutella" subdirectory.
- Copy the Gnutaldi archive to the new gnutella subdirectory and decompress it (tar xzvf gnutella.tar.gz).
- Copy the ns-gnutella.tcl file to the tcl/lib subdirectory, from the ns-2 installation folder. Overwrite the existing file.
- Rebuild the ns-2 software by changing to the ns-2 installation directory and typing ./install
- 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
- A. Dufour and Lj. Trajkovic, Improving Gnutella Network Performance Using Synthetic Coordinates," in Proc. QShine 2006,
Waterloo, Canada, August 2006, pp. *-*.
Questions
Please email questions or bug reports to André Dufour at adufour at cs.sfu.ca.
André Dufour