È 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).
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:
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.
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.
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.
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:
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).
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: