Ns2 Ultimate-post processing ns2 resultaat met behulp van ns2 Trace–…
opmerking: de inhoud van deze serie is ontleend aan het boek Introduction to Network Simulator NS2. Misschien moet je hoofdstukken 2 en 13 van het boek lezen voor een beter begrip.
wat staat er in dit bericht?
In dit bericht zal ik u een eenvoudige (en misschien wel de meest voorkomende manier) laten zien om een ns2 trace bestand aan te maken. Dit trace bestand bevat veel informatie. In feite, het bevat te veel informatie, die ns2 gebruikers intimideert. Maak je er geen zorgen over. We zullen later proberen om ns2 trace bestanden te interpreteren. Laten we ons nu concentreren op hoe een ns2-trace-bestand kan worden gemaakt.
proces in twee stappen
om een trace-bestand te maken, moet u de volgende twee stappen uitvoeren:
- Maak een bestand om traceringsinformatie op te nemen.
- Registreer de traceringsinformatie in het aangemaakte bestand.
Stap 1: Maak een bestand aan om te schrijven
Tcl gebruikt het commando “open” om een bestand te openen. De syntaxis van het commando “open” is als volgt:
open <bestandsnaam> <doel>
waarbij <bestandsnaam> de naam is van het te openen bestand, en <doel> kan worden
- “w” for writing,
- “r”for reading, or
- ” a ” for adending
deze instructie geeft een file handle terug, die kan worden gebruikt om te verwijzen naar het geopende bestand.
een voorbeeld van een TCL-statement dat een bestand opent met de naam “tracefile.tr” voor het schrijven en opslaan naar het bestand handle in de variabele $var wordt hieronder getoond:
set var
Stap 2: Registreer traceringsinformatie in het geopende traceerbestand.
de volgende stap is het opslaan van trace-informatie in het geopende bestand. Dit kan worden bereikt met het volgende TCL statement:
$ns trace-all $var
waarbij $ns de simulator instance is, en $var de file handle. Deze instructie vertelt alle tracing objecten (bijvoorbeeld, enqT_, deqT_, rcvT_, en drpT_ in het SimpleLink object hieronder) om informatie op te nemen van traversing pakketten in het trace bestand waarvan de variabele $var is.
er is slechts één vereiste voor tracering: Het bovenstaande statement moet zich bevinden vóór “$ ns run”.
nadat de simulatie is voltooid, wordt een trace-bestand aangemaakt. Hier is een voorbeeld van trace bestanden.
Wat Hebben We Net Gedaan?
het statement “$ns trace-all ” voegt het traceringsobject in op verschillende plaatsen in de netwerktopologie. De meest voorkomende plaats is in een SimpleLink meestal gebruikt om twee knooppunten te verbinden. Het statement “$ns trace-all ” voegt enkele tracing objecten in het SimpleLink object zoals hierboven getoond.
wat doen de Tracing-objecten
een tracing-object bevindt zich tussen twee nsobject-intercepterende objecten. Zodra het een pakket ontvangt, drukt het gerelateerde tracing-informatie af als een regel in het trace-bestand. In de bovenstaande figuur hebben we vier tracerende objecten:
- enqT_: druk een regel af die begint met”+”, die een enqueuing event
- deqT_: druk een regel af die begint met” -“, die een dequeuing event
- rcvT_: druk een regel af die begint met “r”, die een pakketontvangst event
- drpT aangeeft_: Druk een regel af die begint met” d “en die een pakketvalgebeurtenis aangeeft
Traceringscommando’ s in het Trace-bestand:
deze traceringsobjecten tonen informatie van alle doorlopende pakketten. Informatie van pakketten die niet door een van deze objecten gaan zou niet verschijnen op het trace-bestand.
het enige object dat verantwoordelijk is voor het laten vallen van pakketten in de bovenstaande figuur is queue_. Het doet dit door het aanroepen van functie drop (p). De functie drop (p) stuurt op zijn beurt het pakket p naar het forwarding NsObject, wat in dit geval drpT_ is. Het is drpT_, die verantwoordelijk is voor het afdrukken van dropping informatie statements (dat wil zeggen, die beginnen met ‘d’) in het trace bestand.
dit betekent dat als je het pakket expliciet laat vallen (bijvoorbeeld door drop(p) te gebruiken) zonder het pakket door drpT_ te geven, er geen informatie over het droppen van het pakket op het trace-bestand verschijnt.
wat volgt?
nu we een trace-bestand hebben aangemaakt. Maar een ns2 trace bestand ziet er kindda eng. In de volgende post Zal ik u laten zien hoe u dit trace-bestand te interpreteren.
======================================================
T. Issaraiyakul and E. Hossain, “Introduction to Network Simulator NS2”, Springer 2009. Koop het nu bij Amazon: