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
  #11 (permalink)  
Old June 12th, 2002
Connoisseur
 
Join Date: August 9th, 2001
Location: Philadelphia, PA, USA
Posts: 358
cultiv8r is flying high
Default Re: YEs

Vinnie:

Quote:
In any event, the GUID on pings and pongs doesn't really matter, since these messages are no longer routed.
It's true that cached pongs are no longer routed, but the GUID does matter for some still though (I still feel we need to backward keep compatibility in mind for a while longer).

This is what I do when I return cached pongs:

-- Set the GUID to that of the received PING

-- Set the TTL to Hops + 1 of the PING (ie, Hops = 0 -> TTL = 1, Hops = 4 -> TTL = 5) I noticed from Gnutellian it varies a lot in your case

Gnutellian:

Most clients these days don't look at the GUID of pongs anymore. They they will just store any pong that passes by. This will cause their host cache to fill up faster, and without less frequent ping. This is part of the ping/pong caching, not just LimeWires, but many variants.

The GUID of all zeroes also ensures that in most cases, the pong can't be routed anymore because you wouldn't have a matching routing table. Personally, I would find it more elegant if the TTL/Hops was used insetad, but I have done (and still am) overriding some meanings of functions as well. Specifically, the ConnectBack feature (which, although recommended by someone else, would be replaced by an updated version).

This didn't occur to me before, because I wasn't aware Vinnie was actually doing this though, and the varying TTL/Hops trhew me off too.
Reply With Quote
  #12 (permalink)  
Old June 12th, 2002
BearShare Developer
 
Join Date: May 25th, 2001
Posts: 163
Vinnie is flying high
Default ConnectBack

Just wanted to point out that the "Connect Back" feature is actually unnecessary...the original 0.4 Gnutella protocol specification is sufficient!

I had *great* results with BearShare by just advertising pongs when I want a connect back.

This is how we implemented auto-detect of firewalled status.

BearShare lets loose with pongs for up to 1 full minute (per hour). If it gets "ins" then we aren't firewalled, else we are firewalled.

You can see the state transitions in BearShare 3.0.0 by putting the cursor over the Hosts LED and observing the messages in the balloon; e.g. "Ponging for incoming connections"

Also, the Network balloon shows some other states, like the firewalled detection progress.

BearShare 2.6.x has these features as well, but lacks the enhanced feedback in the indicator area.

I highly recommend anyone who is interested in implementing connect-back features seriously think about just using pongs to entice other servents into providing a connect back.
Reply With Quote
  #13 (permalink)  
Old June 12th, 2002
Gnutellian's Avatar
Member: Large
 
Join Date: June 9th, 2002
Location: Maryland
Posts: 15
Gnutellian is flying high
Default

Sorry for seeming like a maniac about It Vinnie, but...

I'm writing a servant, and don't have a staff of developers, it's just me...

As far as the 'Routed Pong' issue, I am following the specs outlined in:

http://www.limewire.com/index.jsp/pingpong

as well as general guidance from:

http://cvs.sourceforge.net/cgi-bin/v...ella/Draft.txt

Earlier in the thread, I myself even stated that it made the identification of pongs easier. I finally(prior to Vinnies posts)
had actually stopped looking at the MsgID in received pongs and just cached them if (TTL>1 and TTL <= MAX_TTL) and (hops > 0 and hops <= MAX_TTL) in an effort to get around this 'anomally'.

Hey, no blood, no foul.
Reply With Quote
  #14 (permalink)  
Old June 12th, 2002
Connoisseur
 
Join Date: August 9th, 2001
Location: Philadelphia, PA, USA
Posts: 358
cultiv8r is flying high
Default

Goodness, just noticed the many typos I made in my previous post.

I like the idea of simply using pings/pongs for firewall detection (by looking at any incoming connections as a response), but how long does that take though? And are you setting the "firewalled" status per connection, or globally? Just curious. The ConnectBack for supporting clients usually takes less than a few seconds.
Reply With Quote
  #15 (permalink)  
Old June 12th, 2002
BearShare Developer
 
Join Date: May 25th, 2001
Posts: 163
Vinnie is flying high
Default

Quote:
Originally posted by cultiv8r
[B]Goodness, just noticed the many typos I made in my previous post.[B]
Fortunately, I didn't.

Quote:
how long does that take though?
Its like greased lightning. Try it yourself:
http://download.bearshare.com/BSTEST300b52.exe

Quote:
And are you setting the "firewalled" status per connection, or globally?
Eh? The firewalled status applies to the local servent, not per connection. The status is tested when the first host is connected, and reset when the last host drops. It is also re-tested once per hour, in case their firewalled status changes.

You may not believe it, but user's firewalled status can actually change from hour to hour. Not only that, but they can get different IP addresses, and we re-detect that every hour too.

How? By establishing a few outgoing connections even though we don't need them. Its easy enough to 503 a 0.6 handshake on the 3rd set of headers even if you're outgoing. The Remote-IP does the job.

This even works to detect cases where their IP address changes due to DHCP, and they are using NAT.

A small number of users complained that they were becoming firewalled even though they knew they weren't. In EVERY case, it was user error, they had indeed become firewalled.

Quote:
The ConnectBack for supporting clients usually takes less than a few seconds.
Yeah but its so much cooler to implement it in a way that even works with the original Gnutella 0.53 servent.
Reply With Quote
  #16 (permalink)  
Old June 12th, 2002
BearShare Developer
 
Join Date: May 25th, 2001
Posts: 163
Vinnie is flying high
Default

Quote:
Originally posted by Gnutellian
Sorry for seeming like a maniac about It Vinnie, but...

I'm writing a servant, and don't have a staff of developers, it's just me...
You're doing fine then. Some problems end up taking longer to solve than they should. Thats just how the cookie crumbles.

But the good news is, there are lots of seasoned Gnutella developers eager to help (myself included).

Looks like you found some.
Reply With Quote
  #17 (permalink)  
Old June 12th, 2002
Connoisseur
 
Join Date: August 9th, 2001
Location: Philadelphia, PA, USA
Posts: 358
cultiv8r is flying high
Default

Quote:
Eh? The firewalled status applies to the local servent, not per connection. The status is tested when the first host is connected, and reset when the last host drops. It is also re-tested once per hour, in case their firewalled status changes.
Actually, I set the firewalled status per connection. Reason being if the Gnutella client is used within a larger network. For example, a school campus. It may be that incoming connections from the Internet are firewalled, but local connections (from dorm to dorm) are not. It's just a small thing though, but it would prevent any unnecesary "push" requests, as we all have noticed can sometimes not work as advertised among different versions (different developers).
Reply With Quote
  #18 (permalink)  
Old June 13th, 2002
BearShare Developer
 
Join Date: May 25th, 2001
Posts: 163
Vinnie is flying high
Default hmm

If you want to support that feature, then why dont you just use the MIB and get a list of interfaces along with subnet masks?
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
Wierd Font HELP!!!! zrogoszinski General Windows Support 4 January 11th, 2007 09:21 PM
wierd smog Connection Problems 0 December 5th, 2006 11:00 AM
Somthin Wierd VOoDOoM Getting Started Using LimeWire + WireShare 1 June 25th, 2006 04:08 PM
Wierd Bug kkj1116 Download/Upload Problems 1 June 12th, 2006 03:58 PM
Very Wierd tweets Connection Problems 1 January 24th, 2005 12:40 PM


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