Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   Operating Principles of a Hostcache (https://www.gnutellaforums.com/general-gnutella-development-discussion/92775-operating-principles-hostcache.html)

alex96 July 10th, 2009 12:42 PM

Operating Principles of a Hostcache
 
Hello,

my questions do not directly relate to Gnutella, but maybe I can find assistance here. It would be very nice if a knowledgeable person could confirm or correct my assumptions.

Is this correct:
During the bootstrap process, the Gnutella client has to receive his first list of IP addresses to send his first ping to. This is done by contacting an UDP hostcache, or a CWebCache. The difference between the two mainly is the way of transferring the list to the client - internally both manage a list of active peers. The transfer of this list between WebCache and peer are done http-like, about hostcache I could not find detailled information(?).

Question: How is this list managed? Whenever a new peer sends a request, the cache can save the sender's IP address. But is the list kept up-to-date? That is, how are peers removed from the list? Pinging all of them periodically is not an option, neither is a static TTL (like storage in a ring buffer).

Regards,
Alex

OldDeath July 10th, 2009 04:01 PM

GWCs (Gnutella Web Caches) get their IPs by Hubs that promote themselves when going into Hub mode.

UDP hostcaches are an active part of the network and connect to it as client/Hub (AFAIK) to maintain its list.

In both cases, the list has a defined length and each time a new Hub has been added, the oldest one is removed.


Does this answer your question?

mfg,
Old

alex96 July 11th, 2009 03:42 AM

Thank you, that helps! When you say "hub" it's synonymous to servent/peer, I assume.

So it is really that simple: caches remove IPs from the list in the same order they entered. My first impression is that this is beautifully simple, but is it very efficient? Because some peer stay online for years, others maybe just for seconds.

EDIT: I just remembered reading a paper researching the average uptime (online time) of Gnutella peers. If I remember correctly a great majority of the peer were online several days. So the values of "year" vs. "seconds" I mentioned are rare stray offs without much influence.


Regards,
Alex

OldDeath July 11th, 2009 03:45 PM

Quote:

Originally Posted by alex96 (Post 345860)
Thank you, that helps! When you say "hub" it's synonymous to servent/peer, I assume.

So it is really that simple: caches remove IPs from the list in the same order they entered. My first impression is that this is beautifully simple, but is it very efficient? Because some peer stay online for years, others maybe just for seconds.

EDIT: I just remembered reading a paper researching the average uptime (online time) of Gnutella peers. If I remember correctly a great majority of the peer were online several days. So the values of "year" vs. "seconds" I mentioned are rare stray offs without much influence.


Regards,
Alex

Hubs (G2) resp. Ultrapeers (gnutella) are the nodes that form part of the overlay network on which the entire network architecture is based on.

As it takes only some seconds-minutes until the lists are refreshed completely, this assures that only nodes that have become Hub/UP within the last seconds are promoted for new nodes searching IPs to connect to.


mfg,
Old


All times are GMT -7. The time now is 06:59 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
SEO by vBSEO 3.6.0 ©2011, Crawlability, Inc.

Copyright © 2020 Gnutella Forums.
All Rights Reserved.