DHT traffic concerns
[email protected] Tue, 26 Aug 2008 12:28:54 +0000 (UTC)
| Newsgroups | gmane.network.gnutella.devel |
|---|---|
| Organization | Home, Grenoble, France |
| Message-ID | <[email protected]> |
Quoting Arne Babenhauserheide <[email protected]> from ml.gnutella.dev-forum: :2,27 kiB/s hurt! : :I'm sorry to talk as simple user again, instead of with technical terms, but: :The DHT is intended to fix specific searches. To consume more bandwidth than :Gnutella kills that idea. :Just think about a leaf node in Gnutella which works with often less than 1 :kiB/s bandwidth but which suddenly suffers more than 2 kiB/s outgoing traffic! Well, 2.27 KiB/s was "idle" traffic. If you want to actively lookup for things in the DHT, you can have up to 10 KiB/s of traffic in and out for short periods of time. My current experiments with gtk-gnutella (running as an ultranode) shows that I need to reserve about 20 KiB/s out to avoid clogging traffic. This is a lot of bandwidth, but I have been able to locate sources for downloads that were in my queue for a long time. And sourceless magnets have been shown to work nicely thanks to DHT seeding. If you run a leaf node behind a modem, then you will not be able to participate to the DHT structure actively. You may be able to perform DHT queries, one at a time, but to do that you need to accept a small price to maintain a minimal routing table, so that you know enough of the structure to begin an actual search. I have not implemented any of the DHT modes LimeWire support, but the "active" mode, which means full participation. The "passive" mode will come next. LW defines "passive" and "passive leaf", but I may end up implementing only a "passive" mode, with leaves having a less deep routing table than the ultrapeer. For instance, a "passive" UP can have a routing table going to the depth of 5, flat, whereas a "passive leaf" could be limited to a depth of 4. That means 2^5 and 2^4 buckets of 20 nodes at most. There is actually no need for a "passive" mode to know its closest neighbours since it will do no storing and no replication. Passive nodes can do only lookups and publishing, and for that you do not need a big routing table, just know entry points "close enough" in the structure to initiate your lookups. Raphael P.S: The DHT is currently suffering from a wrong publishing and replication algorithm from LimeWire nodes. I've identified problems and offered design solutions for that. Gtk-gnutella will implement them, but since there are only a few hundred of GTKG out there, the quality of the DHT will depend vastly on how quickly LimeWire will be able to fix the bugs AND deploy the new servents out there.