Problematiche di rete (Layer 3)
Transcript
Problematiche di rete (Layer 3)
Problematiche di rete (Layer (Layer 3): l’Instradamento (Routing) N. 1 Compiti dello strato di rete • Compito fondamentale dello strato di rete è trasportare i pacchetti lungo tutto il percorso dal mittente al destinatario, attraversando tutti i nodi intermedi dove sono possibili scelte alternative per le linee di uscita. • La funzione di collegamento di una linea di ingresso con una di uscita opportunamente scelta, che viene svolta nei nodi può essere definita commutazione (switching) • Le due tecniche di commutazione usate tradizionalmente nelle reti e ora più diffuse sono – Commutazione di circuito – Commutazione di messaggio o di pacchetto N. 2 1 Commutazione di circuito • La rete crea un canale di comunicazione dedicato fra due terminali che vogliono colloquiare – Circuito di comunicazione • Il circuito è riservato ad uso esclusivo dei terminali chiamante e chiamato • Esiste quindi un ritardo iniziale dovuto al tempo necessario per instaurare il circuito – dopo di ciò la rete è trasparente (è garantita la trasparenza temporale) per l'utente ed equivale ad un collegamento fisico diretto N. 3 Fasi della comunicazione • Instaurazione del circuito – Prima che i segnali di utente possano essere trasmessi la rete deve instaurare un circuito fra terminale chiamante e terminale chiamato (circuito end-to-end). – Richiede un’opportuna segnalazione. • Dialogo – I due terminali si scambiano informazioni utilizzando il circuito dedicato. • Disconnessione del circuito – Al termine del dialogo il circuito deve essere rilasciato, al fine di poter essere utilizzato per altre chiamate. N. 4 2 Pro e contro • Pro – il circuito è dedicato e garantisce sicurezza ed affidabilità – è garantita la trasparenza temporale – le procedure di controllo sono limitate ad inizio e fine chiamata • Contro – se le sorgenti hanno un basso tasso di attività il circuito è sottoutilizzato, – la capacità del canale è fissata dalla capacità del circuito e non si può variare. N. 5 Commutazione di messaggio o pacchetto • Trasporta informazioni in forma numerica • Le informazioni di utente sono strutturate in messaggi unitamente ad opportune informazioni di segnalazione – indirizzamento,verifica della correttezza delle informazioni, ecc. • Commutazione di Pacchetto: caso particolare in messaggi vengono suddivisi in sotto-blocchi di lunghezza massima prefissata detti pacchetti, per motivi – Di linea: evitare frammenti troppo lunghi in relazione al rumore – Di rete: limitare i tempi medi di attesa nei nodi • I messaggi o i pacchetti vengono trasmessi da un nodo di commutazione all'altro utilizzando in tempi diversi risorse comuni N. 6 3 Tecniche di commutazione di pacchetto • Circuito virtuale (connection oriented) – scambio delle informazioni preceduto da una procedura di segnalazione (apertura) durante la quale viene stabilito il percorso dei pacchetti da origine a destinazione – a tale percorso viene associato un numero di circuito virtuale – tutti i pacchetti di dati seguono lo stesso percorso, – contengono solamente il numero di circuito virtuale. • Datagramma (connectionless) – ogni pacchetto viene gestito e instradato in modo indipendente, senza relazione con pacchetti precedenti o successivi, anche appartenenti alla stessa connessione – ogni pacchetto porta tutte le informazioni di indirizzamento necessarie per raggiungere la destinazione finale – pacchetti diversi di una stessa connessione possono seguire percorsi diversi e quindi avere tempi di percorrenza diversi N. 7 Pro e contro • Pro – L'efficienza nell'utilizzazione dei collegamenti è maggiore, poiché la stessa linea è condivisa in modo dinamico da più chiamate – La rete può supportare diverse velocità ed effettuare anche conversioni tramite memorizzazione. – È facile implementare meccanismi per il controlo dell’errore (trasparenza semantica) • Contro – È difficile garantire un predeterminato tempo di transito, quindi è poco adatta per servizi di tipo real time N. 8 4 Modi di trasferimento • Per progettare una rete converrebbe scegliere in modo unificato – Le tecniche di multiplazione nei collegamenti – Le tecniche di commutazione nei nodi – L’architettura protocollare da adottare • Tradizionalmente i più diffusi sono – Il Modo di trasferimento a circuito (rete telefonica) – Il Modo di trasf. a pacchetto (rete Internet) • Per inquadrare nel modello OSI le reti a circuito è necessario introdurvi qualche modifica • Da ora in poi ci occuperemo di reti a pacchetto e in particolare di Internet N. 9 Modello del nodo di commutazione a pacchetto Funzione Linee di ingresso di instradamento Linee di uscita Tabella di instradamento N. 10 5 Store-and-Forward • La tecnica Store-and-Forward è tipica della commutazione di pacchetto • Il pacchetto entrante è verificato e memorizzato nella relativa memoria di ingresso • Una volta ricevuto viene trasferito nella memoria principale, ne viene letta l’intestazione e la funzione di instradamento decide su quale linea di uscita ritrasmetterlo • Il pacchetto è tolto dalla memoria principale e inserito in quella di uscita, in attesa della effettiva trasmissione Il pacchetto viene prima memorizzato interamente nel nodo e quindi ritrasmesso nella direzione opportuna N. 11 Tabelle di routing • La funzione di routing può richiedere molte elaborazioni, per processare velocemente i pacchetti viene costruita la tabella di routing: – Tabella che deve essere costruita in ogni nodo nella quale per ogni indirizzo di destinazione è indicata la porta di uscita che porta a quella destinazione • Per costruire la tabella di routing gli elaboratori possono costruire diverse tabelle ausiliarie N. 12 6 Funzione di instradamento (Routing) • Creazione di tabelle di instradamento tramite: – scambio di informazioni tra router, – elaborazione locale • La funzione di routing deve essere standard al fine di avere coerenza nel comportamento dei router • La funzione di routing si avvale di: – algoritmi di routing (Roting Algorithm RA) • usati per il calcolo delle tabelle di instradamento note le informazioni sulla topologia della rete – protocolli di routing (Routing Protocol RP) • usati per lo scambio delle informazioni sulla topologia della rete necessarie per applicare l’algoritmo N. 13 Caratteristiche di un algoritmo di routing (RA) • Gli algoritmi di routing si differenziano per le modalità con cui le tabelle di instradamento vengono create ed eventualmente aggiornate nel tempo. • Si possono classificare in: – Statici – Dinamici • Centralizzati • Distribuiti N. 14 7 Routing statico • Le tabelle di instradamento sono: – invarianti nel tempo – indipendenti dalle condizioni di traffico della rete • Le tabelle di instradamento vengono create in fase di configurazione del router – Grande lavoro di configurazione • modificate con l’intervento di un operatore solo in caso di variazioni strutturali o topologiche della rete (inserimento o caduta di nodi, collegamenti) N. 15 Routing dinamico • Le tabelle di instradamento vengono create e periodicamente aggiornate in modo automatico • Consentono di adattare le decisioni di instradamento a – variazioni topologiche della rete • inserimento di nuovi collegamenti • caduta di un collegamento per guasto – condizioni di traffico • si evita la scelta di percorsi che comprendono collegamenti congestionati N. 16 8 Routing centralizzato • Un unico nodo centrale: – raccoglie tutte le informazioni sullo stato e la topologia della rete, – calcola le tabelle di instradamento per ogni nodo, – le trasmette a tutti i nodi. • Pro – Garantisce massima consistenza delle informazioni • Contro – Dipende dal corretto funzionamento di un solo apparato di rete – Il nodo centrale è soggetto ad un grande traffico di overhead N. 17 Routing distribuito • Ogni nodo calcola in modo autonomo le sue tabelle di instradamento • Il calcolo può essere basato su informazioni : – locali • riguardanti il solo nodo in cui sta avvenendo il calcolo, • senza scambio di informazioni tra i nodi – distribuite • si utilizzano informazioni relative agli altri nodi e collegamenti della rete • Nel caso di routing basato su informazioni distribuite deve essere previsto un meccanismo di scambio delle informazioni fra routers N. 18 9 Esempio di RA: Flooding e broadcasting Ogni nodo quando riceve un pacchetto lo ritrasmette su tutte le porte di uscita • Il flooding è uno degli algoritmi di routing più semplici • Un generico pacchetto verrà sicuramente ricevuto da tutti i nodi della rete e quindi anche da quello a cui è effettivamente destinato • Dal momento che tutte le strade possibili sono percorse, il primo pacchetto che arriva a un nodo è quello che ha fatto la strada più breve possibile • L’elaborazione associata a questo algoritmo è pressoché nulla • Molto adatto quando si voglia inviare una certa informazione a tutti i nodi della rete (broadcasting) N. 19 Flooding e broadcasting (2) • E’ necessario introdurre ulteriori regole per evitare la proliferazione infinita dei pacchetti: – un nodo non ritrasmette il pacchetto nella direzione dalla quale è giunto – un nodo ritrasmette un pacchetto una sola volta • ad ogni pacchetto viene associato un identificatore unico (es. indirizzo della sorgente e un numero di sequenza) e ciascun nodo mantiene in memoria una lista con gli identificativi dei pacchetti già trasmessi • bisogna evitare che la lista cresca all’infinito • quando un pacchetto già trasmesso giunge al nodo, viene ignorato Il flooding è un algoritmo di tipo distribuito e dinamico N. 20 10 Shortest path routing • Si assume che ad ogni collegamento della rete possa essere attribuita una lunghezza • La lunghezza – non è necessariamente legata alla lunghezza fisica del collegamento, – è un numero che serve a caratterizzare il peso di quel collegamento nel determinare una certa funzione di costo del percorso totale di trasmissione; esempi • • • • Ogni ramo vale 1 Ritardo verificato sul collegamento Inverso della capacità del collegamento Costo di un certo instradamento • L’algoritmo cerca la strada di lunghezza minima fra ogni mittente e ogni destinatario N. 21 Algoritmo di Dijkstra • Il numero di possibili cammini fra origine e destinazione cresce esponenzialmente col numero dei nodi • Occorrono algoritmi il cui tempo cresca in modo polinomiale • L’algoritmo di Dijkstra è un algoritmo statico per determinate il cammino minimo in una rete di cui si conosce la topologia – Permette di costruire uno spanning tree nella rete • A partire dall’origine: source tree • A partire della destinazione: sink tree N. 22 11 Ricerca del cammino minimo fra A e H • Cerchiamo il Sink tree • La destinazione H fa parte del sink tree 1 B 6 E H,1 4 2 A • A partire da H mettiamo delle etichette provvisorie sui nodi adiacenti • Scegliamo la più piccola delle distanze 2 2 3 5 2 D F H,3 I 5 4 C 1 H,5 3 2 3 G H H,3 N. 23 1° passo • E viene scelto nel sink tree; il ramo E H fa parte del sink tree • A partire da E mettiamo 3 nuove etichette E,2 1 B 6 2 A E 4 H,1 2 2 3 5 2 D F H,5 E,3 4 C 1 I 5 H,3 E,3 3 2 G H,3 3 H N. 24 12 2° passo • B e il ramo B E fanno parte del sink tree • Fra diverse etichette eguali ne scelgo una E,2 1 B B,8 6 2 A E 4 H,1 2 2 B,4 5 3 2 D F 1 B,6 E,3 4 C I 5 H,3 E,3 3 2 3 G H H,3 N. 25 3° e 4° passo • L’aggiunta di I non aggiunge etichette • Dopo scelgo G E,2 1 B B,8 6 2 A E 4 H,1 2 2 B,4 5 2 3 D F I 5 4 C 1 E,3 E,3 3 2 G H,3 3 H N. 26 13 5° e 6° passo • La scelta di F aggiunge una etichetta a D • Dopo F si prende D E,2 1 B B,8 6 2 A 3 D F,6 2 F 1 E,3 E,3 3 2 G,5 I 5 4 C H,1 2 G,7 B,4 5 2 E 4 3 G H H,3 N. 27 7° passo E,2 1 B D,9 B,8 6 2 A E 4 H,1 2 2 B,4 5 2 3 D F G,5 I 5 4 C 1 E,3 E,3 3 2 G H,3 3 H N. 28 14 8° passo E,2 1 B C,7 B,8 6 2 A E 4 H,1 2 2 B,4 5 2 3 D F E,3 3 2 G,5 I 5 4 C 1 E,3 3 G H H,3 N. 29 Risultato finale • Sink tree e percorso minimo trovati • Co K nodi servono al più K passi E,2 1 B C,7 6 2 A E 4 H,1 2 2 B,4 5 2 3 D F G,5 I 5 4 C 1 E,3 E,3 3 2 G H,3 3 H N. 30 15 Tabelle di routing con alternative • Dal risultato finale si vede che A va ad H attraverso C con distanza 7 • Se la linea AC non fosse più disponibile si può anche vedere che – A va a H attraverso B con distanza 8 – A va a H attraverso D con distanza 9 • Uso probabilistico della tabella di routing – Se si instrada sempre sulla linea più breve si creano nella rete dei cammini ad alto traffico e linee scariche – Si potrebbe instradare i pacchetti su tutte le uscite disponili con probabilità ad es. inversamente proporzionale alla lunghezza del cammino corrispondente – Questa tecnica rende la distribuzione del traffico più uniforme sui vari link della rete N. 31 Protocolli di routing N. 32 16 Scambio di informazioni per il routing In generale gli algoritmi di routing richiedono lo scambio di informazioni tra i nodi: • nel caso di algoritmi centralizzati le tabelle di routing devono essere trasmesse ai nodi della rete dal gestore centrale • gli algoritmi dinamici e distribuiti richiedono costante scambio di informazioni fra i nodi al fine di mantenere aggiornate le informazioni sulla topologia della rete Sono necessari protocolli ad hoc per lo scambio delle informazioni necessarie a far funzionare correttamente la funzione di routing N. 33 Protocolli di routing • Nelle reti pubbliche a pacchetto offerte dai gestori si sono usati RP statici con alternative (in qualche rete anche con uso probabilistico delle tabelle) – Il gestore ha il controllo di tutti i nodi della rete – Grande lavoro di configurazione – Occorre un sistema di gestione che interviene prontamente in caso di guasti e cambi di topologia • Per Internet si usano protocolli dinamici distribuiti – La rete si evolve continuamente senza un vero controllo centralizzato: la configurazione diventa quasi impossibile – La rete deve reagire automaticamente ai cambiamenti e ai guasti • I RP si possono suddividere in due grandi famiglie – protocolli Distance Vector – protocolli Link State N. 34 17 Distance Vector • Si basano su di un algoritmo dinamico distribuito proposto da Bellmann-Ford, poi perfezionato da Ford-Fulkerstone • Ogni nodo conosce i sui vicini e la distanza dai suoi vicini • Ad ogni passo ogni nodo invia ai propri vicini un vettore contenente la sua stima della sua distanza da tutti i nodi della rete • Protocollo semplice e richiede poche risorse • Problemi: – convergenza lenta, “partenza lenta”, – problemi di stabilità: conto all’infinito N. 35 Esempio: calcolo delle tabelle di routing 1 B A 2 6 1 3 C 7 D Distance Vector A = {(A,0), (B,1), (C,6), (D,∞), (E, ∞)} DV B = {(A,1), (B,0), (C,2), (D,1), (E,∞)} DV C = {(A,6), (B,2), (C,0), (D,3), (E,7)} DV D = {(A,∞), (B,1), (C,3), (D,0), (E,2)} DV E = {(A,∞), (B,∞), (C,7), (D,2), (E,0)} 2 Tabella di routing alla fine del periodo di convergenza (al termine dello scambio dei DV) E 1. A riceve DV di B dest A B C D E Costo, next hop 0 1, A 3, B 2, B ∞ 2. A riceve DV di C 3. B riceve DV di D 4. A riceve DV di B dest dest dest A B C D E Costo, next hop 0 1, A 3, B 2, B 13, C A B C D E Costo, next hop 1, B 0 2, B 1, B 3, D A B C D E Costo, next hop 0 1, A 3, B 2, B 4, B N. 36 18 Distance Vector: count to infinity. Path Vector A • C Situazione iniziale: DAC = 2 e DBC = 1 – – – – • • B Link BC va fuori servizio B riceve il DV di A che contiene l’informazione DAC = 2, per cui esso computa una nuova DBC = DBA + DAC = 3 e la comunica ad A A calcola la nuova distanza DAC = DAB + D’BC = 4 Il processo può continuare all’infinito Vari rimedi sono stati proposti, nessuno risolutivo Protocollo Path Vector – – Il vettore che ogni router manda ai vicini contiene le distanza dagli altri nodi e l’intero cammino che il pacchetto fa per percorrere quella distanza Il router ignora tutti i cammini dove compare lui stesso N. 37 Link state Ogni nodo della rete: • si procura un’immagine della topologia della rete • Sulla base di tale immagine calcola le tabelle di routing con un RA Il protocollo di routing ha come scopo fondamentale quello di permettere ad ogni nodo di crearsi l’immagine della rete • Sono i protocolli più usati nell’Internet moderna N. 38 19 Link state (2) • Ogni router deve comunicare con i propri vicini ed “imparare” i loro indirizzi – Hello Packet • Deve poi misurare la distanza dai vicini – Echo Packet • In seguito ogni router costruisce un pacchetto con lo stato delle linee (Link State Packet o LSP) che contiene – la lista dei suoi vicini – le lunghezze dei collegamenti per raggiungerli N. 39 Link state (3) • I pacchetti LSP devono essere trasmessi da tutti i router a tutti gli altri router della rete – Si usa il protocollo Flooding – A tal fine nel pacchetto LSP occorre aggiungere • L’indirizzo del mittente • Un numero di sequenza • Una indicazione dell’età del pacchetto • Avendo ricevuto i LSP da tutti i router, ogni router è in grado di costruirsi un’immagine della rete – Tipicamente si usa l’algoritmo di Dijkstra N. 40 20 Distance Vector - Link State: confronto • Distance Vector – Semplici da implementare – Richiedono in genere una quantità di memoria inferiore, in particolare se la connettività della rete è bassa, e minori risorse di calcolo • Link State – Offrono maggiori funzionalità in termini di gestione di rete • La topologia generale della rete e i percorsi al suo interno possono essere ricavati da qualunque router – La velocità di convergenza è solitamente maggiore • Maggiore velocità di adattamento ai cambi di topologia – Il flooding di pacchetti LSP può provocare un aumento significativo di traffico N. 41 Routing gerarchico • Nel caso di reti di grandi dimensioni non è possibile gestire le tabelle di routing per l’intera rete in tutti i router, in questo caso il routing deve essere gerarchico: – la rete viene ripartita in porzioni, chiamate per ora Aree di routing – i router all’interno di un area sono in grado di effettuare l’instradamento relativamente alla sola area – per destinazioni al di fuori dell’area si limitano ad inviare i pacchetti a dei router “di bordo” che sono a conoscenza della topologia esterna dell’area – i router “di bordo” si occupano solamente dello instradamento dei pacchetti fra aree • In linea di principio la ripartizione può essere effettuata tante volte quante si vuole creando più livelli nella gerarchia di routing N. 42 21