All of lore.kernel.org
 help / color / mirror / Atom feed
From: elektra <onelektra@gmx.net>
To: The list for a Better Approach To Mobile Ad-hoc Networking
	<b.a.t.m.a.n@open-mesh.net>
Subject: Re: [B.A.T.M.A.N.] Masters thesis
Date: Thu, 30 Apr 2009 13:41:08 +0200	[thread overview]
Message-ID: <49F98E54.5030602@gmx.net> (raw)
In-Reply-To: <49F96044.4070207@informatik.haw-hamburg.de>

Hello Maik!


> Was the protocol implemented yet on a simulation platform like omnet?
> For comparing purposes (for example with OLSR) it could be interesting
> to simulate the protocol.
>   


There is no implementation of Batman for NS2 or Omnet, as far as I'm 
aware of. However there is a paper about the simulation of Batman-0.1 
(Mark I of the Batman algorithm without bidirectional link check) and 
Batman-0.2 (Mark II of the Batman algorithm with bidirectional link 
check): http://www.olsr.org/~aaron/olsr/batman_report.pdf

Note: The paper is nice, the results were encouraging but the study is 
dated. The lack of a bidirectional link check was a known limitation of 
Mark I when we just wanted to do a quick and dirty test to prove the 
feasibility of the Batman idea. So the first version we expected to work 
well in the real world was Mark II. Mark II was replaced quickly by Mark 
III because as Axel Neumann has pointed out there was a bug in the 
algorithm in both Mark I and Mark II which can cause routing loops.

Addressing this problem in Mark III also had the benefit to reduce 
protocol overhead. Mark III works nice, but we found that the link 
metric we used still had a flaw. All Batman algorithms can route 
asymmetric, which is great. However Mark I-III tend to prefer routing 
paths from which they *receive* protocol messages well as paths in the 
opposite direction to *transmit* payload. This can be unfortunate, 
because there could be an alternate routing path which works better in 
transmit direction than the path which works better in receive 
direction. In Mark II and III we tried to address this via the 
bidirectional link check, to achieve a symmetric ETX like routing 
behavior. This mitigated the problem but didn't solve it completely. 
Also it was not what we really were aiming for: Routing asymmetric in 
the transmit direction if this is the best routing path to go. Hence 
Mark IV was introduced.

We have tested and compared Olsrd 0.5.0 and Batman-Experimental (Mark IV 
) in the "Massive Mesh" wireless indoor grid at the Meraka institute of 
the CSIR in Tshwane (aka Pretoria) in South Africa. At the time we ran 
the tests Batman-0.3 was pretty much in its alpha state so we were 
concentrating on the Batman-Experimental branch because the 
implementation was more mature. (Batman-0.3.X and Batman-Experimental 
represent two different ideas for Mark IV of the Batman algorithm.)

http://researchspace.csir.co.za/dspace/bitstream/10204/3035/1/Johnson3_2008.pdf


Note that time has passed over this study as well. Olsr fans will point 
out that they have improved the code much since the study and fixed at 
least one crucial bug (ETX was not only calculated based on Hello packet 
loss in Olsrd, as I had suggested it to Thomas Lopatic when we were both 
designing the ETX/LQ implementation in Olsr in 2004. Thomas had decided 
to use all protocol messages to calculate TQ/NLQ in the implementation 
of olsr-0.4.8, so the LQ/NLQ values would change quicker than I expected 
- depending on the number of TC messages floating around in the network)

However some general conclusions still remain the same if you compare 
both protocol ideas:

* Batman-IV floods protocol messages selectively i.e. only on paths 
following the best route for each destination. Olsr has to flood all 
topology messages everywhere - the only optimization being the idea of 
multipoint relays. (MPR redundancy was set to 7 MPRs per node, since I 
tried my best to avoid routing loops).  However - enabling multi-point 
relays or not - Olsr tries to sync every topology update with all nodes. 
Since the grid has thousands of alternate propagation paths to 
redundantly flood messages the protocol overhead is drastic, because 
there is not much protocol message loss.

* Olsr needs more protocol information (topology data) to operate than 
Batman.

* We did the best to stop Olsr from looping payload packets - i.e. send 
topology updates redundant - however this comes at a price. In order to 
avoid loops the topology information has to be synced with all OLSR 
nodes. Despite the high level of redundancy less than 70% of the routes 
used were symmetric. This is a clear indication that the topology data 
bases were not in sync, because ETX would route symmetric at all times 
if the topology data is in sync. Despite the great deal of of effort to 
sync topology information Olsr still had transient routing loops under 
heavy payload. It would be interesting to see how a current Olsr behaves 
today, since the fix of the fore mentioned issue.

* Batman-IV didn't loop, no matter how hard we saturated the network 
with payload traffic. This is not a surprise because it was the main 
goal of the algorithm design. Transient routing loops were the main 
motivation for Thomas and me to drop development of Olsr.


> In respect to IPv6: What is the problem with IPv6? 


No problem regarding the protocol - we are just missing IPv6 support so 
far in the OSI-Layer 3 implementations of Batman (both Experimental and 
0.3.X). Batman-Advanced doesn't have this problem, as a Layer 2 protocol 
it can carry any protocol you like.


> The batman protocol
> self should work with ipv6? 

Absolutely.

> As payload it could be realized by an tunnel
> too.

Yes. As a side-note: Batman uses tunnels for Internet connectivity to 
address the problem of gateway switching when NAT is used on the 
gateway. With IPv6 NAT on gateways should become superfluous one sunny 
day :-)


Cheers,
elektra

  parent reply	other threads:[~2009-04-30 11:41 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-27 14:42 [B.A.T.M.A.N.] Masters thesis Vojislav Marinkovic
2009-04-27 16:44 ` elektra
2009-04-27 17:41   ` Vojislav Marinkovic
2009-04-30  8:24   ` Maik Wodarz
2009-04-30  8:46     ` Marek Lindner
2009-04-30 11:41     ` elektra [this message]
2009-04-29  2:59 ` Marek Lindner
2009-05-01 10:51   ` Vojislav Marinkovic
2009-05-01 15:11     ` elektra
2009-05-01 15:32       ` Troy Benjegerdes

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49F98E54.5030602@gmx.net \
    --to=onelektra@gmx.net \
    --cc=b.a.t.m.a.n@open-mesh.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.