Im Gegensatz zum WLAN-typischen Client-Server-Betrieb (ein Access Point
als Server, Endgeräte als Client), bei dem Datenpakete sternförmig vom Server
zu den Clients verteilt werden, tauschen bei Meshing die einzelnen
Rechner/Netzknoten direkt Daten miteinander aus (Peer-to-Peer- oder
Ad-Hoc-Modus). Die Routen, auf denen die Daten durch das Meshing-Netzwerk
(das Mobile Ad-Hoc Network, MANET) geschleust werden, werden dynamisch auf
Basis der Verfügbarkeit der Knoten und auf Basis der Verbindungsqualität und
-auslastung berechnet. Elektra hat zu diesem Thema einen ausführlichen
Beitrag im Chaosradio gemacht, der sehr empfehlenswert ist:
http://chaosradio.ccc.de/archive/chaosradio_express_016.mp3
Um Meshing - "das Maschen" - zu verstehen kann man sich zunächst ein
Maschennetz vorstellen. Ein Maschennetz (Mesh Network) ist ein
Nachrichtennetz bei dem jeder Knoten mit mindestens zwei weiteren Knoten
verbunden ist. Ein vollständiges Maschennetz ist vorhanden, wenn alle Knoten
unmittelbar miteinander verbunden sind. Maschennetze stellen einen nahezu
idealen Ansatz für große und skalierbare Netzwerke dar.
In der Technik versteht man unter einem Maschennetzwerk (Meshed Network) ein drahtloses Netz das sich selbstständig organisiert. Entsprechende Software ist in der Lage dynamisch nach anderen Netzwerkpartnern zu suchen. Hat sie Kontakt aufgenommen, ruft sie Informationen darüber ab wer noch im Netzwerk ist, und errechnet automatisch die besten Pfade zu vorhandenen Knoten (ad-hoc routing). Hat man etwa einen Laptop mit Wlan-Karte und Meshing-Software und trifft man auf Gleichgesinnte, baut sich das Netzwerk auf, und man kann Daten austauschen, kommunizieren, oder unter Umständen über mehrere Zwischenstationen ins Internet gelangen. Dies ist die Idee hinter freifunk-Netzwerken.
Technische Funktionsweise
Mit Mesh-Routing-Protokollen können Netze gebaut werden, die sich dynamisch den Gegebenheiten anpassen. Neue Teilnehmer werden einfach Teil des Netzes, ohne dass jemand händisch Routing-Einträge oder ähnliches machen muss. Dabei erweitert jeder neue Teilnehmer(in) das Netz, erhöht die Gesamt-Kapazität des Netzes und ermöglicht somit weiteren Zugang zu bekommen. Das entstehende Netz ist nicht hierarchisch organisiert, sondern basiert auf einem peer-to-peer Prinzip, bei dem jeder auch Pakete für andere routet (siehe PicoPeeringAgreement?).
Es gibt diverse Protokolle, die Meshing-Netzwerke realisieren, z.B. das
ältere MobileMesh? oder das neuere OLSR. Diese Protokolle ermöglichen, dass
sich die Wlan-Karten im Ad-Hoc-Modus wie Relaisstationen verhalten. Durch den
Betrieb von Relais lässt sich die Reichweite des Funknetzes sehr weit
ausdehnen. Jede Station spürt eventuelle Nachbarn auf und fragt diese, zu wem
sie noch Kontakt haben, wie gut die Verbindung ist, und so weiter. Daraus
entsteht dynamisch eine Routingtabelle. Wenn eine gewisse Menge von
Computern, auf denen das Protokoll läuft, sich in einem Gebiet aufhalten -
sich eine Mobile-Mesh-Wolke gebildet hat - ist jedes Gerät mit jedem anderen
Gerät verbunden. Mit dieser Methode lässt sich ein MAN (Metropolitan Area
Network) oder auch MANET (Mobile Ad-Hoc Network) aufbauen.
Wireless Mesh Networking ist ein vermaschtes Netz, das in einem Wireless
LAN implementiert ist. Ein Mobiles Ad-hoc-Netz (MANet?, auch Mesh Netz) ist
ein selbstkonfigurierendes Netz, das meist auf Basis eines Funknetzes
aufgebaut ist.
Innerhalb des Netzes können mobile Geräte, wie z.B.
Mobiltelefone, Kleincomputer oder Laptops, sofort eine Verbindung zueinander
aufbauen, ohne dass eine übergeordnete Infrastruktur (wie z. B. Wireless
Access Points) benötigt wird. Jedes Gerät (Knoten) dient hierbei nicht nur
als Sende- und Empfangsstation für Sprache oder Datenübertragung, sondern
auch als Router für andere Teilnehmer. Wichtig ist daher kooperatives
Verhalten, da oft knappe Ressourcen wie Rechenzeit, Energie und Bandbreite
für andere Teilnehmer bereitgestellt werden müssen. Ähnlich wie in
Peer-to-Peer-Netzen führt die Kommunikation über MANets? zu günstiger
Lastverteilung, da es keine zentralen Instanzen gibt. Die Bewegung der Knoten
erfordert aufwändige Routingverfahren, weil die Tabellen für die
Weiterleitung von Datenpaketen ständig aktualisiert werden
müssen.
Funktionsweise
- direkte Verbindung: die einzelnen Knoten sehen sich und können
miteinander kommunizieren.
- indirekte Verbindung: die einzelnen Knoten sind zum Teil so weit voneinander entfernt, dass sie nicht direkt miteinander kommunizieren können. Hierbei leiten die dazwischen liegenden Knoten die Daten weiter. Auf diese Weise kann ein fast beliebig großes, sich selbst verwaltendes Netz entstehen.
Die Vorteile von Meshing
Netzabdeckung: Jeder Knoten fungiert als "Repeater": Es wird sehr gute
räumliche Abdeckung mit WLAN erreicht.
Zuverlässigkeit: Kein Single Point Of Failure. Mehrere Knoten können
gleichzeitig Dienste wie z.B. Übergang in "den Rest des Internets" zur
Verfügung stellen; fällt ein Übergangsknoten aus, übernimmt ein anderer seine
Aufgabe.
Ressourcensparsamkeit: Jeder Knoten ist zugleich Sender, Empfänger und
Verteiler (quasi AP, Client, Repeater und Switch). Außerdem wird vom gesamten
Meshing-Netzwerk nur ein Kanal im WLAN benötigt - andere Techniken brauchen
in der Praxis meist einen Kanal pro Sendestation/AP.
Weiteres: Je nach benutztem Protokoll und Software sind andere Features wie z.B. Roaming möglich.
Die Nachteile von Meshing
Softwareanfordungen: In normalen WLAN-Geräten ist die für Meshing nötige
Software nicht in der Firmware enthalten, kann aber bei bestimmten in der
Regel Geräten auf denen Linux installiert ist, recht einfach eingespielt
werden.
Aufwand: Genügend Teilnehmer müssen vorhanden sein, um ein stabiles Netz aufzubauen, dass größere Distanzen überbrücken kann. Die Infrastruktur muss zudem gewartet werden, zum Beispiel bei Software-Updates. Diese müssen häufig zeitnah bei allen Teilnehmern im Netz erfolgen, wenn zum Beispiel Routing-Protokolle verändert werden.
Routingverfahren allgemein
Um eine zielgerichtete Weiterleitung der Daten in einem mobilen
Ad-hoc-Netz zu ermöglichen, kommen spezielle Routingprotokolle zum Einsatz.
Diese haben die Aufgabe, einen Pfad vom Quell- zum Zielknoten zu bestimmen.
Je nach verwendeter Metrik sollte dieser z. B. möglichst kurz sein, oder
möglichst gering belastete Regionen des Netzes nutzen. Weitere Anforderungen
an die Protokolle sind möglichst kleine Routingtabellen, welche ständig
aktualisiert werden müssen, wenn Knoten verschwinden, sich bewegen oder neue
erscheinen. Die Zeit und die Anzahl der Nachrichten, die zum Auffinden einer
Route benötigt werden, sollten möglichst gering sein.
Auf Grund der speziellen Bedingungen in einem mobilen Ad-hoc-Netzwerk
können die üblicherweise im Internet eingesetzten Routingalgorithmen nicht
verwendet werden. Die wesentlichen Gründe hierfür sind:
- Knoten haben kein Vorwissen über die Topologie des Netzwerkes, sie
müssen diese selbst erkunden
- keine zentralen Instanzen zum Speichern von
Routinginformationen
- Mobilität der Knoten und damit verbundener ständiger
Topologiewechsel
- Wechselnde Metrik der Übertragungsstecken z.B. durch
Interferenzen
- Beschränkte Ressourcen der Knoten (z.B. Systemleistung, Energieverbrauch)
Welche Protokolle gibt es für Meshing?
Viele ;-). Wikipedia-Übersicht: http://en.wikipedia.org/wiki/Ad_hoc_protocol_list
Weit verbreitet sind OLSR und das ältere MMRP. Die meisten Freifunk-Netze basieren ebenfalls auf OLSR.
Routing-Protokolle
Es gibt mehr als 70 konkurrierende Entwürfe für das Routing der Pakete
durch ein Mobiles ad-hoc / Maschennetzwerk. Eine Klassifikation der
Routingprotokolle kann durch Anzahl der Empfänger getroffen
werden:
- unicast Routing - Ziel der Datenübertragung ist ein einzelner
Knoten
- multicast Routing - Ziel sind mehrere Knoten
- geocast Routing - Ziel sind alle Knoten in einem bestimmten
geografischen Bereich
- broadcast Forwarding - Ziel sind alle Knoten in der Reichweite des
Senders
Eine andere Möglichkeit der Klassifikation besteht in der Einteilung der
Protokolle hinsichtlich des grundsätzlichen Ansatzes. Diese Ansätze werden im
Folgenden vorgestellt.
positionsbasierte Routingverfahren
Positionsbasierte Routingverfahren nutzen Informationen über die genauen
Positionen der Knoten. Diese Informationen werden z. B. über GPS-Empfänger
gewonnen. An Hand dieser Informationen lässt sich der beste Pfad zwischen
Quell- und Zielknoten bestimmen. Ein Beispiel für ein positionsbasiertes
Routingprotokoll ist LAR.
topologiebasierte Routingverfahren
Die topologiebasierten Routingverfahren kommen ohne genaue Informationen
über die Positionen der Knoten des mobilen Ad-hoc-Netzes aus. Ihnen genügen
Informationen über die Nachbarschaftsbeziehungen der Knoten, also welche
Knoten eine direkte Verbindung haben und somit ohne die Hilfe anderer Knoten
miteinander kommunizieren können. Diese Informationen werden meistens durch
den Versand so genannter HELLO-Pakete gewonnen.
proaktive Verfahren
Proaktive Routingverfahren bestimmen die zu verwendenden Pfade zwischen
zwei Knoten bereits bevor diese tatsächlich benötigt werden. Sollen dann
tatsächlich Daten verschickt werden, so muss nicht auf die Bestimmung des
Pfads zum Zielknoten gewartet werden. Nachteilig ist dafür jedoch, dass diese
Verfahren viele Kontrollpakete verschicken um Pfade zu bestimmen, die
womöglich später nicht benötigt werden. Ein Beispiel für ein Protokoll aus
dieser Klasse ist das "Optimized Link State Routing" (OLSR).
reaktive Verfahren
Im Gegensatz zu den proaktiven Verfahren bestimmen reaktive
Routingverfahren für mobile Ad-hoc-Netze die benötigten Pfade zwischen zwei
Knoten erst, wenn diese tatsächlich benötigt werden. Daraus ergibt sich, dass
das erste Datenpaket einer Verbindung erst mit einer geringen Verzögerung
versendet werden kann, da zunächst auf den Abschluss der Routenbestimmung
gewartet werden muss. Dafür werden allerdings auch nur Kontrollpakete
versendet, wenn tatsächlich Daten verschickt werden und dies zur
Routenbestimmung notwendig ist. Dies schlägt sich positiv im Energieverbrauch
der Knoten nieder. Das Protokoll "Ad hoc On-Demand Distance Vector" (AODV)
ist ein Beispiel für ein Protokoll dieser Kategorie.
hybride Verfahren
Hybride Verfahren kombinieren proaktive und reaktive Routingverfahren.
Dabei soll das Ziel erreicht werden, die Vorteile der beiden Ansätze in einem
neuen Routingprotokoll zusammenzufassen. Beispielsweise kann in einem lokal
beschränkten Bereich ein proaktives Verfahren eingesetzt werden, während für
weiter entfernte Ziele ein reaktives Verfahren eingesetzt wird. Dies
vermindert die Belastung des Netzes durch Kontrollpakete, die bei einem rein
proaktiven Verfahren über das gesamte Netz versendet würden. Trotzdem stehen
für lokale Ziele sofort Pfade zur Verfügung, ohne dass auf deren Bestimmung
wie bei einem rein reaktiven Verfahren gewartet werden müsste. ZRP ist ein
Routingprotokoll, das diesen Ansatz umsetzt.
Kommerzielle Bedeutung
2004 ist das Thema noch ziemlich akademisch und es existieren fast ausschließlich einige Pilotprojekte. Die Übernahme von MeshNetworks?, einem führenden Anbieter im Bereich mobiler Ad-hoc-Netze, durch Motorola Ende 2004 zeigt, dass die Industrie hier mit stark wachsenden Märkten rechnet.
Welche Software gibt es für Meshing?
OLSRD dürfte zur Zeit die empfehlenswerteste Implementierung sein (OLSR-Protokoll). Für den Linksys WRT54G(S) gibt es dafür hier die FreifunkFirmware. Etwas älter ist MobileMesh?, eine Implementierung des Protokolls MMRP.
Welche Projekte gibt es?
In Berlin, Rostock, Weimar und Dresden laufen zur Zeit die größten öffentlichen Meshing-Experimente. Beteiligen können sich alle, die einen WLAN-fähigen Computer haben oder über einen linuxfähigen Access Point verfügen. Mehr Infos findet sich unter OlsrFreifunkNet.
Meshing-Projekte:
- Elektra http://www.scii.nl/~elektra/
- FLI4L
http://informatik.hu-berlin.de/~nachtiga/mobilemeshdisk/
- MTX-1 http://freifunk.net/wiki/Mtx1
- Pebble Linux http://www.nycwireless.net/pebble/
- 6mesh http://sixmesh.sourceforge.net,
http://www.golem.de/0309/27551.html,
http://w3.antd.nist.gov/wctg/manet/
- Protean Forge, die US-Navy Implementierung des OSLR-Protokolls. Für
viele Platformen lauffähig z.B. Linux, Windows und MacOSX?,
http://pf.itd.nrl.navy.mil/projects.php?name=olsr
- ReseauCitoyen? http://reseaucitoyen.be/ (en français)
AODV use at a city level with no restrictions to
join.
- OLSRD http://www.olsr.org Neuere Software zur Implementierung von
MANETs?. Benutzt das OLSR-Protokoll. Für Windows, Linux (auch WRT54G etc.)
verfügbar.
- Mobilemesh funktioniert mit http://ipmesh.sourceforge.net Version 1.1 auch unter Windows 2000! Unbedingt muss in der Registry folgender Schlüssel editiert werden: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters den Wert IPEnableRouter auf 1 setzen
Siehe Auch
- Access Point
- Freifunk Firmware - unsere Plug-and-Play Firmware mit OLSR und
Web-Oberfläche für den Linksys Note: For english version see
Freifunk Firmware (English). Para la versión en español consulte [Freifunk
Firmware (Español)].
- OLSR
- OLSR mit Windows - für die Teilnahme in OLSR-Netzen mit dem Computer
oder Laptop
- OLSR-Software-Download unter: http://www.olsr.org
- VPN - Virtual Private Network (dt.: Virtuelles Privates Netzwerk)
- OpenSSL
- WLAN und WPAN
- Tunnel - Eine Verbindung der Netze über einen Tunnel zwischen
VPN-Client und VPN-Server
- IP-Netze - ein Überblick über die verwendeten Netzbereiche der Communities
Weblinks
- http://www.ietf.org/html.charters/manet-charter.html
IETF MANET group
- http://www.meshnode.org Meshnode Open source mesh router
projekt
- http://www.pdos.lcs.mit.edu/roofnet/ MIT Roofnet A
research project at MIT that provides software
- http://www.cuwireless.net CUWiN? Free Ad-Hoc
Open-Source Mesh Software utilizing HSLS
- http://www.kingsbridgelink.co.uk/ Kingsbridge Link
Wireless OSPF Mesh Routing with Central Admin Tools and Mapping
Engine
- http://www.locustworld.com/ Locustworld Open Source
Mesh Networking software
- http://mcabiling.persozone.net/mobilemesh/ Mobile
Mesh Networking] News and info on mesh networks
- http://wifinetnews.com/archives/003972.html A
discussion of the scalability problems of wireless meshes, and possible
solutions
- http://www.pdos.lcs.mit.edu/grid/ The Grid Ad Hoc
Networking Project
- http://www.kiyon.com/ Kiyon Wireless Autonomic
Networks
- http://www.meshnode.org Meshnode Open source mesh router projekt
- Meshing Audiocast von Elektra beim Chaosradio
http://chaosradio.ccc.de/archive/chaosradio_express_016.mp3
- http://wire.less.dk/wiki/index.php/MeshLinks
- http://www.ietf.org/html.charters/manet-charter.html
-
http://www.docs.uu.se/docs/research/projects/selnet/lunar/
- http://en.wikipedia.org/wiki/Ad_hoc_protocol_list
- http://wiki.c-base.org/coredump/MobileMesh
-
http://www.tu-chemnitz.de/linux/tag/2004/workshops/detail.html?idx=113

