Bug #4712
closed
Slow convergence of Hyperbolic routing in Mini-NDN
Added by Ashlesh Gawande over 6 years ago.
Updated almost 6 years ago.
Description
For the 42 node current testbed topology, running under hyperbolic routing with security, convergence does not happen in 120 seconds like Link State routing running under the same parameters.
Some nodes are unable to fetch the data successfully from few of the other nodes because of the following error:
From afa nlsr.log:
Failed to fetch LSA: /localhop/ndn/nlsr/LSA/bupt-site/%C1.Router/cs/bupt/NAME,
Error code: 3, Message: Segment validation failed: Cannot retrieve certificate
(Cannot fetch certificate after all retries `/ndn/bupt-site/%C1.Router/cs/bupt/nlsr/KEY/%24%1E%09%01%11%5D%2B%5D`)
It is after the next LSA refresh (1800 seconds by default) that they are able to successfully fetch the data.
Files
NLSR multicasts an interest for LSAs to neighbouring routers after it is informed by sync.
After getting the LSA data, direct certificate fetcher sends interests for certificates back to the face where the data came from.
If there is a NoRoute NACK, direct certificate fetcher tries three more times before giving up (sending another interest immediately upon NACK).
After NLSR is informed that segment fetcher has failed, it schedules another interest in 4 seconds (in case the reason is timeout, the next interest is sent immediately).
This interest is never seen on the network - it is answered by the content store every time because the freshness of the LSA data is equal to LSA refresh time which by default is 30 minutes. All the interests from direct certificate fetcher are directed towards the content store resulting in failure to fetch the certificates.
Setting the LSA data freshness to 4 seconds resolves this issue.
Certificate direct fetch sends two interests for certificates:
- Interest with face id
- Interest to the network
Interest to the network always results in a NoRoute.
Interest with face id can hit the content store if LSA data has got the local content store but other routers are not yet ready to serve the certificates (delay in registering prefixes in NFD).
Since lowering the LSA data freshness from LSA refresh lifetime is not acceptable because no new data is expected before that, two other solutions are:
NLSR should only send the LSA data when registration of certificate prefixes is successful: requires some changes in NLSR to achieve this Have no control over the content store
Create our own certificate direct fetcher that does not send an interest to the network as a back up, use the segment fetcher to fetch the certificate, and re-schedule the fetch on Nack using the same face (warn if face is that of content store) till it is successful.
- Related to Feature #4718: Use exponential retry on nack in CertificateFetcherFromNetwork added
- Status changed from New to Closed
- Target version set to v0.5.0
- % Done changed from 0 to 100
Also available in: Atom
PDF