Local Area Networks
1. Simulare una LAN
Le LAN possono essere implementate in ns mediante il comando newLan, da usarsi con la sintassi seguente:
set lan1
[$ns newLan $nodelist $bandwith $delay \
-llType LL -ifqType DropTail \
-macType Csma/Cd -chanType Channel]
$nodelist è una lista dei nodi appartenenti alla LAN e può essere definita mediante elencazione diretta di nodi precedentemente dichiarati:
"n0 n1 n2 n3 n4 n5"
oppure mediante listruzione lappend allinterno di un ciclo for:
for {set i
0} {$i < $num} {incr i} {
set node($i) [$ns node]
lappend nodelist $node($i)
}
$bandwith è la larghezza di banda della LAN
$delay è il ritardo di propagazione sulla LAN
-llType LL specifica il tipo di link layer implementato, cioè loggetto responsabile di simulare il protocollo di livello data link. Le sue funzioni sono: frammentare e riassemblare i dati, e risolvere gli indirizzi MAC dei destinatari dei pacchetti. Per questultimo compito loggetto link layer fa uso delle informazioni del LanRouter, che tra breve descriveremo. Attualmente si può usare in ns solo loggetto link layer di tipo LL.
-ifqType DropTail specifica la disciplina della coda gestita dal link layer per prelevare e consegnare i dati agli strati superiori. Oltre a DropTail possono essere usate tutte le discipline previste in ns per loggetto coda.
-macType Csma/Cd specifica loggetto Mac che simula i protocolli di accesso al mezzo trasmissivo; si può scegliere tra Csma/Cd e Csma/Ca .
-chanType Channel specifica il tipo di canale utilizzato sulla LAN. In questo caso specifico Channel implementa un generico mezzo trasmissivo condiviso.
2. LanNode
Quando viene creata una LAN in ns mediante il comando newLan, viene automaticamente creato anche loggetto LanNode. LanNode è un nodo "virtuale" della LAN ed è virtualmente collegato a tutti gli altri nodi. Di fatto questo nodo non ha nessun corrispettivo fisico. Esso è un contenitore per tutti gli oggetti condivisi sulla LAN e quindi è in primo luogo rappresentativo del mezzo trasmissivo. Inoltre il suo scopo principale è quello di mostrare la LAN allesterno come un unico nodo ai fini del routing. Poiché si tratta di un nodo virtuale, il programmatore non può accedere direttamente al LanNode come a qualsiasi altro nodo della rete; nonostante ciò nei trace file uno scambio di pacchetti tra due nodi su una stessa LAN viene documentato con un hop dal mittente al LanNode.
3. LanRouter
È un oggetto che viene creato e associato alla LAN ogni volta che viene chiamata la procedura newLAN. Diciamo subito che non si tratta di un router fisico collegato alla rete (questultima funzione potendo essere svolta da un nodo qualsiasi della LAN con una linea verso lesterno).
Per ogni nodo sulla LAN, loggetto link layer possiede un puntatore al LanRouter, mediante il quale riesce a trovare lindirizzo MAC del prossimo nodo (sempre sulla LAN) a cui spedire un certo pacchetto. In fatti il link layer conosce solo lindirizzo IP del destinatario.
Quindi se il destinatario di tale pacchetto è sulla stessa LAN del mittente, il LanRouter fornisce al link layer il corrispondente indirizzo MAC (applica quindi un protocollo ARP); se invece il destinatario è allesterno, il LanRouter fornisce al link layer lindirizzo MAC del nodo che fa da router per la LAN.
4. Alcune considerazioni
Coerentemente con il fatto che nelle animazioni del NAM vengono mostrati i pacchetti di livello IP, su una LAN non è possibile vedere né collisioni, né ritrasmissioni (non si vedono le MAC-pdu). Comunque i pacchetti occupano tutto il mezzo trasmissivo pur essendo destinati a un singolo nodo.Come vedremo in acuni casi è possibile verificare l'influenza di eventuali collisioni e dell'algoritmo di backoff sui tempi di trasmissione dei pacchetti.
Attualmente non è prevista la possibità simulare in ns bridge e switch.
Nelle attuali versioni di ns e NAM è stata riscontra ta l'impossibilità di marcare con colori diversi i vari flussi di pacchetti su una LAN.
Vai alla pagina degli esempi sulle LAN