  Despite recent excitement generated by the peer-to-peer (P2P) paradigm and
the surprisingly rapid deployment of some P2P applications, there are few
quantitative evaluations of P2P systems behavior. The open architecture,
achieved scale, and self-organizing structure of the Gnutella network make it
an interesting P2P architecture to study. Like most other P2P applications,
Gnutella builds, at the application level, a virtual network with its own
routing mechanisms. The topology of this virtual network and the routing
mechanisms used have a significant influence on application properties such as
performance, reliability, and scalability. We have built a "crawler" to extract
the topology of Gnutella's application level network. In this paper we analyze
the topology graph and evaluate generated network traffic. Our two major
findings are that: (1) although Gnutella is not a pure power-law network, its
current configuration has the benefits and drawbacks of a power-law structure,
and (2) the Gnutella virtual network topology does not match well the
underlying Internet topology, hence leading to ineffective use of the physical
networking infrastructure. These findings guide us to propose changes to the
Gnutella protocol and implementations that may bring significant performance
and scalability improvements. We believe that our findings as well as our
measurement and analysis techniques have broad applicability to P2P systems and
provide unique insights into P2P system design tradeoffs.
