Gnutella Forums

Gnutella Forums (https://www.gnutellaforums.com/)
-   General Gnutella Development Discussion (https://www.gnutellaforums.com/general-gnutella-development-discussion/)
-   -   Ping & Pong? What for? (https://www.gnutellaforums.com/general-gnutella-development-discussion/5213-ping-pong-what.html)

JackDCLee November 6th, 2001 08:09 AM

Ping & Pong? What for?
 
I know ping is for actively find out the servent on network.
But I don't understand why should I send it.

If we wanna find out some file, I think just Query is enough.
To find out the file, why do we need ping and pong?

Unregistered November 8th, 2001 10:57 AM

If you haven't pinged anyone, who are you going to send your Query descriptor to?

Moak November 8th, 2001 01:37 PM

To those you are direct connected, no need to ping them before?

Moak November 21st, 2001 05:53 AM

ping/pong
 
Okay, I wanna give a more detailed overview on what is ping/pong for.

A ping on "traditional" TCP/IP is a tool for testing the network topology and functionality (Actually it uses ICMP protocoll. You send a small package of data and wait until a reply comes back. If nothing comes back, oops, you found a problem which may point to wrong configuration or physical problems. If something comes back you have a proof that route between you and another host is up. Ping is a perfect tool for fault isolation, it usually is run on the local host or LAN gateway to verify that the local network interface and routing is up and running. But it can also used to test the network between you and a foreign peer. Together with sending multiple pings you receive a short overview on round trips or detect droped packets or duplicated packets.)

A ping on Gnutella is different to what we know from above. Gnutella's ping and pong descriptors serve two functions:

1) Provide a measure of the horizon size, to get knowledge of the current number of hosts and files available.
2) Return IP addresses of other servents so you can establish more connections.

Notes to 1: Ping/pong messages caused a high amount of Gnutella's backbone traffic in past (ca 50%). It is highly recommended IMHO _not_ to use this feature in a future gnutella client. The Gnutella newtork should be scalable and not waste bandwith by a high percentage of broadcasts. AFAIK it is still a topic to find new ways to approximate the horizon in normal clients (ideas?). But I guess it still makes sense to use pings/pongs for special gnutella tools which map the network or for statistic purpose. If you code a kind of statistic tool, don't expect "deeper scans" with a high TTL, most clients lower a high TTL to something healthy (TTL<=7) while they route it.

Notes to 2: It is not a optimal way to harvest IPs by using pings. Because you will generate a high broadcast, get IPs which are allready located in your local horizon (results in smaller horizon fou you in general, less available files, higher possibility to stuck in a seperated network, more duplicated traffic) and finally you get a high amount of IPs which do not allow incoming connections. A much better idea to get IPs of other gnutella clients -> use a gnutella host cache [3].

Additional Links:
[1] New ping/pong ideas http://www.limewire.com/index.jsp/pingpong
[2] Gnutella Protocoll http://www.clip2.com/GnutellaProtocol04.pdf
[3] Host caches http://www.gnutellaforums.com/showth...4638#post16845

Hope it helps, Moak :)

PS: Please correct me if my english is bad

zzzzzz March 29th, 2002 11:15 PM

Re: ping/pong
 
Quote:

Originally posted by Moak
Notes to 2: It is not a optimal way to harvest IPs by using pings. Because you will generate a high broadcast, get IPs which are allready located in your local horizon (results in smaller horizon fou you in general, less available files, higher possibility to stuck in a seperated network, more duplicated traffic) and finally you get a high amount of IPs which do not allow incoming connections. A much better idea to get IPs of other gnutella clients -> use a gnutella host cache [3].

Hope it helps, Moak :)

PS: Please correct me if my english is bad

Hi, I am not quite understand what this mean. When I start gnutella, I use gnutella host cache to collect IPs of other gnutella servent. THen I ping these servent to connect gnutella network and collect other Pongs. Is this correct way? What is "... finally you get a high amount of IPs which do not allow incoming connections" mean? WHy these IP do not allow incoming connections? Thanks.

Unregistered March 31st, 2002 12:59 AM

Pings are more a network keep alive now, every 30 seconds a ping should be sent to check connected nodes.
Host caches are currently the weak point in the network since there are only a few.
Clients now return X-Try headers with IP's of other clients when you connect to them and they are busy or behind a superpeer.
Swarming has caused a lot of busy problems. Now people can clog the upload slots 4 times as much!


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