> I think I understand.  If there is the potential for a loop (advertised
> distance >= babel router’s former distance), babel will wait for the
> next sequenced route from the source.

Exactly.

>So, the loop-free guarantee is at the expense of potentially faster
>convergence.

In principle, yes.  However, that's where the mechanism outlined in slide
17 kicks in -- the starving router will send a request for a sequence
number increase, which follows the potentially looping route.  There are
two cases:

  * if the route was in fact non-looping, the request will reach the
    source, which will increase its sequence number straight away and
    trigger an update;
  * if the route was in fact looping, then the request will loop just
    once before it is discarded by duplicate detection.

The result is that, in the absence of packet loss, you clear the
starvation in time 20ms per hop (the amount of jitter applied to forwarded
requests).  With a five-hop route, that's just one tenth of a second.

With lossy links, you're going to get timeouts, which will indeed slow
down reconvergence.  See however the experimental data in

  http://ro.uow.edu.au/cgi/viewcontent.cgi?article=1747&context=infopapers

where, in a relatively small but lossy mesh network, an older version of
Babel consistently exhibited packet delivery above 99% and convergence
times on the order of three hello intervals (which is the expected time
needed for the wireless link quality estimator to converge).

(And if you think that this looks like EIGRP's active phase -- you're
right, except that it's less brittle in the presence of packet loss, since
there's no requirement for a global synchronisation, and provides weaker
time bounds in the presence of packet loss, since there's no requirement
for a global synchronisation.  Sometimes you're stuck between a rock and
a hard place.)

-- Juliusz

_______________________________________________
homenet mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/homenet

Reply via email to