Entwickelt wurde hauptsächlich auf Fedora Core 1 mit Updates und Kernel 2.4.22 mit dem Compiler gcc Version 3.3.2.
In Tabelle 7.1 kann man die
benötigten Bibliotheken für
''netview'' und ''test_client'' ablesen.
Unter Red Hat 7.3 stehen die Minimal-Anforderungen.
Zur Erstellung eines Videos aus der Bildfolge von ''netview'' wird im Skript ''video.sh'' zusätzlich folgende Software genutzt:
Die benötigte Bibliotheken für die Testprogramme sind in Tabelle 7.2 aufgeführt.
|
Die Bibliotheken (GL/GLU,
GLUT ,
iconv (für libxml),
libpng
,
libxml2
,
pcap
, zlib) sind
alle auch für Windows verfügbar.
Die Strukturen der Paketköpfe sind in der Windows-Entwicklungsumgebung
nicht standardmäßig eingebaut. Diese sind aber alle auch in der
Glibc
enthalten.
Deshalb habe ich aus dieser Bibliothek einige Dateien entnommen und angepasst.
Diese sind in der Datei ''winincludes.zip''
zusammengefasst. Nur mit diesen Header-Files kann man das Programm ordentlich
übersetzen.
Die Windows-Version ist noch nicht ganz so fehlerarm wie die Linux-Version, vor allem weil sie seltener getestet wurde (siehe 7.8). Es werden aber fast alle Funktionen unterstützt. Ausnahme bildet nur die Umwandlung der gespeicherten Bildfolgen in Videos, sie dürfte nur in einer Cygwin-Umgebung laufen (siehe 7.1).
Wenn die Systemvoraussetzungen erfüllt sind, kann man mit der Installation beginnen.
Nach der Installation liegen folgende Dateien im Pfad ''/usr/local/'':
bin bin/netview bin/test_client share/netview/ share/netview/bin share/netview/bin/start share/netview/bin/video.sh share/netview/COPYING share/netview/count_lines share/netview/doxy-konfig share/netview/etc share/netview/etc/keycodes.txt share/netview/etc/menu.xml share/netview/INSTALL share/netview/Makefile.old share/netview/README share/netview/README_GERMAN share/netview/README_GERMAN/handbuch.html share/netview/README_GERMAN/img53.png share/netview/README_GERMAN/img54.png share/netview/README_GERMAN/img55.png share/netview/README_GERMAN/img7.png share/netview/test share/netview/test/client_packets.xml share/netview/test/netview_schema.xml share/netview/test/route_net.xml share/netview/test/saved_network.xml
Zum Ausführen des Programms sollte man nach ''/usr/local/share/netview'' wechseln und dann ''netview'' (bzw. ''../../bin/netview'') starten. Nur so kann das Programm die Dateien zum Menüaufbau und der Tastaturbelegung (in ''etc'') finden. Im ''test''-Verzeichnis liegt das XML-Schema (''netview_schema.xml'') für den Menüaufbau (''menu.xml''), die Netzwerkbeschreibungen (''route_net.xml'' und ''saved_network.xml'') und die Paketbeschreibung (''client_packets.xml'').
Die Navigation durch die 3D-Welt des Programms geschieht per Tastatur und/oder Maus. Nur mit der Tastatur kann man sich in Einzelschritten bewegen. Die Maus erlaubt eine fließendere Bewegung im Raum. Umgesetzt sind Drehung um die eigene Achse zur Richtungsanpassung, Verschiebung des Standpunktes (mit Beibehaltung der Richtung) und die Fortbewegung in die aktuelle Richtung mit variabler Geschwindigkeit im 3D-Fenster. Zusätzlich wird noch eine genaue Positionierung über die Kartenansicht angeboten (Blick von oben).
Die Verschiebung des Standpunktes erfolgt mit Shift-Taste und einer Mausbewegung. Da die Maus nur zweidimensional ist, kann man sich nur in je zwei Achsen bewegen. Einmal links/rechts und vor/zurück (linke Maustaste) oder sonst links/rechts und hoch/herunter (mittlere Maustaste). Die Länge der Verschiebung wird entsprechend der Mausbewegung skaliert in die 3D-Welt übernommen.
Bei der Fortbewegung in die aktuelle Richtung wird die Geschwindigkeit durch die Mausbewegung angepasst (bei gedrückter linker Maustaste). Bei Verschiebung des Mauszeigers nach oben wird man schneller, nach unten langsamer, bis zur Richtungsumkehrung (rückwärts bewegen).
Die Rotation um den Standpunkt erfolgt durch Bewegung der Maus nach links oder rechts mit linker Maustaste (Drehung um die Senkrechte) beziehungsweise nach oben oder unten mit der mittleren Maustaste (Drehung um die Waagerechte, Neigung). Der Drehwinkel wird anhand der Mausbewegung über eine Hysterese berechnet.
Im Programm erfolgt Erstellung eines Videos immer in Zusammenhang mit einer Animation. Zum Starten/Stoppen wählt man in Menü ''Video Start/Stop'', bzw. Taste 'v'. Danach wird in einem bestimmten Zeitabstand jeweils ein Abbild des Programmfensters gesichert. Die Anzahl der Bilder je Sekunde wird hauptsächlich von der Geschwindigkeit des Systems und dessen aktuelle Last bestimmt. Erst bei genügend Leistung ist die Zeitkonstante entscheidend (derzeit 10 ms).
Die Steuerung der Kamerarichtung ist nur nach Abschaltung der Paketverfolgung möglich.
Alle Einzelbilder erscheinen im Verzeichnis ''/tmp/netview_video/''. Diese können dann durch das Skript ''video.sh'' in einen Film umgewandelt werden. Es geht automatisch ins Verzeichnis, in dem die Bilder liegen, erstellt die Filmdatei ''film.avi'' darin und wechselt dann wieder ins Verzeichnis, in dem es gestartet wurde. Es benötigt ''convert'' aus dem ImageMagick-Paket, Gzip und den ''mencoder'' des Mplayer-Projekts.
Ein Netzwerk besteht, wie oben erwähnt, aus Knoten (Switches, Router, Hosts) und Kabelverbindungen zwischen diesen. Alle Aktionen zum Verändern eines Netzwerkes passieren in der Kartenansicht des Programmfensters (rechts).
Über das Menü (rechte Maustaste Mapinsert)
wird auf den Einfüge-Modus umgestellt. Durch einen Klick
auf die linke Maustaste wird ein Host an der Mausposition dem Netzwerk
hinzugefügt.
(Die Position (x,y) wird skaliert auf Position (x,z), gerundet auf ganze
Zahlen, anhand der bekannten Grenzen des Fensterteils (Breite/Höhe im
Fenster)
und des dargestellten Kartenbereiches (linker/rechter bzw. vorderer/hinterer
Rand der 3D-Welt)).
Mit der mittleren Maustaste wird ein Router ins Netzwerk eingebaut.
Eine Kabelverbindung erstellt man durch Ziehen der Maus mit gedrückter
linker Maustaste von Anfangspunkt zum Endpunkt.
Switches sind zur Zeit noch nicht umgesetzt.
Nach dem Umschalten in den Verschiebe-Modus (Menü: Mapmove)
kann man die Enden der Kabel oder auch die Knoten verschieben. Mit
gedrückter linker Maustaste zeigt die grüne Linie den Weg zum
Zielpunkt an. Nach Loslassen der Maustaste wird das Element dort positioniert.
Bei Kabelverbindungen kann man auch zwischen den Enden Verschiebungen
durchführen. Dann wird das Kabel in Kurven geführt.
Im Lösch-Modus (Menü: Mapdelete) wird das Element an dieser
Position entfernt. Die Knoten (Router/Hosts) verschwinden sofort, die Kabel
erst, wenn weniger als zwei Punkte vorliegen, die das Kabel definieren.
Ansonsten wird nur der Kurven-Hilfspunkt an dieser Stelle entfernt und
das Kabel entsprechend neu verlegt.
Zum Einstellen der Parameter im Netzwerk muss man in den Info-Modus gehen
(Menü: Mapinfo). Beim Klick auf ein Knoten oder Kabel öffnet
sich ein Dialogfenster. Darin kann man Adressen setzen, Routen einstellen und
Namen vergeben. Mit der Taste 'Einfg' schaltet man zwischen Überschreiben
und Einfügen um. Mit den Cursortasten wechselt man zwischen den Zeilen.
Den Abschluss der Änderungen zeigt man mit der 'Enter'-Taste an.
Das Programm prüft die Werte und zeigt die übernommenen an. Bei
fehlerhaften Eingaben bleiben die alten Werte erhalten. Durch nochmaliges
Betätigen der 'Enter'-Taste schließt sich das Dialogfenster wieder.
Mit 'Esc' werden die Änderungen (die nach dem letzten 'Enter' erfolgten)
verworfen.
Folgende Einstellungen sind möglich:
Bei Kabeln:
Bei Hosts:
Bei Routern:
Zu den Netzwerkkarten:
Zu den Routen-Tabellen:
Zu NAT:
Am Anfang startet das Programm aber im Kamera-Modus
(Menü: Mapcamera pos).
Dann kann man die Kamera genau an der Stelle positionieren, an der man sie
gerne hätte. Mit einem Klick auf die linke Maustaste wird die Ansicht
neu gesetzt und die Kamera zeigt genau nach vorn (Winkel 90 Grad). Die
Neigung (Kippen) um die Waagerechte wird zurückgesetzt (Winkel 0 Grad).
Wenn man dagegen bei gedrückter linker Maustaste in eine bestimmte
Richtung zieht, dreht sich die Kamera dahin.
Eine zusätzliche Funktion hilft, wenn man die Orientierung verloren hat: das Zurücksetzen der Kamera auf den Ausgangspunkt beim Start (Menü: camera init, Taste '5'). Dann ist die Kamera auf der Position (0, 1, 15) und blickt gerade nach vorn in Richtung des Zentrums des virtuellen 3D-Raums, leicht erhöht auf (0, 1, 0).
Nach Einfügen, Verschieben oder auch Löschen von Elementen kann das
Netzwerk abgespeichert werden (Menü: Networksave bzw. durch
Taste 'F4').
Im erscheinenden Dialogfenster gibt man den Dateinamen an (bei Bedarf mit
Verzeichnis), relativ zum Ordner, in dem das Programm gestartet wurde.
Gesichert werden:
Die Position der Kamera wird nicht abgespeichert!
Ein einmal erstelltes Netzwerk kann jederzeit geladen werden. Nach Anwahl
Menü
Networkload (oder 'F3') tippt man den Dateinamen ein,
relativ zum Verzeichnis, in dem das Programm gestartet wurde.
Aber auch schon auf der Kommandozeile kann eine Datei angegeben werden: mit der Option ''-n dateiname'' ist es am Ende des Programmstarts geladen.
Nachdem ein Netzwerk erstellt wurde, die richtigen Einstellungen gewählt
sind, kann man die Animationsfunktion des Programms nutzen.
Dazu wählt man im Menü Networkexecute step für die
Einzelschritt-Ausführung (Taste 'e'), das heißt es wird nur ein
Schritt der Animation umgesetzt. Diese Funktion ist zur Verdeutlichung
wichtiger Stellen in der Animationskette sinnvoll.
Für eine länger ablaufende Animation nutzt man besser die
unterbrechbare Endlosschleife. Bei jeder Anwahl von Menü Networkexecute loop
(Taste 'n') läuft die Animation selbstständig weiter oder wird
gestoppt.
Die Geschwindigkeit der Ausführung wird über die Tasten '+' (schneller) und '-' (langsamer) gesteuert. Dann verändert sich die Schnelligkeit der Pakete, mit der sie von einem Punkt zum nächsten verschoben werden. In Kabeln wird so die Zeit bis zum Erreichen des anderen Endes angepasst, bei Warteschlangen die Zeit bis zum Übergang in die nächste Schlange oder ins angeschlossene Kabel. Auch die Geschwindigkeit der Drehung von Routern bzw. Hosts ändert sich.
Beim Programmstart kann man durch die Option ''-s geschwindigkeit'' den Anfangswert der Animationsgeschwindigkeit festlegen. Dabei werden auch Gleitkommazahlen (z.B. 0.1) angenommen.
Die Kamera selber folgt in der Grundeinstellung immer dem Paket, welches am weitesten unten (geometrisch gesehen) ist. Das ist das wichtigste Paket, weil es immer als erstes in einer Schlange bearbeitet wird. Wenn mehrere Pakete auf gleicher Höhe sind, richtet sich der Fokus nach der internen Reihenfolge der Kabel und Knoten (Router/Hosts). Die Position zum Paket wird sofort eingenommen (im festen Abstand zu ihm), der Blickwinkel wird mit Hysterese langsam nachgeführt um Sprünge zu vermeiden.
Zur Verdeutlichung, an welcher Stelle das fokussierte Paket gerade ist, wird links unten der Knoten (Router/Switch) mit Name und IP-Adresse bzw. das Kabel mit den MAC-Adressen (Ethernet-Adressen) der Enden angezeigt.
Man kann die Paketverfolgung aber auch ausschalten
(Menü: Networkfollow packets on/off bzw. Taste 'p').
Dann läuft die Animation und man steuert selbst den Kamera-Standpunkt und
die Ausrichtung.
In der dritten Variante bleibt nur die gewählte Position fest, die Kamera
wird aber immer zum wichtigen Paket ausgerichtet. Das erreicht man über
Menü: Network
follow with angle on/off bzw. Taste 'a', dabei
muss die Paketverfolgung an sein.
Nach dem Programmstart sieht man links die 3D-Ansicht auf die virtuelle Welt,
rechts die Kartenansicht als Blick von oben.
Wenn die Kartenansicht störend wirkt, kann man sie einfach ausblenden:
Menü MapMap on/off bzw. Taste 'w'. Die 3D-Ansicht nimmt dann
fast das ganze Fenster ein.
Eine nützliche Zweiteilung bietet auch folgende Variante:
Nach Wahl von Menü: Viewsecond view on right on/off
(oder Taste 'r') sieht
man links die gewohnte 3D-Ansicht und rechts nochmal eine Ansicht mit
dem gleichen Blickwinkel (Kameraposition und -winkel wird übernommen).
Bei angeschalteter Paketverfolgung während einer Animation wird aber links
wie gewohnt die Kameraposition verändert, rechts nur der Kamerawinkel.
Links ist also die Ansicht immer genau beim wichtigen Paket, rechts hat man
den Überblick über das gesamte Netz (je nach Standpunkt) und man
sieht trotzdem immer genau den wichtigen Raumausschnitt.
Falls die Beschriftung von Paketen, die Routen-Tabellen der Router oder
die ARP-Caches der Router und Hosts auch bei größerem Abstand von
diesen wichtig sind oder stören, kann man diese an-
oder ausschalten (Menü: ViewLevel of Details on/off bzw.
Taste 'l').
Abhängig von der Entfernung vom Objekt werden sie dann
ausgeblendet (nicht mehr gezeichnet) oder immer dargestellt. Wenn die Kamera
genau vor dem Objekt ist, wird die Beschriftung aber immer gezeichnet.
Zur sinnvollen Veranschaulichung der Mechanismen von Netzwerken sind natürlich Datenpakete notwendig. Die Einbindung dieser Pakete ist grundsätzlich über drei Wege möglich:
Die letzte Variante ist in den meisten Fällen die sinnvollste, weil sie auch am einfachsten zu handhaben ist.
Beim Start des Animationsprogramms wird gleichzeitig ein Port geöffnet, über den externe Programme Verbindung aufnehmen können. Dies ist standardmäßig über Port 9000 möglich. Mit der Option ''-p Portnummer'' kann aber auch ein beliebiger anderer gewählt werden.
Das Protokoll dazu wird im Hauptteil der Diplomarbeit erläutert.
Zum Programm-Paket gehört auch ein kleines Klient-Programm ''test_client'', welches Pakete als XML-Beschreibung einliest und dann ans Animationsprogramm schickt. Es hat folgende Startoptionen:
Als Paketdatei kann ''test/client_packets.xml'' dienen.
Das XML-Schema zur Paketdatei befindet sich in der Datei ''test/netview_schema.xml'' .
Nach dem Programmstart wird es mit folgenden Tasten bedient:
Zur Anpassung der Tastaturbelegung wird in der Datei ''etc/keycodes.txt'' jeder Taste eine Aktion zugeordnet, die sie im Programm auslöst . In den Tabellen 7.3 und 7.4 sind alle definierten Aktionsnamen mit ihrer Bedeutung und der zugehörigen Taste aufgeführt. Auch die Titel der Menübefehle und ihre Wirkungen können über die Datei ''etc/menu.xml'' geändert werden .
|
|
This document was generated using the
LaTeX2HTML translator Version 2002-2-1 (1.70)
and edited by Stefan Ziegler
Copyright © 1993, 1994, 1995, 1996,
Nikos Drakos,
Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999,
Ross Moore,
Mathematics Department, Macquarie University, Sydney.