Algoritmi e protocolli di Routing - DEISNet Reti di Telecomunicazione
Transcript
Algoritmi e protocolli di Routing - DEISNet Reti di Telecomunicazione
Algoritmi e protocolli di Routing Prof. Franco Callegati http://deisnet.deis.unibo.it Compiti dello strato di rete • Trasportare informazioni lungo dal mittente al destinatario • In una rete commutata con terminali e nodi di transito – Scegliere il giusto percorso da sorgente a destinatario • Se i nodi hanno più interfacce di rete – Scegliere la corretta interfaccia di uscita verso la destinazione • Commutazione = funzione di collegamento di una linea di ingresso con una di uscita opportunamente scelta • Le due tecniche di commutazione usate tradizionalmente nelle reti e ora più diffuse sono – Commutazione di circuito – Commutazione di messaggio o di pacchetto 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 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. 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. 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: – i 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 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 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 8 4 Modello del nodo di commutazione a pacchetto Funzione Linee di ingresso di instradamento Linee di uscita Tabella di instradamento 9 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 10 5 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 11 Instradamento: implementazione • L’implementazione della funzione di forwarding dipende dal costruttore del nodo di commutazione • La funzione di instradamento deve invece essere standard al fine di avere coerenza nel comportamento dei nodi • La funzione di routing si avvale di: – algoritmi di routing • usati per il calcolo delle tabelle di instradamento note le informazioni sulla topologia della rete – protocolli di routing • usati per lo scambio delle informazioni sulla topologia della rete necessarie per applicare l’algoritmo 12 6 Routing: piano di utente e di controllo • L’instradamento è una delle funzioni dello strato di rete – dal punto di vista dell’utilizzo della rete (piano di utente) i router implementano le funzionalità fino allo strato di rete • I protocolli di routing si basano su uno scambio di informazioni tra applicazioni – dal punto di vista del controllo della rete (piano di controllo) i router implementano anche funzionalità di livello superiore (sono calcolatori specializzati) 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 14 7 Routing statico • Le tabelle di instradamento sono: – invarianti nel tempo – indipendenti dalle condizioni di traffico della rete • Le tabelle di instradamento sono – 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 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 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 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 18 9 Un semplice algoritmo di routing: il flooding • Flooding: ogni nodo ritrasmette su tutte le porte di uscita ogni pacchetto ricevuto • 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 desidera inviare una certa informazione a tutti i nodi della rete (broadcasting) 19 Miglioramenti del flooding • E’ necessario introdurre ulteriori regole per evitare la proliferazione dei pacchetti broadcast • 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 identificativo unico (l’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 contatore – quando un pacchetto già trasmesso giunge al nodo, viene ignorato • Un instradamento più efficiente per il broadcasting si basa sull’uso di uno spanning tree – si trasmette solo lungo lo spanning tree – miglioramento per l’assenza di cicli 20 10 Deflection routing (hot potato) • Quando un nodo riceve un pacchetto lo ritrasmette sulla linea d’uscita avente il minor numero di pacchetti in attesa di essere trasmessi • E’ adatto a reti in cui – i nodi di commutazione dispongono di spazio di memorizzazione molto limitato – si desidera minimizzare il tempo di permanenza dei pacchetti nei nodi • I pacchetti possono essere ricevuti fuori sequenza • Alcuni pacchetti potrebbero percorrere all’infinito un certo ciclo in seno alla rete, semplicemente perché le sue linee sono poco utilizzate – Si deve prevedere un meccanismo per limitare il tempo di vita dei pacchetti • Non tiene conto della destinazione finale del pacchetto 21 Scelta ibrida (load sharing) • Si legge su di una tabella la linea d’uscita preferenziale nella direzione della destinazione finale del pacchetto • Il pacchetto viene posto nella coda di trasmissione per tale linea – se la coda non supera una soglia – e se non vi sono altri pacchetti richiedenti contemporaneamente tale linea d’uscita • Altrimenti viene inviato sulla linea d’uscita avente coda di trasmissione più breve • Vantaggio: in condizioni di basso carico della rete, l’instradamento non viene fatto a caso, ma sulla base della effettiva destinazione finale 22 11 Shortest path routing • Si assume che ad ogni collegamento della rete possa essere attribuita una lunghezza • La lunghezza – è un numero che serve a caratterizzare il peso di quel collegamento nel determinare una certa funzione di costo del percorso totale di trasmissione • L’algoritmo cerca la strada di lunghezza minima fra ogni mittente e ogni destinatario • Si applicano gli algoritmi di calcolo dello shortest path (Bellman-Ford e Dijkstra) in modalità – centralizzata – distribuita • Distance Vector • Link State 23 Tabelle di routing con alternative • Dall’applicazione degli algoritmi di calcolo dello shortest path si ottengono anche percorsi alternativi – di peso minimo – di peso superiore • Uso probabilistico della tabella di routing – Se si instrada sempre sulla linea più breve si creano nella rete dei cammini ad alto traffico e si lasciano alcune linee scariche – Si potrebbero instradare i pacchetti su tutte le uscite disponili con probabilità inversamente proporzionale al peso del cammino corrispondente – Questa tecnica rende la distribuzione del traffico più uniforme sui vari link della rete – Pericolo di ricezione fuori sequenza 24 12 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 dell’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 25 Il routing in Internet: cenni Prof. Franco Callegati http://deisnet.deis.unibo.it 13 Routing gerarchico in Internet • In Internet si usa il routing gerarchico e le aree di routing sono chiamate Autonomous System (AS) – un AS può essere ulteriormente suddiviso in porzioni dette Routing Area (RA) interconnesse da un backbone (dorsale) – ogni network IP è tutta contenuta in un AS o in una RA • tradizionalmente secondo la classe, oggi secondo il CIDR – gli AS decidono autonomamente i protocolli e le politiche di routing che intendono adottare al loro interno – i vari enti di gestione si devono accordare su quali protocolli utilizzare per il dialogo tra i router che interconnettono AS diversi • I protocolli di routing all’interno di un AS sono detti Interior Gateway Protocol (IGP) • I protocolli di routing fra AS sono detti Exterior Gateway Protocol (EGP) 27 Internet = rete di reti 28 14 Internet = insieme di AS interconnessi AS3 AS5 IGP AS1 EGP AS2 AS4 RA 29 Grafo della rete a livello EGP AS3 AS5 AS1 AS2 AS4 30 15 Ma cos’è un Autonomous System? • Originariamente definito come un insieme di router gestiti da un’unica amministrazione (enti, aziende, università,…) • Nuova definizione (1996 – RFC 1930) – un AS è un gruppo connesso di una o più reti IP (classless) gestite da uno o più operatori ma con identiche e ben definite politiche di routing – politica di routing di un AS: modalità con cui si prendono decisioni di routing nel resto della rete Internet sulla base delle informazioni provenienti dall’AS (attraverso un EGP) – Esempio: • Università di Bologna 137.204.0.0/16 • Politecnico di Torino 130.192.0.0/16 • entrambi comunicano con il resto del mondo tramite il GARR e le sue scelte di peering (stesse politiche di routing) • non c’è bisogno di avere un AS per ogni ateneo • il GARR (e tutte le reti connesse ad esso) costituiscono un unico AS (AS137) 31 Protocolli di routing per Internet • Interior Gateway Protocol – RIP: Routing Information Protocol – OSPF: Open Shortest Path First • Exterior Gateway Protocol – EGP: Exterior Gateway Protocol – BGP: Border Gateway Protocol 32 16 IGP • Si usano protocolli dinamici distribuiti – La rete si evolve continuamente senza un vero controllo centralizzato • la configurazione manuale diventa quasi impossibile – La rete deve reagire automaticamente ai cambiamenti e ai guasti • Si utilizzano – Algoritmi per il calcolo dei percorsi di lunghezza minima • Dijkstra • Bellman Ford – Protocolli per lo scambio delle informazioni necessarie per il calcolo • Distance Vector • Link State 33 Distance Vector • Si basano su di un algoritmo dinamico distribuito proposto da Bellmann-Ford, poi perfezionato da FordFulkerstone • Ogni nodo conosce – i suoi vicini – la distanza dai suoi vicini • Ogni nodo invia ai propri vicini (e solo a loro) – un vettore contenente la stima della sua distanza da tutti i nodi della rete (il distance vector) • Utilizzando i distance vector ricevuti ogni nodo – calcola la propria distanza dagli altri nodi della rete (applicando l’algoritmo di Bellman-Ford) – identifica il percorso di lunghezza minima verso ogni destinazione • Problemi: – convergenza lenta, “partenza lenta”, – problemi di stabilità: conto all’infinito 34 17 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 35 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 36 18 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 37 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 38 19
Documenti analoghi
Algoritmi e protocolli di Routing - DEISNet Reti di Telecomunicazione
• Gli algoritmi si differenziano sulla modalità di eseguire il rilassamento
– Algoritmo di Bellman-Ford O(E V)
– Algoritmo di Dijkstra O(E + V log V)