left.gif (284 bytes)  up.gif (289 bytes)  right.gif (280 bytes)

Monitoraggio di code (1)

1. Come stabilire la disciplina della coda

Nella definizione di un link unidirezionale o bidirezionale l’ultimo parametro da specificare è proprio la disciplina della coda di uscita relativa al nodo che deve mettere i pacchetti sul link. Infatti, scrivendo:

    $ns simplex-link n1 n2 bw delay type 

si indica che n1 gestirà i pacchetti in coda con disciplina type; type può essere:

DropTail e SFQ sono le discipline da noi usate negli esempi.

2. Come specificare la lunghezza della coda

Una volta definito un link tra due nodi, diciamo n1 e n2, è possibile stabilire il massimo numero di pacchetti che possono essere messi in coda sul link (ad esempio nella direzione da n1 a n2, e quindi sul router n1) con la seguente istruzione:

    $ns queue-limit n1 n2 queue-limit

3. Come visualizzare una coda in NAM

Dopo la definizione del link full-duplex che ci interessa si può inserire la riga:

    $ns duplex-link-op n1 n2 queuePos 0.5

Il NAM visualizzerà un buffer che rappresenta la coda sul nodo n1 (se il flusso va da n1 a n2) nonappena questa inizia a riempirsi e mostrerà anche lo scarto dei pacchetti. Gli ultimi due parametri non sono documentati.

4. Come registrare i dati su un file di testo

Introduciamo qui di seguito una serie di istruzioni che consentono di registrare in un opportuno file di uscita di ns tutti i dati relativi a partenze, arrivi, e scarti di pacchetti sulle code dei vari nodi della rete :

    $ns trace-all fileID  

abilita la scrittura su file dei dati riguardanti arrivi, partenze, e scarti di pacchetti su tutte le code di tutti i link della topologia; fileID è un identificatore di file che viene ritornato dal comando Tcl open. Il file deve essere già stato aperto in scrittura con una istruzione del tipo set tf [open out.tr w].

Se si vuole la registrazione dei dati relativi alla coda di un singolo nodo (router) su una certa interfaccia si può usare l’istruzione:

    $ns trace-queue node1 node2 file ID   (la coda monitorata è relativa a node1)

Se inoltre si vuole limitare il monitoraggio solamente ad arrivi, partenze, o scarti di pacchetti (sempre su un solo link) si può scrivere:

    $ns create-trace type fileID node1 node2

Il parametro type può essere uno tra: Enqueue (arrivi), Dequeue (partenze), Drops (scarti).

In tutti i precedenti casi i dati vengono salvati sul file di uscita per poter poi essere esaminati. Il formato dei dati è il seguente :

+ 1.39117 3 4 exp 1000 ------- 0 0.0 4.0 13 159
+ 1.394 3 4 cbr 1000 ------- 1 1.0 4.0 86 160
d 1.394 3 4 cbr 1000 ------- 1 1.0 4.0 86 160
- 1.394 3 4 exp 1000 ------- 0 0.0 4.0 9 147
r 1.396 3 4 cbr 1000 ------- 1 1.0 4.0 81 145
+ 1.39969 3 4 exp 1000 ------- 2 2.0 4.0 60 161

prima colonna :  + indica messo in coda, - estratto dalla coda, d scartato (dropped), r ricevuto dal prossimo nodo, h hop
seconda colonna : tempo di simulazione
terza e quarta colonna : i due nodi tra i quali è avvenuto il tracing
quinta e sesta colonna : tipo e lunghezza del pacchetto (bytes)
settima colonna : flags speciali non utilizzati
ottava colonna : identificatore di flusso per IPv6
nona e decima colonna : indirizzi del nodo sorgente e del nodo destinazione
undicesima e dodicesima colonna : numero di sequenza e identificatore universale

Vai alla prossima pagina sul monitoraggio di code

left.gif (284 bytes)  up.gif (289 bytes)  right.gif (280 bytes)