La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

4-1 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: "4-1 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 4-1 Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)

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

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

4 4-4 Algoritmo di routing Link-State Algoritmo di Dijkstra r topologia della rete e costi dei link conosciuti per tutti i nodi m realizzato attraverso link state broadcast m tutti i nodi hanno le stesse informazioni r calcola i percorsi a costo minore da un nodo (sorgente) a tutti gli altri nodi m fornisce la routing table per quel nodo r 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 4-5 Algoritmo di Dijsktra 1 Initialization: 2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v) 6 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: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* new cost to v is either old cost to v or known 14 shortest path cost to w plus cost from w to v */ 15 until all nodes in N

6 4-6 Algoritmo di Dijkstra: esempio Step 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 A E D CB F

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

8 4-8 Algoritmo Distance Vector Iterativo: r continua finchè nessun nodo scambia più informazioni r auto-terminante: nessun segnale di stop Asincrono: r i nodi non devono scambiare info o procedere in sincronismo! Distribuito: r ogni nodo comunica solo con i vicini direttamente collegati Tabella delle distanze r ogni nodo ha la sua r una riga per ogni possibile destinazione r una colonna per ogni nodo vicino direttamente collegato r 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 4-9 Tabella distanze: esempio A E D CB D () A B C D A1764A1764 B D5542D5542 E cost to destination via destination 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 D (A,B) E c(E,B) + min {D (A,w)} B w = = 8+6 = 14 loop!

10 4-10 Distance table fornisce routing table D () A B C D A1764A1764 B D5542D5542 E cost to destination via destination ABCD ABCD A,1 D,5 D,4 D,2 Outgoing link to use, cost destination Distance table Routing table

11 4-11 Distance Vector Routing: generalità Iterativo, asincrono: ogni iterazione locale causata da: r modifica costo link locale r messaggio dal vicino: il suo percorso a costo minore è cambiato Distribuito: r ogni nodo notifica i vicini solo quando cambia il suo percorso a costo minore verso una qualunque destinazione m i vicini notificano i loro vicini solo se necessario 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 Ad ogni nodo:

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

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

14 4-14 Distance Vector Algorithm: esempio X Z 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 4-15 Distance Vector Algorithm: esempio (cont.) X Z Y

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

17 4-17 Distance Vector: variazione costi nei link Costo del link aumenta: r Percorso ciclico, per raggiungere X: m Y passa attraverso Z m Z passa attraverso Y r conteggio allinfinito X Z Y 60 algoritmo continua!

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

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


Scaricare ppt "4-1 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