Babel is a loop-avoiding distance-vector routing protocol for IPv6 and IPv4 with fast convergence properties. It is based on the ideas in DSDV, AODV and Cisco's EIGRP, but is designed to work well not only in wired networks but also in wireless mesh networks, and has been extended with support for overlay networks. Babel is an IETF Standard.
See download below for source and binaries.
There are currently two production quality implementations of Babel: babeld, the reference implementation, and a high-quality implementation included in BIRD.
Babeld can be downloaded from my download area. You may download the latest (possibly unstable) sources using git:
git clone git://github.com/jech/babeld.git
BIRD may be downloaded from the BIRD website.
M. Boutier and J Chroboczek. Source-Specific routing. In IFIP Networking 2015. 2015.
B. Jonglez, M. Boutier and J. Chroboczek. Delay-based routing. Unpublished draft. 2015.
M. Abolhasan, B. Hagelstein, J. C.-P. Wang. Real-world performance of current proactive multi-hop mesh protocols. Asia-Pacific Conference on Communication (APCC 2009), Shanghai, China. 2009.
David Murray, Michael Dixon and Terry Koziniec. An Experimental Comparison of Routing Protocols in Multi Hop Ad Hoc Networks. In Proc. ATNAC 2010. 2010.
Jesús Friginal, David de Andrés, Juan-Carlos Ruiz, Pedro Gil. Towards Benchmarking Routing Protocols in Wireless Mesh Networks. In Ad Hoc Networks, Volume 9, Issue 8, November 2011, Pages 1374-1388.
María E. Villapol et al. Performance comparison of mesh routing protocols in an experimental network with bandwidth restrictions in the border router. Revista de la Facultad de Ingeniería U.C.V., 28:1. 2012.
Jesús Friginal, Juan-Carlos Ruiz, David de Andrés and Antonio Bustos. Mitigating the Impact of Ambient Noise on Wireless Mesh Networks Using Adaptive Link-Quality-based Packet Replication. DSN'2012:1-8. 2013.
Antonio Guillen-Perez, Ana-Maria Montoya, Juan-Carlos Sanchez-Aarnoutse and Maria-Dolores Cano. A Comparative Performance Evaluation of Routing Protocols for Flying Ad-Hoc Networks in Real Conditions. 2021.
To contact us, please write to the Babel users mailing list. You may browse the archives on Alioth or at mail-archive.com.
If you do not have brains you follow the same route twice. — Greek proverb
Babel's main features are the following:
Babel works efficiently on ordinary wired networks. When babeld detects a wired link, it enables a number of optimisations that make it as efficient as traditional routing protocols. (These optimisations need to be manually disabled on exotic links, such as point-to-multipoint VPNs.)
When it detects a wireless link, babeld disables all optimisations and uses a metric based on packet loss that is designed for the 802.11 (WiFi) MAC (the ETX metric). This slows down convergence, but ensures that the peculiar characteristics of wireless links do not break routing.
Babel is robust in the presence of mobility: in a pure mesh network, Babel never creates a routing loop, and in a prefix-based network, all routing loops are guaranteed to disappear as soon as one update went around a loop (there is no "counting to infinity").
Babel enjoys fairly fast convergence. Since Babel uses triggered updates and explicit requests for routing information, it usually converges almost immediately after the link quality measure has completed. This initial solution is not optimal — after converging to a merely satisfactory set of routes, Babel will take its sweet time before optimising the routing tables. In the presence of heavy packet loss, converging on an optimal set of routes may take up to 40 seconds or so (with the default update interval of 16 seconds).
Babeld can optionally take radio frequency into account in order to avoid interference. This dramatically improves performance on multi-frequency networks.
The Babel-RTT protocol extension allows Babel to optimise routing in overlay networks. This is described in detail in Baptiste Jonglez' report and in a RTT-based routing draft article. Search for "enable-timestamps" in the manual page.
Babel is a hybrid IPv6 and IPv4 protocol: a single update packet can carry both IPv6 and IPv4 routes (this is similar to how multi-protocol BGP works). This makes Babel particularly efficient and simple to manage on double-stack (IPv6 and IPv4) networks.
Babel has support for source-specific routing (sometimes called SADR), which allows a form of multihoming without cooperation from the ISP. This is described in detail in Source-Specific routing.
In addition to babeld and BIRD (see above), there exist the following incomplete implementations of Babel: