januari 20, 2022

NS2 Ultimate-efterbehandling ns2 resultat med användning av NS2 Trace –…

Obs: innehållet i denna serie extraheras från boken, introduktion till Nätverkssimulator NS2. Du kan behöva läsa Kapitel 2 och 13 i boken för bättre förståelse.

Vad finns i det här inlägget?

i det här inlägget kommer jag att visa dig ett enkelt (och kanske det vanligaste sättet) att skapa en ns2-spårningsfil. Denna spårningsfil innehåller mycket information. Faktum är att den innehåller för mycket information, vilket skrämmer ns2-användare. Oroa dig inte för det. Vi kommer att försöka tolka ns2-spårfiler senare. Låt oss nu fokusera på hur en ns2-spårningsfil kan skapas.

tvåstegsprocess

för att skapa en spårningsfil måste du göra följande två steg:

  1. skapa en fil för att spela in spårningsinformation.
  2. registrera spårningsinformationen till den skapade filen.

Steg 1: Skapa en fil för att skriva

Tcl använder ett kommando ”öppna” för att öppna en fil. Syntaxen för kommandot ”Öppna” är som följer:

öppna <filnamn> <syfte>

där <filnamn> är namnet på filen som ska öppnas, och < syfte> kan vara

  • ”w” för skrivning,
  • ” r”för läsning, eller
  • ” a ” för att lägga till

detta uttalande returnerar ett filhandtag som kan användas för att hänvisa till den öppnade filen.

ett exempel på ett TCL-uttalande som öppnar en fil vars namn är ”tracefile.tr” för skrivning och butiker till filhandtaget i variabeln $var visas nedan:

Ställ in var

steg 2: Spela in spårningsinformation i den öppnade spårningsfilen.

nästa steg är att registrera spårningsinformation i den öppnade filen. Detta kan uppnås med hjälp av följande TCL-uttalande:

$ns trace-all $var
där $ns är Simulatorinstansen och $var är filhandtaget. Detta uttalande berättar för alla spårningsobjekt (t.ex. enqT_, deqt_, rcvT_ och drpT_ i SimpleLink-objektet nedan) för att spela in information om att korsa paket i spårfilen vars variabel är $var.

det finns bara ett krav för spårning: Ovanstående uttalande måste finnas före ”$ns run”.

när simuleringen är klar skapas en spårningsfil. Här är ett exempel på spårfiler.

Vad Gjorde Vi Just?

uttalandet” $ns trace-all ” infogar spårningsobjekt på olika platser i nätverkstopologi. Den vanligaste platsen är i en Enkellänk som vanligtvis används för att ansluta två noder. Uttalandet” $ns trace-all ” infogar några spårningsobjekt i SimpleLink-objektet som visas ovan.

Vad gör Spårningsobjekten
ett spårningsobjekt sitter mellan två nsobject-avlyssningsobjekt. När du har fått ett paket skriver det ut relaterad spårningsinformation som en rad i spårningsfilen. I ovanstående figur har vi fyra spårningsobjekt:

  • enqT_: Skriv ut en rad som börjar med”+”, vilket indikerar en enqueuing-händelse
  • deqT_: Skriv ut en rad som börjar med” -”, vilket indikerar en dequeuing-händelse
  • rcvT_: Skriv ut en rad som börjar med ”r”, vilket indikerar en paketmottagningshändelse
  • drpT_: Skriv ut en rad som börjar med ”d”, vilket indikerar en paketfallshändelse

Spårningsuttalanden i Spårningsfilen:
dessa spårningsobjekt skriver ut information om alla traverseringspaket. Information om paket som inte passerar genom något av dessa objekt skulle inte visas på spårningsfilen.

det enda objektet som är ansvarigt för att släppa paket i ovanstående figur är queue_. Det gör det genom att åberopa funktion drop (p). Funktionen drop (p) skickar i sin tur paketet p till vidarebefordran NsObject, vilket i detta fall är drpT_. Det är drpT_, som ansvarar för utskrift släppa information uttalanden (dvs de börjar med ’d’) i spårningsfilen.

detta innebär att om du släpper paketet uttryckligen (t.ex. använder drop(p)) utan att skicka paketet genom drpT_, ingen information om att släppa paket visas på spårningsfilen.

Vad är nästa?
nu när vi har skapat en spårningsfil. Men en ns2-spårfil ser snäll ut skrämmande. I nästa inlägg kommer jag att visa dig hur du tolkar denna spårfil.

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

T. Issaraiyakul och E. Hossain,” introduktion till Nätverkssimulator NS2″, Springer 2009. Köp det nu från Amazon:

Lämna ett svar

Din e-postadress kommer inte publiceras.