Note
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:
- Serializzazione del file
- Pacchettizzazione (scomposizione dei bit dei file in “gruppetti”)
- Trasporto dei pacchetti
- Riassemblaggio del dato
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
Example
Per esempio un header di un pacchetto conterrà sicuramente l’indirizzo di destinazione del pacchetto.
Routing e trasferimento
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.
Modello di nodo
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.
Store and Forward
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.
Multiplazione statistica
Mentre la coda in uscita usa il metodo Multiplazione statistica: I pacchetti sono accodati e si attende per utilizzare il collegamento
Tipi di commutazione di pacchetto
Datagram
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
Circuito virtuale
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.
Prestazioni: ritardi e throughput
Velocità di trasmissione
È la velocità (rate) con la quale l’informazione digitale viene trasmessa su una linea, essa viene misurata in (: bit per second).
Le unità di misura sono:
Tempo di trasmissione
Il tempo per trasmettere bit dipende dalla velocità di trasmissione , si ha quindi:
Ritardo di propagazione
Il tempo affinché un impulso trasmesso dal trasmettitore raggiunga il ricevitore dipede dalla distanza (in metri) e dalla velocità di propagazione (, questa velocità è prossima alla velocità della luce)
Quindi il tempo di attraversamento del canale è dato fra la trasmissione del primo bit e la ricezione dell’ultimo:
Questo ritardo è indipendente dal numero di bit, ma dipende dalla struttura fisica.

In base al metodo di trasmissione di un nodo la commutazione di pacchetto si distingue in:
Store & Forward
Il router riceve tutti i bit prima di cominciare a trasmettere il pacchetto.
Cut-Through
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.
Architettura di un nodo

Network Interface Controller
Interfacce con l’esterno dotate di piccola potenza di calcolo (e quindi di un microprocessore) per compiere azioni come lettura, scrittura, codifica e decodifica.
- Una NIC riceve un pacchetto e lo trasferisce tramite DMA nella memoria principale
- La CPU elabora i dati nella memoria principale trovando la NIC da usare in base alla tabella di instradamento
- Il pacchetto contenuto nella memoria principale viene trasferito alla NIC scelta dal processore, che procederà a inviarlo.
Questo processo comporta l’aggiunta di un ritardo di elaborazione che va aggiunto alla formula precedente, ma solitamente è trascurabile.
Ritardo di accodamento
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:


Tip
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:
- Due pacchetti si trovano nella stessa coda, e di conseguenza hanno lo stesso
next-op- Sufficiente ma non necessaria: La velocità di uscita è inferiore alla velocità di entrata.
Ritardo di accodamento
Del ritardo di accodamento medio si possono fare dei modelli statistici basati sulla teoria delle code. Definiamo:
= velocità del link [] = lunghezza del pacchetto [] = frequenza di arrivo dei pacchetti [] = frequenza di trasmissione dei pacchetti []
Si ha
e quindi:
Questa è una curva esponenziale, e quindi il nostro obiettivo sarà ridurre il più possibile.
