![]() |
| | |||||||
| Register | FAQ | Members List | Calendar | Arcade | Search | Today's Posts | Mark Forums Read |
| General Gnutella Development Discussion For general discussion about Gnutella development. |
| Welcome To Gnutella Forums You are currently viewing our boards as a guest which gives you limited access to view most discussions and access our other features. By joining our free community you will have access to post topics, communicate privately with other members (PM), respond to polls, upload content and access many other special features. Registration is fast, simple and absolutely free so please, join our community today! (click here) If you have any problems with the registration process or your account login, please contact contact us. Your email address must be legitimate and verified before becoming a full member of the forums. Please be sure to disable any spam filters you may have for our website, so that email messages can reach you. Once registered but before posting, members MUST READ the FORUM RULES (click here) and LimeWire/FrostWire users should include System details - help us to help you (click on blue link) in their posts if their problem relates to using the program. Whilst forum helpers are happy to help where they can, without these system details your post might be ignored. And wise to read How to create a New Thread Thank you Hilfe in Deutsch, Ayuda en español, Aide en français, Hulp in het Nederlands Forum Rules Support Forums Before you post to one of the specific Client Help and Support Conferences in Gnutella Client Forums please look through other threads and Stickies that may answer your questions. Most problems are not new. The Search function is most useful. Also the red Stickies have answers to the most commonly asked questions. (over 90 percent). If your problem is not resolved by a search of the forums, please take the next step and post in the appropriate forum. There are many members who will be glad to help. If you are new to the world of file sharing please do not be shy! Everyone was ‘new’ when they first started. When posting, please include details for: Your Operating System ....... Your version of your Gnutella Client ....... Your Internet connection (56K, Cable, DSL) ....... The exact error message, if one pops up Any other relevant information that you think may help ....... Try to make your post descriptive, specific, and clear so members can quickly and efficiently help you LimeWire and FrostWire users need to supply these details >>> System details - help us to help you (click on blue link) Moderators There are senior members on the forums who serve as Moderators. These volunteers keep the board organized and moving. Moderators are authorized to: (in order of increasing severity) Move posts to the correct forums. Many times, members post in the wrong forum. These off-topic posts may impede the normal operation of the forum. Edit posts. Moderators will edit posts that are offensive or break any of the House Rules. Delete posts. Posts that cannot be edited to comply with the House Rules will be deleted. Restrict members. This is one of the last punishments before a member is banned. Restrictions may include placing all new posts in a moderation queue or temporarily banning the offender. Ban members. The most severe punishment. Three or more moderators or administrators must agree to the ban for this action to occur. Banning is reserved for very severe offenses and members who, after many warnings, fail to comply with the House Rules. Banning is permanent. Bans cannot be removed by the moderators and probably won't be removed by the administration. The Rules 1. Warez, copyright violation, or any other illegal activity may NOT be linked or expressed in any form. Topics discussing techniques for violating these laws and messages containing locations of web sites or other servers hosting illegal content will be silently removed. Multiple offenses will result in consequences. 2. Spamming and excessive advertising will not be tolerated. 3. There will be no excessive use of profanity in any forum. 4. There will be no racial, ethnic, or gender based insults, or any other personal attacks. 5. Pictures may be attached to posts and signatures if they are not sexually explicit or offensive. 6. Remember to post in the correct forum. Take your time to look at other threads and see where your post will go. If your post is placed in the wrong forum it will be moved by a moderator. 7. If you see a post in the wrong forum or in violation of the House Rules, please contact a moderator via Private Message or the "Report this post to a moderator" link at the bottom of every post. Please do not respond directly to the member - a moderator will do what is required. 8. Any impersonation of a forum member in any mode of communication is strictly prohibited and will result in banning. 9. Multiple copies of the same post will not be tolerated. Post your question, comment, or complaint only once. There is no need to express yourself more than once. Duplicate posts will be deleted with little or no warning. 10. Posts should have descriptive subjects. Vague titles such as "Help!", "Why?", and the like may not get enough attention to the contents. 11. Do not divulge anyone's personal information in the forum, not even your own. This includes e-mail addresses, IP addresses, age, house address, and any other distinguishing information. Don´t use eMail addresses in your nick. 12. Signatures may be used as long as they are not offensive or sexually explicit. 13. Failure to show that you have read the forum rules may result in forum rules breach infraction points or warnings awarded against you which may later total up to an automatic temporary or permanent ban. Supplying system details is a prerequisite in most cases, particularly with connection or installation issues. Violation of any of these rules will bring consequences, determined on a case-by-case basis. Thank You! Thanks for taking the time to read these forum guidelines. We hope your visit is helpful and mutually beneficial to the entire community. |
| | LinkBack | Thread Tools | Display Modes |
| |||
| Could well be a bug in BS. Routed pongs usually are cached pongs, so that could explain it. But I wasn't aware BS would cache pongs and also cache the TTL and Hops ( in my case, I don't )
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| ||||
| But even if they are cached pongs, standard operating procedure would be to insert my messageID into the cached pong then send it to me. Correct? I am no real fan of Vinnie or his BS, (no pun intended) but I would almost have to give him a little more credit than distributing a version of BS with a flaw like this in it. I assume that your app does not suffer this problem? Has anyone ever seen this before? |
| ||||
| After a bit of research using a sniffer, i have found that ALL routed pongs (at least through Bearshare) have a messageID of: {00000000-0000-0000-0000-000000000000}. This does not seem to follow accepted procedure. It is my understanding (correct me if i'm wrong) that when receiving a pong with a messageID that matches a previously seen ping, it is forwarded through the connection the ping was received (if not pongcaching). If pongcaching Is being used, and the servant receives a ping, the servant dips into it's pongcache (if the cache is sufficently full) and INSERTS the message id of the RECEIVED ping (the receiving client never knows the difference, with exception of TTL & hops), and sends it back through the connection from which it came, this reducing traffic on the network. I do understand there are variants of this scheme, but I have not seen any that stated you should insert a messageID of all zero's. Is this normal practice? I mean, i guess theres nothing wrong with it. It make the identification of routed pongs a snap. but again, Is this normal practice? ie. do I need to incorporate this into my servant? It does not seem wise to hardcode something like this into pong handling routines. Last edited by Gnutellian : June 10th, 2002 at 02:42 PM. |
| |||
| Yes, it has to match your ping's message ID, or for whatever ping you have forwarded (which didn't show in your log). So it is either a bug in BS (although older version) or there's something in your code.
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| ||||
| Quote:
As you can see, when i sent a ping it had a messageID of X when I received a pong(ping reply) from the connected servant(hops = 0), the messageID matches X, BUT all other pongs received after (Hops > 0) have this 'zero'ed out' messageID. This log was created using BS 2.4.4 ( I can't go much higher in the BS version because it will kick me off when it gets enough BS clients. look at the log: *Ping Sent By Me* Sent Ping On Connection: 1 At: 6/10/2002 6:19:44 PM MessageID: {ÜØî„0þÿhÎ?ò } FuncID: 0 TTL: 7 Hops: 0 Payload Length: 0 *Pong From Connected Servant* **MessageID is Correct** Received Pong On Connection: 1 At: 6/10/2002 6:19:45 PM MessageID: {ÜØî„0þÿhÎ?ò } FuncID: 1 TTL: 7 Hops: 0 Payload Length: 14 IPAddress: 192.168.1.2 Port: 6346 Files Shared: 56 Files Size: 215MB *Routed Pong through Connected Servant* **MessageID is NOT Correct** Received Pong On Connection: 1 At: 6/10/2002 6:19:45 PM MessageID: { } FuncID: 1 TTL: 6 Hops: 1 Payload Length: 14 IPAddress: 211.44.xxx.xxx Port: 6346 Files Shared: 54 Files Size: 670MB *Routed Pong through Connected Servant* **MessageID is NOT Correct** Received Pong On Connection: 1 At: 6/10/2002 6:19:52 PM MessageID: { } FuncID: 1 TTL: 1 Hops: 6 Payload Length: 14 IPAddress: 200.255.xxx.xxx Port: 6346 Files Shared: 34 Files Size: 70MB Last edited by Gnutellian : June 10th, 2002 at 03:28 PM. |
| ||||
| **UPDATE** Using Gnucleus, I monitored the good and bad packets being received. The image below tells the story. I personally would like to thank Vinnie for producing and distributing a such fine product as BearShare. Thank you for the hours of headbanging trying to debug my code that I thought must have been flawed. I will never again over-estamate you. P.S. The connected servant was BearShare 2.6.2 Last edited by Gnutellian : June 12th, 2002 at 03:57 AM. |
| |||
| This pretty much explains everything: http://www.limewire.com/index.jsp/pingpong |
| ||||
| Quote:
As of 6/12/2002 7:07:11 AM they still where... in the sense that a servant still needs to see a pong as a response to one of it's previous pings. At least by BearShare 2.6.2... Last edited by Gnutellian : June 12th, 2002 at 07:38 AM. |
| |||
| Vinnie: Quote:
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.
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| |||
| 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. |
| ||||
| 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.
__________________ Hey... Where'd my stack space go?... |
| |||
| 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.
__________________ Okay, so I've been gone a while - but hey, meanwhile online translators have gotten better: Ce n'est pas ma faute. Blâmer vous-même. ---- Ne me blâmez pas. Blâment votre individu. |
| ||||
| Quote:
Quote:
http://download.bearshare.com/BSTEST300b52.exe Quote:
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:
|
| Thread Tools | |
| Display Modes | |
| |
| | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Wierd Font HELP!!!! | zrogoszinski | General Windows Support | 4 | January 11th, 2007 08:21 PM |
| wierd | smog | Connection Problems | 0 | December 5th, 2006 10:00 AM |
| Somthin Wierd | VOoDOoM | Getting Started Using LimeWire | 1 | June 25th, 2006 03:08 PM |
| Wierd Bug | kkj1116 | Download/Upload Problems | 1 | June 12th, 2006 02:58 PM |
| Very Wierd | tweets | Connection Problems | 1 | January 24th, 2005 11:40 AM |