6 L'impatto della frammentazione sulle prestazioni di IPsec

Le differenze rilevate sperimentalmente nel carico sul processore di IPsec e TLS possono sicuramente dipendere almeno in parte dalle particolari implementazioni utilizzate, anche se qualitativamente si può ipotizzare un maggior peso di IPsec dovuto al fatto che in questo caso le operazioni di cifratura e autenticazione riguardano porzioni maggiori dei pacchetti IP (e quindi sono effettuate su una maggiore quantità di dati). Per quanto riguarda il carico sulla rete si può tuttavia affermare che IPsec è intrinsecamente meno efficiente di TLS. Quest'ultimo infatti, trovandosi al di sopra di TCP, opera su un flusso unico di dati, che per le operazioni crittografiche può essere suddiviso in blocchi abbastanza grandi (precisamente fino a 16 KB). IPsec opera invece necessariamente a livello dei singoli pacchetti IP, che ad esempio nel caso di una rete Ethernet sono al massimo di 1500 byte. Questo significa che l'overhead in termini di byte (dovuto in particolare al vettore di inizializzazione e ai dati di autenticazione) è maggiore nel caso di IPsec perché a parità di dati totali trasferiti il numero di blocchi è maggiore.

Per risolvere questo inconveniente, in uno scenario d'uso end-to-end (non gateway-to-gateway), si è pensato di costruire pacchetti IP più grandi, applicarvi IPsec e poi frammentarli. Questo provoca un certo overhead computazionale sui punti terminali della comunicazione dovuto alle operazioni di frammentazione e deframmentazione, ma questo non è un problema dato che ci troviamo in un caso end-to-end; non si impone invece nessun overhead sui sistemi intermedi. Il problema di questo approccio è che, per come funziona il protocollo IP, la perdita di un solo frammento comporta la necessità di scartare tutti i frammenti dello stesso pacchetto, e quindi la perdita (ed eventualmente la ritrasmissione, nel caso di TCP) dell'intero pacchetto.



Subsections
©2001 Davide Cerri