Monitoraggio di code (1)
1. Come stabilire la disciplina della coda
Nella definizione di un link unidirezionale o bidirezionale lultimo 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:
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 testoIntroduciamo 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 listruzione:
$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