We need some statistics. In particular it would be helpful to be able to know the average number of hops taken by a request or an insert. Since the HTL is reset when we get closer to the destination, and since we don't always decrement at max and min, we can't just look at the HTL on completed requests.
I had at first thought we could include a counter on requests; we initialize it to a random value, and then increment it on each hop. This does not give away the request sender. Unfortunately, it does give away the node which replied to the request. How important is plausible deniability on whether or not your node forwarded the request or answered it from its own store? I suppose it could be fairly important if we are dealing with specific prohibited content? The thing is, they can probably determine whether your node had it in store before receiving the request anyway; they can simply see how long it took for your node to respond. Another possibility would be to make a hop count request; this would not fetch any actual data, but would only count hops. It has a destination location, and an HTL and best seen location exactly as a request. It stops when an insert would stop - when it can't find any more nodes closer to the target. And it returns the location of the closest node found, and the number of hops it took to find it. We could limit its potential for DoS attacks by simply limiting hop count requests to one per minute per connected node; any more are rejected. Obviously this could be spoofed, (just like any other hop counter), but it would be useful: - We could determine how many hops a typical insert goes, even if we couldn't do the same for a typical request. - We could see if this varies dramatically across the keyspace. - We could probe different parts of the keyspace to see what the density of nodes is. This gives us a new way to estimate the size of the network, and it lets us investigate the persistent doubts about clustering. Actually, we may be able to estimate the average request length: All we have to do is divide the proportion of incoming requests which succeed by the proportion of incoming requests which succeed on this particular node. I will implement this soon. However, hop count requests still look quite interesting to me. Any thoughts? -- Matthew J Toseland - toad at amphibian.dyndns.org Freenet Project Official Codemonkey - http://freenetproject.org/ ICTHUS - Nothing is impossible. Our Boss says so. -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 189 bytes Desc: Digital signature URL: <https://emu.freenetproject.org/pipermail/devl/attachments/20060804/5e5f3293/attachment.pgp>
