Il livello Rete

Transcript

Il livello Rete
Livello rete
Lo strato di Rete deve fornire i mezzi per
stabilire, mantenere e abbattere una
connessione di rete, mascherando ai livelli
superiori i problemi legati alla specifica
sottorete di comunicazione usata, quali ad
esempio quelli di routing.
Funzioni principali






Instradamento (routing);
Controllo di flusso, non per problemi di
sincronizzazione fra terminali, bensì per problemi di
gestione della rete (evitare congestioni, etc.).
Internetworking;
Segmentazione e accorpamento: le unità dati ricevute
dallo strato superiore possono essere segmentate o
raggruppate per facilitarne il trasferimento; il blocco
informativo gestito a questo livello è il pacchetto;
Rilevamento e recupero degli errori di pacchetto;
Controllo della corretta sequenza di consegna dei
pacchetti;
Servizi connessi e non connessi
Nei servizi non connessi il livello rete si
limita al trasporto dei pacchetti (datagram)
ognuno dei quali, potendo seguire percorsi
diversi, deve contenere l’indirizzo di
destinazione.
 Bisogna calcolare il percorso per ogni
pacchetto (c’è più lavoro)
 In caso di guasto di un router si perdono
solo i pacchetti della sua coda. (rete più
robusta)
Servizi connessi e non connessi
Nei servizi connessi il livello rete deve
stabilire le connessioni (circuiti virtuali) e
quindi il percorso che devono seguire tutti i
pacchetti.
 Si evitano le congestioni perché le
risorse sono riservate al momento della
creazione della connessione
 In caso di guasto di un router si rovinano
le trasmissioni di tutti i circuiti virtuali che
lo attraversano.
Strato di Rete


Mentre i livelli 1 e 2 coinvolgono solo due
entità nei due sistemi terminali, quelle dello
strato 3 coinvolgono un numero variabile
di entità della rete IS (router di rete), che si
passano i dati fra sorgente e destinazione.
Ogni router realizza la funzione di
instradamento per mezzo di una routing
table
Routing Table


Una registrazione per ogni destinazione
per ogni registrazione, indirizzo del salto
successivo (canale su cui instradare il pacchetto)
Costruzione della routing table



La routing table può essere costruita come output di
un algoritmo di routing
Il problema da risolvere è: trovare il cammino
minimo tra due nodi
Gli archi sono pesati



Metrica di prestazione/costo:
distanza, lunghezza delle code, ritardo medio di un
pacchetto, larghezza di banda del canale
Fattori critici: topologia e traffico
Algoritmi di routing




Sono eseguiti dal router per decidere su
quale linea di output trasmettere i dati in
ingresso
Usano una tabella di routing che indica
quale linea di uscita usare per ogni possibile
destinazione
Sono adattativi (dinamici) se modificano le
loro decisioni in base ai cambiamenti della
topologia e del traffico
Sono non adattativi (statici) se non lo
fanno
Proprietà






Correttezza
Semplicità
Robustezza = capacità di affrontare i
cambiamenti in modo dinamico
Stabilità = rapida convergenza
all’equilibrio in caso di cambiamento
Imparzialità = uso di tutte le linee
Ottimalità = uso delle linee migliori per
ottimizzare le trasmissioni
Algoritmi non adattativi

Routing statico:
 richiedono la configurazione da parte dell’amministratore di rete
In caso di guasto o modifica devono essere aggiornate
manualmente
 Adatto a reti piccole o con un unico percorso per ogni
destinazione
Flooding:
 Ogni router invia ogni pacchetto su tutte le linee di uscita
 Per eliminare i pacchetti che continuano a girare per la rete si
usa un contatore di salti (es.TTL) che viene decrementato ad
ogni salto
 È sempre garantito il cammino più breve ma aumenta il traffico
 Il flooding selettivo limita il traffico inviando i pacchetti solo
sulle linee che vanno nella direzione giusta.


Algoritmi adattativi

Di tipo isolato: ogni router decide indipendentemente
dagli altri


Di tipo centralizzato: prevedono un router di controllo
(RCC routing control center) che viene interpellato da
tutti gli altri sul percorso da seguire



L’algoritmo a patata bollente trasmette ogni pacchetto
sulla linea che ha una coda di trasmissione più breve
Riceve informazioni sulla rete da tutti i nodi con cui
costruisce le tabelle di instradamento
È usato in genere nelle reti orientate alla connessione
Di tipo distribuito: i router si scambiano informazioni
sulla rete e si costruiscono le proprie tabelle di
instradamento
Algoritmo del vettore distanza
Distance vector routing




Routing dinamico e decentralizzato
Implementato dal protocollo RIP (routing
information protocol)
Ogni router mantiene una tabella contenente
la migliore distanza (costo) conosciuta per
ogni destinazione e quale canale utilizzare per
raggiungerla
(Destination, Cost, NextHop)
Distance vector : rete di esempio
Distance vector: stato iniziale


Ogni nodo conosce i costi dei collegamenti ai
nodi adiacenti
I collegamenti ai nodi non adiacenti o i
collegamenti interrotti hanno costo infinito
Distance vector: aggiornamento tabelle

Ogni nodo spedisce aggiornamenti ai suoi nodi adiacenti
e riceve aggiornamenti dai suoi nodi adiacenti


Ogni aggiornamento è il vettore distanza



lista di coppie (Destination, Cost)
Un nodo aggiorna la tabella locale se riceve un cammino
migliore:
somma il costo minore al costo del nodo che lo ha proposto
es. A propone a B un costo 1 per raggiungere E: B aggiorna il
costo per raggiungere E con 2 = 1 + 1 e prende nota (come
Next Hop) del nodo che lo ha proposto
Dopo aver scambiato diversi aggiornamenti con i nodi
adiacenti, tutti i nodi conosceranno i cammini migliori verso
tutti gli altri nodi


Periodicamente o se la tabella cambia (triggered update)
Distance vector: stato finale
Che succede se il collegamento tra F
e G si interrompe?

Il sistema aggiorna le proprie tabelle e ritorna di
nuovo stabile






F si accorge che il collegamento a G è interrotto
F aggiorna a infinito la distanza da G e spedisce
l’aggiornamento ad A
A aggiorna a infinito la distanza da G perché usa F per
raggiungere G
A riceve un aggiornamento periodico da C con un percorso
verso G di costo 2
A aggiorna a costo 3 via C la distanza da G e spedisce
l’aggiornamento a F
F aggiorna a costo 4 via A la distanza da G
E se il collegamento tra A ed E si interrompe?

Problema del conteggio all’infinito: Il sistema non si
stabilizza e nessuno riesce a sapere che E è
irraggiungibile







A si accorge che il collegamento ad E è interrotto
A aggiorna a infinito la distanza da E spedisce l’aggiornamento a B e C
B aggiorna ad infinito la distanza da E perché usa A per raggiungere E
Ma B riceve un aggiornamento da C (spedito prima C ricevesse
l’aggiornamento da A) che lo informa che E è raggiungibile a costo 2
B aggiorna a costo 3 via C la distanza da E e spedisce l’aggiornamento
ad A
A aggiorna a costo 4 via B la distanza da E e spedisce l’aggiornamento a
C
C (che ora ha un costo infinito per E) aggiorna a costo 5 via A la distanza
da E e spedisce l’aggiornamento a B ...
Soluzione
 tagliare
i cicli di routing
(split horizon):

non si rimandano al nodo adiacente
la notifica di aggiornamenti effettuati
su informazioni provenienti da quel
nodo
Algoritmo dello stato della connessione
Link-state routing



Routing dinamico e globale
Implementato dal protocollo OSPF (open
shortest path first)
Funzioni di base



Distribuzione affidabile a tutti i nodi delle informazioni
sullo stato dei collegamenti (reliable flooding)
Ogni nodo sarà in grado di costruire una mappa
completa della rete
Calcolo presso ciascun nodo del cammino minimo
verso una data destinazione
Algoritmo dello stato delle
connessioni: rete di esempio
Routing gerarchico

La rete viene suddivisa in regioni: ogni
router ha le informazioni per le
destinazioni all’interno della sua regione



Le destinazioni al di fuori della regione
vengono viste come una sola (estero)
I percorsi risultano più lunghi, ma si
risparmia molto spazio nelle tabelle di
routing
Diminuisce il traffico di rete
Routing broadcast



Può essere usato il flooding ma spreca
molta banda
Un metodo più efficiente usa uno spanning
tree (albero di ricoprimento) : un
sottoinsieme della rete che include tutti i
router ma non contiene cicli.
Ogno router copia i pacchetti su tutte le
linee dello spanning tree eccetto quella di
arrivo.
Routing multicast




Prevede l’invio del pacchetto ad un gruppo di
stazioni
Prevede un protocollo per la gestione dei
gruppi: creazione, inserimento, uscita,
distruzione.
Ogni router può duplicare il pacchetto ed
inviarlo a tutti i nodi del gruppo.
L’uso di uno spanning tree migliora l’efficienza


È possibile prevedere uno spanning tree per ogni
gruppo
Ogni router è visto come radice dell’albero che usa
per inviare il messaggio a tutti i nodi del gruppo.
Routing per host mobili

Prevede l’instradamento verso stazioni che
possono cambiare posizione



La rete geografica viene divisa in aree
Ogni stazione mobile ha una sua base in un area
Ogni area ha:



Un agente di base che gestisce le stazioni la cui base è
nell’area
Un agente straniero che gestisce le stazioni che entrano
temporaneamente nell’area
Quando una stazione mobile entra temporaneamente in un
area, deve registrarsi presso l’agente straniero che contatta
l’agente base dell’area da cui proviene la stazione e gli fornisce
il proprio indirizzo.
Controllo della congestione




Una congestione è un carico maggiore di quello
che può sopportare una zona della rete, causata
spesso da picchi improvvisi del traffico.
Nelle reti che usano servizi non connessi si può
presentare in qualsiasi momento.
Nelle reti che usano servizi connessi si può
presentare solo al momento della creazione di una
nuova connessione.
Si può cercare di prevenire la congestione
(controllo a ciclo aperto) oppure di risolverle
una volta che si sono presentate (controllo a ciclo
chiuso)
Algoritmi a ciclo aperto




Agiscono dal lato del mittente controllando il ritmo
della trasmissione
L’algoritmo del secchio bucato (leaky bucket)
inserisce i pacchetti trasmessi dal mittente in una coda
finita e li fa uscire ad un ritmo costante: se la coda è
piena il pacchetto viene scartato
L’algoritmo del secchio di gettoni (token bucket)
genera ad intervalli regolari di tempo dei gettoni che
inserisce in una coda: un pacchetto per essere
trasmesso deve trovare un gettone disponibile. Non
scarta mai i pacchetti e gestisce meglio i picchi di
traffico.
Entrambi gli algoritmi prevedono una variante per
blocchi di byte al posto dei pacchetti.
Algoritmi a ciclo chiuso



Devono monitorare la rete per individuare le
congestioni e poi gestirle.
Le congestioni possono essere individuate
dal mittente stesso (algoritmi a feedback
implicito), oppure essere segnalate da un
router (algoritmi a feedback esplicito)
In entrambi i casi, per gestire la congestione,
il mittente riduce il traffico del 50% e poi
prova ad aumentare con piccoli incrementi
Algoritmi a ciclo chiuso


Con il metodo dei pacchetti regolatori (choke
packet), il router tiene sotto controllo le linee di
uscita e, quando individua una congestione,
invia un pacchetto di avvertimento al mittente
per fargli ridurre il traffico verso l’area
congestionata.
Lo scarto dei pacchetti, invece prevede che il
router scarti i pacchetti o in modo casuale
oppure rispettando le priorità segnalate dai
pacchetti stessi.
Internetworking


È la comunicazione tra reti che non usano lo
stesso protocollo instradato: si realizza con l’uso di
tunnel o gateway
I tunnel si usano quando mittente e destinatario
usano lo stesso protocollo, ma il messaggio deve
attraversare zone della rete che usano protocolli
diversi:
 Quando i pacchetti trasmessi arrivano al confine con
la regione che usa il protocollo diverso, vengono
incapsulati in pacchetti riconosciuti da quella rete.
 La loro struttura originaria, rimasta all’interno del
nuovo blocco, viene ripristinata al confine della
regione destinataria.
Passaggio da IPv4 a IPv6: tunneling
Datagram
IPv6
incapsulati in
datagram
IPv4

I GATEWAY



Si usano quando mittente e destinatario sono in
regioni che usano protocolli diversi.
Può essere un router o un host che converte il
formato di un protocollo in un formato diverso.
Gateway a livello di rete sono i router
multiprotocollo che oltre a tradurre i protocolli,
traducono anche gli indirizzi di rete

Se la lunghezza massima di un pacchetto, prevista da un
protocollo, è maggiore di quella prevista dal nuovo protocollo,
il router può spezzarlo in pacchetti più piccoli
(frammentazione) ognuno dei quali deve contenere il numero
del pacchetto originario ed il numero del frammento per poi
permettere la ricomposizione dei frammenti
(deframmentazione)
Frammentazione

L’unità massima di
trasmissione (MTU) è la
massima quantità di dati
che un frame a livello di
collegamento può
trasportare


Differenti tipi di link,
differenti MTU
I datagram IP possono
essere frammentati e poi
ricostruiti a Destinazione
I GATEWAY

•
•
Se i pacchetti di una rete orientata alla connessione
devono attraversare una rete non connessa, i
pacchetti in arrivo devono essere riordinati.
Gateway a livello di trasporto realizzano una
connessione tra due reti nel livello trasporto.
Gateway a livello di applicazione connettono
due parti di un applicazione. (ad es. il gateway
di posta tra la posta internet e la posta ISO
Motis, scompone il messaggio in arrivo su una
rete, lo converte nell’altro formato e lo inoltra
lungo la nuova rete usando i protocolli di rete e
di trasporto di questa).