Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   Mirrors & Host Exclusions (https://www.gnutellaforums.com/general-gnutella-development-discussion/6321-mirrors-host-exclusions.html)

LoKi128 December 10th, 2001 02:33 PM

Mirrors & Host Exclusions
 
I have a couple of ideas I would like to share with the community.

File Mirrors
Each servent should keep a list of other servers (by host) which may have a copy of the file that the servent is sharing. This list could then be used in the case of the servent being busy or when swarming is used.
An entry to the list is added every time the servent sucsesfully uploads a file, or if a file with the same filename+filesize is seen going by the data stream. A limit of 5 mirrors per file could be use to keep the database size down. Of course, this should be persistent across multiple client starts and exits. The future addition of a CRC and MetaData to searches will only enhance the list of mirrors.
I know that some (most?) of the hosts listed in the mirror database will not be accesible, because of dynamic IPs or the servent not running 24/7, but for rare files it would be a godsend, and when swarming catches on, it would be great.

Host Exclusions
Every servent should keep an active list of all the hosts known to be up to 3 hops away. When a new server connects, these hosts should be sent to the new servent in order to prevent it from connecting to the same hosts you have access to already. This would then create a more heathy network, since new servers will be seeking attachment points in the fringes of the current cloud instead of just randomly across it.
The "map" of the local area could have a TTL of about 10 minutes, so after 10 minutes of not seeing a message from the host, it is removed. This way, the list is kept more or less up-to-date without resorting to pings. It could also have a size limit, say 20-30 hosts total. Of course, if the new servent just does not have any other hosts to connect to, it should then attempt to connect to the ones farthest from the connection that sent the list.
Also, since every host now keeps a database of every other host near it, more intelligent descicions can be made about where to connect to later. Ideally, this should reduce dupe messages to a minimum.

Some feedback on these ideas would be truly welcome. Thank You.

Moak December 10th, 2001 07:27 PM

Hi! I like both ideas. Perhaps the second idea will not work together with the new superpeers concept (or 'Ultrapeer' as Limewire/GDF named it).

This File Mirrors data might be transfared together with the file data (additional http X-header) and could not only help to increase download speed but also to find rare files (something I'm very interested in).

About host exclusion, there has been a idea about 'SUPERPONG' in another thread. When more superpeers are available in future, the IP/ID of superpeers found in a horizon could be a good identification to avoid double/multi connection within the same local horizon. hehe, Limewire would call Superpong 'Ultrapong'.


All times are GMT -7. The time now is 07:02 AM.

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.