[Babel-users] Bable vs Linux Mesh mode.

Juliusz Chroboczek jch at pps.univ-paris-diderot.fr
Wed Nov 19 15:11:38 UTC 2014


Hi Ian,

I've been refraining from answering in order to let somebody less biased
reply, but nobody has taken the bait.

> I've been looking to compare Babel with 802.11s, Batman-adv, smesh and
> olsrd2 (Byzantium seems to use Babel so I am ignoring this.)

I won't speak of dmesh, since it is not a routing protocol -- it's a full
architecture that integrates a lot of things.  They currently use their
own (link-state) routing protocol, but there's no reason I can see why
smesh couldn't be built over Babel.

Let's first compare 802.11s and Babel -- they're very different beasts,
and fill different ecological niches.  In fact, you could run both in the
same network, and they'd work fine together.

802.11s works at the link layer: it's invisible at the network layer, the
network layer thinks that all the 802.11s nodes are direct neighbours.
802.11s was designed for small networks -- it's limited to 25 nodes per
mesh.  There are fundamental design choices that prevent it from scaling
much beyond that (it requires that all the nodes in the mesh have
synchronised timestamps, for example).

Babel works at the network layer, and it's link-layer agnostic: it will
work over any reasonable link layer, including Ethernet, Wifi, Homeplug,
GRE tunnels, VPNs, and even 802.11s.  (But not RFC 1149, which only
supports a very messy form of multicast.)

Because it works at the network layer, Babel is not entirely transparent
-- DHCP, IPv6 autoconf and DNS-SD don't work for Babel nodes.  That's why
we need AHCP or HNCP, and DNS-SD proxies.

On the other hand, Babel is much more scalable, robust and flexible than
802.11s.  Babel is designed to scale to thousands of nodes in a single
routing domain.  A Babel node can be configured to act as a full router
(forward packets for arbitrary third parties), stub-only (only accept
packets for itself) or anything in between (forward packets for some
arbitrary subset of destinations).  There are fully backwards compatible
Babel extensions that are smart about choosing paths in specific
topologies, such as high-diversity radio networks (Babel-Z) or overlay
networks (Babel-RTT), and more such extensions could be devised if your
topology is particularly challenging.

In short, 802.11s is great is you need a hassle-free mesh that is built
out of a small number of Wifi routers.  Babel is great is you think that
your mesh might grow larger than what 802.11s supports, or if you want to
build an efficient heterogeneous mesh (both wired and wireless networks).

As to Batman-adv -- it's a link-layer protocol, like 802.11s, but attempts
to be more robust in larger meshes (no seqno synchronisation).  It appears
to be extremely stable in practice, but suffers from somewhat slow
convergence times.  Unfortunately, the Batman-adv protocol has never been
published, so it is difficult to understand how it works.

Hope this helps,

-- Juliusz



More information about the Babel-users mailing list