|
Register | FAQ | The Twelve Commandments | Members List | Calendar | Arcade | Find the Best VPN | Today's Posts | Search |
General Gnutella Development Discussion For general discussion about Gnutella development. |
| LinkBack | Thread Tools | Display Modes |
| |||
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? |
| ||||
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 Last edited by Moak; January 29th, 2002 at 09:11 PM. |
| |||
Re: ping/pong Quote:
|
| |||
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! |
| |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Log Pong | robinhood2451 | General Discussion | 1 | September 29th, 2005 01:00 AM |
Possible replacement for ping/pong | guido | General Gnutella Development Discussion | 6 | November 28th, 2001 08:20 AM |
Problems sending MSGs(ping, pong, query...) over gnutella network | Tiago s1x | General Gnutella / Gnutella Network Discussion | 1 | August 4th, 2001 05:20 AM |
Problems sending MSGs(ping, pong, query...) over gnutella network | Tiago s1x | General Gnutella / Gnutella Network Discussion | 1 | August 4th, 2001 05:17 AM |
help with PONG | RogerioS | General Gnutella / Gnutella Network Discussion | 1 | April 20th, 2001 04:52 PM |