Januar 20, 2022

NS2 Ultimate – Nachbearbeitung des NS2-Ergebnisses mit NS2 Trace –…

Hinweis: Der Inhalt dieser Serie ist aus dem Buch Introduction to Network Simulator NS2 entnommen. Zum besseren Verständnis müssen Sie möglicherweise die Kapitel 2 und 13 des Buches lesen.

Was ist in diesem Beitrag?

In diesem Beitrag zeige ich Ihnen eine einfache (und vielleicht die gebräuchlichste) Methode zum Erstellen einer NS2-Trace-Datei. Diese Trace-Datei enthält viele Informationen. Tatsächlich enthält es zu viele Informationen, die NS2-Benutzer einschüchtern. Mach dir keine Sorgen. Wir werden später versuchen, NS2-Trace-Dateien zu interpretieren. Konzentrieren wir uns zunächst darauf, wie eine NS2-Trace-Datei erstellt werden kann.

Zweistufiger Prozess

Um eine Ablaufverfolgungsdatei zu erstellen, müssen Sie die folgenden zwei Schritte ausführen:

  1. Erstellen Sie eine Datei zum Aufzeichnen von Ablaufverfolgungsinformationen.
  2. Notieren Sie die Ablaufverfolgungsinformationen in der erstellten Datei.

Schritt 1: Erstellen Sie eine Datei zum Schreiben

Tcl verwendet einen Befehl „Öffnen“, um eine Datei zu öffnen. Die Syntax des Befehls „Öffnen“ lautet wie folgt:

open <filename> <purpose>

wobei <filename> der Name der zu öffnenden Datei ist und <purpose>

  • “ w“ zum Schreiben,
  • „r“ zum Lesen oder
  • „a“ zum Anhängen

Diese Anweisung gibt ein Dateihandle zurück, mit dem auf die geöffnete Datei verwiesen werden kann.

Ein Beispiel für eine Tcl-Anweisung, die eine Datei mit dem Namen „tracefile.tr “ zum Schreiben und Speichern in das Datei-Handle in der Variablen $var wird unten gezeigt:

set var

Schritt 2: Zeichnen Sie Ablaufverfolgungsinformationen in der geöffneten Ablaufverfolgungsdatei auf.

Der nächste Schritt besteht darin, Trace-Informationen in der geöffneten Datei aufzuzeichnen. Dies kann mit der folgenden Tcl-Anweisung erreicht werden:

$ns trace-all $var
wobei $ns die Simulatorinstanz und $var das Dateihandle ist. Diese Anweisung weist alle Ablaufverfolgungsobjekte (z. B. enqT_, deqT_, rcvT_ und drpT_ im SimpleLink-Objekt unten) an, Informationen über durchlaufende Pakete in der Ablaufverfolgungsdatei aufzuzeichnen, deren Variable $var .

Es gibt nur eine Anforderung für die Verfolgung: Die obige Anweisung muss sich vor „$ ns run“ befinden.

Nach Abschluss der Simulation wird eine Trace-Datei erstellt. Hier ist ein Beispiel für Trace-Dateien.

Was haben wir gerade gemacht?

Die Anweisung „$ns trace-all“ fügt ein Tracing-Objekt an verschiedenen Stellen in der Netzwerktopologie ein. Der häufigste Ort ist in einem einfachenlink wird normalerweise verwendet, um zwei Knoten zu verbinden. Die Anweisung „$ ns trace-all“ fügt einige Ablaufverfolgungsobjekte wie oben gezeigt in das SimpleLink-Objekt ein.

Was machen die Ablaufverfolgungsobjekte?
Ein Ablaufverfolgungsobjekt befindet sich zwischen zwei NSObject-abfangenden Objekten. Sobald ein Paket empfangen wird, druckt es zugehörige Ablaufverfolgungsinformationen als Zeile in die Ablaufverfolgungsdatei. In der obigen Abbildung haben wir vier Verfolgungsobjekte:

  • enqT_: Gibt eine Zeile aus, die mit „+“ beginnt und ein Enqueuing-Ereignis angibt
  • deqT_: Gibt eine Zeile aus, die mit „-“ beginnt und ein Dequeuing-Ereignis angibt
  • rcvT_: Gibt eine Zeile aus, die mit „r“ beginnt und ein Paketempfangsereignis angibt
  • drpT_: Gibt eine Zeile aus, die mit „d“ beginnt und auf ein Paketabwurfereignis hinweist

Ablaufverfolgungsanweisungen in der Ablaufverfolgungsdatei:
Diese Ablaufverfolgungsobjekte geben Informationen aller durchlaufenden Pakete aus. Informationen von Paketen, die keines dieser Objekte durchlaufen, werden in der Trace-Datei nicht angezeigt.

Das einzige Objekt, das für das Ablegen von Paketen in der obigen Abbildung verantwortlich ist, ist queue_ . Dies geschieht durch Aufrufen der Funktion drop(p) . Die Funktion drop(p) wiederum sendet das Paket p an das weiterleitende NSObject, das in diesem Fall drpT_ . Es ist drpT_ , der dafür verantwortlich ist, die Informationsanweisungen (dh diejenigen, die mit ‚d‘ beginnen) in der Trace-Datei zu drucken.

Dies bedeutet, dass, wenn Sie das Paket explizit löschen (z. B. mit drop(p) ), ohne das Paket durch drpT_ , keine Informationen zum Löschen des Pakets in der Ablaufverfolgungsdatei angezeigt werden.

Was kommt als nächstes?
Nun, da wir eine Trace-Datei erstellt haben. Aber eine NS2-Trace-Datei sieht irgendwie beängstigend aus. Im nächsten Beitrag zeige ich Ihnen, wie Sie diese Trace-Datei interpretieren.

======================================================

T. Issaraiyakul und E. Hossain, „Einführung in den Netzwerksimulator NS2“, Springer 2009. Jetzt bei Amazon kaufen:

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.