At present, a node does nothing to refine or improve its routing table 
when a DNF is received - nodes only learn from announcements, and 
sucessful data replies.

I propose that we make DNFs more useful to the network.  I have two 
proposals, call them A and B.  A is pretty safe, B is more powerful but 
might help someone learn things about the network that we don't want 
them to know.

For both A and B, when a node initiates a DNF response, it includes in 
its response the closest key in its datastore to the one being sought.  
In proposal B, it also includes its own reference.

As the DNF passes back along the request chain, the nodes through which 
it is passed do several things:

1) Check to see if they have a key that is closer to the one being
sought than the one in the DNF message, if so they replace that key with
the closer one and forward on the DNF.  In proposal B - they also
replace the reference with their own with, say, 90% probability if they
had a closer key, or 10% probability if they didn't.

2) The key in the entry in the datastore which was used to route the
failed request in the first place is then replaced by the key passed
back in the DNF (unless a closer reference was found locally in step 1).

In proposal B, the reference in that entry is also replaced by the 
reference passed back in the DNF, achieving a form of path compression 
similar to that in DataReplies.

Thoughts?

Ian.

-- 
Ian Clarke                ian@[freenetproject.org|locut.us|cematics.com]
Latest Project                                 http://cematics.com/kanzi
Personal Homepage                                       http://locut.us/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 232 bytes
Desc: not available
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20021121/2d386672/attachment.pgp>

Reply via email to