Archive of UserLand's first discussion group, started October 5, 1998.

Re: Why you don't want Gnutella (at least not yet)

Author:Chuck Shotton
Posted:4/12/2000; 5:03:48 AM
Topic:Why you don't want Gnutella (at least not yet)
Msg #:16102 (In response to 16084)
Prev/Next:16101 / 16103

Have you found any specific problems with Gnutella?

Jacob's original post was pretty explicit in laying out the majority of the evils associated with the current Gnutella implementation. But here are some more.

First, you have no control over the topology of the network. You cannot restrict access to a selected community of users (other than specifying an obscure port number and having all your buddies sneak off to use it.)

You cannot obtain any descriptive information about files beyond name and size. There is no provenance for any of the data being served. You have no way of knowing (and therefore, trusting) the source of the data, so who knows if you are sucking down virii, trojans, or just some innocuous piece of pirated software.

You cannot throttle bandwidth usage. The demand curve for Gnutella's net usage is an exponential curve.

You cannot limit the misbehavior of others. Gnutella suffers massively from its lack of authentication. This allows script kiddies to spew thousands of search packets into the Gnutella net, just for their own amusement. You'll notice people using Gnutella's search monitoring function as a chat room most of the time.

There is no hard-coded time to live for Gnutella network traffic. Idiot users can set their TTL to be 20 or 30 and totally trash the entire net with their queries.

Bandwidth metrics are supplied by users, rather than being calculated by the software itself. Most people lie about their network connection speeds, either by leaving it set at the 28k default or putting in absurd numbers like 100,000,000,000.

Gnutella attempts to construct a fully-connected network by having every client ask every server out there for info. This is a cop-out implementation that trades scalability for simplicity. By doing it this way, you don't have to worry about stale host info, but you end up having to ping every host on the Gnutella net quite frequently to maintain your own host list. Over 90% of the Gnutella net traffic is ping traffic. There are better ways to do this.

As a disclaimer of sorts, I feel that it's important to point out that we (BIAP) have a software product that has implemented a superset of the Gnutella protocol functionality since '98. It has many, many months of refinement to get our implementation polished to the point that it can scale to the entire Internet without the problems you see with Gnutella. The solutions aren't always obvious and can't be solved with something as simplistic as Gnutella.

Gnutella's good from the perspective that it shows people what is possible. But it's very, very bad in that it provides an extremely immature implementation that has serious scalability problems that will likely get it thrown off most LANs. My not-so-bold prediction is that Gnutella will be gone in a few months, replaced by applications that do a much better job at solving this problem.

There are responses to this message:

This page was archived on 6/13/2001; 4:54:44 PM.

© Copyright 1998-2001 UserLand Software, Inc.