La commutazione di pacchetto prevede la pacchettizzazione del messaggio e l'invio, anche su percorsi diversi, di pacchetti, che vengono poi ricomposti asincronamente dal ricevente.
Il processo di commutazione di pacchetto comprende:
A differenza della commutazione di circuito, nella commutazione di pacchetto non è stabilito un percorso, il percorso è deciso pacchetto per pacchetto dai singoli nodi.
La rete deve gestire ogni pacchetto quindi oltre all'informazione deve contenere altri dati, detti header
Per esempio un header di un pacchetto conterrà sicuramente l'indirizzo di destinazione del pacchetto.
Il router legge l'header del pacchetto e lo instrada verso il prossimo nodo. Talvolta è possibile che dei pacchetti dello stesso flusso seguano dei percorsi differenti per poi arrivare alla stessa destinazione.
L'instradamento è gestito e compiuto dai router, che contengono delle tabelle (dette tabelle di routing) che associano ad ogni indirizzo di destinazione un indirizzo di instradamento per il nodo successivo.
La commutazione di pacchetto ottimizza il trasferimento e nel caso medio è più rapida, tuttavia si devono aggiungere i bit dell'header, gestire i pacchetti e riassemblare l'informazione, e quindi le prestazioni non sono garantite. Inoltre sono necessari i registri aggiuntivi per le tabelle di routing, e dei buffer di entrata e uscita utili nel caso in cui il router sia impegnato.
I pacchetti arrivano al ricevente in modo asincrono, cioè in tempo e ordine diverso. Questo perché la capacità dei collegamenti è arbitraria. Per questo motivo ci potrebbero essere dei conflitti temporali e di conseguenza serve avere due code per memorizzare. Una coda è posta all'ingresso l'indirizzo di destinazione, mentre l'altra è posta all'uscita per gestire i conflitti.
La coda in ingresso utilizza il metodo Store and Forward:
Il commutatore deve ricevere l'intero pacchetto prima di poter cominciare a trasmettere sul collegamento in uscita.
Mentre la coda in uscita usa il metodo Multiplazione statistica:
I pacchetti sono accodati e si attende per utilizzare il collegamento
La scelta della porta d'uscita viene fatta sulla base del solo indirizzo di destinazione. Per questo motivo i pacchetti possono seguire percorsi diversi poiché la tabella di instradamento potrebbe cambiare
Si forza il router a operare come per commutazione di circuito.
Tutti i pacchetti vengono identificati con uno stesso identificativo, che i router utilizzano per instaurare, in una fase di setup, un percorso virtuale dove i pacchetti saranno instradati.
È la velocità (rate)
Le unità di misura sono:
Il tempo
Il tempo
Quindi il tempo di attraversamento del canale è dato fra la trasmissione del primo bit e la ricezione dell'ultimo:
In base al metodo di trasmissione di un nodo la commutazione di pacchetto si distingue in:
Il router riceve tutti i bit prima di cominciare a trasmettere il pacchetto.
Il router riceve tutti bit dell'header prima di cominciare a trasmettere il pacchetto. Questa tecnica è poco utilizzata perché è necessario che il rate di entrata e di uscita siano in un dato rapporto.
Interfacce con l'esterno dotate di piccola potenza di calcolo (e quindi di un microprocessore) per compiere azioni come lettura, scrittura, codifica e decodifica.
Questo processo comporta l'aggiunta di un ritardo di elaborazione che va aggiunto alla formula precedente, ma solitamente è trascurabile.
Se la linea di uscita è occupata allora occorre aspettare in coda:
ricordando però che la coda esiste solo se i pacchetti sono indirizzati allo stesso nodo:
Più in generale il ritardo di accodamento dipende dalla multiplazione statistica dovuto all'arrivo asincrono dei pacchetti alle code d'uscita. Se la linea è occupata si deve attendere in coda, ma il ritardo si verifica se:
next-op
Del ritardo di accodamento medio
Si ha
Questa è una curva esponenziale, e quindi il nostro obiettivo sarà ridurre