Gnutella Forums  

Go Back   Gnutella Forums > Gnutella News and Gnutelliums Forums > General Gnutella Development Discussion
Register FAQ The Twelve Commandments Members List Calendar Arcade Find the Best VPN Today's Posts

General Gnutella Development Discussion For general discussion about Gnutella development.


 
 
LinkBack Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1 (permalink)  
Old January 30th, 2003
Novicius
 
Join Date: January 30th, 2003
Posts: 1
Onib is flying high
Post Directory, idea on developing gnutella, constructive criticism, please

The following is not complete, may contain errors, but I definetely think that there is potential... and I'm not the only one.

<h1>
Directory extension to Gnutella
</h1>
<br>
Tommi.Lukkarinen@uta.fi 30.01.2003
<h2>
Why
</h2>
<br>
This kind of addition would make popular searches, such as .mp3 and .avi, faster and covering more data. With small changes this could also enable small groups (enthusiasts of some sort) to make efficient sharing.
<h2>
Concept
</h2>
<br>
The idea of directory is to make searches faster and more efficient. It builds another set of nodes on top of existing Gnutella network, serving only the special interest described in the search criteria. The idea is to use more resources on each computer that has interest on the directory context, to save overall network resources. Unlike queries (0x80), directory builds do not spread automatically, but they spread only if the servent has interest on the directory. A servent, which does not contibute to the directory, will not be added to it, but may still make queries into it. Queries are handled in the ordinary manner, same as before, but queries matching directory criteria will be forwarded to the directory network instead of the Gnutella network. Directory network is a network of contributing servent’s only, and to which servents with interests (but no contribution) have links, but are not constantly connected into. The directory concept needs some intelligence in handling of TTL and Hops. As spreading of directory is user driven, it should not be hindered by TTL. In other hand, backward flooding might be possible, so TTL might be needed in those cases. The document has some ideas on where to use TTL and where not.
<h2>
Build Directory (0xD0)
</h2>
<p>
Data
<p>
Search criteria
<p>
Byte offset
<p>
0, …
<p>
Events in a servent that has not expressed interest:
<br>
Add to the list of directories
<p>>
Events in a non-contributing servent that expresses interest*:
<br>
Forward build directory request
<p>
Events in a contributing servent that expresses interest*:
<br>
Forward build directory request
<br>
Send Directory Hit backwards
<p>
Events in a non-contributing servent that has matching directory:
<br>
Forward Directory Hit to known links under ‘directory data’
<p>
Events in a contributing servent that has matching directory:
<br>
Decrease TTL
<br>
Forward Directory Hit request to known links under ‘directory data’
<br>
Send Directory Hit backwards
<p>
*Expressing interest happens usually by user choice. I imagined there would be a file explorer like interface, showing possible directories, opening one forwards the request and waits for directory to fill with data (how many files available nearby and how many kilobytes), disabling one prevents similar Build Directories ever showing again.
<h2>
Directory Hit (0xD1)
</h2>
<p>
Data
<p>
Port
<br>
IP Address
<br>
Speed
<br>
Number of files shared
<br>
Number of kilobytes shared
<br>
Matched criteria
<p>
Byte offset
<p>
0, 1
<br>
2, 5
<br>
6, 7
<br>
8, 11
<br>
12, 15
<br>
16, …
<p>
Events in a servent that has not expressed interest
<br>
None, this message should never reach such servent
<p>
Events in a non-contributing servent that expresses interest:
<br>
Add the link under ‘directory data’
<br>
Forward the Directory Hit backwards
<p>
Events in a contributing servent that expresses interest:
<br>
Add the link under ‘directory data’
<br>
Make connect to the link, possibly with directory version and gnutella version
<br>
Decrease TTL
<br>
Forward the Directory Hit backwards
<h2>
The Small Changes that could benefit small special interest groups
</h2>
<br>
Build Directory (0xD0)
<p>
Events in a servent that has not expressed interest:
<br>
Decrease TTL
<br>
Forward build directory request
<br>
Add to the list of directories*
<p>
Events in a contributing servent that expresses interest:
<br>
Increase TTL
<br>
Forward build directory request
<br>
Send Directory Hit backwards
<p>
The first change means that Build Directory spreads better, reaching more servants who could be interested of the directory. But it also means that spamming is easier. *If adding to the visible list would always be user initiated, this could be prevented. The second change (increase TTL) means that the Build Directory keeps on growing when it finds more interest. This way even a relatively uninteresting subject could once pass through much of the Gnutella network.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
An Idea to improve Gnutella qemilo General Gnutella Development Discussion 2 July 8th, 2003 07:24 AM
Developing a simple Gnutella Servent.. Help miracle General Gnutella Development Discussion 3 May 21st, 2003 06:27 PM
Bearshare hides criticism of new.net and Savenow God BearShare Open Discussion 15 December 25th, 2001 05:56 PM
developing a gnutella client!!! High Lander General Gnutella Development Discussion 1 November 22nd, 2001 12:41 PM
Gnutella idea? Anyone know if this has been done? RoadWarriorX General Gnutella / Gnutella Network Discussion 1 May 1st, 2001 06:58 PM


All times are GMT -7. The time now is 09:06 AM.


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

Copyright © 2020 Gnutella Forums.
All Rights Reserved.