• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
632
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
14
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Ricordare i servizi principali del livello IP • Indirizzamento univoco degli host • Unità di trasferimento dati • Architettura di Internet • Funzione di routing: – sceglie il percorso nella rete attraverso il quale consegnare i pacchetti – consegna i pacchetti da un host a un altro, ma in modo best effort, privo di conessione, e quindi non garantito Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.130 Parte 4 Modulo 8: Basi teoriche per il routing 1
  • 2. Host e router di default • Ciascun host fa riferimento a un router di default, detto anche first hop router • Quando un host invia un pacchetto, questo router prende il nome di source router • Analogamente, quando un host riceve un pacchetto, il suo router di defaulr prende il nome di destination router • Quindi, il problema del routing da host a host è in realtà un problema di routing da source router a destination router Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.132 Algoritmi di routing OBIETTIVO: Dato un insieme di router interconnessi, determinare il cammino ottimale dal source router al destination router Cammino ottimale  “Costo” minimo Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.133 2
  • 3. Cosa si intende per “costo” • Fattori statici: topologia della rete • Fattori dinamici: traffico della rete, guasti • Politiche di routing tra provider • Net neutrality? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.134 Modello della rete • Per formulare un algoritmo di routing, si modella la rete tramite un grafo pesato G(N,E) dove: • i nodi N rappresentano i router (oppure gli AS) • gli archi rappresentano le connessioni tra i router • le etichette E degli archi rappresentano il “costo” delle connessioni tra i router Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.135 3
  • 4. Rappresentazione mediante grafo router host Etichetta sull’arco: “costo” per l’invio di un pacchetto Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.136 Algoritmi di routing Qual è il cammino minimo (e il suo costo) tra A e C? Qual è il cammino minimo (e il suo costo) tra A e F? Quanti percorsi ci sono tra A e F? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.137 4
  • 5. Principali algoritmi di routing • Algoritmi di routing centralizzato – Ogni nodo possiede un’informazione globale sulla rete – Es., Link state protocol • Algoritmi di routing distribuito – Nessun nodo ha un’informazione completa del costo di tutti i link della rete – Es., Distance vector protocol Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.138 Parte 4 Modulo 8a: Link state protocol 5
  • 6. Algoritmi Link State • Gli algoritmi Link State (LS) sono centralizzati • Prevedono che la topologia di rete e i costi di ogni link siano noti (disponibili in input all’algoritmo): 1. Ogni nodo calcola lo stato dei link ad esso connessi 2. Ciascun nodo periodicamente trasmette identità e costi dei link connessi (link state broadcast) (Quindi tutti i nodi hanno una visione identica e completa della rete) 3. Ciascun nodo calcola i cammini di costo minimo verso tutti gli altri nodi della rete mediante l’Algoritmo di Dijkstra Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.140 Pacchetti con informazioni sullo stato dei link (LSP) Periodicamente vengono inviati in broadcast, su tutti i link del nodo, dei pacchetti LSP con le seguenti informazioni: • Node ID • Lista di vicini e costo dei rispettivi link • Informazioni aggiuntive: – Numero di sequenza per accorgesi di errori in caso di delivery out-of-order delle informazioni – Time To Live (TTL) per evitare di usare informazioni vecchie e quindi non affidabili Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.141 6
  • 7. Propagazione dei pacchetti LSP Inoltro con algoritmo di flooding (inondazione) Quando il nodo i riceve un LSP dal nodo j: • Se il pacchetto LSP proveniente da j è più recente, si salva il valore nella tabella e si inoltra una copia a su tutti i link connessi al nodo i (ad eccezione di quello da cui l’LSP è stato ricevuto) • Altrimenti il pacchetto LSP viene scartato Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.142 “Forward search algorithm” di Dijkstra • Algoritmo iterativo: alla k-esima iterazione, il nodo i conosce il cammino di costo minore verso k nodi destinazione • Si definiscono: – c(i,j) costo del link tra nodo i e nodo j – D(v) costo minimo del cammino verso il nodo v (minimo relativamente alla iterazione corrente). D(v)=∞ se il costo del link non è noto – p(v) immediato predecessore di v lungo il cammino a costo minimo verso v – N gruppo nodi il cui cammino di costo minore è noto definitivamente Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.143 7
  • 8. Algoritmo di Dijkstra - inizializzazione • Passo di inizializzazione seguito da un ciclo eseguito una volta per ogni nodo del grafo • Al termine saranno stati calcolati i cammini minimi dal nodo u verso tutti gli altri nodi Inizializzazione N = {u} Per tutti i nodi v se v è adiacente a u D(v) = c(u,v) altrimenti D(v) = ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.144 Algoritmo di Dijkstra - ciclo Ciclo 1. Calcola il costo D(i) per tutti i nodi adiacenti i non in N 2. Aggiungi a N il nodo w con il minimo costo D(w) 3. Aggiorna D(v) per ciascun nodo v adiacente a w, non in N: D(v) = min{ D(v), D(w) + c(w,v) } Until tutti i nodi del grafo sono nell’insieme N Il nuovo costo verso v è il vecchio costo verso v oppure il costo del cammino minimo verso w più il costo da w a v Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.145 8
  • 9. Esempio (step 1) Calcola per A il costo D(i) per tutti i nodi i adiacenti ad A che non sono in N 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B), p(B) D(C), p(C) D(D), p(D) D(E),p(E) D(F), p(F) A 3, A 5, A 1, A ∞ ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.146 Esempio (step 2) Aggiungi a N il nodo w con il minimo costo D(w) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) A 3,A 5,A 1,A ∞ ∞ AD Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.147 9
  • 10. Esempio (step 3) Aggiorna D(v) per ciascun nodo v adiacente a w, non in N: D(v) = min{ D(v), D(w) + c(w,v) } 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) A 3,A 5,A 1,A ∞ ∞ AD 3,A 4,D 2,D ∞ Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.148 Esempio (ciclo 2) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.149 10
  • 11. Esempio (ciclo 3) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.150 Esempio (ciclo 4) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E 4 ADEBC 4,E Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.151 11
  • 12. Esempio (ciclo 5) 5 3 3 B C 5 A 3 1 F 3 1 D E 2 1 Ciclo N D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E) D(F),p(F) 0 A 3,A 5,A 1,A ∞ ∞ 1 AD 3,A 4,D 2,D 2 ADE 3,A 3,E 4,E 3 ADEB 3,E 4 ADEBC 4,E 5 ADEBCF Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.152 Parte 4 Modulo 8b: Distance vector protocol 12
  • 13. Algoritmi Distance Vector • Usati nel primo periodo di Internet (ARPANET) • Calcolo distribuito del next hop. E’ un algoritmo: – adattativo rispetto ai cambiamenti di stato della rete – iterativo – asincrono • Unità di scambio dell’informazione: – Vettore di distanze rispetto alle varie destinazioni • Esempio principale di implementazione: – Algoritmo Bellman-Ford distribuito Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.154 Algoritmo Bellman-Ford: premessa • Si usa la formula di Bellman-Ford per il calcolo del costo minimo tra x e y: Dx(y) = minv { c(x,v) + Dv(y) } dove minv è calcolato tra tutti i vicini v del nodo x • Intuitivamente, la formula è molto chiara: – tra tutti i nodi v adiacenti al nodo x, il percorso da scegliere è quello che mi porta con il minor costo da v a y, – a meno che (da cui la considerazione del primo addendo) il costo tra x e v sia talmente alto che mi conviene percorrere altre strade Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.155 13
  • 14. Intuizione dell’algoritmo Bellman-Ford Come abbiamo calcolato il cammino minimo tra A e C? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.156 Algoritmo Bellman-Ford: premessa • Ogni nodo: – aggiorna il proprio vettore di distanze in risposta a variazioni di costi sui link adiacenti – invia un aggiornamento ai nodi adiacenti se il proprio vettore di distanze cambia • Ogni nodo x mantiene una tabella con i seguenti dati: – c(x,v) costo del link tra nodo x e nodo v in N – c(x,v)=∞ se non c’è link tra nodo x e nodo v in N – Dx=[Dx(y): y in N] vettore di distanze del nodo x verso tutti i nodi y nella rete N – Dv=[Dv(y): y in N] vettori di distanze dei vicini v di x Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.157 14
  • 15. Algoritmo Bellman-Ford Start Per tutte le destinazioni y  N: Dx(y) = c(x,y) se y è adiacente Dx(y) = ∞ se y non è adiacente Invia il vettore di distanze Dx = [Dx(y) | y  N] ad ogni vicino v Loop Attendi (finchè il costo di un collegamento verso qualche vicino v cambia o ricevi un vettore di distanze da un vicino v) Per ogni destinazione y in N: Dx(y) = minv { c(x,v) + Dv(y) } Se Dx(y) è cambiato per qualche destinazione y invia il vettore di distanze Dx = [Dx(y) : y  N] a tutti i vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.158 Esempio: distanze iniziali (start) 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 ∞ 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.159 15
  • 16. E riceve il vettore di distanze da D 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 ∞ 2 0 D dice: “io arrivo a C in 2, e a E in 2; non sono collegato a A e B” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.160 E aggiorna i costi per C 1 B C Distanza dal nod 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 E scopre che può arrivare a C in 2+2 passando attraverso D Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.161 16
  • 17. A riceve il vettore di distanze da B 1 B C Distanza dal nodo 7 A B C D E A 0 7 ∞ ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 B dice: “io arrivo a C in 1, e a E in 8; non sono collegato a D” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.162 A aggiorna i costi solo per C 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.163 17
  • 18. A riceve il vettore di distanze da E 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 ∞ 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.164 A aggiorna i costi per C e D 1 B C Distanza dal nodo 7 A B C D E A 0 7 5 3 1 A 8 2 B 7 0 1 ∞ 8 C ∞ 1 0 2 ∞ 1 2 D ∞ ∞ 2 0 2 E D E 1 8 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.165 18
  • 19. Distanze finali (aggiornate) 1 B C Distanza dal nodo 7 A B C D E A 0 6 5 3 1 A 8 2 B 6 0 1 3 5 C 5 1 0 2 4 1 2 D 3 3 2 0 2 E D E 1 5 4 2 0 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.166 Tabella di routing • L’algoritmo di Bellman-Ford ha un’immediata ricaduta pratica. Serve, infatti per calcolare i valori della Tabella di routing di ciascun router • La Tabella di routing del nodo x ha: – una riga per ogni nodo destinazione nella rete (router o AS) – tante colonne quanti sono i nodi adiacenti al nodo x – i costi di cammino come elementi della tabella • In questo modo, nel momento in cui arriva un pacchetto con un indirizzo destinazione, il router può facilmente decidere su quale link inoltrarlo Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.167 19
  • 20. Instradamento visto dal nodo E 1 Tabella di routing di E B C Next hop 7 Dest A B D A 1 14 5 A 8 2 B 7 8 5 C 6 9 4 1 2 D D 4 11 2 E La routing table di E ha una riga per ogni destinazione nella rete e tante colonne quanti sono i nodi adiacenti al nodo stesso I percorsi di minor costo per la corrispondente destinazione sono indicati in rosso nella routing table Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.168 Osservazioni Ci sono circa 700 milioni di host e milioni di router • E’ credibile una tabella che contenga tutti i router di Internet come destinazione? • Come si gestisce nella realtà il problema? Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.169 20
  • 21. Problema 1: un link “degrada” 1 B C Distanza dal nodo 7 A B C D E A 0 7 8 10 1 A 8 2 B 7 0 1 3 8 C 8 1 0 2 9 1 2 D 10 3 2 0 11 E D E 1 8 9 11 0 11 • I nodi che vertono sul link E-D, ricalcolano il vettore distanza • Aggiornano la propria routing table e trasmettono il nuovo vettore ai vicini • Ciascun nodo ricalcolerà il proprio vettore distanza e, iterativamente, lo invierà ai nodi vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.170 Problema 2: effetto rimbalzo dest cost dest cost 1 B 1 A 1 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.171 21
  • 22. Esempio: link A-B ha un problema dest cost dest cost 1  50 B 1 A 1 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.172 B aggiorna le distanze per A (tenendo conto dei dati di C-A, che però includeva il passaggio per B) dest cost dest cost B 1 50 A 3 A B C 2 C 1 25 1 C dest cost A 2 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.173 22
  • 23. B manda il vettore di distanze a C dest cost dest cost 50 A 3 B 1 A B C 1 C 2 25 1 C dest cost A 4 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.174 C manda il vettore di distanze a B dest cost dest cost 50 A 5 B 1 A B C 1 C 2 25 1 C dest cost A 4 B 1 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.175 23
  • 24. Come si crea l’effetto rimbalzo • La distanza diretta da B verso A cresce molto • Quindi, B sceglie C come prossimo hop per A • Ma…, il percorso implicito da C verso A include B! • Le tabelle di B e C si aggiornano gradualmente, ma si crea un loop che proseguirà fino a quando C considererà il proprio percorso verso A attraverso B minore di 25 • Un pacchetto che arrivi a B o a C durante l’esistenza del loop rimbalzerà tra questi due nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.176 Caso peggiore: non c’è stabilizzazione • Nel caso in cui il link C-D diventa inutilizzabile, C marca D come irraggiungibile e lo elimina dagli A 1 aggiornamenti inviati ad A e B B • Si supponga che A riceva per primo l’aggiornamento. Adesso A 1 1 considera che il cammino minimo verso D sia attraverso B C • A dichiara D irraggiungibile a B e a C notifica un costo pari a 3 1 • C vede D raggiungibile attraverso A a costo 4 e lo notifica a B D • B notifica un costo di 5 ad A che notificherà un costo aggiornato di 6aC • Rischio: “count-to-infinity” Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.177 24
  • 25. Possibili soluzioni • Evitare il “count-to-infinity” – Scegliere una soglia (abbastanza bassa) per “rappresentare” l’infinito. Es., massimo numero di hop necessari = 16 • Split Horizon – Bisogna differenziare i vettori di distanze inviati ai nodi adiacenti: il vettore di B inviato a C non conterrà le destinazioni raggiungibili tramite C – Obiettivo: “Se B raggiunge A attraverso C, non ha senso per C cercare di raggiungere A attraverso B” • Split Horizon with poisoned reverse – Se B raggiunge A attraverso C, B avvertirà C che la sua distanza verso A è infinita (anche se in realtà sa di poter instradare i pacchetti tramite C, il costo risulta troppo alto) • Queste soluzioni non funzionano per cicli che coinvolgono 3 o più nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.178 Evitare l’effetto rimbalzo • Per evitare l’effetto rimbalzo (bouncing effect) si devono selezionare percorsi senza cicli • Un modo per farlo: – Ogni aggiornamento del cammino minimo verso un nodo riporta l’intero percorso – Se un router vede se stesso nel percorso, scarta il percorso • Problema: la quantità di dati trasmessi è proporzionale alla distanza tra i nodi Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.179 25
  • 26. Parte 4 Modulo 8c: Distance Vector vs. Link State Distance Vector vs. Link State • DV: tutto quello che si sa è propagato solo ai vicini • LS: le informazioni sui vicini sono passate a tutti • Dimensione dei messaggi – LS: piccola – DV: potenzialmente grande • Numero di messaggi – LS: molto grande, di tipo O(n), dove n sono i nodi del grafo – DV: piccolo in quanto comunicazioni solo ai vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.181 26
  • 27. Distance Vector vs. Link State • Velocità di convergenza – LS: veloce – DV: veloce se si usano aggiornamenti periodici abbastanza frequenti (però, aggiornamenti troppo frequenti sono a rischio di instabilità) • Requisito di memorizzazione – LS: molto alto  si mantiene l’intera topologia del grafo – DV: basso  si mantiene solo lo stato dei vicini Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.182 Distance Vector vs. Link State • Robustezza – LS: calcolo dei percorsi effettuato in maniera indipendente da ogni nodo  protezione contro guasti ai router – DV: calcolo dei percorsi basato sui calcoli degli altri router  il calcolo sbagliato di un router può essere propagato a gran parte della rete (“count-to-infinity”) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.183 27
  • 28. Conclusione • Non c’è un chiaro vincitore tra i due algoritmi: – Distance vector (distribuito) ha dei vantaggi – Link state (centralizzato) ha altri vantaggi • Gli algoritmi di tipo Link state (centralizzati) tendono ad essere utilizzati all’interno degli AS • Gli algoritmi di tipo Distance vector (distribuiti) sono utilizzati per il routing tra AS Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.184 Parte 4 Modulo 9: Routing e router 28
  • 29. Router Il router deve risolvere un problema molto ben definito: Instradare i pacchetti nella rete da un qualsiasi host ad un qualsiasi altro host Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.186 Problema del routing • Instradare i pacchetti nella rete da un qualsiasi host ad un qualsiasi altro host è un problema complesso • Quando un problema è complesso si suddivide in sottoproblemi più semplici: – Sottoproblema 1: ad ogni pacchetto in ingresso, determinare il link di uscita in modo che il pacchetto si avvicini alla destinazione (IP forwarding) – Sottoproblema 2: mantenere informazioni aggiornate per risolvere il sottoproblema1 (protocollo di routing) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.187 29
  • 30. Routing IP rete rete 130.192.xxx.xxx 192.106.248.xxx hop (salto) router router Internet sorgente destinazione 130.192.2.1 192.106.248.121 • I router si passano i pacchetti come una “patata bollente”: bisogna conoscere solo l’indirizzo del prossimo hop • A volte il routing non ha successo perché i router sovraccarichi scartano pacchetti (limite fisico) o vi possono errori di routing (errore logico) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.188 Architettura di un router 4 componenti fondamentali nell’architettura di un router: - porta di ingresso - commutatore - processore di routing - porta di uscita Funzionalità di: livello 1 (fisico) livello 2 livello 3 (IP) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.189 30
  • 31. Architettura di un router (2) Porta di ingresso: - funzioni del livello 1 associate ad un singolo link di ingresso - funzioni del livello 2 - funzioni del livello 3  funzioni di ricerca e forwarding della porta di uscita; ottimizzazione della ricerca nella tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.190 Architettura di un router (3) Componenti di switching FUNZIONE: spostamento del pacchetto dalla porta di ingresso a quella di uscita “opportuna” TECNICHE: Commutazione basata su switch, bus o rete di interconnessione crossbar switch Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.191 31
  • 32. Architettura di un router (4) Porta di uscita: - funzioni del livello 1 associate con un - funzioni del livello 2 singolo link di uscita - funzioni del livello 3  funzioni di gestione della coda e del buffer di uscita (la velocità con cui il commutatore consegna i pacchetti deve essere superiore alla capacità del link di uscita) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.192 IP Forwarding • IP forwarding (inoltro): meccanismo con cui un router trasferisce i datagram da un’interfaccia d’ingresso a quella in uscita • Effettuato da ogni router • Il next-hop router appartiene a una rete alla quale il router è collegato direttamente Per inoltrare i pacchetti: – l’indirizzo di destinazione viene estratto dall’header del datagram – l’indirizzo di destinazione è usato come indice nella tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.193 32
  • 33. Tabella di routing • Ogni host e ogni router hanno una tabella di routing in cui ciascuna riga fornisce il next-hop per ogni possibile destinazione • Le tabelle di routing possono avere anche più di 50-60000 righe • Le dimensioni (crescenti) delle tabelle di routing potrebbero essere un limite allo sviluppo di Internet • In realtà, una riga può fornire informazioni per molte destinazioni con l’utilizzo di tecniche di aggregazione Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.194 Tecniche di aggregazione 1. Utilizzo del solo netid per un insieme di indirizzi IP di destinazione che condividono lo stesso next-hop, cioé le reti per le quali il next- hop è rappresentato dallo stesso router 2. Nel caso in cui gli indirizzi di rete che possono essere aggregati non condividono lo stesso next-hop, si aggregano gli indirizzi aggregabili con prefissi diversi e seguendo il principio del longest prefix matching (ordinando la tabella mettendo prima le maschere più lunghe e poi le più corte) 3. Si organizzano le tabelle creando un’organizzazione gerarchica che riflette l’architettura di Internet 4. E’ possibile sfruttare anche il routing geografico, sapendo che le classi di indirizzi IP vengono assegnati in funzione della posizione geografica continentale 5. Uso del router di default: si definisce un router di default comune a più indirizzi di destinazione Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.195 33
  • 34. Caratteristiche delle tabelle di routing • Routing statico: la tabella di routing non è modificata dal router – L’amministratore di rete deve inserire o modificare righe della tabella di routing – Svantaggio: impossibilità di reagire automaticamente ai cambiamenti topologici – Da utilizzare nel caso di reti piccole con pochi cambiamenti • Routing dinamico: la tabella di routing è modificata dal router al variare delle condizioni sulla rete (stato di funzionamento degli apparati e dei collegamenti) – Lo scambio di informazioni ed il calcolo dei valori della tabella di routing avvengono mediante qualche protocollo di routing, quali RIP, OSPF, BGP (si vedranno in seguito) Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.196 Caratteristiche del forwarding IP • Indipendenza dal mittente: il next-hop routing non dipende (tipicamente) dal mittente del pacchetto o dal cammino che il pacchetto ha attraversato fino a quel momento – Il router estrae dal pacchetto soltanto l’indirizzo del destinatario • Routing universale: la tabella di routing deve contenere un next-hop router per ciascuna destinazione • Routing ottimo: il next-hop router è scelto in modo da minimizzare il cammino verso la destinazione  utilizzo degli algoritmi di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.197 34
  • 35. Elementi della tabella di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.198 Esempio: topologia minima di rete eth0 00:B0:D0:DF:09:5D 153.18.17.11/20 rete 153.18.16.0/20 Internet 153.18.31.254/20 Router di default Comandi per avere informazioni: - netstat - ipconfig Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.199 35
  • 36. netstat netstat (stato delle connessioni) netstat – rn (-r: stampa la tabella di routing; -n: indirizzi in formato numerico) Destinazione Gateway (router) Mask Flag Iface 153.18.16.0 0.0.0.0 255.255.240.0 U eth0 127.0.0.0 0.0.0.0 255.0.0.0 U lo 0.0.0.0 153.18.32.254 0.0.0.0 UG eth0 • L’indirizzo di destinazione può essere un insieme di indirizzi aggregato (la differenza si capisce dalla mask) • In questo esempio, l’host ha una sola interfaccia Ethernet (lo è locale) • La destinazione 0.0.0.0 indica la destinazione di default (in questo caso, al router indicato nella colonna gateway) • Mask 0.0.0.0 e il flag G indicano che la consegna è indiretta • Il flag U indica che il next-hop è funzionante (UP); se un pacchetto raggiunge un entry il cui flag non è UP, deve essere scartato Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.200 ipconfig ipconfig ipconfig eth0 eth0 Link encap: ethernet HWaddr 00:B0:D0:DF:09:5D Inetaddr: 153.18.17.11 Bcast: 153:18:31:255 Mask: 255:255:240.0 • In Windows: ipconfig /all  Tutte le informazioni dettagliate Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.201 36
  • 37. Funzionamento del router • Estrae l’indirizzo IP del destinatario D dall’header del pacchetto e determina il suo netid N 1. Se N corrisponde ad una rete connessa direttamente al router, consegna il pacchetto al destinatario D sulla rete (ciò comporta la risoluzione di D nel corrispondente indirizzo fisico e l’invio del frame via Ethernet) 2. Se la tabella contiene un router per la rete N, invia il pacchetto al next-hop router specificato nella tabella 3. Se la tabella contiene un router di default, invia il pacchetto a quel router 4. Altrimenti, si verifica un errore di routing Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.202 Distinguere i due casi fondamentali SUBNET 2 Host mittente e destinatario ROUTER ROUTER sulla stessa sottorete SUBNET 1 SUBNET 3 (netid uguali) …. …. HOST HOST Host mittente e destinatario su sottoreti differenti (netid differenti) HOST HOST AP AP TCP ROUTER ROUTER TCP IP IP IP IP h2n h2n h2n h2n SUBNET 1 SUBNET 2 SUBNET 3 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.203 37
  • 38. Next-hop forwarding • Next-hop forwarding: il router possiede l’informazione sul salto successivo (next-hop) che il pacchetto deve compiere per giungere a destinazione • Il next-hop router appartiene a una rete alla quale il router è collegato direttamente R 20.0.0.5 R1 30.0.0.6 rete rete rete 10.0.0.0 20.0.0.0 30.0.0.0 10.0.0.5 20.0.0.6 netid router 10.0.0.0 diretto Tabella di routing 20.0.0.0 diretto per il router R 30.0.0.0 20.0.0.6 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.204 Esempi di IP forwarding: A B misc Dest. Netid Next router Nhops fields 223.1.1.1 223.1.1.3 data 223.1.1 1 223.1.2 223.1.1.4 2 223.1.3 223.1.1.4 2 Partendo da A, se il pacchetto è destinato a B: A 223.1.1.1 • ricerca l’indirizzo di rete di B 223.1.2.1 • B è sulla stessa rete di A 223.1.1.2 • il livello host-to-network invia il 223.1.1.4 223.1.2.9 pacchetto direttamente a B in B 223.1.2.2 un frame 223.1.1.3 223.1.3.27 E 223.1.3.1 223.1.3.2 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.205 38
  • 39. Esempi di IP forwarding: A E misc Dest. Netid Next router Nhops fields 223.1.1.1 223.1.2.3 data 223.1.1 1 223.1.2 223.1.1.4 2 Partendo da A, destinazione E: 223.1.3 223.1.1.4 2 • ricerca l’indirizzo di rete di E • E è su una rete diversa A 223.1.1.1 • routing table: next hop router per E è 223.1.1.4 223.1.2.1 223.1.1.2 • il livello host-to-network invia 223.1.1.4 223.1.2.9 il pacchetto al router 223.1.1.4 in un frame 223.1.1.3 223.1.3.27 223.1.2.2 E • il pacchetto arriva a 223.1.1.4 223.1.3.1 223.1.3.2 • segue... Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.206 Esempi di IP forwarding: A E Dest. Next misc Netid router Nhops Interfaccia fields 223.1.1.1 223.1.2.3 data 223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9 Il frame destinato ad E arriva a 223.1.3 - 1 223.1.3.27 223.1.1.4 • ricerca l’indirizzo di rete di E A 223.1.1.1 • E è sulla stessa rete della interfaccia del router 223.1.2.1 223.1.1.2 223.1.2.9 223.1.1.4 223.1.2.9 • il livello host-to-network invia il pacchetto a 223.1.2.2 in un 223.1.2.2 223.1.1.3 223.1.3.27 E frame 223.1.3.1 223.1.3.2 • il pacchetto arriva a 223.1.2.2 Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.207 39
  • 40. Subnet mask e routing • Le subnet servono anche (e soprattutto) per facilitare il routing dei pacchetti all’interno della rete amministrata • Si assuma una subnet con mask 255.255.255.128 • Al router che collega la subnet, arriva un pacchetto con destinazione: 150.100.12.176 • Si effettua un AND tra l’indirizzo e la subnet mask (150.100.12.176) AND (255.255.255.128) Risultato: 150.100.12.128 che corrisponde alla sottorete di destinazione i cui host si trovano nel range 150.100.12.129 - 150.100.12.254 Protocolli e Architetture di Rete 2009/2010 – Livello Internet 4.208 In realtà Reti di Calcolatori 2009/2010 – Architettura e Protocolli di Internet 4.209 40