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