6. Formati di intestazione compressi (Compressed Header Formats)
6. Formati di intestazione compressi (Compressed Header Formats)
Questa sezione utilizza alcune terminologie (DELTA, RANDOM) definite nella sezione 7.
a) Formato COMPRESSED_TCP (simile a [RFC 1144]):
+-+-+-+-+-+-+-+-+
| CID |
+-+-+-+-+-+-+-+-+
|R O I P S A W U|
+-+-+-+-+-+-+-+-+
| |
+ TCP Checksum +
| |
+-+-+-+-+-+-+-+-+
| RANDOM fields, if any (see section 7) (implied)
- - - - - - - -
| R-octet | (if R=1)
- - - - - - - -
| Urgent Pointer Value (if U=1)
- - - - - - - -
| Window Delta (if W=1)
- - - - - - - -
| Acknowledgment Number Delta (if A=1)
- - - - - - - -
| Sequence Number Delta (if S=1)
- - - - - - - -
| IPv4 Identification Delta (if I=1)
- - - - - - - -
| Options (if O=1)
- - - - - - - -
Gli ultimi flag del secondo ottetto (IPSAWU) hanno lo stesso significato di [RFC-1144], indipendentemente dal fatto che i segmenti TCP siano trasportati su IPv6 o IPv4. Il bit C è stato rimosso poiché la CID è sempre presente. Il contesto associato alla CID tiene traccia della versione IP e dei campi RANDOM presenti. L'ordine dei campi delta qui specificati è esattamente quello di [RFC-1144]. Un'implementazione analizzerà tipicamente il contesto dall'inizio e inserirà i campi RANDOM in tale ordine. I campi RANDOM vengono pertanto posti prima dei campi DELTA dell'intestazione TCP, nello stesso ordine in cui appaiono nell'intestazione non compressa originale.
Il flag I è nullo a meno che un'intestazione IPv4 non preceda immediatamente l'intestazione TCP. L'intestazione combinata IPv4/TCP viene allora compressa come un'unica unità, come descritto in [RFC-1144]. I campi Identification delle intestazioni IPv4 che non sono immediatamente seguite da un'intestazione TCP sono RANDOM.
Se il flag O è impostato, le opzioni dell'intestazione TCP differivano da quelle dell'intestazione precedente. L'intero campo Options viene posto alla fine dell'intestazione TCP compressa.
Se il flag R è impostato, vi erano differenze tra il contesto e il campo Reserved (6 bit) nell'intestazione TCP o i bit 6 e 7 dell'ottetto TOS (ottetto Traffic Class) in un'intestazione IPv4 (IPv6) che precede immediatamente l'intestazione TCP. Un ottetto contenente i valori reali del campo Reserved e dei bit 6 e 7 del campo TOS o Traffic Class viene allora posto immediatamente dopo i campi RANDOM. I bit 0–5 dell'ottetto trasmesso sono il valore reale del campo Reserved, e i bit 6 e 7 sono i valori reali dei bit 6 e 7 nel campo TOS o Traffic Class. Se non vi è un'intestazione IP precedente, i bit 6 e 7 sono zero. L'ottetto trasmesso con il flag R NON DEVE aggiornare il contesto.
NOTA: l'ottetto R non aggiorna il contesto poiché, se lo facesse, la checksum nTCP non proteggerebbe il TCP ricevente dagli header decompressi erroneamente. I bit 6 e 7 dell'ottetto TOS o Traffic Class possono cambiare frequentemente a causa della Notifica Esplicita di Congestione (ECN).
Si veda la sezione 7.12 e [RFC-1144] per ulteriori informazioni sulla compressione delle intestazioni TCP.
b) Formato dell'intestazione COMPRESSED_TCP_NODELTA:
+-+-+-+-+-+-+-+-+
| CID |
+-+-+-+-+-+-+-+-+
| RANDOM fields, if any (see section 7) (implied)
+-+-+-+-+-+-+-+-+
| Whole TCP header except for Port Numbers
+-+-+-+-+-+-+-+-+
c) Intestazione non-TCP compressa, CID 8 bit:
0 7
+-+-+-+-+-+-+-+-+
| CID |
+-+-+-+-+-+-+-+-+
|0|D| Generation|
+-+-+-+-+-+-+-+-+
| data | (if D=1)
- - - - - - - -
| RANDOM fields, if any (section 7) (implied)
- - - - - - - -
d) Intestazione non-TCP compressa, CID 16 bit:
0 7
+-+-+-+-+-+-+-+-+
| msb of CID |
+-+-+-+-+-+-+-+-+
|1|D| Generation|
+-+-+-+-+-+-+-+-+
| lsb of CID |
+-+-+-+-+-+-+-+-+
| data | (if D=1)
- - - - - - - -
| RANDOM fields, if any (section 7) (implied)
- - - - - - - -
La generation, la CID e l'ottetto di dati opzionale sono seguiti dai campi RANDOM pertinenti (vedere la sezione 7) come implicato dallo stato di compressione, nello stesso ordine in cui appaiono nell'intestazione non compressa originale, seguiti dal payload.