1 Analisi teorica

La situazione può essere vista nel modo seguente. Siano $L_{OF}$ l'overhead in byte presente in ogni frammento (ovvero quello dovuto all'header IP), $L_{OP}$ l'overhead in byte presente in ogni pacchetto ma non ripetuto sui singoli frammenti (ovvero quello dovuto ad IPsec ed eventualmente, a seconda del livello a cui ci si pone, quello dovuto al protocollo di trasporto), $L_{U}\left(n\right)$ la lunghezza dei dati ``utili'' (payload) contenuti in un pacchetto costituito da $n$ frammenti e $M$ la Maximum Transfer Unit (MTU) della rete attraversata. In un pacchetto non frammentato e di grandezza massima si avrà allora $L_{OF} + L_{OP} + L_{U}\left(1\right) = M$. Se ipotizziamo che tutti i frammenti abbiano la grandezza massima, per un pacchetto suddiviso in $n$ frammenti si avrà dunque $nL_{OF} + L_{OP} + L_{U}\left(n\right) = nM$. Se si considera come misura di efficienza ($E$) il rapporto tra dati utili e dati totali trasmessi si ha allora:

\begin{displaymath}E\left(n\right) = \frac{L_{U}\left(n\right)}{nM} = \frac{nM -...
..._{OP}}{nM}
= 1 - \frac{L_{OF}}{M} - \frac{1}{n}\frac{L_{OP}}{M}\end{displaymath}

In base alla formula precedente, l'efficienza cresce al crescere di $n$, tendendo al valore di $1 - \frac{L_{OF}}{M}$; l'overhead sul frammento non è eliminabile e dunque dà luogo al termine $-\frac{L_{OF}}{M}$, mentre l'overhead sul pacchetto rientra nel termine $-\frac{L_{OP}}{nM}$ e dunque la sua incidenza diminuisce all'aumentare di $n$. Questo discorso tuttavia non tiene conto della probabilità di perdita della rete. Sia $p$ la probabilità di perdita del singolo frammento; allora, se il pacchetto è suddiviso in $n$ frammenti, la probabilità che nessuno di essi venga perso è $\left(1 - p\right)^{n}$, e dunque la probabilità di perdita di un pacchetto (cioè la probabilità che si perda almeno un frammento) è $1 - \left(1 - p\right)^{n}$, pari a $p$ per $n = 1$ e tendente ad 1 per $n$ tendente ad infinito.

Rivedendo allora in base a queste considerazioni la formula dell'efficienza, si può dire che i byte utili saranno mediamente $L_{U}\left(1 - p\right)^{n}$ per ogni $nM$ byte trasmessi, e che dunque l'efficienza diventa

\begin{displaymath}E\left(n,p\right) = \left(1 - p\right)^{n} \left( 1 - \frac{L_{OF}}{M} -
\frac{1}{n}\frac{L_{OP}}{M}\right)\end{displaymath}

Si considerino i seguenti valori per i parametri: $M = 1500$ byte (Ethernet), $L_{OF} = 20$ byte (lunghezza header IP) e $L_{OP} = 84$ byte (IPsec in modalità tunnel ESP con 3DES e SHA: 32 byte di overhead dovuti ad ESP62, 20 byte per l'header IP interno e 32 per l'header TCP63). Con questi dati, si ottiene la funzione mostrata nelle figure 6.3 e 6.464.

Figura: Rappresentazione tridimensionale della variazione dell'efficienza teorica $E$ in presenza di frammentazione, in funzione della probabilità di errore sul frammento $p$ e del numero di frammenti $n$.
\includegraphics{immagini/eff1.eps}

Figura: Variazione dell'efficienza teorica $E$ in presenza di frammentazione, in funzione del numero di frammenti $n$, per alcuni valori della probabilità d'errore sul frammento $p$.
\includegraphics{immagini/eff2.eps}

Da questo semplice modello si possono trarre alcune considerazioni:

Ciò che si vede è dunque che, per quanto riguarda IPsec, in condizioni di bassa probabilità di errore la frammentazione end-to-end dei pacchetti dovrebbe portare ad un aumento delle prestazioni. TLS, operando sul flusso continuo di dati al di sopra di TCP, non ha invece nulla a che vedere con la frammentazione dei pacchetti IP ed è dunque estraneo a questo discorso65.

La realtà è comunque naturalmente più complessa del semplice modello proposto, in quanto esso non tiene conto di almeno due fattori:

Da queste considerazioni qualitative ci si può attendere che per $p$ nulla o molto piccola e $n$ non molto grande l'incremento di prestazioni rispetto all'assenza di frammentazione (caso $n = 1$) sia maggiore rispetto a quello indicato nel modello, mentre per $p$ significativa e $n$ sufficientemente grande il decadimento prestazionale dovrebbe essere maggiore di quello indicato.



Footnotes

... ESP62
8 per l'header, 8 per l'IV, 2 per il trailer, 12 per i dati di autenticazione, in più si è considerato un padding medio di 2 byte.
... TCP63
Sono 32 e non 20 poiché si è utilizzata l'opzione di timestamp, che su Linux è abilitata per default.
...FIG_eff264
In entrambi i casi, per maggiore chiarezza della rappresentazione grafica, la funzione è mostrata come se le due variabili fossero continue, ma naturalmente ha senso solo per valori interi di $n$.
... discorso65
In realtà si potrebbe notare che il modello si applica comunque a TCP, e in questo senso la frammentazione potrebbe portare ad un aumento di prestazioni di TLS come conseguenza indiretta dell'aumento di prestazioni di TCP. In questo caso si ha però che $L_{OP} = 32$ byte (contro gli 84 byte di IPsec) per cui il guadagno di efficienza è nettamente minore (per $p=0$ si trova $E(1) \simeq 0,\!965$, mentre il livello asintotico è lo stesso di IPsec) e appare trascurabile.
©2001 Davide Cerri