[Babel-users] [babel] RFT: Babel RTT extension in Bird

Juliusz Chroboczek jch at irif.fr
Sat Apr 30 12:32:47 BST 2022


>> Yes, it would make sense.  The reason why we calculate an exponential
>> average is that it is cheaper to compute, and works quite well in
>> practice.  The goal here is not to compute an accurate metric, it is to
>> reliably choose the best route: the metric only needs to be accurate
>> enough to ensure that the right route is being picked.

> I guess that how much that works in practice depends on many circumstances.
> 
> For example, consider this case: a mobile device connected by wifi to
> local AP, with VPNs to two endpoints, one local (< 1ms base latency), one
> in different town (~10ms base latency), but the communication is subject
> to wifi latency, which is noisy (mostly ~1ms, but in <5% cases there is
> 100-1000ms spike). Then both exponencial running averages are random
> variables with expected value shifted by 10 ms, but with big enough
> variance than it may often come out in reverse.

It's a little more complicated than that: we don't directly add the RTTs,
we map the smoothed RTT to a a cost (the mapping is not linear), then add
the resulting costs.  As I've said: we've done a lot of tweaking to make
it stable, but unfortunately I don't understand why it works as well as it
does.

Neither disagreeing nor agreeing with your suggestion: I willingly confess
that I don't understand why our algorithm work as well as it does, all I'm
able to do is test, somebody smarter will need to do the theoretical analysis.

-- Juliusz



More information about the Babel-users mailing list