Costruzione del percorso ottimo da parte del RCC
La tecnica di preallocazione dei buffer.
La tecnica a scarto di pacchetto
La limitazione del numero di pacchetti circolanti
Tecnica di controllo dell’utilizzo delle linee di uscita
Questo livello si occupa di
stabilire il percorso che, in una
rete, devono seguire i pacchetti d’informazione per giungere dal mittente al
destinatario
dell’ottimizzazione dell’uso della
rete attraverso una scelta opportuna del percorso
delle problematiche che sorgono a
causa dei possibili sovraccarichi delle linee
dell’internet working cioè
l’interconnessione di reti di natura diversa
Nello sviluppo dei servizi
offerti da questo livello vi sono due filosofie diverse:
servizi non orientati alla connessione
servizi orientati alla connessione
Una filosofia del primo tipo
prevede che lo strato di rete si occupi soltanto di inviare i pacchetti lungo
un certo cammino senza preoccuparsi di verificare l’avvenuta corretta ricezione
degli stessi. Non viene stabilito a priori il percorso che tali pacchetti
dovranno seguire. Ogni pacchetto potrà seguire un percorso diverso da quello
seguito dagli altri e non è garantito nemmeno che l’ordine di arrivo sia lo
stesso di quello con cui è avvenuta la trasmissione, per cui si pone anche il
problema della ricostruzione della corretta sequenza dei pacchetti. Viene fatta
spesso, per spiegare la filosofia di questo tipo di approccio, l’analogia con
il sevizio postale in cui il mittente si limita a imbucare la lettera che vuole
spedire senza aver alcun controllo sul percorso che la sua lettera seguirà e
sull’effettiva consegna della stessa al destinatario. In base a questa analogia
i pacchetti vengono definiti datagrammi.
Nel caso dei servizi orientati
alla connessione, invece, per far comunicare nodo trasmettitore e nodo
destinatario il livello di rete stabilisce una connessione virtuale fra i due.
L’aggettivo virtuale sta ad indicare che tale connessione dedicata viene a
cadere appena la trasmissione è terminata. E’ lo stesso procedimento che si ha
quando si effettua una telefonata. Il servizio telefonico utilizzato crea un
canale dedicato fra chiamante e chiamato, canale dedicato che resta attivo
finché cessa la comunicazione.
Il compito fondamentale del livello di rete è la scelta del percorso che devono seguire i vari pacchetti per giungere a destinazione.
Il percorso viene determinato in
due modi diversi:
scelta mediante algoritmi statici: la
scelta del percorso viene effettuata in base ad informazioni sulla topologia
della rete ed altri dati che si conoscono a priori sulla rete stessa, eventuali
variazioni dello stato della rete non influenzano tali algoritmi
scelta mediante algoritmi dinamici: in
questo caso la scelta del percorso è effettuata tenendo conto delle condizioni
del traffico che vi è sulla rete
In una rete di comunicazione vi
sono, in genere, nodi dedicati alla comunicazione, detti nodi di commutazione o
IMP (interface Message Processor). Questi nodi sono collegati
mediante una sottorete di comunicazione.
In ogni sottorete di
comunicazione vi è un IMP detto RCC (Routing Control Center) cui
è demandato il compito di definire i percorsi che dovranno seguire i vari
pacchetti..
Quando un nodo vuole inviare dati
ad un altro nodo, deve inviare una richiesta al Routing Control center,
indicando quale è il destinatario. Il Routing Control center determina il
percorso ottimale che i pacchetti devono seguire per giungere a destinazione ed
invia, lungo il percorso scelto, a tutti gli IMP che si trovano su di esso un
cosiddetto pacchetto spia che fornirà loro informazioni circa il collegamento
virtuale che dovrà essere stabilito. Ogni IMP possiede una tabella nella quale
scrive tutti i collegamenti virtuali che, in un dato momento, lo attraversano.
Per poter calcolare i percorsi
ottimi, un Routing Control center deve ricevere da tutti gli IMP informazioni
sulla topologia della rete e sulle condizioni del traffico.
Tale metodo presenta problemi
quando la rete è troppo complessa o le sue condizioni variano con frequenza,
poiché i ritardi che si introducono a causa del lavoro che deve fare il RCC per
stabilire i percorsi ottimali, possono diventare inaccettabili. Inoltre è
evidente che un guasto al RCC porterebbe al blocco totale della rete.
Per costruire un percorso ottimo
il Routing Control center ha una rappresentazione della rete mediante un grafo.
Ogni nodo del grafo rappresenta un nodo della rete. Ogni arco del grafo
rappresenta un collegamento fisico fra nodi della rete. Ad ogni arco è
associato un numero o peso. Nel caso più semplice il peso è rappresentato dalla
lunghezza del collegamento. Allora nel caso più semplice si tratterà di
individuare, nel grafo, il percorso che collega il nodo trasmettitore e quello
ricevitore con lunghezza minima. Nel caso più generale il peso rappresenta
numericamente, oltre alla lunghezza anche altre caratteristiche della rete. In
questo caso la “lunghezza” del percorso è costituita dalla somma dei pesi
associati agli archi che compongono il percorso.
Gli algoritmi utilizzabili per
stabilire questo percorso sono diversi. Vediamo come esempio l’algoritmo di
individuazione del cammino più breve di Dijkstra.
Consideriamo ad esempio, il
seguente grafo
Vogliamo individuare il percorso
più breve fra il nodo A ed il nodo H. L’algoritmo prevede che ad ogni nodo del
grafo vengano associati due valori: il primo è costituito dalla distanza del
nodo dal nodo di partenza e il secondo è il nome del nodo che lo precede nel
percorso. Inizialmente tali valori sono sostituiti rispettivamente da un
∞ e da un asterisco.
Il primo passo è quello di
delimitare il nodo di partenza A come nodo permanente, cioè un nodo
appartenente al percorso. Per ogni nodo collegato direttamente al nodo A si
pone nel campo della distanza dal nodo origine il peso dell’arco che lo collega
al nodo A e nel campo del predecessore si pone A.
Dalla figura si vede quindi, che
per il nodo B si pone A come predecessore e si pone la lunghezza pari ad 1
perché questo è il valore del peso dell’arco che collega A con B. Per il nodo C
si pone A come predecessore e si pone la distanza pari a 2 perché questo è il
peso dell’arco che collega A con C.
Nel secondo passo si sceglie come
nuovo nodo di riferimento quello che ha la distanza più piccola da A, nel
nostro caso B. B è collegato a D e a F. Il predecessore di D sarà B e la
distanza sarà posta pari a 4, infatti essa sarà pari al peso dell’arco AB (1)
più il peso dell’arco BD (3). Per F il predecessore sarà B e la distanza dal
nodo origine sarà 7, pari al peso dell’arco AB (1) più il peso dell’arco BF
(6). Ora, fra tutti i nodi che non sono stati assegnati al percorso e per i
quali è stata calcolata la distanza da A ( nodi C, D ed F) si sceglie quello
con distanza minima da A che è C. C è collegato direttamente al nodo H: il
predecessore di H è posto pari a C e la distanza da A sarà posta pari a 10 data
da 2 (peso dell’arco AC) più 8 (peso dell’arco CH). Il nodo C è anche collegato
al nodo D, si vede che se si scegliesse come nuovo predecessore di D il nodo C,
la distanza del nodo D dal nodo di partenza A rimarrebbe 4. Poiché non c’è un
miglioramento della distanza di D da A, il predecessore di D rimane il nodo B.
Fra D (distanza 4) ed H (distanza 10), si sceglierà come prossimo nodo di
riferimento D. Esso è collegato al nodo E il cui predecessore diventa D e la
cui distanza da A diventa 11 (distanza di D da A pari a 4 più peso dell’arco DE
pari a 7). Poiché D è collegato anche al nodo F si prova a scegliere D come
nuovo predecessore di F, ma la distanza di F da A aumenterebbe da 7 a 9, perciò
si lascia B come predecessore di F. Occorre scegliere ora fra il nodo F
(distanza da A pari a 7) , il nodo H
(distanza da A pari a 10) ed il nodo E (distanza da A pari a 11). Viene scelto
come nuovo nodo di riferimento, il nodo F. F è collegato ai nodi E e G. il nodo
precedente di E cambia da D a F e la distanza scende da 11 a 9. Per G il nodo
precedente diventa F e la distanza da A diventa 13. E è il nuovo nodo di
riferimento. Se ponessimo E come predecessore di H la distanza di H da A
passerebbe da 10 a 12, per cui il suo nodo predecessore rimane C. il percorso
ottimo è allora A – C – H .
Il metodo dell’instradamento centralizzato mostra i suoi limiti per reti in cui le condizioni del traffico variano con troppa frequenza. In tal caso il Routing Control Center perde troppo tempo a rifare i calcoli per aggiornare il proprio grafo. In tal caso si usa la tecnica dell’instradamento isolato. Essa consiste sostanzialmente nel fatto che quando un pacchetto giunge su un Interface Message Processor è quest’ultimo a decidere verso quale nodo instradare il pacchetto.
L’algoritmo più semplice
implementato in questo caso è quello della patata bollente. In sostanza l’IMP che
detiene il pacchetto lo invia sulla prima linea che trova libera o verso l’IMP
che presenta il numero minore di pacchetti in coda. Il difetto di questo metodo
è che il pacchetto possa saltare da un nodo all’alto senza avvicinarsi al nodo
di destinazione.
In alternativa si usa il metodo
dell’algoritmo a pioggia: ogni volta che un IMP riceve
un pacchetto lo invia a tutte le stazioni.
Come nel caso precedente è l’IMP cui è pervenuto il pacchetto a decidere dove instradarlo. A differenza dell’instradamento isolato, però, in questo caso l’IMP prende la sua decisione in base ad una serie di informazioni che scambia con gli IMP vicini periodicamente, informazioni che gli danno una visone aggiornata dello stato del traffico sulla rete
La tecnica precedente prevede che
ogni IMP tenga aggiornate delle tabelle dei cammini che contengono stime dei
tempi necessari per raggiungere gli altri nodi della rete. Se la rete diventa
troppo ampia le tabelle diventano troppo complesse per poter essere gestite in
maniera efficace.
La soluzione consiste nel
suddividere la rete in regioni. Queste possono essere a loro volta suddivise in
cluster e zone. All’interno di ogni regione un IMP si deve preoccupare soltanto
di calcolare il percorso migliore per raggiungere un altro nodo della stessa
regione per cui le tabelle dei cammini che deve gestire sono meno complesse. Le
varie regioni comunicano fra di loro mediante IMP speciali che hanno il compito
di convogliare i pacchetti da una regione all’altra
In alcuni casi un nodo deve
inviare un messaggio a tutti i nodi della rete (tecnica di broadcasting). La
soluzione più semplice sarebbe quella di fare tante copie del pacchetto quanti
sono i nodi a cui va inviato. Se la rete è complessa con un numero elevato di
nodi, il ritardo necessario per preparare tutte le copie del pacchetto potrebbe
diventare proibitivo.
Un’alternativa può essere quella
dell’instradamento a pioggia. Il nodo di partenza invia il
pacchetto su tutte le linee libere verso gli IMP vicini i quali provvedono a
loro volta ad inviare il pacchetto a pioggia verso i nodi vicini e così via.
Questa tecnica ha l’inconveniente di moltiplicare in maniera poco efficiente i
pacchetti intasando inutilmente le linee
La terza soluzione è
l’instradamento multidestinazione. In questo caso l’IMP di
partenza invia un solo pacchetto che contiene, però, gli indirizzi di tutti i
nodi destinatari. Quando il pacchetto giunge ad altro IMP, esso esamina la
lista degli indirizzi e la suddivide fra i vari IMP che può raggiungere
direttamente. Ad ogni passaggio dunque, la lista degli indirizzi si assottiglia
sempre di più.
Un elevato numero di pacchetti in
circolazione lungo la rete può congestionarla. Un IMP possiede delle aree di
memoria o buffer di ingresso in cui immagazzina i pacchetti che gli giungono e dei buffer di
uscita in cui immagazzina i pacchetti che stanno per essere spediti. Se i
pacchetti giungono al IMP più velocemente di quanto questo riesca ad
elaborarne, i suoi buffer di ingresso si esauriscono ed esso non può più
accettarne altri che vanno così persi. La stessa cosa può succedere con i
buffer di uscita.
Quando si chiede ad un IMP di
diventare un nodo intermedio di un circuito di comunicazione virtuale esso
assegna a questo circuito un buffer di ingresso ed un buffer di uscita. Una volta che l’IMP
esaurisce i buffer disponibili, se gli viene inviata una nuova richiesta di
essere inserito in un circuito virtuale esso risponde con un messaggio di
indisponibilità. Questa tecnica impedisce la congestione dell’IMP.
Con questa tecnica un IMP , se si trova in caso di necessità per evitare un sovraccarico di una linea scarta dei pacchetti in ingresso. Questa tecnica ha il seguente inconveniente. Se l’IMP vuole inviare un pacchetto verso un altro IMP ha un buffer di uscita occupato da tale pacchetto. Il secondo IMP ha ricevuto tale pacchetto e manda al primo IMP un pacchetto di riscontro dell’avvenuta ricezione. Il primo IMP potrebbe scartare proprio questo pacchetto di riscontro e in tal modo non si renderebbe conto che la trasmissione è avvenuta in maniera corretta e così non libera il buffer che resta inutilmente occupato. Occorre allora fare in modo che ogni IMP effettui la preallocazione di un certo numero di buffer per consentire almeno la ricezione dei pacchetti di riscontro. Va rilevato, inoltre, che, quando un pacchetto viene scartato, la stazione trasmittente deve ritrasmettere tale pacchetto. Vi sono allora più comunicazioni lungo la rete che non terminano e quindi si sovrappongono determinando un’eccessiva occupazione delle linee di trasmissione. Si cerca allora di migliorare la tecnica dello scarto dei pacchetti facendo in modo che vengano scartati più facilmente i pacchetti di trasmissioni appena incominciate. In tal modo si può portare a termine le trasmissioni che sono già iniziate da tempo e che quindi hanno maggior probabilità di concludersi in breve tempo liberando banda sulle linee.
Questa tecnica tenta di evitare
la congestione limitando il numero di pacchetti che circolano sulla rete. Sulla
rete circolano dei particolari pacchetti detti permessi di trasmissione o token. Un IMP prima di poter trasmettere un
pacchetto, deve catturare un permesso sulla rete. Quando l’IMP ha terminato di
trasmettere il pacchetto, rinvia sulla rete il token.
Supponiamo di avere tre IMP
collegati in un circuito
Ogni IMP sorveglia il traffico
sulle sue linee di uscita. Quando l’utilizzazione di una sua linea di uscita supera
un valore prefissato e rischia di congestionarsi, esso la marca. Nel nostro
caso supponiamo che ciò avvenga proprio
per la linea che congiunga IMP B
e IMP C. se ora IMP A invia un pacchetto a IMP B affinché venga trasferito a
IMP C, IMP B invia un pacchetto di allarme a IMP A. IMP A viene costretto a
ridurre il proprio traffico verso IMP C.
A
algoritmo a pioggia; 11
B
buffer di ingresso; 13
buffer di uscita; 13; 14
D
Dijkstra; 6
I
IMP (interface Message Processor); 4
instradamento a pioggia; 12
instradamento multidestinazione; 12
P
patata bollente; 11
permessi di trasmissione; 15
preallocazione; 1; 13; 14
R
RCC (Routing Control Center); 4