Possible replacement for ping/pong I've thought of a method to let nodes know how many files/Megabytes they can reach through their connection without the need of sending broadcast messages:
Therefor, every node keeps a list for every of its connections with two 32 bit values for every TTL from 1 to 9 indicating how many files/Megabytes it can reach through that connection at that TTL.
This, of course raises the question how the nodes get these lists. Well, they ask their neighbours.
These neighbours, upon being asked, will now do the following:
-create an empty list (like the one described above)
-Enter into every row of this list the values for their locally shared files/MBs
-Add to the row for a TTL of 2 of this list the values from the row for a TTL of 1 from their lists for every of their connections, except for the one the query came from.
-Continue with the last step until the list is finished (You've got the idea...)
-Send the list back to the querying host, which will store it.
Unfortunately, this method has (at least) two disadvantages:
-The possibility of loopings
-Two new message types have to be added to the protocol
Guido |