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.


Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old January 22nd, 2002
Disciple
 
Join Date: December 7th, 2001
Posts: 17
Ivex is flying high
Question routing question

Why we do not transfer the pong or queryhit directly to their requester(the original ping or query sender), but send them one by one back the way they came from?
Reply With Quote
  #2 (permalink)  
Old January 22nd, 2002
Moak's Avatar
Guest
 
Join Date: September 7th, 2001
Location: Europe
Posts: 816
Moak is flying high
Default

Good question!

Looking into the protocol specification, you will see you need to route those messages. Ping and Query descriptors don't contain IP and port of the sender, but a GUID for routing. Only Pong, Queryhit and Push contain IP and port (for further contact/filetransfer).

Note: I never understood this design completely. Okay, we know all direct conections won't work to firewalled or NAT-routed peers... the routed way via the network does always work, since it does not establish a new (possibly blocked) connetion. But why we don't _try_ to direct connect to a peer first... or it's next superpeer? Is it a bad protocol design?
Anonymity could be an argument. The user searching is anonymous to the network, the content provider isn't (Queryhit descriptors contain IP of the sender). But on direct download each other knows the opponent's IP, together with a Push descriptor even more ppl know it. My conclusion = anonymity is very low or an illusion on Gnutella. Who cares if you search for chocolate-cake-recipes/porn/warez, when downloading or providing such content will uncover anonymity.
Passive searching and caching might be an argument together with superpeers (they could group searches together), but superpeers still don't direct connect the destination.
Or is this just all about a networking problem (rather than anonymity and stuff)... peers could never handle a high rate of incoming connections (limited nuber of sockets) + TCP lowlevel overhead is too big (SYN, ACK, FIN, ACK)? Someone with enlightenment?

Last edited by Moak; January 22nd, 2002 at 09:49 AM.
Reply With Quote
  #3 (permalink)  
Old January 24th, 2002
Disciple
 
Join Date: December 7th, 2001
Posts: 17
Ivex is flying high
Default

Thanks to Cap'n Bry, here are two reasons given by him for why we couldn't send pong/queryhit directly.

quote:
Well, that would require you to create a connection out to the person who did the ping. You don't want to do that because:
-- There's overhead of creating the connection, sending the data and disconnecting. Not really that major, but there's alot less work if you just transmit rather than going through all that new connection rigormorah.
-- There's a chance that the originator is firewalled, meaning the only way to get a message back to him is through the network.
Reply With Quote
  #4 (permalink)  
Old January 25th, 2002
dux dux is offline
Disciple
 
Join Date: April 13th, 2001
Location: new brunswick, nj, us
Posts: 11
dux is flying high
Default

This biggest problem is actually with denial of service attacks. If someone sends out a string of queries with your ip address, your internet connection becomes toast.

But you could send query hits back with only the iport and the number of results. The querier could then connect to that ip address for the actual results. This wouldn't reduce the number of query hits, but it would make packet sizes much smaller (especially if the query hits contain a lot of metadata).

See the second part of this message:
http://groups.yahoo.com/group/the_gdf/message/4834

As for pongs, pings are no longer broadcast so they're fine the way they are.
Reply With Quote
  #5 (permalink)  
Old January 25th, 2002
Moak's Avatar
Guest
 
Join Date: September 7th, 2001
Location: Europe
Posts: 816
Moak is flying high
Default Interesting idea, thx

Quote from that GDF message:

Quote:
Gojomo writes:
Alternatively, a QueryReply could just be: "I have X hits,
request them from this URL". Then the originator issues a
request like what you've proposed above to finish the Query.
It's more steps, but then QueryReplies never get bloated
with tons of hits and markup/flags/metadata, and if in
fact the originator gets plenty of sufficiently good hits
early, it may never need to contact all the responders.
Reply With Quote
Reply


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
X-Query-Routing 0.1 only? Shocker Gnucleus (Windows) 0 October 25th, 2003 09:27 AM
routing error frankdowling1 Download/Upload Problems 1 November 24th, 2002 07:14 PM
Packet routing Cakkie General Gnutella Development Discussion 6 July 21st, 2002 12:09 PM
help please- NAT routing Unregistered General Gnutella / Gnutella Network Discussion 2 April 1st, 2002 01:56 PM
Private networks routing question Linuxbloke General Gnutella / Gnutella Network Discussion 0 April 4th, 2001 07:19 AM


All times are GMT -7. The time now is 06:25 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.