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>

Reply via email to