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