Zum Hauptinhalt springen

6. Komprimierte Header-Formate (Compressed Header Formats)

6. Komprimierte Header-Formate (Compressed Header Formats)

Dieser Abschnitt verwendet einige in Abschnitt 7 definierte Terminologien (DELTA, RANDOM).

a) COMPRESSED_TCP-Format (ähnlich wie in [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)
- - - - - - - -

Die letzten Flags des zweiten Oktetts (IPSAWU) haben dieselbe Bedeutung wie in [RFC-1144], unabhängig davon, ob die TCP-Segmente über IPv6 oder IPv4 transportiert werden. Das C-Bit wurde entfernt, da die CID immer vorhanden ist. Der mit der CID verbundene Kontext merkt sich die IP-Version und die vorhandenen RANDOM-Felder. Die Reihenfolge der hier angegebenen Delta-Felder ist exakt die aus [RFC-1144]. Eine Implementierung wird typischerweise den Kontext von vorne analysieren und die RANDOM-Felder in dieser Reihenfolge einfügen. Die RANDOM-Felder werden daher vor den DELTA-Feldern des TCP-Headers platziert, in derselben Reihenfolge wie im ursprünglichen unkomprimierten Header.

Das I-Flag ist null, es sei denn, ein IPv4-Header geht dem TCP-Header unmittelbar voraus. Der kombinierte IPv4/TCP-Header wird dann als Einheit komprimiert, wie in [RFC-1144] beschrieben. Die Identification-Felder von IPv4-Headern, die nicht unmittelbar von einem TCP-Header gefolgt werden, sind RANDOM.

Wenn das O-Flag gesetzt ist, unterschieden sich die TCP-Optionen von denen des vorherigen Headers. Das gesamte Optionsfeld wird an das Ende des komprimierten TCP-Headers angehängt.

Wenn das R-Flag gesetzt ist, gab es Unterschiede zwischen dem Kontext und dem Reservierten Feld (6 Bits) im TCP-Header oder den Bits 6 und 7 des TOS-Oktetts (Traffic-Class-Oktetts) in einem IPv4- (IPv6-)Header, der dem TCP-Header unmittelbar vorausgeht. Ein Oktett mit den tatsächlichen Werten des Reservierten Feldes und der Bits 6 und 7 des TOS- bzw. Traffic-Class-Feldes wird dann unmittelbar nach den RANDOM-Feldern platziert. Die Bits 0–5 des übertragenen Oktetts sind der tatsächliche Wert des Reservierten Feldes, und die Bits 6 und 7 sind die tatsächlichen Werte der Bits 6 und 7 im TOS- bzw. Traffic-Class-Feld. Wenn kein IP-Header vorausgeht, sind die Bits 6 und 7 null. Das mit dem R-Flag übertragene Oktett DARF den Kontext NICHT aktualisieren.

HINWEIS: Das R-Oktett aktualisiert den Kontext nicht, da andernfalls die nTCP-Prüfsumme den empfangenden TCP nicht gegen fehlerhaft dekomprimierte Header schützen würde. Die Bits 6 und 7 des TOS- bzw. Traffic-Class-Oktetts können sich aufgrund der Expliziten Stauanzeige (ECN) häufig ändern.

Weitere Informationen zur Komprimierung von TCP-Headern finden sich in Abschnitt 7.12 und [RFC-1144].

b) COMPRESSED_TCP_NODELTA-Header-Format:

          +-+-+-+-+-+-+-+-+
| CID |
+-+-+-+-+-+-+-+-+
| RANDOM fields, if any (see section 7) (implied)
+-+-+-+-+-+-+-+-+
| Whole TCP header except for Port Numbers
+-+-+-+-+-+-+-+-+

c) Komprimierter Nicht-TCP-Header, 8-Bit-CID:

           0             7
+-+-+-+-+-+-+-+-+
| CID |
+-+-+-+-+-+-+-+-+
|0|D| Generation|
+-+-+-+-+-+-+-+-+
| data | (if D=1)
- - - - - - - -
| RANDOM fields, if any (section 7) (implied)
- - - - - - - -

d) Komprimierter Nicht-TCP-Header, 16-Bit-CID:

           0             7
+-+-+-+-+-+-+-+-+
| msb of CID |
+-+-+-+-+-+-+-+-+
|1|D| Generation|
+-+-+-+-+-+-+-+-+
| lsb of CID |
+-+-+-+-+-+-+-+-+
| data | (if D=1)
- - - - - - - -
| RANDOM fields, if any (section 7) (implied)
- - - - - - - -

Die Generation, die CID und das optionale Daten-Oktett werden von den relevanten RANDOM-Feldern (siehe Abschnitt 7) gefolgt, wie sie durch den Komprimierungszustand impliziert werden, in derselben Reihenfolge wie im ursprünglichen unkomprimierten Header, gefolgt von der Nutzlast.