< Abteilung IV >     < OOSIM Homepage >     < Beispiel >     < Team

Universität Bonn 

OOSIM 

Kurzanleitung 


Voraussetzungen 

Um ein Netzwerk mit OOSIM simulieren zu können, sollte die Bibliothek mit Hilfe eines aktuellen EGCS C++ Compilers übersetzt werden. Als Plattform dazu bieten sich bspw. RedHat Linux 5.2, SuSE Linux 5.3 oder Sun Solaris 2.5 an. Sollte der Compiler nicht mit der Distribution geliefert werden, so kann dieser von Cygnus als Quellcode bezogen werden. Selbstverständlich läßt sich OOSIM auf den entsprechenden Rechnern im Labor der Abteilung IV übersetzen. 

Die Verwaltung des zu OOSIM gehörigen Source-Codes erfolgt durch die Nutzung des Tools CVS (Concurrent Versions System), das zur Versionskontrolle der Sourcen eingesetzt wird. CVS legt alle zugehörigen Dateien in einem Verzeichnis ab, das von den Labor-Rechnern erreichbar ist. Voraussetzung zum Zugriff auf dieses Verzeichnis ist die Zugehörigkeit zur Gruppe "Simulation", welche nach Rücksprache mit Andre Wenzel erteilt werden kann. Der Benutzer hat dann seine .cshrc-Datei um folgende Einträge zu erweitern: 

setenv CVSROOT /home/IV/labor/OOSIM_Praktikum/CVSRepository 
setenv CVSUMASK 007 
Ist dies geschehen, so kann mittels 
cvs co -r oosim_ng0 oosim 
die neueste OOSIM Version ausgecheckt werden. Der Befehl muß im eigenen Home-Verzeichnis ausgeführt werden. Die aktuellen Sourcen befinden sich jetzt im Unterverzeichnis ~/oosim/. Falls das Verzeichnis ~/oosim/lib/ vor der Compilierung noch nicht existiert, so muß es vorher erzeugt werden. Sind diese Voraussetzungen erfüllt, kann die Bibliothek mit den folgenden Befehlen übersetzt werden, die jeweils im Verzeichnis ~/oosim/ auszuführen sind: 
 
make dep  Auswerten der Abhängigkeiten. 
make  Übersetzen der Debug-Version auf Sun-Rechnern. 
make linux=1  Übersetzen der Debug-Version auf Linux-Rechnern. 
make fast=1 (linux=1)  Übersetzen der schnellen Version auf Sun- (Linux-) Rechnern. 
Wurde die Bibliothek erfolgreich übersetzt, so befinden sich im Verzeichnis ~/oosim/scenarios/ die ausführbaren Dateien oosim.exe bzw. oosim_fast.exe

Initialisierung 

Vor dem eigentlichen Start der Simulation muß definiert werden, was überhaupt simuliert werden soll. Hierzu gehören beispielsweise Festlegungen zur Netzwerk-Topologie, zu den benutzten Protokollen und allgemeinen Parametern wie der Länge der Simulation und der notwendigen Einschwingzeit. Hierzu wird innerhalb von OOSIM eine blockorientierte Initialisierungssprache eingesetzt, die über eine einfache und effiziente Grammatik verfügt. Mittels dieser Sprache werden die notwendigen Festlegungen in der Eingabedatei (normalerweise Global.in) abgelegt. Soll ein anderer Dateiname benutzt werden, kann dem Aufruf des ausführbaren Programms der Name dieser Eingabedatei als Parameter angehängt werden. Im Verzeichnis ~/oosim/scenarios/Beispielszenario/ befindet sich das Muster einer Eingabedatei, in der Beispiele eines sinnvollen Szenarios zusammengefaßt sind. Diese Datei kann als Ausgangspunkt eigener Szenarien genutzt werden. 

Simulationslauf 

Die Simulation kann nun durch den Aufruf einer der ausführbaren Dateien gestartet werden. Während des Simulationslaufs beschränken sich die Ausgaben auf das wesentliche. 

Auswertung 

Mit Hilfe der Objekte LossObserver und RateObserver lassen sich Statistiken über verworfene Pakete und Datenraten an bestimmten Stellen im Netz erfassen. Zur Zeit ist es möglich, diese beiden Objekte an den folgenden Stellen einzusetzen: 

  1. In den Netzwerkkarten bei der Paketübergabe an das Medium, zur Erfassung von Paketen die aufgrund einer Überlastsituation verworfen werden mußten. 
  2. In den Netzkarten beim Paketempfang vom Medium zur Erfassung des Durchsatzes in einem Subnetz. 
  3. In den Protokollen PROT_DUMMY, PROT_ROBIN und PROT_TCP zur Erfassung der Datenrate einzelner Ströme. 
Werden mehrere Loss- bzw. RateObserver in einem Simulationslauf eingesetzt, so wird die Ausgabedatei schnell sehr groß und unübersichtlich. Aus diesem Grunde besteht die Möglichkeit diese Datei mit Hilfe eines Perl-Skriptes auszuwerten. Dieses findet sich im Verzeichnis ~/oosim/scenarios/scripts/ und trägt den Namen extractprotocols

Dieses Skript filtert die Informationen aus der Eingabedatei und legt diese in mehreren Dateien ab, wodurch eine bessere Übersichtlichkeit erreicht wird. Hierzu muß extractprotocols mit dem Parameter -a aufgerufen werden. Des weiteren ergibt sich die Möglichkeit der graphischen Darstellung der gefilterten Informationen. Zu diesem Zweck wird extractprotocols mit dem Parameter -v aufgerufen, durch den das Skript angewiesen wird, die Informationen mittels gnuplot graphisch aufzubereiten und anzuzeigen. Durch die Betätigung der Enter-Taste wechselt die Ausgabe zwischen den jeweils zusammengefaßten Informationen. Der Parameter -p ermöglicht die Ausgabe der Grafiken auf einem Drucker. 

Neben der Benutzung von Loss- und RateObservern ist es dem Anwender natürlich freigestellt eigene Ausgaben zu erzeugen, wozu die Konfiguration der Eingabedatei aber nicht mehr ausreicht. In diesem Fall muß der OOSIM-Sourcecode entsprechend angepaßt werden und eine hierdurch modifizierte ausführbare Datei erzeugt werden. 

 


< zum Anfang

25.03.99 - Oliver Feuser