Meshing
Aus wiki.freifunk.net
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.
Inhaltsverzeichnis |
[Bearbeiten] 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.
[Bearbeiten] 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, das 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.
[Bearbeiten] 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)
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] 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).
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] 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.
[Bearbeiten] 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.
OLSRD gibt es auch für den PC oder Mac unter: http://www.olsr.org/index.cgi?action=download
[Bearbeiten] 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:
- Freifunk (bzw. in Österreich: Funkfeuer) mit eigener Firmware in einigen Städten
- 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. Auf vielen Plattformen 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.
- OLSR-NG - weiterentwicklung von OLSR. Abwaertskompatibel
- 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
[Bearbeiten] 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-NG blog
- 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
[Bearbeiten] 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

