La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2003 All Rights Reserved)

Presentazioni simili


Presentazione sul tema: "Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2003 All Rights Reserved)"— Transcript della presentazione:

1 Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)

2 da sorgente a destinazione
Routing Routing protocol Obiettivo: determinare un “buon” percorso (sequenza di router) attraverso la rete da sorgente a destinazione 5 3 B C 2 5 A 2 1 F 3 Teoria dei grafi usata per gli algoritmi di routing i nodi del grafo sono i router gli archi del grafo sono i link fisici costo del link: distanza, costo economico, livello di congestione, … 1 2 D E 1 “buon” percorso: tipicamente significa a costo minimo possibili altre definizioni

3 Classificazione algoritmi di routing
Informazione globale o decentralizzata Globale tutti i router hanno informazione completa su topologia e costi dei link “link state” algorithms Decentralizzata i router conoscono i costi dei link dei vicini fisicamente connessi processo di calcolo interattivo, scambio di informazioni con i vicini “distance vector” algorithms Statico o dinamico Statico i percorsi cambiano lentamente nel tempo Dinamico i percorsi cambiano più velocemente aggiornamento periodico in risposta ai cambi di costo dei link

4 Algoritmo di routing Link-State
Algoritmo di Dijkstra topologia della rete e costi dei link conosciuti per tutti i nodi realizzato attraverso “link state broadcast” tutti i nodi hanno le stesse informazioni calcola i percorsi a costo minore da un nodo (sorgente) a tutti gli altri nodi fornisce la routing table per quel nodo iterativo: dopo k iterazioni, determina i percorsi a costo minore per k destinazioni Notazioni: c(i,j): costo link dal nodo i al nodo j. Costo infinito se i e j non direttamente connessi D(v): valore corrente del costo del percorso (a minor costo) dalla sorgente al nodo v p(v): nodo precedente lungo il percorso a minor costo dalla sorgente a v N: insieme di nodi il cui percorso a costo minore è definitivamente conosciuto

5 Algoritmo di Dijsktra 1 Initialization: 2 N = {A} 3 for all nodes v
if v adjacent to A then D(v) = c(A,v) else D(v) = ∞ 7 8 Loop 9 find w not in N such that D(w) is a minimum 10 add w to N 11 update D(v) for all v adjacent to w and not in N: D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known shortest path cost to w plus cost from w to v */ 15 until all nodes in N

6 Algoritmo di Dijkstra: esempio
Step 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(B),p(B) 2,A D(C),p(C) 5,A 4,D 3,E D(D),p(D) 1,A D(E),p(E) 2,D D(F),p(F) 4,E 5 3 B C 2 5 A 2 1 F 3 1 2 D E 1

7 Algoritmo di Dijkstra: considerazioni
Complessità algoritmo: n nodi ogni iterazione: controlla tutti i nodi w non in N n*(n+1)/2 controlli: O(n2) possibile un’implementazione più efficiente: O(nlogn) Possibili oscillazioni: es. costo link = traffico trasportato A A A 1 A 1+e 2+e 2+e 2+e D B D B D B D 1+e 1 B 1+e 1 e 1 e C 1+e C C C 1 1 e … ricalcola routing … ricalcola … ricalcola inizialmente

8 Algoritmo Distance Vector
Iterativo: continua finchè nessun nodo scambia più informazioni auto-terminante: nessun “segnale” di stop Asincrono: i nodi non devono scambiare info o procedere in sincronismo! Distribuito: ogni nodo comunica solo con i vicini direttamente collegati Tabella delle distanze ogni nodo ha la sua una riga per ogni possibile destinazione una colonna per ogni nodo vicino direttamente collegato esempio: nel nodo X, per dest. Y attraverso il vicino Z: D (Y,Z) X distanza da X a Y, via Z come next hop c(X,Z) + min {D (Y,w)} Z w =

9 Tabella distanze: esempio
C D 1 7 6 4 14 8 9 11 5 2 E cost to destination via destination 1 B C 7 A 8 2 1 E D 2 D (C,D) E c(E,D) + min {D (C,w)} D w = 2+2 = 4 D (A,D) E c(E,D) + min {D (A,w)} D w = 2+3 = 5 loop! D (A,B) E c(E,B) + min {D (A,w)} B w = 8+6 = 14 loop!

10 Distance table fornisce routing table
1 7 6 4 14 8 9 11 5 2 E cost to destination via destination Outgoing link to use, cost A B C D A,1 D,5 D,4 D,2 destination Distance table Routing table

11 Distance Vector Routing: generalità
Iterativo, asincrono: ogni iterazione locale causata da: modifica costo link locale messaggio dal vicino: il suo percorso a costo minore è cambiato Distribuito: ogni nodo notifica i vicini solo quando cambia il suo percorso a costo minore verso una qualunque destinazione i vicini notificano i loro vicini solo se necessario Ad ogni nodo: wait for (change in local link cost or msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors

12 Algoritmo Distance Vector: Bellman-Ford
Per tutti i nodi X: 1 Initialization: 2 for all adjacent nodes v: D (*,v) = ∞ /* the * operator means "for all rows" */ D (v,v) = c(X,v) 5 for all destinations, y send min D (y,w) to each neighbor /* w over all X's neighbors */ X X X w

13 Distance Vector Algorithm (cont.):
8 loop 9 wait (until I see a link cost change to neighbor V or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) /* change cost to all dest's via neighbor V by d */ /* note: d could be positive or negative */ for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) /* shortest path from V to some Y has changed */ /* V has sent a new value for its min DV(Y,w) */ /* call this received new value "newval" */ for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w) for any destination Y send new value of min D (Y,w) to all neighbors 25 26 forever X X w X X w X w

14 Distance Vector Algorithm: esempio
X Z 1 2 7 Y D (Y,Z) X c(X,Z) + min {D (Y,w)} w = 7+1 = 8 Z D (Z,Y) X c(X,Y) + min {D (Z,w)} w = 2+1 = 3 Y

15 Distance Vector Algorithm: esempio (cont.)
X Z 1 2 7 Y

16 Distance Vector: variazione costi nei link
Costo del link diminuisce: nodo rileva variaz. costo link locale aggiorna distance table se il costo cambia nel percorso a costo minore, informa i vicini 1 Y 4 1 X Z 50 algoritmo termina “solo” due iterazioni

17 Distance Vector: variazione costi nei link
Costo del link aumenta: Percorso ciclico, per raggiungere X: Y passa attraverso Z Z passa attraverso Y conteggio all’infinito 60 Y 4 1 X Z 50 algoritmo continua!

18 Distance Vector: poisoned reverse
Se Z instrada attraverso Y per raggiungere X: Z informa Y che la distanza da Z a X è infinita (così Y non instrada verso X via Z) non risolve completamente il problema del conteggio all’infinito 60 Y 4 1 X Z 50 algoritmo termina

19 Confronto tra gli algoritmi LS e DV
Complessità del messaggio LS: con n nodi ed E link, inviati O(nE) messaggi DV: scambio solo tra vicini tempo di convergenza varia Velocità di convergenza LS: Algoritmo O(n2) richiede O(nE) messaggi può avere oscillazioni DV: tempo di convergenza varia può avere percorsi ciclici problema di conteggio all’infinito Robustezza: cosa accade se il router non funziona? LS: un nodo può trasmettere un costo del link incorretto ogni nodo calcola la sua tabella DV: un nodo può trasmettere un costo di percorso incorretto tabella di ogni nodo usata da altri iterativamente errore si propaga attraverso la rete


Scaricare ppt "Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© 1996-2003 All Rights Reserved)"

Presentazioni simili


Annunci Google