Monday, November 04, 2002
      ( 2:57 PM ) Matt  

On Nov 1, I talked about bootstrapping with the Gnutella network.

One concern I've heard is that Gnutella is a very inefficient protocol. I've read the
Gnutella protocol specification as well as someone's report on "Gnutella Pro". Gnutella Pro is supposed to be a more efficient protocol than Gnutella. They achieve this in two ways: First, they limit the number of connections maintained by any node, and Second, they reduce the packet size. Let me take a stance on my little soap box here to refute this.

A large majority of the performance gain of Gnutella Pro over standard Gnutella is because of the reduced number of connections. Gnutella doesn't put any restriction on the number of connections. In fact, a Gnutella application can choose how many connections it holds open, and to how many other applications it forwards information to. Gnutella Pro simply suggests a number of connections based on the speed of the internet connection; this is not a change to the protocol at all. The performance gained by reducing the packet size is minimal. Packets are reduced by about 70%. This constant gain is minimal compared to the gain of simply implementing a reasonable Gnutella application.

My point is, it seems an efficient implementation of the Gnutella protocol is possible. My preliminary results show that it may be possible to limit bandwidth per node to O(lg n) where n is the size of the network. This shows great potential for scalability. I'll present more of the math supporting this later.

# -

Comments: Post a Comment

Dreams I have...

Powered by Blogger
Feel free to e-mail me.

free hit counter