La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing.

Presentazioni simili


Presentazione sul tema: "1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing."— Transcript della presentazione:

1 1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing

2 2 Funzioni dello strato di rete Allo strato di trasporto la comunicazione tra i processi paritari di livello 4 deve apparire come una comunicazione punto-punto Lo strato di rete ha quindi come funzione quella di fornire allo strato di trasporto un servizio per la consegna dei dati in modo da mascherare l’infrastruttura della rete (la sottorete) Nomenclatura: host o end-node: stazione su cui opera lo strato di trasporto che deve trasmettere o ricevere i dati utilizzando il servizio dello strato di rete pacchetto: insieme di dati+header+trailer che lo strato di rete costruisce e deve trasmettere fino a destinazione router: stazione intermedia che opera a livello 3, che riceve i pacchetti e li inoltra attraverso la (sotto)rete

3 3 Funzioni dello strato di rete (cont.) In generale due host sono separati da un certo numero di nodi, interconnessi da svariate linee Spesso sono possibili piu’ tragitti tra i due nodi (ad esempio nelle reti magliate) Potenzialmente i nodi sono separati da reti funzionanti con tecnologie differenti

4 4 Funzioni dello strato di rete (cont.) Lo strato di rete dovra’ quindi occuparsi dei seguenti argomenti determinare quale tragitto tra quelli disponibili dovranno seguire i dati (instradamento, routing) questo puo’ richiedere che lo strato di rete conosca la topologia della rete reagire a modifiche di topologie della rete se esiste un meccanismo dinamico per l’apprendimento della topologia, questo permettera’ di apprenderne anche le modifiche nel tempo evitare di sovraccaricare linee quando sono disponibili percorsi alternativi (congestione) risolvere i problemi connessi al transito attraverso reti differenti (internetworking)

5 5 Servizi offerti allo strato superiore Inizialmente OSI prevedeva che lo strato di rete fornisse solo un servizio connection oriented in modo analogo al funzionamento del servizio telefonico questo servizio, caldeggiato dalle compagnie telefoniche, permette di operare fatturazione a tempo e di offrire servizi di qualita’ riservando le risorse a priori In seguito c’e’ stata forte richiesta di introdurre nello standard anche un servizio connection less, e cosi’ e’ stato fatto l’inaffidabilita’ intrinseca della sottorete richiede un meccanismo piu’ leggero per il recapito dei dati comunque lo strato di trasporto dovra’ occuparsi della integrita’ dei dati, inutile farlo anche a livello di rete

6 6 Servizio connection less Il servizio senza connessione richiede che i pacchetti siano instradati indipendentemente uno dall’altro Generalmente un router dispone di una tabella che definisce su quale linea di uscita debba essere trasmesso un pacchetto in base alla destinazione finale il router riceve il pacchetto, lo memorizza per analizzarlo, quindi lo trasmette in base alla tabella (store and forward) Ogni pacchetto deve quindi contenere l’indirizzo di destinazione Poiche’ le tabelle possono modificarsi nel tempo, non e’ detto che tutti i pacchetti seguano la stessa strada

7 7 Servizio connection oriented L’idea di base e’ di associare ad una connessione un circuito virtuale nella sottorete Si definisce a priori – durante la fase di inizializzazione della connessione – la sequenza di router che i pacchetti dovranno attraversare Tutti i pacchetti appartenenti alla stessa connessione seguiranno la stessa strada L’instradamento del pacchetto sara’ quindi fatto in base alla sua appartenenza ad una connessione e non alla sua destinazione finale L’intestazione del pacchetto sara’ piu’ semplice, dovendo contenere solo l’identificativo della connessione La connessione potra’ essere stabilita in modo da garantire le risorse necessarie alla trasmissione, rendendola piu’ affidabile Una connessione successiva tra gli stessi nodi potrebbe definire un circuito virtuale differente dal precedente

8 8 Tabelle per la definizione dei circuiti virtuali Il nodo sceglie un identificativo per il circuito virtuale, utilizzando un numero (il piu’ basso disponibile) Il router adiacente non e’ detto che abbia disponibile l’identificativo scelto dal nodo potrebbe averlo gia’ assegnato ad un’altro circuito virtuale proveniente da un altro nodo In generale scegliera’ un identificativo differente, ma lo associera’ all’identificativo scelto dal nodo per i pacchetti provenienti dal nodo stesso Questo processo si itera fino a destinazione Ogni router avra’ quindi una tabella del tipo Ad ogni pacchetto in arrivo da un certo nodo (host o router) contenente un certo identificativo, il router cerchera’ nella tabella l’host a cui inoltrare il pacchetto e l’identificativo relativo Sostituira’ l’ID vecchio col nuovo ed inoltrera’ il pacchetto Nodo provenienzaCircuito virtualeNodo destinazioneCircuito virtuale

9 9 Confronto ProblemaDatagrammiCircuito virtuale Impostazione circuitoNon necessariaRichiesta IndirizzamentoOgni pacchetto contiene l’indirizzo completo di mittente e destinatario Ogni pacchetto contiene un numero di circuito virtuale Informazioni sullo statoI router non conservano informazioni sullo stato delle connessioni Ogni CV richiede spazio nella tabella dei router per la connessione RoutingOgni pacchetto instradato indipendentemente Il percorso e’ definito all’impostazione del CV Effetto dei guastiNessuno tranne i pacchetti che si trovano in coda sul router che si guasta al momento del guasto Tutti i CV che attraversano il router che si guasta vengono terminati Qualita’ del servizioRealizzazione complessaSemplice Controllo congestioneDifficileSemplice

10 10 Routing ed inoltro La funzione principale dello strato di rete e’ il routing Questo e’ il processo che permette al router di scegliere – tramite un algoritmo – la linea di uscita verso cui instradare i dati Si possono distinguere le due operazioni: inoltro: il processo che, in base all’indirizzo di destinazione o al circuito virtuale, sceglie la linea di uscita in funzione di dati noti (tabelle, stato delle linee, …) routing: il processo di creazione ed aggiornamento della tabella (detta tabella di routing) che associa alla destinazione la linea di uscita da utilizzare; questa operazione viene eseguita in base ad algoritmi detti algoritmi di routing In molti casi queste sono operazioni distinte eseguite in momenti diversi da processi distinti all’interno dello strato di rete

11 11 Caratteristiche di un algoritmo di routing E’ desiderabile che un algoritmo di routing abbia le seguenti caratteristiche correttezza: ovvio semplicita’: meno soggetto ad errori in implementazione o in esecuzione robustezza: la rete non e’ stabile, e l’algoritmo deve poter fare fronte alle modifiche di topologia stabilita’: convergenza verso l’equilibrio imparzialita’: servire qualunque tragitto possibile senza penalizzare nessuno ottimizzazione: efficienza globale

12 12 Algoritmi adattivi e non adattivi Esistono due classi di algoritmi di routing non adattivi: l’algoritmo per l’instradamento viene calcolato a priori e non si modifica piu’ (routing statico) adattivi: questi algoritmi modificano le tabelle in funzione di cosa accade sulla rete (modifiche di topologia, carico sulla rete) Gli algoritmi adattivi si differenziano in base a: sorgente delle informazioni, che possono essere il router stesso, i soli router adiacenti o tutti i router della rete al momento in cui effettuano le modifiche, che possono avvenire ad intervalli regolari, in funzione del carico della rete o in funzione di modifiche della topologia al tipo di informazioni su cui si basano le decisioni (la metrica): la distanza, il numero di salti, il tempo di transito stimato, …

13 13 Routing statico L’esempio piu’ semplice di algoritmo non adattivo e’ il routing statico La tabella di routing viene inserita a mano nella configurazione del router, e non viene modificata dinamicamente eventualmente puo’ essere modificata manualmente anche in corso d’opera Questo algoritmo e’ virtualmente ingestibile in condizioni di reti anche banalmente complesse, ma viene utilizzato diffusamente quando si presentano circostanze particolari: un router ha una unica connessione un router ha piu’ di una connessione, ma per tutte le connessioni tranne una c’e’ una destinazione ben precisa che non puo’ cambiare per motivi di topologia, e l’ultima connessione deve essere utilizzata per tutte le altre destinazioni

14 14 Instradamento multicammino Questa tecnica si applica quando esistono piu’ percorsi possibili, e si vogliono utilizzare tutti, ciascuno con intensita’ di carico potenzialmente differente A ciascun cammino viene assegnato un peso, e la scelta di instradamento viene fatta in base ad una estrazione casuale pesata In questo modo si separa il traffico statisticamente con probabilita’ pari al peso delle alternative (per ogni pacchetto in caso di protocollo senza connessione, per ogni circuito virtuale in caso di protocollo connection oriented)

15 15 Percorso piu’ breve Gli algoritmi di routing spesso si basano sulla analisi della rappresentazione della rete tramite un grafo (i punti identificano i router, gli archi rappresentano le linee di connessione) Per scegliere il percorso ottimale la soluzione e’ trovare il percorso piu’ breve, in base ad una certa metrica Possono essere scelte differenti metriche: distanza geografica numero di salti costo delle linee ritardo temporale (rtt: round trip time) larghezza di banda o una funzione di alcune di queste Definita una metrica, le linee potranno essere etichettate con un numero (peso, costo o metrica della linea): piu’ basso e’ il numero, “piu’ breve” e’ la linea (quindi preferibile) La distanza di un percorso e’ dato dalla somma delle distanze dei singoli salti Dijkstra ha ideato un algoritmo (Shorted Path First), semplice e rapido, capace di determinare, in base alla topologia ed ai pesi, il cammino piu’ breve tra due nodi del grafo

16 16 Algoritmo di Dijkstra

17 17 Instradamento flooding Altro esempio di algoritmo statico, prevede di inoltrare ogni pacchetto entrante su tutte le linee disponibili tranne quella da cui e’ arrivato Viene generato un elevato numero di duplicati del pacchetto, che possono anche ritornare piu’ volte a chi lo ha gia’ ricevuto si utilizza in ogni pacchetto un contatore di hop (salti), inizializzato ad un valore massimo e decrementato da ogni router: allo 0 il pacchetto viene eliminato si puo’ anche utilizzare un meccanismo per evitare le ritrasmissioni ad ogni pacchetto viene assegnato dal router che lo trasmette per primo un numero di sequenza ed il suo indirizzo ogni router tiene una tabella dei numeri di sequenza originati dai diversi router e gia’ trasmessi se arriva un pacchetto gia’ trasmesso si evita la ritrasmissione se i numeri di sequenza sono incrementali, la tabella da memorizzare sara’ di dimensioni ragionevoli (si memorizza solo l’ultimo)

18 18 Algoritmo flooding (cont.) Gli aspetti negativi di questo algoritmo sono essenzialmente legati alla inefficienza nell’utilizzo delle risorse: ogni pacchetto va a finire su tutte le linee della rete, provocando un utilizzo inefficiente della rete stessa ogni pacchetto va a finire su tutti i router, aumentando il carico di lavoro dei router stessi (CPU, occupazione di buffer) Aspetti positivi sono: qualsiasi pacchetto arrivera’ a destinazione nel tempo piu’ breve possibile (segue tutte le strade, anche la piu’ veloce) estremamente resistente a modifiche della topologia anche il malfunzionamento di grandi porzioni della rete permette il recapito del pacchetto se almeno un cammino rimane operativo non richiede una conoscenza a priori della topologia della rete Scarsamente utilizzato per via della inefficienza, le caratteristiche di estrema affidabilita’ di questo protocollo sono sfruttate in diverse circostanze particolari, ad esempio in campo militare

19 19 Distance vector (Bellman-Ford) Algoritmo adattivo sviluppato attorno al 1960, utilizzato per molto tempo Arpanet lo ha utilizzato fino al 1979 nella implementazione chiamata RIP (ancora in uso adesso in realta’ di piccole dimensioni) Ad ogni linea e’ assegnata una distanza, valutata in base ad una metrica, indicata anche col nome di costo La tabella di routing e’ costituita dalla associazione di tre informazioni: destinazione, distanza fino alla destinazione, linea di uscita Ogni router estrae dalla tabella di routing una tabella contenente destinazione e distanza relativa, detta vettore delle distanze Il vettore delle distanze viene scambiato ciclicamente con tutti i router adiacenti In base alle informazioni ricevute dai vicini viene aggiornata la tabella di routing Il valore della distanza avra’ un certo limite massimo, indicante che la destinazione non e’ raggiungibile nel caso di metrica ad hop, la distanza di infinito dovra’ essere almeno pari al numero massimo di hop possibili nella rete piu’ uno in caso di metrica secondo i ritardi puo’ essere piu’ complesso determinare l’irraggiungibilta’ della destinazione: si deve valutare a priori un valore ragionevolmente elevato (ma non troppo)

20 20 Distance vector (Bellman-Ford) Valutazione delle distanze: il router deve conoscere i router adiacenti, ed il costo delle linee che li connettono direttamente per fare questo un router scambia a tempi definiti con i propri vicini dei pacchetti per essere aggiornati sulla loro presenza se la metrica scelta dipende dal ritardo della linea, questi pacchetti sono utilizzati per aggiornare la valutazione del costo della linea diretta verso il router adiacente Quando viene ricevuto il vettore delle distanze dai vicini, per ogni destinazione si valuta la distanza aggiungendo alla distanza riportata dal router adiacente quella relativa alla linea che li connette Tra tutte le distanze relative alla stessa destinazione riportate dai router adiacenti, e rivalutate in base alla distanza verso ciascun router adiacente, si sceglie quella con distanza inferiore

21 21 Distance vector (Bellman-Ford) Come esempio, vediamo la costruzione della tabella di routing del router J

22 22 Problemi del Distance Vector Il distance vector, in condizioni normali, raggiunge sempre la convergenza Il problema e’ che la convergenza e’ lenta, in particolare in occasione della perdita di un router (o di una linea) Questo problema e’ noto come conto all’infinito, e peggiora all’aumentare del numero di router Nell’esempio si vede la distanza a cui il router A e’ visto dagli altri a sinistra vediamo cosa accade quando il router A viene acceso, a destra se si spegne o se va giu’ il link con B In quest’ultimo caso si vede come l’informazione che A non e’ piu’ raggiungibile si propaga con lentezza

23 23 Link State Per superare i problemi del distance vector e’ stato sviluppato un algoritmo differente, il link state, che basa il suo funzionamento sulla conoscenza che ciascun router deve avere della intera topologia della rete L’algoritmo si sviluppa secondo i seguenti punti: scoprire i router adiacenti ed i loro indirizzi misurare il costo della linea verso ogni vicino costruire un pacchetto contenente questi dati (link state, o stato dei collegamenti) inviare questa informazione a tutti i router della rete ricostruire la topologia della rete in base alle informazioni di link state ricevute da tutti gli altri router elaborare in base alla conoscenza della topologia i percorsi piu’ brevi per ogni destinazione

24 24 Scoperta dei vicini Per realizzare questa funzione il protocollo prevede che un router invii ciclicamente (a cominciare dalla sua accensione) sulle linee a disposizione dei pacchetti speciali detti “HELLO” Questi pacchetti contengono l’indirizzo di rete del router che lo invia l’indirizzo del router deve essere unico in tutta la rete, per poter essere distinto da tutti gli altri Il router che riceve un HELLO, deve rispondere con un pacchetto analogo In questo modo un router, alla accensione, impara a conoscere tutti i vicini, ed i vicini acquisicono l’informazione della esistenza del nuovo router

25 25 Misura del costo della linea L’algoritmo si basa, come vedremo, sulla conoscenza del costo delle linee dirette con i router vicini Come prima, sono possibili diverse metriche generalmente il router utilizza un pacchetto speciale, detto ECHO, al quale il router adiacente deve rispondere immediatamente misurando il tempo di andata e ritorno e dividendo per due si ha una misura del ritardo della linea E’ possibile inserire nel computo il ritardo dovuto al carico del traffico, contando il tempo di accodamento del pacchetto questa soluzione puo’ comportare instabilita’ nel routing: nel caso di un doppio cammino, quello migliore sara’ caricato di traffico, quindi l’altro, scarico, diventera’ preferibile, ma dopo poco tempo il secondo sara’ carico di traffico mentre il primo sara’ scarico, rendendo nuovamente preferibile il primo, e cosi’ via. in queste circostanze e’ piu’ opportuno utilizzare metodi di suddivisione del carico in funzione delle destinazioni, utilizzando opportunamente i costi delle linee

26 26 Costruzione dello stato dei collegamenti Ora il router dispone dello stato dei suoi collegamenti Questi dati vengono messi in una tabella contenente il nome del router in questione, un numero sequenziale, un numero indicante l’eta’ del pacchetto, e l’elenco di record “router adiacente”-”ritardo della linea” Questi pacchetti possono essere costruiti periodicamente, o in occasione di modifiche di topologia

27 27 Distribuzione del link state Il problema di propagare l’informazione agli altri ha due aspetti bisognerebbe sapere a priori chi sono gli altri via via che il pacchetto raggiunge alcuni router, questi potrebbero cambiare la loro topologia mentre altri no, quindi si potrebbero verificare inconsistenze che impediscono la diffuzione completa dell’informazione L’idea fondamentale, che risolve entrambi i problemi, e’ di utilizzare il flooding per propagare le informazioni di link state Il carico complessivo sulla rete dovuto al meccanismo di flooding e’ accettabile in quanto solo i pacchetti di link state vengono propagati con questa tecnica

28 28 Distribuzione del link state Vi sono alcuni aspetti da osservare il numero di sequenza viene incrementato da un router ogni volta che genera un nuovo pacchetto di link state questo permette ai router che devono instradare l’informazione via flooding di rimuovere dalla rete i pacchetti relativi ad informazioni obsolete per evitare numeri duplicati si utilizza una numerazione a 32 bit Questo meccanismo ha pero’ due problemi al riavvio del router, questo ricominciera’ da zero! se per un errore di trasmissione non rilevato giungesse un numero alto al posto di uno basso, tutti i pacchetti successivi verrebbero scartati Per ovviare a questi problemi si inserisce anche un numero indicante l’ “eta’” del pacchetto, che viene decrementato di una unita’ al secondo Quando l’eta’ raggiunge lo zero, l’informazione viene comunque considerata obsoleta e scartata Tipicamente i pacchetti di link state vengono inviati ogni qualche secondo o decina di secondi, quindi un valore di eta’ dello stesso ordine di grandezza garantisce di poter ricevere sempre informazioni aggiornate

29 29 Elaborazione dei percorsi Quando un router ha ricevuto una serie completa di pacchetti sullo stato dei collegamenti dei router della rete, di fatto conosce la topologia della rete (i router ed i costi delle linee) Viene quindi eseguito l’algoritmo di Dijkstra per valutare i percorsi in base al cammino piu’ breve Il risultato di questi calcoli viene utilizzato per costruire la tabella di routing

30 30 Caratteristiche del link state Questo protocollo richiede ai router una discreta capacita’ di memoria (per memorizzare i pacchetti del link state, che sono in numero proporzionale al numero di router ed al numero medio di collegamenti per router) Richiede anche capacita’ di calcolo per eseguire gli algoritmi di Dijkstra una volta per ogni destinazione Ha pero’ la caratteristica di rispondere molto rapidamente a modifiche della topologia appena un router vede una modifica, manda le informazioni aggiornate a tutti i router immediatamente la nuova topologia si stabilizza sulla rete in tempi di alcuni secondi al massimo, contro i minuti o decine di minuti dell’algoritmo distance vector Anche per questo, come per tutti gli algoritmi di routing adattivi, il malfunzionamento di un router che annunci informazioni errate puo’ avere effetti disastrosi

31 31 Implementazioni del link state La prima implementazione di un protocollo di routing Link State e’ stata fatta per DECnet, col nome di IS-IS (Intermediate System to Intermediate System), successivamente standardizzata come protocollo CLNS di OSI Una sua successiva estensione, nota col nome di I-IS-IS (Integrated IS-IS) supportava l’utilizzo di protocolli differenti, come DECnet, TCP/IP, Appletalk ed altri, anche contemporaneamente In TCP/IP ne e’ utilizzata una implementazione derivante dall’IS-IS che ha per nome OSPF (Open Shortest Path First), che ha sostituito protocolli Bellman-Ford (RIP) nella totalita’ delle reti di una certa dimensione A differenza di I-IS-IS, OSPF e’ una implementazione monoprotocollo (solo TCP/IP)

32 32 Routing gerarchico Al crescere delle dimensioni della rete i protocolli di routing manifestano difficolta’ crescenti per i tempi di convergenza, come nel caso di protocolli distance vector per le dimensioni delle tabelle di routing da memorizzare ed elaborare La risposta a questo problema e’ il routing gerarchico i router vengono divisi in regioni (geograficamente o secondo altri criteri) il routing viene operato a due livelli: internamente alla regione i router utilizzano un protocollo che si preoccupa della topologia esclusivamente all’interno della regione alcuni router per ciascuna regione operano il routing inter- regionale e conoscono il modo per raggiungere le altre regioni, senza conoscerne la topologia interna

33 33 Routing gerarchico (cont.) Il routing gerarchico puo’ occasionalmente generare cammini non ottimali, ma il vantaggio in termini di riduzione delle tabelle di routing vale la spesa

34 34 Routing broadcast Alcune applicazioni desiderano inviare pacchetti a molti o tutti gli host della rete Molti protocolli di livello di data link delle reti locali hanno questa funzionalita’, che pero’ non e’ disponibile nelle reti geografiche Esistono diverse soluzioni: la sorgente invia un pacchetto distinto a tutte le destinazioni poco pratico, perche’ la sorgente deve sapere quali sono le destinazioni possibili costoso in termini di efficienza l’instradamento flooding puo’ essere utilizzato a questo scopo, ma ha il difetto di inondare la rete di pacchetti

35 35 Routing broadcast (cont.) Una soluzione funzionale (anzi, la soluzione ottimale) e’ quella di applicare un algoritmo funzionalmente simile allo spanning tree del data link layer, a partire dal router che ha generato la trasmissione Questo meccanismo si basa sul principio di ottimalita’: se il cammino ottimale da I a J attraversa K, allora il percorso ottimale da K a J segue la stessa strada L’insieme dei cammini ottimali da un router verso tutte le destinazioni non puo’ quindi contenere percorsi circolari, cioe’ ha una struttura ad albero, detta sink tree

36 36 Routing broadcast (cont.) Utilizzando il sink tree, la trasmissione del pacchetto broadcast si puo’ ottenere semplicemente: i router inviano il pacchetto solo sulle proprie linee uscenti appartenenti a quel sink tree Questo protocollo ha il difetto che ogni router deve essere capace di calcolare il sink tree relativo al router che ha generato il pacchetto, quindi deve conoscere la topologia della rete ad esempio il distance vector non puo’ farlo il link state puo’ farlo

37 37 Routing broadcast (cont.) Una soluzione che non richiede la conoscenza della topologia e’ quella nota come reverse path forwarding: quando un router riceve un pacchetto broadcast da una sorgente, calcola se l’interfaccia da cui ha ricevuto il pacchetto e’ quella verso la quale instraderebbe un pacchetto destinato al router sorgente se la strada e’ la stessa, allora il router che ha ricevuto il pacchetto appartiene al sink tree del router sorgente, ed inoltra il pacchetto su tutte le altre linee se la strada non e’ la stessa, il pacchetto viene scartato E’ meno efficiente del sink tree, ma di applicabilita’ piu’ generale

38 38 Routing broadcast (cont.) Il numero di pacchetti generati dal reverse path forwarding e’ superiore a quello del sink tree, ma ampiamente inferiore rispetto a quelli generati tramite flooding


Scaricare ppt "1 Sistemi e Tecnologie della Comunicazione Lezione 18: network layer: introduzione, algoritmi di routing."

Presentazioni simili


Annunci Google