Why Gnutella can't scale. no, really.

I found this posting on Slashdot and it's rather intresting. Okay when Napster was new I thought it was a good idea but not shocking. Then there was Gnutella, I was impressed by the technology behind it and I have posted a lot about it here at CD Freaks hoping you would all start using it.

Unfortunately Gnutella dissapointed me, it was way to slow to be intresting for the masses. And this is mostly because of how the protocol works. In this article you will get an in-depth explanation why, and also some intresting calculations.


We all understood the excitement. Herein was a technology that could potentially prove the true magnitude of Metcalfe's Law. That realization evoked nothing short of the phrase "holy shit!". But what I couldn't understand was why no one was questioning the legitimacy of these claims. For several months the only analyses anyone heard of practical implementations were generalizations and speculative comments, without much scientific or mathematical basis.

So I quickly got fed up, and resolved to write a research paper. Sometime in late March, I had begun analyzing the network structure of the Gnutella system, trying to find a way to gauge the capacity of a GnutellaNet in generalized terms, and to predict its realistic limits. What later resulted was a set of mathematical equations that could describe reachability, capacity, and bandwidth throughput. I then fed those equations into Mathematica to produce 3-D plots depicting, much to my own satisfaction, visual realizations of exactly what didn't make sense.

So as you see a small search on the Gnutella network can cause dozens of MB's finding their way trough the connected clients. For the people that really want to know why Gnutella just isn't the next thing, this is a must read.

Also intresting is that it is written by someone close to the development of Napster. But I guess for most of you it's way to boring to read.



But if you want to read it, just click here.

Source: Joran Ritter

No posts to display