Strato 3: Instradamento Gruppo Reti TL nome.cognome@polito.it http://www.telematica.polito.it/ RTI I LOLTORI Instradamento - opyright Quest opera è protetta dalla licenza reative ommons Noerivs-Nonommercial. Per vedere una copia di questa licenza, consultare: http://creativecommons.org/licenses/nd-nc/.0/ oppure inviare una lettera a: reative ommons, 9 Nathan bbott Way, Stanford, alifornia 930, US. This work is licensed under the reative ommons Noerivs-Nonommercial License. To view a copy of this license, visit: http://creativecommons.org/licenses/nd-nc/.0/ or send a letter to reative ommons, 9 Nathan bbott Way, Stanford, alifornia 930, US. RTI I LOLTORI Instradamento - cknowledgements lcune immagini sono derivate dai lucidi Jim Kurose e Keith Ross - omputer Networking: Top own pproach Some pictures are taken from the slides of Jim Kurose and Keith Ross - omputer Networking: Top own pproach RTI I LOLTORI Instradamento - 3 Pag.
Funzioni strato rete Instradamento (routing) ffettuato consultando tabelle di instradamento per ogni PU in rete datagram per ogni connessione in rete a circuito virtuale Tabelle di instradamento contengono informazioni tipo per ogni destinazione next-hop (prossimo router) Tre elementi Protocolli di instradamento (routing protocols) lgoritmi di instradamento (routing algorithms) Procedure di inoltro pacchetti (forwarding) RTI I LOLTORI Instradamento - Funzioni strato rete Indirizzamento Indirizzi univoci Risoluzione indirizzi (mapping) Tariffazione su rete pubblica ontrollo di congestione Pre-allocazione memorie Scarto pacchetti Invio segnali di congestione RTI I LOLTORI Instradamento - Instradamento Protocollo di instradamento: definizione delle modalità di scambio di informazioni sullo stato della rete al fine di costruire tabelle di instradamento lgoritmo di instradamento: operazioni necessarie per scegliere il percorso verso la destinazione, date le informazioni sullo stato della rete crea tabelle di instradamento Procedura di forwarding: operazioni necessarie per instradare i singoli pacchetti verso la corretta porta di uscita usa tabelle per inoltrare pacchetti RTI I LOLTORI Instradamento - 6 Pag.
lgoritmi di instradamento Obiettivo degli algoritmi di instradamento: determinare un buon percorso (sequenza di link o nodi) nella rete da nodo sorgente a nodo destinazione per semplicità si utilizza un solo identificativo per ogni nodo, che rappresenta un aggregato di sorgenti/destinazioni Si trasforma la topologia in un grafo nodi sono vertici link fisici sono archi 3 Si assegnano costi agli archi uon percorso: 3 percorso a costo minimo F RTI I LOLTORI Instradamento - 7 osto istanza, ritardo, euro, livello di congestione Statico o dipendente dallo stato della rete Influenza le politiche di aggiornamento Possibili oscillazioni: sempio: costo canali legato al carico trasportato +e 0 0 0 e e Situazione iniziale +e 0 0 +e +e 0 +e 0 0 +e 0 0 +e 0 0 ricalcolo percorsi ricalcolo ricalcolo RTI I LOLTORI Instradamento - 8 lgoritmi di instradamento: esempi Semplici algoritmi senza necessità di coordinamento da parte dei nodi Random Scelgo a caso una porta di uscita Flooding Instrado verso tutte le porte disponibili eflessione o hot potato Su topologie regolari Instrado verso la porta corretta, se libera. Se occupata, instrado verso una altra porta libera lgoritmi complessi per il calcolo del percorso ottimo iversa classificazione RTI I LOLTORI Instradamento - 9 Pag. 3
lassificazione algoritmi di instradamento alcolo percorso entralizzato: Un nodo si occupa di raccogliere l informazione da tutti gli altri nodi alcola i percorsi Ridistribuisce il risultato del calcolo a tutti gli altri nodi istribuito: Tutti i nodi si scambiano informazione tra loro (utilizzando protocolli di instradamento) alcolano i percorsi (indipendentemente o in base a quanto fatto dai nodi adiacenti) RTI I LOLTORI Instradamento - 0 lassificazione algoritmi di routing entralizzato: Vantaggi: Possibile usare percorsi algoritmi e metriche complesse Tutti i nodi usano piano di instradamento coerente Svantaggi: Sensibile al guasto nodo centrale Scambio informazione da/verso nodo centralizzato genera congestione istribuito: Vantaggi: Robusto ai guasti Scambio informazione uniforme su tutta la rete Svantaggi: Richiede intelligenza nei nodi Scambio informazione parziale/errata porta a incongruenze nell instradamento RTI I LOLTORI Instradamento - lassificazione algoritmi di routing lgoritmi distribuiti - informazione: Globale: Tutti i nodi conoscono la topologia completa, compresi i costi dei canali Scambio informazione tra tutti i nodi lgoritmi link state Parziale: I nodi conoscono i nodi cui sono fisicamente collegati ed i costi dei canali cui sono collegati Scambio di informazione solo con i nodi adiacenti lgoritmi distance vector RTI I LOLTORI Instradamento - Pag.
lgoritmi Link-State Ogni nodo invia informazioni di costo (stato) dei soli suoi canali in (multi)broadcast a tutti gli altri nodi della rete Tutti nodi si costruiscono topologia della rete e conoscono i costi di tutti gli archi ata la topologia, ogni nodo calcola i percorsi a minimo costo verso tutti gli altri nodi Si ottengono tabelle di routing per questo nodo lgoritmo di ijkstra: usato per determinare cammini ottimi lgoritmo iterativo: dopo k iterazioni si ottengono i cammini a costo minimo per k destinazioni Funziona solo con costi positivi RTI I LOLTORI Instradamento - 3 lgoritmo di ijkstra Notazione: c(i,j): costo del canale dal nodo i al nodo j Infinito se nodo non collegato direttamente al canale (n): costo corrente del percorso migliore da sorgente alla destinazione n p(n): nodo che precede n nel percorso da sorgente a destinazione n N: insieme di nodi per cui il cammino ottimo è noto RTI I LOLTORI Instradamento - lgoritmo di ijkstra Inizializzazione (nodo ): N = {} 3 per tutti i nodi n N if n adiacente ad then (n) = c(,n), p(n) = 6 else (n) = infinito 8 repeat 9 trova nodo w N tale per cui (w) è minimo 0 aggiungi w ad N aggiorna (n) per tutti gli n adiacenti a w, n N: if ( (n) > (w) + c(w,n)) 3 then (n) = (w) + c(w,n), p(n) = w 3 /* il nuovo costo verso n è o il vecchio costo verso n o il cammino a minimo costo verso w più costo da w a n*/ opyright until Gruppo Reti tutti Politecnico i nodi Torino in N RTI I LOLTORI Instradamento - Pag.
ijkstra: esempio Step 0 3 start N F (),p(),,, 3 3 (),p(),, 3, 3, F (),p(), F (),p() infinity, Prossimo nodo, costo,,3,,, (F),p(F) infinity infinity,,, RTI I LOLTORI Instradamento - 6 lgoritmo di ijkstra: proprietà omplessità con M nodi Ogni iterazione: ontrollo tutti i nodi w N ggiungo w a distanza minima M*(M+)/ confronti: O(M**) sistono implementazioni migliori: O(M log(m)) RTI I LOLTORI Instradamento - 7 lgoritmi istance Vector lgoritmi iterativi: continuano fino a quando i nodi non scambiano più informazioni Termina in modo autonomo: nessun segnale esplicito di fine algoritmo istribuito: ogni nodo comunica solo con nodi adiacenti RTI I LOLTORI Instradamento - 8 Pag. 6
istance Vector Ogni nodo scambia periodicamente con i vicini diretti un vettore contenente: le destinazioni che può raggiungere la distanza dalle destinazioni misurata in costo (ad esempio: numero nodi da attraversare compreso se stesso) Il nodo che riceve il vettore lo confronta con la propria RT (Routing Table, tabella di instradamento) ed effettua modifiche: aggiunge nuove destinazioni cambia instradamenti se nuovi sono più brevi modifica costi se usa nodo adiacente come miglior scelta RTI I LOLTORI Instradamento - 9 istance Vector Vantaggi facile da implementare Problemi: lento a convergere propaga errori di routing non molto scalabile (le dimensioni dei messaggi scambiati dai nodo crescono al crescere della rete) RTI I LOLTORI Instradamento - 0 istance Vector Implementazione Struttura dati: tabella distanze Ogni nodo possiede la propria Una riga per ogni possibile destinazione Una colonna per ogni nodo adiacente sempio: nel nodo, per la destinazione Y attraverso nodo adiacente : Sorgente estinazione (Y,) = Next hop c(,) + min { (Y,w)} w RTI I LOLTORI Instradamento - Pag. 7
Tabella distanze: esempio (,) (,) (,) 7 8 c(,) + min { (,w)} w = = + = c(,) + min { (,w)} w = = +3 = anello! = c(,) + min { (,w)} w = 8+6 = anello! () osto verso destinazione attraverso nodo 7 6 8 9 RTI I LOLTORI Instradamento - () Tabella di instradamento a partire da tabella distanze osto verso destinazione atttraverso nodo Prossimo nodo, costo, 7 8, 6 9,, Tabella distanze Tabella di Routing RTI I LOLTORI Instradamento - 3 Instradamento istance Vector Iterativo, asincrono: una iterazione (locale al nodo) causata da: modifica costo canale a cui nodo collegato messaggio ricevuto da nodo adiacente, che causa modifica del cammino ottimo istribuito: ogni nodo avvisa i vicini solo quando il suo cammino migliore verso una certa destinazione è cambiato i vicini avviseranno a loro volta nodi vicini, se necessario RTI I LOLTORI Instradamento - Pag. 8
Instradamento istance Vector Ogni nodo esegue un loop infinito aspetta modifica costo canale locale oppure messaggio da nodo adiacente ricalcola tabella distanze se percorso migliore verso qualche destinazione cambiato, avvisa i vicini RTI I LOLTORI Instradamento - lgoritmo istance Vector d ogni nodo : Inizializzazione: per tutti i nodi adiacenti v: 3 (*,v) = infinito /* l operatore * significa per ogni riga" */ (v,v) = c(,v) per tutte le destinazioni, y 6 invia min (y,w) verso ogni nodo adiacente /* w sono tutti i vicini di */ w 7 RTI I LOLTORI Instradamento - 6 lgoritmo istance Vector 8 loop 9 wait (until I see a link cost change to neighbor V 0 or until I receive update from neighbor V) if (c(,v) changes by d) 3 /* change cost to all dest's via neighbor V by d */ /* note: d could be positive or negative */ for all destinations y: (y,v) = (y,v) + d 6 7 else if (update received from V wrt destination Y) 8 /* shortest path from V to some Y has changed */ 9 /* V has sent a new value for its min W V (Y,w) */ 0 /* call this received new value is "newval" */ for the single destination y: (Y,V) = c(,v) + newval 3 if we have a new min W (Y,w) for any destination Y send new value of min W (Y,w) to all neighbors 6 forever RTI I LOLTORI Instradamento - 7 Pag. 9
istance Vector: esempio Y 7 (Y,) = c(,) + min W { (Y,w)} = 7+ = 8 (,Y) Y = c(,y) + min W { (,w)} = + = 3 RTI I LOLTORI Instradamento - 8 istance Vector: esempio Y 7 RTI I LOLTORI Instradamento - 9 lgoritmo V: modifica costo canale Nodo riconosce modifica costo canale Modifica tabella distanze (passo ) Se modifica implica modifica del cammino migliore avvisa nodi adiacenti (passi 3,) good news travels fast Y 0 algoritmo termina RTI I LOLTORI Instradamento - 30 Pag. 0
lgoritmo V: modifica costo canale Modifica costo canale: good news travels fast bad news travels slow - problema del count to infinity! 60 Y 0 algoritmo prosegue RTI I LOLTORI Instradamento - 3 istance Vector: poisoned reverse Se instrada via Y per raggiungere : comunica ad Y sua distanza verso è infinito (Y non instraderà verso passando da ) non risolve il problema completamente 60 Y 0 algoritmo termina RTI I LOLTORI Instradamento - 3 onfronto tra algoritmi LS e V omplessità messaggi: con M nodi, canali per nodo LS: ogni nodo invia O(M) messaggi, ciascuno lungo O() V: ogni messaggio contiene tutte le destinazioni O(M), ed è mandato a O() vicini O( M) Velocità di convergenza LS: ogni volta che un link state è propagato, ho nuova topologia: convergenza immediata V: scelte nodo dipendono da scelte nodi vicini; si richiedono più scambi di messaggi: tempo di convergenza variabile RTI I LOLTORI Instradamento - 33 Pag.
onfronto tra algoritmi LS e V ffidabilità: cosa succede se un nodo funziona non correttamente? LS: i nodi possono annunciare costi dei canali scorretti Ogni nodo calcola la propria tabella: tutti sbagliano Non si possono creare anelli l prossimo annuncio tutto si corregge V: i nodi possono annunciare costi dei cammini scorretti Ogni annuncio è usata da tutti i nodi (indirettamente) Gli errori si propagano nella rete rrori di routing creano anelli RTI I LOLTORI Instradamento - 3 Pag.