La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni.

Presentazioni simili


Presentazione sul tema: "Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni."— Transcript della presentazione:

1 Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni

2 Programma della lezione Algoritmo di instradamento distance vector –algoritmo di base –variazioni nei costi e guasti –poisoned reverse Confronto tra gli algoritmi di instradamento –complessità –velocità di convergenza –robustezza Instradamento gerarchico –autonomous system

3 Algoritmo distance vector Lalgoritmo distance vector è iterativo, asincrono e distribuito –ogni nodo è provvisto di una tabella delle distanze una riga per ogni destinazione di rete una colonna per ciascuno dei vicini direttamente collegati al nodo –lalgoritmo riempie la tabella di ogni nodo con le distanze minime per raggiungere dal nodo la destinazione in riga passando per il nodo in colonna –ogni nodo esegue una computazione, usando le informazioni provenienti dai vicini, e le varie esecuzioni cooperano (algoritmo distribuito ) –le esecuzioni delle computazioni da parte dei vari nodi non avvengono tutte contemporaneamente, ma concorrentemente (algoritmo asincrono ) –il processo complessivo converge, terminando nel momento in cui tutti i nodi hanno una corretta tabella delle distanze (algoritmo iterativo ) larresto dellalgoritmo è automatico: quando nessuno è più in grado di aggiornare la propria tabella, lalgoritmo è concluso

4 Algoritmo distance vector Lelemento alla riga X e colonna Y della tabella delle distanze del nodo E, D E (X,Y), denota la distanza da E a X, passando per Y Inizialmente, ogni nodo E conosce la distanza dai propri vicini ed assume che gli altri nodi siano inaccessibili –D E (X,X) = c(E,X) –tutti gli altri elementi sono Successivamente, la tabella viene aggiornata come D E (X,Y) = c(E,Y) + + min{D Z (X,w) | w vicino di X} 1 2 28 7 1 A BC ED D E ()ABD A 1145 B 785 C 694 D 4112

5 Algoritmo distance vector Quando lalgoritmo raggiunge la stabilità, il percorso minimo da E a C si ottiene cercando il valore minimo nella riga C della tabella D E (C,x) –a stabilità raggiunta, ogni tabella contiene la lunghezza del percorso minimo da E a C passando per x A tale valore corrisponde la colonna D Il datagram verrà indirizzato al router D, il quale procederà nello stesso modo di E –il percorso è individuato in modo distribuito: ogni router contiene il miglior prossimo passo 1 2 28 7 1 A BC ED D E ()ABD A 1145 B 785 C 694 D 4112

6 Algoritmo distance vector // Al nodo X for ( V adiacente ad X ) { D X (V,V) = c(X,V); for (Y diverso da V)D X (Y,V) = ; } for ( Y possibile destinazione ) for ( V adiacente a X ) send D(X,Y) = min{D X (Y,w) | w vicino di X} a V; while ( true ) { wait ( messaggio da un vicino V ); if ( messaggio == c(X,V) = c(X,V) + d )// variazione costo link D X (Y,V) = D X (Y,V) + d; else // messaggio == D(V,Y) = newval D X (Y,V) = c(X,V) + newval; if (il valore di min{D X (Y,w) | w vicino di X} è cambiato ) for ( V adiacente a X ) send D(X,Y) = min{D X (Y,w) | w vicino di X} a V; }

7 Esempio 1 7 2 Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1

8 Esempio 1 7 2 Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91

9 Esempio 1 7 2 Y X Z D X YZ Y 2 Z 7 D y YZ X 2 Z 1 D z YZ X 7 Y 1 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91 DXYZY28Z37DXYZY28Z37 DyYZX28Z91DyYZX28Z91 DzYZX73Y91DzYZX73Y91

10 Variazione di costo dei link Quando avviene una variazione di costo in un link, lalgoritmo distance vector –aggiorna la propria tabella delle distanze –se questa variazione è significativa, ovvero se modifica una qualche distanza minima, invia un messaggio ai vicini –per lasincronia dellalgoritmo, esso inizierà a convergere verso un nuovo insieme di percorsi minimo Se un link si guasta, si può usare un trucco : –basta segnalare un cambiamento nel costo del link guasto: dal valore precedente a infinito

11 Poisoned reverse Studiando il tempo di propagazione di una variazione di costo di un link, si scopre che: –le buone notizie (riduzioni dei costi) viaggiano velocemente –le cattive notizie (aumento dei costi) viaggiano lentamente il problema nasce dal fatto che lalgoritmo considera anche percorsi ciclici, ovviamente inutili; tuttavia, si può dimostrare che, solo quando i dati sono stabili, i percorsi ciclici vengono sicuramente eliminati Per evitare il problema di propagazione lenta, si usa una tecnica nota come poisoned reverse: –se Z instrada i datagram attraverso Y per raggiungere X, allora Z informerà Y che la distanza da Z a X è infinita questa tecnica previene i percorsi ciclici tra due nodi, ma non i cicli che coinvolgono più di due nodi

12 Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –efficienza (in termini di scambio di messaggi): lalgoritmo di Dijkstra richiede O(n·E) messaggi, con n numero di nodi ed E numero di link, in modo che ciascun nodo della rete conosca il costo di ciascun link in Distance Vector, ogni nodo invia messaggi solo ai propri vicini, quindi il costo di comunicazione dipende dal numero di iterazioni dellalgoritmo e dalla topologia della rete tuttavia, in pratica, Distance Vector, su reti ragionevoli come topologia e con un range di costi piccolo, tende a non scambiare molti messaggi quindi, nessuno dei due algoritmi è definitivamente migliore dellaltro, in questo senso

13 Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –efficienza (in termini di velocità di convergenza) nel caso dellalgoritmo di Dijkstra, si può mostrare che, con una opportuna codifica, esso richiede O(n 2 ) passi di computazione, con n numero di nodi nel caso dellalgoritmo Distance Vector, il costo in termini di passi di calcolo è difficile da valutare, dipendendo dal valore dei costi dei link tuttavia, in pratica, Distance Vector, su reti ragionevoli come topologia e con un range di costi piccolo, tende a convergere abbastanza in fretta quindi, ancora una volta, nessuno dei due algoritmi è certamente superiore allaltro

14 Confronto I parametri di confronto tra gli algoritmi di instradamento visti sono: –robustezza in caso di guasti a nodi o a link, lalgoritmo di Dijkstra, essenzialmente, richiede di ricomputare tutti i percorsi minimi invece, lalgoritmo Distance Vector può gestire la situazione, a patto di considerare il problema dei percorsi ciclici nel caso di informazioni errate sul costo di un link, per entrambi gli algoritmi, queste influenzeranno solo i percorsi ottimi che contengono quel link nel caso dellalgoritmo di Dijkstra, questa informazione tenderà a restare confinata nei nodi più vicini al link sbagliato, risparmiando gli altri nel caso di Distance Vector, invece, questa informazione verrà propagata, in un certo qual senso, per tutta la rete

15 Confronto Complessivamente, possiamo dire che nessuno dei due algoritmi è vincente sullaltro –lalgoritmo di Dijkstra è più controllabile, più robusto rispetto alle informazioni mantenute –lalgoritmo di Distance Vector è più flessibile, spesso più efficiente e genera spesso meno traffico Quindi la scelta tra i due algoritmi dipende dal tipo di instradamento che stiamo cercando –se vogliamo un instradamento su una rete con molta variabilità sulla topologia, ma in cui le informazioni sono date correttamente, la scelta è Distance Vector, che sopporta variazioni di topologia e di costi –se vogliamo un routing efficiente su una rete abbastanza stabile, allora lalgoritmo di Dijkstra è superiore, dal momento che effettua tutto il lavoro una volta sola

16 Instradamento gerarchico Se una rete è formata da molte sottoreti, gli algoritmi di instradamento visti sono inesorabilmente inefficienti –essi computano la distanza minima tra due router della rete, per ogni coppia di router –quindi ogni router deve mantenere una tabella che ha un grande numero di percorsi per entrambi gli algoritmi, la tabella finale contiene tante righe quanti sono i percorsi Tuttavia, se la destinazione fosse una intera sottorete, allora avrei un instradamento tra reti –posso definire un router come interno o di frontiera –i router di frontiera definiscono la rete, mentre i router interni fanno parte delle sottoreti

17 Instradamento gerarchico La divisione in router interni e di frontiera rende scalabile il problema dellinstradamento –ogni sottorete risolve il problema dellinstradamento al suo interno, considerando i propri router di frontiera come tutte le altre destinazioni –la rete delle reti risolve il problema di instradamento solo tra i router di frontiera, considerando questi come la somma delle destinazioni della sottorete La divisione in sottoreti è comoda per definire i confini amministrativi delle organizzazioni router interno router di frontiera

18 Autonomous System Su Internet, una sottorete che sia visibile allesterno come una singola entità dal punto di vista dellinstradamento, è detta Autonomous System ( AS ) In effetti, Internet è una rete di Autonomous System, almeno per quanto riguarda i problemi di instradamento Esistono quindi protocolli di routing – intra-autonomous system : si occupano di instradare i datagram tra nodi dello stesso sistema, eventualmente delegando ai router di frontiera il problema dellinstradamento se la destinazione è esterna – inter-autonomous system : si occupano di instradare i datagram tra sistemi, ovvero tra i loro router di frontiera

19 Autonomous System Linstradamento di un datagram avviene per parti: –allinterno dellautonomous system di origine –tra autonomous system intermedi –allinterno dellautonomous system di destinazione La rotta seguita può non essere ottimale –anzi, non è nemmeno garantito che funzioni, potrebbe risultare ciclica! Larchitettura risultante è estremamente complessa, ma il procedimento è scalabile rotta inter-AS rotta intra-AS

20 Autonomous System I protocolli di instradamento usati su Internet sono – RIP (Routing Internet Protocol) intra-AS, basato su Distance Vector – OSPF intra-AS, basato su Dijkstra – BGP inter-AS, basato su Distance Vector Un protocollo di instradamento è un ibrido: –agisce sul livello di rete le tabelle usate per linstradamento sono strutture dati di questo livello –computa sul livello applicazione i messaggi atti al suo funzionamento sono trasportati da UDP o TCP

21 Conclusione Questa lezione è tratta da: –Kurose, cap. 4.2 e 4.3 Esercizi: –Provate lalgoritmo distance vector sulla rete a cinque elementi di queste slide –Provate a costruire un esempio che mostri come la propagazione di cattive notizie in distance vector sia lenta –Provate a costruire un esempio in cui la tecnica di poisoned reverse non funzioni –Discutete cosa si intende per destinazione in una rete con sottoreti. Come è possibile indirizzare un insieme di nodi?


Scaricare ppt "Reti di Telecomunicazione Lezione 16 Corso di reti per le telecomunicazioni."

Presentazioni simili


Annunci Google