next up previous contents index
Next: Pong caching schemes Up: Gnutella Previous: Bye message, version 0.6   Contents   Index


Ping and Pong optimizations

Since the original protocol specification ([Gnu00]) used network resources very inefficiently [Gnu02] states some optimizations for Ping and Pong messages. To avoid unnecessary propagation of Ping broadcasts caching of Pong messages is deployed.

If a Gnutella host conforms to the following requirements it is considered Pong caching compatible and must provide the following header when establishing a connection. Possibly a higher number can be given if the caching scheme has a higher version number.

Pong-Caching: 0.1

  1. All Pong messages sent should have a high probability of referring to connectable hosts and provide a good distribution of hosts across the network.
  2. The bandwidth used by Ping and Pong messages should be minimized.
  3. If a Ping message is received, with TTL greater than 1 and it was at least one second since another Ping was received on that connection, a servent must (if possible) respond with a number of Pong messages. The number of messages sent in response may vary but 10 is a reasonable number according to [Gnu02].
  4. An incoming Ping message with a TTL field of 1 and a Hops field of 0 or 1 must always be replied to with a Pong message, since the Ping is used to probe the remote host of a connection.
  5. An incoming Ping message with a TTL field of 2 and a Hops field of 0 is called a ``Crawler Ping'' and is used to scan the network. Pong messages should be sent in reply listing the host receiving the Ping and all its' neighbours.



Subsections
next up previous contents index
Next: Pong caching schemes Up: Gnutella Previous: Bye message, version 0.6   Contents   Index
Marcus Bergner 2003-06-10