Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoBrunilda Corona Modificato 11 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.