20 stycznia, 2022

NS2 Ultimate-Post processing NS2 Result using NS2 Trace–…

Uwaga: zawartość tej serii została zaczerpnięta z książki, Wprowadzenie do Network Simulator NS2. Być może będziesz musiał przeczytać rozdziały 2 i 13 książki dla lepszego zrozumienia.

co jest w tym poście?

w tym poście pokażę Ci prosty (i być może najczęstszy sposób), aby utworzyć plik śledzenia NS2. Ten plik śledzenia zawiera wiele informacji. W rzeczywistości zawiera zbyt wiele informacji, co zastrasza użytkowników NS2. Nie przejmuj się tym. Później spróbujemy zinterpretować pliki śledzenia NS2. Na razie skupmy się na tym, jak można utworzyć plik śledzenia NS2.

dwuetapowy proces

aby utworzyć plik śledzenia, musisz wykonać następujące dwa kroki:

  1. Utwórz plik do rejestrowania informacji o śledzeniu.
  2. Zapisz informacje o śledzeniu do utworzonego pliku.

Krok 1: Utwórz plik do zapisu

Tcl używa polecenia „Otwórz”, aby otworzyć plik. Składnia polecenia „open” wygląda następująco:

otwórz < nazwa pliku> < cel>

gdzie < nazwa pliku> to nazwa pliku, który ma zostać otwarty, a <cel> może być

  • „w”dla zapisu,
  • ” r”dla odczytu lub
  • ” a ” dla dodawania

ta instrukcja zwraca uchwyt pliku, który może być użyty do odniesienia do otwartego pliku.

przykład instrukcji Tcl, która otwiera plik o nazwie „tracefile.tr” do zapisu i przechowywania do uchwytu pliku w zmiennej $var jest pokazany poniżej:

set var

Krok 2: Zapisz informacje o śledzeniu w otwartym pliku śledzenia.

następnym krokiem jest zapisanie informacji o śledzeniu w otwartym pliku. Można to osiągnąć za pomocą następującego polecenia TCL:

$NS trace-all $var
gdzie $NS to instancja symulatora, a $var to uchwyt pliku. Instrukcja ta mówi wszystkim obiektom śledzącym (np. enqT_, deqT_, rcvt_ i drpT_ w obiekcie SimpleLink poniżej), aby zapisywały informacje o przemieszczających się pakietach w pliku śledzenia, którego zmienną jest $var.

istnieje tylko jeden wymóg śledzenia: Powyższe polecenie musi znajdować się przed „$NS run”.

po zakończeniu symulacji zostanie utworzony plik śledzenia. Oto przykład plików śledzenia.

Co My Zrobiliśmy?

polecenie „$NS trace-all” wstawia obiekt śledzenia w różne miejsca w topologii sieci. Najczęstszym miejscem jest SimpleLink zwykle używany do łączenia dwóch węzłów. Polecenie „$NS trace-all ” wstawia kilka obiektów śledzenia do obiektu SimpleLink, jak pokazano powyżej.

Do czego służą Obiekty śledzące
obiekt śledzący znajduje się pomiędzy dwoma obiektami przechwytującymi NsObject. Po otrzymaniu pakietu drukuje powiązane informacje śledzenia jako linię do pliku śledzenia. Na powyższym rysunku mamy cztery obiekty śledzące:

  • enqT_: wypisuje linię zaczynającą się od”+”, wskazując Zdarzenie zapytania
  • deqT_: wypisuje linię zaczynającą się od” -„, wskazując Zdarzenie usunięcia
  • rcvT_: wypisuje linię zaczynającą się od „r”, wskazując Zdarzenie odbioru pakietów
  • drpT_: Wypisuje linię zaczynającą się od” d”, wskazującą na zdarzenie upuszczania pakietów

instrukcje śledzenia w pliku śledzenia:
te obiekty śledzenia drukują informacje o wszystkich pakietach poruszających się. Informacje o pakietach, które nie przechodzą przez żaden z tych obiektów, nie pojawią się w pliku śledzenia.

jedynym obiektem odpowiedzialnym za upuszczanie pakietów na powyższym rysunku jest queue_. Powoduje to wywołanie funkcji drop (p). Funkcja drop (p) z kolei wysyła pakiet p do przekazującego NsObject, którym w tym przypadku jest drpT_. To drpT_ jest odpowiedzialny za drukowanie spadających instrukcji informacyjnych (tzn. zaczynających się na’ d’) w pliku śledzenia.

oznacza to, że jeśli upuścisz pakiet jawnie (np. używając drop(p)) bez przekazania pakietu przez drpT_, w pliku śledzenia nie pojawi się żadna informacja o upuszczeniu pakietu.

co dalej?
teraz, gdy utworzyliśmy plik śledzenia. Ale plik śledzenia NS2 wygląda przerażająco. W następnym poście pokażę Ci jak zinterpretować ten plik śledzenia.

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

T. Issaraiyakul and E. Hossain, „Introduction to Network Simulator NS2”, Springer 2009. Kup Teraz z Amazon:

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.