Mobile Communication Networks
Lab 0: Hardware
Bei den Knoten in unserem Mesh-Netzwerk handelt es sich um Router der Firma Linksys (WRT54GS). Hierbei haben wir die vorhandene Firmware durch OpenWrt http://openwrt.org ausgetauscht. Nähere Informationen finden Sie dabei unter Programming_the_Linksys_WRT54GS_Wireless_Broadband_Router.
Für das Praktikum sei folgende sehr einfache Netztopologie für eine Multi-Hop Mesh-Netzwerk gegeben (siehe Abbildung):
Erkennbar hierbei ist, dass Knoten WRT6 direkt mit Knoten WRT7, jedoch nicht direkt mit Knoten WRT8 kommunizieren kann (er benötigt die Hilfe von Knoten WRT7). Als Routing-Protokoll haben wir das Dynamic Source Routing (http://www-2.cs.cmu.edu/~dmaltz/dsr.html ) Protokoll auf Layer 2 (Sicherungsschicht) prototypisch implementiert. Dieses soll auch im Praktikum verwendet werden.
Der Zugriff auf die Router erfolgt über telnet:
zubow@linux:~> telnet wrt6
Lab 1: Cross-Compilation
Dieses Praktikum soll Ihnen einen Einblick in die Entwicklung von Software für Embedded Devices (Cross-Compilation) geben. Hierbei werden Sie mit Hilfe von OpenWrt Software für WRT54GS entwickeln. Zu diesem Zweck haben wir eine Linux-Entwicklungsumgebung (Toolchain, ect.) aufgebaut. Nähere Informationen dazu finden Sie unter Using_StandardizedDevelopmentEnvironment.
Für das Praktikum kann die Toolchain wie folgt gebaut und verwendet werden:
OpenWrt-Quellen
Die Quellen des OpenWRT-Projektes können über cvs abgerufen werden:
cvs -d:pserver:anonymous@openwrt.org:/openwrt login cvs -d:pserver:anonymous@openwrt.org:/openwrt co buildroot
Benötigte Tools/Bibliotheken
Damit sich die Toolchain übersetzen lässt, werden die folgenden Tools bzw. Bibliotheken benötigt:
- wget, tftp
- cvs, subversion
- gcc, gcc-c++, bison, flex
- patch, gettext
- autoconf, automake
- zlib-devel
OpenWRT-Build-Prozess
Für die spätere Verwendung von Click wird ein C++-Compiler benötigt. Daher ist die folgende Änderung im $OPENWRT/buildroot/Makefile vorzunehmen:
INSTALL_LIBSTDCPP:=true
Sollten alle benötigten Bibliotheken vorliegen, so kann OpenWRT mit Hilfe von make gebaut werden:
linux:/home/wrt/buildroot/# make
Hinweis: Der initiale Build-Prozess ist sehr zeitaufwändig.
Andere Ansätze
Verwendung von CrossTool
Zugriff vom WRT auf Bibliotheken/Tools
Der (Flash-)Speicher auf den WRTs ist nicht nur limitiert, sondern auch extrem langsam. Für den Entwicklungsprozess kann man auf den WRTs Verzeichnisse via NFS mounten:
@wrt6:/# mount MY_NFS_SERVER:/share/ /mnt/share -o nolock
Lab 2: Click
http://www.pdos.csail.mit.edu/click/click.gif
Click ist ein vom MIT entwickelter modularer Software-Router. Mit Hilfe der umfangreichen Click-API lassen sich schnell neue Router-Konfigurationen entwickeln. Auch wir werden uns bei der Entwicklung auf Click stützen.
Lab 3: Voice Over IP (VoIP)
SIP-API http://developers.sun.com/techtopics/mobility/apis/articles/sip/