Developers.Gnutella.Message.TTLAndHops

From Shareaza Wiki
Jump to navigation Jump to search

TTL and Hops

TTL: Time To Live. The number of times the message will be forwarded by Gnutella servents before it is removed from the network. Each servent will decrement the TTL before passing it on to another servent. When the TTL reaches 0, the message will no longer be forwarded.

Hops: The number of times the message has been forwarded. As a message is passed from servent to servent, the TTL and Hops fields of the header must (add up to 7)

There are a lot of things about TTL and Hops that I need to confirm from the Shareaza source code, including:

  • Is 7 really the number Shareaza is using? Isn't that some ancient spec number that was immediately found out to be way too large? Wasn't GnucDNA using 3 instead of 7?
  • Does Shareaza incriment hops on a message it is about to send, or one it has just received? Is the number incrimented or not incrimented as the message flys through the Internet?
  • Same thing, but for TTL. Does Shareaza decrement it right before send, or right upon receive? What is the number in transit.

(find where shareaza sets ttl and hops on a new packet) (find where shareaza reads and checks ttl and hops on a packet it has received) (find where shareaza updates ttl and hops on a packet its relaying)


Messages SHOULD NOT be larger than 4 kB

(find where shareaza enforces this)


{{{1}}}

(find where shareaza enforces rules like this)