next up previous contents index
Avanti: Architettura protocollare Su: Modo di trasferimento delle informazioni Indietro: Schema di multiplazione   Indice   Indice analitico

Sottosezioni

Principio di commutazione

È definito in base a come sono realizzate le due funzioni di instradamento (come individuare un percorso nella rete) e attraversamento (come permettere l'inoltro del messaggio).

0.500000
\resizebox* {0.5\textwidth}{!}{\includegraphics{cap6/f6.14.ps}}

Se l'instradamento (ROUTING) viene determinato una volta per tutte all'inizio del collegamento, il modo di trasferimento viene detto con connessione. Se al contrario l'instradamento avviene in modo indipendente per ogni pacchetto, il collegamento è detto senza connessione ed ogni pacchetto di uno stesso messaggio può seguire percorsi differenti.

L'attraversamento di un nodo di rete consiste invece nel demultiplare le informazioni in ingresso e multiplarle di nuovo su uscite diverse: ciò può avvenire mediante un collegamento diretto o per immagazzinamento e rilancio.

Sulla base di queste considerazioni, definiamo:

Commutazione di circuito:

l'instradamento avviene una volta per tutte prima della comunicazione, e l'attraversamento impegna in modo permanente le risorse fisiche dei nodi della rete; è il caso della telefonia, sia POTS che PCM6.26.

Commutazione di pacchetto a Circuito Virtuale:

L'instradamento avviene una volta per tutte all'inizio della trasmissione, che prevede una prima fase di richiesta di connessione, durante la quale si determina appunto l'instradamento tra i nodi della rete. I pacchetti di uno stesso messaggio seguono quindi tutti uno stesso percorso, e l'attraversamento si basa sull'impegno di risorse logiche6.27 ed avviene per immagazzinamento e rilancio. La trasmissione ha luogo dopo aver contrassegnato ogni pacchetto con un identificativo di connessione (IC) che identifica un canale virtuale6.28tra coppie di nodi di rete, e che ne individua l'appartenenza ad uno dei collegamenti in transito. L'intestazione del pacchetto può essere ridotta, al limite, a contenere il solo IC del canale virtuale. L'attraversamento avviene consultando apposite tabelle (dette di routing), generate nella fase di instradamento iniziale, in cui è indicato il ramo di uscita per tutti i pacchetti appartenenti ad uno stesso messaggio.

0.400000
\resizebox* {0.4\textwidth}{!}{\includegraphics{cap6/f6.17.ps}}

Facciamo un esempio: una sorgente, a seguito della fase di instradamento, invia i pacchetti con identificativo IC = 1 al primo nodo individuato dal ruoting. Consultando la propria tabella, questo trova che il canale virtuale 1 sulla porta di ingresso (P.I.) A si connette al c.v. 3 sulla porta di uscita (P.U.) C. Ora i pacchetti escono da C con IC = 3 ed una volta giunti al nodo seguente sulla P.I. A, escono dalla P.U. B con IC = 2 e giungono finalmente a destinazione.

Notiamo che su di un collegamento tra due nodi, i numeri dei canali virtuali identificano in modo univoco il collegamento a cui appartengono i pacchetti, mentre uno stesso numero di canale virtuale può essere riutilizzato su porte differenti6.29. La concatenazione dei canali virtuali attraversati viene infine indicata con il termine Circuito Virtuale per similitudine con il caso di commutazione di circuito, con la differenza che ora il percorso individuato è definito solo in termini di tabelle e di etichette, e non di risorse fisiche (tranne che per la memoria della tabella).

Al termine della comunicazione, sul circuito virtuale viene inviato un apposito pacchetto di controllo, che provoca la rimozione del routing dalle tabelle.

Congestione e controllo di flusso

Durante la fase di instradamento, il percorso nella rete è determinato in base alle condizioni di traffico del momento, ed eventualmente la connessione può essere rifiutata in caso in cui la memoria di coda nei nodi coinvolti sia quasi esaurita, evento indicato con il termine di congestione.

D'altra parte, se alcune sorgenti origine dei Canali Virtuali già assegnati e che si incrociano in uno stesso nodo intermedio, iniziano ad emettere pacchetti a frequenza più elevata del previsto, il nodo intermedio si congestiona (ossia esaurisce la memoria di transito) ed inizia a perdere pacchetti, penalizzando tutti i Canali Virtuali che attraversano il nodo. Per questo motivo, sono indispensabili strategie di controllo di flusso che permettano ai nodi di regolare l'emissione delle sorgenti. Il controllo di flusso è attuato anch'esso mediante pacchetti (di controllo), privi del campo di dati, ma contenenti un codice identificativo del comando che rappresentano.

Ad esempio, un nodo non invia nuovi pacchetti di un circuito virtuale finché non riceve un pacchetto di riscontro relativo ai pacchetti precedenti. D'altra parte, nel caso di una rete congestionata, la perdita di pacchetti causa il mancato invio dei riscontri relativi, e dunque i nodi a monte cessano l'invio di nuovi pacchetti6.30. Dopo un certo periodo di tempo (TIMEOUT) il collegamento è giudicato interrotto e viene generato un pacchetto di Reset da inviare sul canale virtuale, e che causa, nei nodi attraversati, il rilascio delle risorse logiche (tabelle) relative al Canale Virtuale.


Discutiamo ora invece di un ulteriore possibile principio di commutazione:

Commutazione di pacchetto a Datagramma

Anche in questo caso, l'attraversa-mento dei nodi avviene per immagazzinamento e rilancio, mentre la funzione di instradamento è svolta in modo distribuito tra i nodi di rete per ogni pacchetto, i quali (chiamati ora datagrammi) devono necessariamente contenere l'indirizzo completo della destinazione. Infatti, in questo caso manca del tutto la fase iniziale del collegamento, in cui prenotare l'impegno delle risorse (fisiche o logiche) che saranno utilizzate6.31. Semplicemente, non è previsto alcun impegno a priori, ed ogni pacchetto costituisce un collegamento individuale che impegna i nodi di rete solo per la durata del proprio passaggio. L'instradamento avviene mediante tabelle presenti nei nodi, sia di tipo statico che dinamico (nel qual caso tengono conto delle condizioni di carico e di coda dei nodi limitrofi) che indicano le possibili porte di uscita per raggiungere la destinazione scritta sul pacchetto. Quest'ultimo quindi viene fatto uscire senza nessuna alterazione dalla porta di uscita.

Uno dei maggiori vantaggi dei datagrammi rispetto ai circuiti virtuali è una migliore resistenza ai guasti e malfunzionamenti: in questo caso infatti, a parte una eventuale necessità di ritrasmettere i pacchetti persi, il collegamento prosegue attraverso percorsi alternativi; inoltre l'elevato numero di percorsi alternativi, può permettere (in condizioni di carico leggero) di soddisfare brevi richieste di trasmissione a velocità elevate. Allo stesso tempo, in presenza di messaggi molto brevi, l'invio di un singolo datagramma è più che sufficiente, mentre nel caso a circuito virtuale le fasi di instaurazione ed abbattimento sarebbero state un lavoro in più da svolgere (tanto che ad es. l'X.25, che è nato a c.v., prevede anche il funzionamento a datagramma).

Consegna ordinata e congestione

Uno dei maggiori problemi legati all'uso di datagrammi è che l'ordine di arrivo dei pacchetti può essere diverso da quello di partenza, potendo questi seguire percorsi differenti. Per questo motivo, nei datagrammi è presente un numero di sequenza che si incrementa ad ogni pacchetto trasmesso, ed alla destinazione sono predisposti dei buffer6.32 di memoria nei quali ricostruire l'ordine esatto dei pacchetti.

Nel caso di un pacchetto mancante, il ricevente non sa se questo è semplicemente ritardato oppure è andato perso, rendendo problematico il controllo di flusso. In questo caso si produce un impegno anomalo dei buffer di ingresso, che non possono essere rilasciati perchè incompleti, e ciò può causare il rifiuto dell'accettazione di nuove connessioni, provocando un impegno anomalo anche per i buffer di uscita di altri nodi, causando congestione6.33.

A parte il caso di messaggi composti da un singolo datagramma, può essere opportuno, prima di effettuare un trasferimento a datagramma, verificare la disponibilità del destinatario finale a riservare una adeguata quantità di memoria. Ad esempio, in Internet avviene proprio questo (vedi pag. [*]).

Proseguiamo la descrizione delle reti per dati con l'ultima caratteristica di un modo di trasferimento:


next up previous contents index
Avanti: Architettura protocollare Su: Modo di trasferimento delle informazioni Indietro: Schema di multiplazione   Indice   Indice analitico
alef@infocom.uniroma1.it
2001-06-01