Materie: | Appunti |
Categoria: | Sistemi |
Download: | 38 |
Data: | 18.06.2007 |
Numero di pagine: | 6 |
Formato di file: | .doc (Microsoft Word) |
Download
Anteprima
livello-rete_1.zip (Dimensione: 4.25 Kb)
trucheck.it_il-livello-di-rete.doc 13.04 Kb
readme.txt 59 Bytes
Testo
IL LIVELLO DI RETE
I dispositivi che si occupano della ricerca del percorso e del trasporto dei dati lungo la rete sono i router (intermediate system), i computer che si scambiano informazioni vengono chiamati anche host (end system).
Il livello di rete si occupa principalmente di individuare un percorso tra un computer mittente e un computer destinazione, e di trasmettere i pacchetti dalla sorgente alla destinazione attraversando diversi router.
La ricerca del percorso (routing) si basa su una tabella di instradamento. Il livello di rete deve fare in modo di non sovraccaricare parte dei router o linee (controllo della congestione) e risolvere problemi di comunicazione fra reti diverse (internetworking). Non solo gli host ma anche i router devono avere un indirizzo. L’assegnazione degli indirizzo può avvenire manualmente o dinamicamente.
I protocolli instradati preparano i pacchetti incapsulando le informazioni che arrivano dai livelli superiori e trasportano i pacchetti a destinazione (per esempi IP).
I protocolli di instradamento sono usati dai router per individuare i percorsi, comunicare le informazioni sui percorsi scoperti ad altri router, e inoltrare i pacchetti di protocollo instradato lungo quei percorsi.
Altri protocolli ausiliari sono quelli di controllo, usati dai router per esempio per stabilire se la destinazione è attiva o per controllare la congestione. I router operano soprattutto a livello di rete (hanno i 3 livelli inferiori) e usano i protocolli di instradamento e di controllo.
Se il livello di rete è non connesso il compito della rete è solo quello di trasportare i pacchetti (datagram) che devono contenere ognuno l’indirizzo di destinazione e possono seguire percorsi diversi e arrivare in modo non ordinato (o non arrivare affatto), i controlli spettano ai livelli superiori.
Se il livello di rete è connesso il percorso viene scelto al momento della connessione e il traffico scorre su essa, in modo ordinato (le connessioni sono chiamate circuiti virtuali). I servizi connessi richiedono una fase di creazione del circuito che richiede tempo ma si evitano le congestioni; nei servizi non connessi bisogna calcolare un percorso per ogni pacchetto, in caso di guasto vanno persi solo i pacchetti in coda al router, gli altri seguiranno un percorso diverso.
Gli algoritmi di routing sono eseguiti dai router per decidere su quale linea di output trasmettere i dati in ingresso. La maggior parte degli algoritmi utilizza una tabella di routing e possono essere adattativi (se modificano le decisioni secondo i cambiamenti della topologia o del traffico) o non adattativi (routing statico). La rete può essere vista come un grafo in cui le stazioni sono i nodi e le linee le comunicazioni fra le stazioni. L’insieme dei cammini ottimali forma un albero con radice nella destinazione chiamato sink tree.
Il routing statico richiede la configurazione da parte dell’amministratore di rete delle tabelle di routing di tutti i router, in caso di guasti bisogna aggiornare manualmente le tabelle, vanno bene per reti piccole. Una variante è segnare per ogni stazioni più alternative.
Con il flooding ogni router invia ogni pacchetto su tutte le linee di uscita (eccetto quella da cui ha ricevuto). Il flooding genera un numero di pacchetti duplicati, per ovviare a questo si inserisce un contatore di salti, ad ogni salto il contatore viene decrementato e quando raggiunge 0 viene scartato. Genera molto traffico ma il pacchetto arriva sempre nel minor tempo possibile (usa tutti i percorsi possibili). Il flooding selettivo cerca di ridurre il traffico inviando pacchetti solo su linee approssimativamente nella direzione giusta.
Gli algoritmi adattativi possono essere di tipo isolato, centralizzato e distribuito.
Negli algoritmi isolati le decisioni vengono prese da ogni router indipendentemente, senza conoscere la rete. Esempio la patate bollente trasmette sulla rete il pacchetto con la coda più breve.
Gli algoritmi centralizzati si basano sull’esistenza di un router di controllo chiamato RCC (rounting control center) che tutti gli altri router interpellano per chiedere il percorso ottimale. RCC conosce la topologia della rete perchè riceve informazioni da ogni nodo e può costruire tabella e grafo. Quando una stazione deve aprire una connessione manda una richiesta a RCC con il proprio indirizzo e quello di destinazione e RCC fonisce informazioni sul percorso da seguire.
Gli algoritmi distribuiti permettono ai router di scambiarsi informazioni sulla rete per costruire le tabelle. Ogni router può conoscere i router vicini e la distanza delle linee. La scoperta dei vicina può essere fatta mandando su ogni linea un pacchetto di hello, il router dall’altro capo manda una risposta di dicendo chi è. La distanza può essere per esempio un salto.
Nell’algoritmo Distance vector routing ogni router mantiene una tabella delle distanze che contiene per ogni destinazione la migliore distanza conosciuta (numero di salti, millisecondi) e la linea di uscita da utilizzare. Periodicamente i router si scambiano la propria tabella delle distanze con i router vicini; quando un router riceve la tabella del vicino confronta per ogni destinazione la propria distanza con quella stimata dal vicino sommando la propria distanza da esso e controllando se la nuova distanza è migliore di quella vecchia. Il router conosce solo le distanze dalle risorse e non ha informazioni sulla topologia della rete, se ci sono guasti e necessario un po’ di tempo (convergenza) prima che sia in grado di individuare correttamente il percorso.
Nell’algoritmo Link state routing ogni router mantiene un database che descrive la topologia della rete e le distanze in base a varie metriche. Le informazioni vengono ottenuto scambiando con tutti gli altri router dei pacchetti (LSP - link state packets) che contengono informazioni sui router vicini. Il router costruisce un LSP con l’elenco dei vicini e la distanza da ogni vicino, il pacchetto contiene anche l’identità del mittente, un numero di sequenza e un tempo di vita. I pacchetti possono essere ricostruiti ad ogni evento. Il router spedisce il pacchetto a tutti i router con il flooding, il router che lo riceve tiene traccia del numero di sequenza, se è nuovo lo memorizza e lo ritrasmette in flooding, ad ogni salto il tempo di vita viene decrementato, quando arriva a 0 viene scartato. Quando un router ha ricevuto i pacchetti LSP da tutti gl altri router può costruirsi un grafo della rete in cui ogni nodo rappresenta un router e ogni arco una linea, lavorando sul grafo può calcolarsi il percorso minimo. L’algoritmo più noto per la ricerca del cammino minimo è l’algoritmo di Dijkstra: dato un nodo iniziale x l’algoritmo permette di calcolare i cammini minimi visitando i nodi del grafo provando i possibili cammini. L’insieme dei nodi del grafo è diviso in tre parti, quelli visitati (v), di frontiera (f) e ancora da visitare. Per ogni nodo i si tiene traccia della distanza minima di calcolata fino a quel momento dal nodo di partenza (inizialmente a infinito) e di un nodo pi (inizialmente indefinito) che rappresenta il nodo precedente da attraversare. Inizialmente v è vuoto, f è costituito dal nodo di partenza x e la sua distanza minima è 0. L’algoritmo procede prendendo tra i nodi non ancora visitati il nodo j che ha la distanza più piccola dal nodo di partenza spostandolo tra i nodi visitati, per tutti i nodi di frontiera si ricalcola la distanza minima e la somma tra le distanza per arrivare al nodo e il peso dell’arco seguito per arrivare al nodo, se la distanza viene modificata si aggiorna l’ultimo p mettendo l’ultimo nodo attraversato. Si continua finché l’insieme dei nodi di frontiera resta vuoto.
Con il routing gerarchico la rete viene suddivisa in regioni, ogni router mantiene le informazioni per tutte le destinazioni all’interno della regione in cui si trova mentre tutte le altre destinazioni vengono viste come una sola direzione verso un router di periferia, che si occupa dell’instradamento verso le altre regioni (ognuna considerata come un‘unica destinazione). Ci possono essere anche più livelli gerarchici.
La comunicazione tra reti che non usano lo stesso protocollo instradato si chiama internetworking. i tunnel vengono usati quando la stazione mittente e destinatario usano lo stesso protocollo, ma bisogna attraversare una regione della rete che ne usa uno diverso; i pacchetti spediti dal mittente vengono incapsulati in pacchetti riconosciuti dalla rete con protocollo diverso, al confine opposto viene aperto e il pacchetto originale può arrivare a destinazione. Il gateway è un dispositivo, al confine fra due regioni che usano protocolli diverse, che converte il formato usato in un protocollo nel formato usato dall’altro protocollo. Inoltre il gateway deve essere in grado di convertire l’indirizzo di rete. Un altro problema è quello della dimensione massima dei pacchetti. Per risolvere questo problema si usa la frammentazione del pacchetto da parte router; ogni frammento conterrà intestazione, numero del pacchetto e numero del frammento ed eventuale indicazione di ultimo frammento. La ricomposizione dei pacchetti può avvenire da parte del router se questi escono tutti dallo stesso router, oppure se ne è in grado dall’host.