Parte 4: Livello Network Obiettivi: comprendere i principi dei servizi a livello network: routing (instradamento, selezione del cammino) problema dello scale come funziona un router realizzazione in Internet Sommario: servizi del livello rete principi del routing: selezione del cammino routing gerarchico IP protocolli di routing usati in Internet intra-dominio inter-dominio com è fatto un router? 4: Livello Network 4-
Funzioni del livello Network trasportare pacchetti dall host mittente all host destinazione i protocolli a livello network sono presenti in ogni host ed ogni router tre funzioni importanti: determinazione del cammino: strada che i pacchetti seguono dalla sorgente alla destinazione Algoritmi di Routing commutazione (switching): spostare pacchetti dagli ingressi del router alla giusta uscita del router call setup: non in Internet application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical 4: Livello Network 4-2
Modello di servizio Network astrazione del servizio Domanda: Quale modello di servizio per il canale che trasporta i pacchetti dal mittente alla destinazione? banda garantita? conservazione del tempo tra pacchetti (no jitter)? recapito senza perdite? recapito in ordine? feedback sulla congestione inviato al mittente? La astrazione più importante offerta dal livello network:??? circuito virtuale o datagram? 4: Livello Network 4-3
Circuiti virtuali il cammino sorgente-destinatario ricorda il circuito telefonico prestazioni la rete compie azioni sul cammino sorgente-destinatario call setup, teardown per ogni connessione prima dei dati ogni pacchetto ha memorizzato un identificatore di circuito virtuale (non l indirizzo dell host destinazione) ogni router sul cammino sorgente-destinazione mantiene lo stato per ogni connessione che lo attraversa il livello transport richiedeva solo i due host canali, risorse dei router (banda, buffer) sono allocati a VC per ottenere performance 4: Livello Network 4-4
Circuiti virtuali: protocolli si segnalazione usati per stabilire, mantenere, rilasciare VC usati in ATM, frame-relay, X.25 non usati in Internet application transport network data link physical 5. Data flow begins 6. Receive data 4. Call connected 3. Accept call. Initiate call 2. incoming call application transport network data link physical 4: Livello Network 4-5
Reti Datagram: il modello Internet senza call setup al livello network router: senza stato delle connessioni end-to-end non c è il concetto di connessione al livello network i pacchetti instradati usando l identificatore (indirizzo) dell host destinazione pacchetti tra una coppia sorgente-destinatario possono percorrere cammini diversi tra loro application transport network data link physical. Spedizione dati 2. Ricezione dati application transport network data link physical 4: Livello Network 4-6
Modelli di servizio del livello Network: Network Architecture Service Model Bandwidth Guarantees? Loss Order Timing Congestion feedback Internet ATM ATM ATM ATM best effort CBR VBR ABR UBR none constant rate guaranteed rate guaranteed minimum none no yes yes no no no yes yes yes yes no yes yes no no no (inferred via loss) no congestion no congestion yes no 4: Livello Network 4-7
Datagram o VC: perché? Internet scambio dati tra computer servizio elastico, senza forti requisiti temporali host intelligenti (computer) possono adattarsi, effettuare controlli, riprendersi dagli errori semplici nella rete, la complessità rimane ai bordi ( edge ) molti tipi di canali caratteristiche differenti difficile un servizio uniforme ATM evoluto nel mondo della telefonia conversazione umana: requisiti temporali e di affidabilità stringenti bisogno di servizi garantiti host stupidi telefoni complessità nella rete 4: Livello Network 4-8
Routing Protocollo di Routing Obiettivo: determinare un buon cammino (sequenza di router) attraverso la rete dalla sorgente alla destinazione Astrazione con Grafo per gli algoritmi di routing: i nodi del grafo sono i router gli archi del grafo sono i canali fisici costo: ritardo, costo in denaro, o livello di congestione A 2 5 B D 2 3 3 C E buon cammino: 5 2 F di solito, cammino a costo minimo altre definizioni sono possibili 4: Livello Network 4-9
Classificazione degli algoritmi di Routing Informazione Globale o decentralizzata? Globale: tutti i router hanno informazioni sulla completa topologia e sui costi di tutti i canali algoritmi link state Decentralizzata: i router conoscono i vicini fisicamente connessi e i costi dei canali verso i vicini processo iterativo di calcolo con scambio di informazioni con i vicini algoritmi distance vector Statico o dinamico? Statico: i cammini cambiano lentamente nel tempo Dinamico: i cammini cambiano più velocemente aggiornamento periodico in risposta a modifica dei costi dei canali 4: Livello Network 4-0
Un algoritmo di routing Link-State Algoritmo di Dijkstra topologia della rete, costi dei canali conosciuti da tutti i nodi si ottiene con un broadcast dello stato dei canali tutti i nodi hanno le stesse informazioni calcola il cammino di costo minore da un nodo ( sorgente ) a tutti gli altri fornisce la tabella di routing per quel nodo iterativo: dopo k iterazioni si conosce il cammino di costo minore verso k destinazioni Notazione: c(i,j): costo del canale dal nodo i al nodo j; costo infinito se non sono adiacenti D(v): costo attuale del cammino dalla sorgente alla destinazione V p(v): nodo predecessore lungo il cammino dalla sorgente a v N: insieme di nodi il cui cammino di costo minore è definitivamente conosciuto 4: Livello Network 4-
Algoritmo di Dijsktra 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) = infinity 7 8 Loop 9 find w not in N such that D(w) is a minimum 0 add w to N update D(v) for all v adjacent to w and not in N: 2 D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N 4: Livello Network 4-2
Algoritmo di Dijkstra: esempio Passo 0 2 3 4 5 A 2 start N A AD ADE ADEB ADEBC ADEBCF 5 B D 2 3 3 C E D(B),p(B) 2,A 2,A 2,A 5 2 F D(C),p(C) 5,A 4,D 3,E 3,E D(D),p(D),A D(E),p(E) infinity 2,D D(F),p(F) infinity infinity 4,E 4,E 4,E. 8 Loop 9 find w not in N such that D(w) is a minimum 0 add w to N update D(v) for all v adjacent to w and not in N: 2 D(v) = min( D(v), D(w) + c(w,v) ) 3 /* new cost to v is either old cost to v or known 4 shortest path cost to w plus cost from w to v */ 5 until all nodes in N 4: Livello Network 4-3
Algoritmo di Dijkstra, discussione Complessità Algoritmo: n nodi ogni iterazione: controllo di tutti i nodi, w, non in N n*(n+)/2 confronti: O(n**2) implementazione efficiente : O(nlogn) Possibili Oscillazioni: e.g., costo canali = quantità di traffico trasportato D A +e 0 0 0 e C inizio e B D A 2+e 0 0 +e C 0 B ricalcolo routing D A 0 2+e 0 0 +e C ricalcolo B D A 2+e 0 0 +e C e ricalcolo B 4: Livello Network 4-4
Algoritmi di Routing Distance Vector iterativi: continua fino a quando nessun nodo scambia informazioni. auto-terminante: nessun segnale di fine asincroni: i nodi non devono scambiarsi informazioni o iterare in maniera sincronizzata distribuiti: ogni nodo comunica solo con i vicini direttamente connessi Struttura dati Distance Table ogni nodo ha la sua una riga per ogni possibile destinazione una colonna per ogni vicino direttamente connesso al nodo esempio: nel nodo X, per destinazione Y, via il vicino Z: X D (Y,Z) = = distance from X to Y, via Z as next hop Z c(x,z) + min {D (Y,w)} w 4: Livello Network 4-5
Distance Table: esempio A 7 E D (C,D) E D (A,D) E D (A,B) B E 8 2 C D D = c(e,d) + min {D (C,w)} w = 2+2 = 4 D = c(e,d) + min {D (A,w)} w = 2+3 = 5 2 loop! = c(e,b) + min {D (A,w)} w = 8+6 = 4 loop! B costo per la destinazione via E destinazione D () A B C D A 7 6 4 B 4 8 9 D 5 5 4 2 4: Livello Network 4-6
Distance table forniscono la tabella di routing costo per la destinazione via E D () A B D Canale in uscita da usare, costo A 4 5 A A, destinazione B C 7 6 8 9 5 4 destination B C D,5 D,4 D 4 2 D D,4 Distance table Tabella di Routing 4: Livello Network 4-7
Routing Distance Vector: panoramica Iterativi, asincroni: ogni iterazione locale causata da: modifica dei costi dei canali locali messaggio da un vicino: il suo cammino di costo minore è cambiato Distribuiti: ogni nodo notifica solo ai vicini e solo quando il suo cammino di costo minore verso una qualunque destinazione è cambiato i vicini, a loro volta, notificano ai propri vicini questo cambiamento se necessario Ogni nodo: attesa o (cambio in costo di un canale locale o messaggio da un vicino) ricalcola la distance table se il cammino di costo minore verso una qualunque destinazione è cambiato, notificalo ai vicini 4: Livello Network 4-8
Algoritmo Distance Vector: Ad ogni nodo, X: Initialization: 2 for all adjacent nodes v: 3 D X(*,v) = infinity /* the * operator means "for all rows" */ X 4 D (v,v) = c(x,v) 5 for all destinations, y X 6 send min D (y,w) to each neighbor /* w over all X's neighbors */ w 4: Livello Network 4-9
Algoritmo Distance Vector (continua): 8 loop 9 wait (until I see a link cost change to neighbor V 0 or until I receive update from neighbor V) 2 if (c(x,v) changes by d) 3 /* change cost to all dest's via neighbor v by d */ 4 /* note: d could be positive or negative */ 5 for all destinations y: D X(y,V) = D X(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 wdv(y,w) */ 20 /* call this received new value is "newval" */ 2 for the single destination y: D X (Y,V) = c(x,v) + newval 22 X 23 if we have a new min w D (Y,w)for any destination Y X 24 send new value of min D (Y,w) to all neighbors w 25 26 forever 4: Livello Network 4-20
Algoritmo Distance Vector: esempio X 2 Y 7 Z 4: Livello Network 4-2
Algoritmo Distance Vector: esempio X 2 Y 7 Z X D (Y,Z) = c(x,z) + min {D (Y,w)} w = 7+ = 8 Z Y X D (Z,Y) = c(x,y) + min {D (Z,w)} w = 2+ = 3 4: Livello Network 4-22
Distance Vector: cambio costi canale Cambio costi canale: un nodo di accorge del cambio del costo di canale locale aggiorna la sua distance table (linea 5) se il costo cambia nel cammino di costo minore, notifica il cambio ai vicini (linee 23,24) buone notizie corrono veloci X 4 Y 50 Z terminazione algoritmo 4: Livello Network 4-23
Distance Vector: cambio costi canale Cambio costi canale: le buone notizie corrono veloci le brutte molto lentamente problema del count to infinity 60 X 4 Y 50 Z l algoritmo continua 4: Livello Network 4-24
Distance Vector: poisoned reverse Se Z instrada attraverso Y per arrivare ad X: Z dice ad Y che la sua (di Z) distanza da X è infinita (così Y non instraderà verso X via Z) 60 X 4 Y 50 Z non risolve completamente il problema del count to infinity terminazione algoritmo 4: Livello Network 4-25
Confronto tra LS e DV Complessità messaggi LS: con n nodi, E canali, O(nE) messaggi spediti ognuno DV: scambio solo tra vicini il tempo di convergenza è variabile Velocità di Convergenza LS: O(n**2) l algoritmo richiede O(nE) messaggi ci possono essere oscillazioni DV: tempo di convergenza varia ci possono essere cicli di routing problema del count-toinfinity Robustezza: che succede se un router non funziona? LS: un nodo può dichiarare un costo di canale non corretto ogni nodo calcola solo la propria tabella di routing DV: un nodo può dichiarare un costo di cammino non corretto la tabella di ogni nodo è usata dagli altri nodi errori si propagano attraverso la rete 4: Livello Network 4-26
Routing gerarchico Studio del routing fino ad ora - idealizzando tutti i router identici rete piatta (flat) NON vero in pratica scaling: con 50 milioni di destinazioni: non si possono memorizzare tutte le destinazione nelle tabelle di routing! lo scambio di tabelle di routing congestionerebbe i canali! autonomia amministrativa internet = rete di reti ogni amministratore di rete potrebbe voler controllare il routing nella propria rete 4: Livello Network 4-27
Routing gerarchico aggregare routers in regioni, autonomous systems (AS) routers nello stesso AS eseguono lo stesso protocollo di routing protocollo di routing intra-as router in AS differenti possono eseguire protocolli di routing intra-as differenti gateway routers router speciali in AS eseguono protocolli di routing intra-as con tutti gli altri router nel AS anche responsabili per il routing verso destinazioni al di fuori del AS eseguono protocolli di routing inter-as con altri gateway routers 4: Livello Network 4-28
Routing Intra-AS e Inter-AS a C C.b b d A A.a a b A.c c B.a a B c Gateway: eseguono il routing inter-as tra di loro b eseguono il routing intra-as con altri router nel proprio AS routing inter-as e intra-as nel gateway A.c livello rete livello link livello fisico 4: Livello Network 4-29
Routing Intra-AS e Inter-AS a Host h C C.b b A.a Routing Inter-AS tra A e B A.c a d A b c Routing Intra-AS all interno dell AS A B.a a B c b Host h2 Routing Intra-AS all interno dell AS B Esamineremo in breve protocolli di routing inter-as e intra-as in Internet 4: Livello Network 4-30
Il livello Network in Internet Funzioni del livello Network negli host e router: Livello Transport: TCP, UDP Livello Network Protocolli di Routing selezione percorso RIP, OSPF, BGP tabella di routing protocollo IP convenzioni indirizzamento formato datagram convenzioni gestione pacchetto protocollo ICMP notifica errori segnalazione tra router Livello Link Livello fisico 4: Livello Network 4-3