Nell'abito delle telecomunicazioni, la commutazione di pacchetto è una tecnica che prevede la suddivisione di un messaggio in più parti (i pacchetti) prima di inoltrarlo in rete attraverso un percorso non definito in precedenza. Ogni pacchetto dati, infatti, seguirà una propria “strada”, “rimbalzando” tra i nodi della rete prima di raggiungere il destinatario della comunicazione. Sarà poi il nodo di destinazione a riordinare i pacchetti ricevuti e ricostruire il messaggio a mo' di puzzle (grazie al protocollo TCP, Transmission Control Protocol).
Questa tecnica comunicativa permette di massimizzare e ottimizzare l'utilizzo delle risorse di rete. A differenza della commutazione di circuito (utilizzata, ad esempio, nell'ambito della telefonia fissa) che prevede un collegamento dedicato ed univoco per ogni comunicazione in essere, nella commutazione a pacchetto il percorso tra due nodi della rete non è assegnato in maniera esclusiva o continua (il percorso utilizzato può variare nel tempo a seconda della stato contingente della rete) e può pertanto essere utilizzato contemporaneamente da due o più “stazioni di trasmissione”.
Cosa sono i pacchetti dati
Per pacchetto dati si intende una sequenza distinta e finita di dati (solitamente una sequenza di bit) trasmessa in una rete o in una linea di comunicazione che utilizzi il modo di trasferimento a commutazione di pacchetto.
Il pacchetto rappresenta l'unità base di ogni protocollo appartenente allo strato dell'architettura ISO/OSI da cui esso è generato. A seconda del livello, il termine assume significati, formati e nomi diversi: per il livello di collegamento si preferisce il termine frame, a livello di rete si chiama datagramma, in TCP si usa invece il termine segmento. Anche se può variare a seconda del protocollo cui si fa riferimento, il pacchetto è formato solitamente da tre parti: header o intestazione (contenente tutte le informazioni necessarie alla trasmissione e ricezione delle informazioni), data (contenente i dati trasmessi) e checksum (codice di controllo utilizzato per verificare l'integrità della trasmissione).
Caratteristiche della commutazione di pacchetto
La commutazione di pacchetto si sviluppa a metà degli anni '60, nel periodo più buio della Guerra Fredda tra il blocco occidentale e il blocco sovietico. Per garantire le comunicazioni anche in caso di attacco nucleare, gli apparati di ricerca dell'esercito statunitense ideano un sistema di inoltro delle informazioni che potesse sopperire alla scomparsa improvvisa di alcuni nodi o di intere porzioni della rete. Nasce così la tecnica della commutazione di pacchetto. L'idea di base è suddividere la comunicazione in piccoli segmenti (i pacchetti dati) e inviarli al nodo di destinazione senza stabilire a priori un percorso da seguire. Ogni pacchetto può decidere in autonomia attraverso quali nodi passare e come raggiungere il destinatario, cui è affidato il compito di ricostruire il messaggio una volta ricevuti tutti i dati.
Ciò permette, come accennato, di utilizzare in maniera efficiente tutte le risorse di rete disponibili al momento. Non essendoci un percorso programmato da seguire, i pacchetti possono utilizzare tutti i nodi liberi della rete per raggiungere il nodo-destinatario, velocizzando di conseguenza le operazioni di spedizione.
Come funziona la commutazione di pacchetto
Alla base del funzionamento di una rete a commutazione di pacchetto troviamo le cosiddette tabelle di routing. All'interno di ogni nodo appartenente alla rete, infatti, sono registrati dinamicamente (ovvero aggiornati continuamente) lo stato di funzionamento dei vari altri nodi ad esso direttamente collegati: in questo modo è sempre possibile sapere se un nodo non è funzionante, se è occupato o se è libero. Basandosi su queste informazioni, il nodo attualmente in possesso di un particolare pacchetto dati può determinare di volta in volta il migliore percorso da far seguire ai dati in modo che raggiungano il nodo destinatario nel minor tempo possibile.
Può accadere, naturalmente, che il percorso cambi in corso d'opera. Nel caso in cui un nodo venga occupato da un altro circuito comunicativo o si liberi un nodo che accorci il percorso, un nodo intermedio detto commutatore di pacchetto può decidere di modificare il tragitto inizialmente impostato.
Le problematiche
Anche se perfezionata nel corso dei decenni, questa tecnica comunicativa comincia ad accusare diverse problematiche causate dall'età e dalla sempre maggiore complessità che contraddistingue le reti di comunicazione digitale. Due quelle di maggior entità e incidenza sulle prestazioni della rete stessa:
-
Ritardo. Anche se nella gran parte dei casi l'invio dei pacchetti dati procede senza intoppi, può accadere in alcuni casi che si registrino ritardi anche elevati. Questi possono essere causati da quattro fattori: tempo di elaborazione (tempo necessario ad elaborare ogni pacchetto e deciderne il percorso e quindi l'interfaccia di uscita; dipendente dal nodo); tempo di trasmissione (dipendente dalla rete, è direttamente legato alla capacità di banda e alla velocità di trasmissione della rete fisica); latenza (dipende dalla natura e dall'ingegneria del nodo: nel caso in cui i pacchetti in entrata e in uscita passino per uno switch o un router particolarmente carico di lavoro può accadere che si crei una coda di trasmissione o buffer con conseguente degrado delle prestazioni); tempo di propagazione (dipende dal mezzo fisico, ovvero dal tipo e composizione del cavo attraversato dal segnale, ed è dato dal tempo necessario alla propagazione del segnale stesso da un nodo all'altro della rete)
-
Perdita dei pacchetti. Non seguendo un percorso predefinito, può accadere che alcuni pacchetti si perdano e non raggiungano mai il nodo di destinazione. Ciò può accadere per un guasto al nodo o al collegamento, per problemi di congestione della rete e per perdita deliberata per motivi di sicurezza o per ragioni di conservazione dell’efficienza della rete. Con il passare del tempo sono state sviluppate strategie e protocolli (come il protocollo TCP, ad esempio) che ottimizzano la gestione della comunicazione a pacchetti permettendo, in alcuni casi, il recupero e la rigenerazione di pacchetti persi o corrotti. Nel caso ciò non sia possibile, il nodo destinatario chiederà al mittente la ritrasmissione del pacchetto dati non ricevuto allungando così il tempo necessario perché la trasmissione dati sia completata