4.3. UDP-Header-Kompression
UDP-Header können unter Verwendung des LOWPAN_NHC-Formats codiert werden. Das Format ermöglicht die Kompression der Quell- und Ziel-Ports sowie der UDP-Prüfsumme.
4.3.1. Komprimieren von UDP-Ports
UDP-Ports können komprimiert werden, wenn sie im Bereich von 61616 (0xF0B0) bis 61631 (0xF0BF) liegen. Dieser Bereich wird durch Subtraktion von 0xF0B0 von der 16-Bit-Portnummer auf 4 Bits komprimiert. Ports können auch komprimiert werden, wenn sie im Bereich von 61440 (0xF000) bis 61695 (0xF0FF) liegen. Dieser Bereich wird durch Subtraktion von 0xF000 von der 16-Bit-Portnummer auf 8 Bits komprimiert.
4.3.2. Komprimieren der UDP-Prüfsumme
Die UDP-Prüfsumme KANN (MAY) weggelassen werden, wenn ein Integritätsprüfmechanismus der oberen Schicht (z. B. MIC) vorhanden ist, der die Integrität des UDP-Headers und der Nutzlast schützt, oder wenn die Verbindungsschicht (Link Layer) einen ausreichenden Integritätsschutz bietet.
4.3.3. UDP LOWPAN_NHC-Format
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| 1 | 1 | 1 | 1 | 0 | C | P |
+---+---+---+---+---+---+---+---+
Abbildung 13: UDP-Header-Codierung
C: Checksum (Prüfsumme):
0: Alle 16 Bits der UDP-Prüfsumme werden inline transportiert.1: Alle 16 Bits der UDP-Prüfsumme werden weggelassen. Die Prüfsumme wird beim Empfänger aus dem Kontext oder der oberen Schicht wiederhergestellt.
P: Ports:
00: Beide Ports werden inline transportiert (4 Oktette).01: Quellport wird inline transportiert (2 Oktette). Zielport ist komprimiert (8 Bits, Bereich 0xF000-0xF0FF).10: Quellport ist komprimiert (8 Bits, Bereich 0xF000-0xF0FF). Zielport wird inline transportiert (2 Oktette).11: Beide Ports sind komprimiert (4 Bits, Bereich 0xF0B0-0xF0BF).
Wenn P = 01 oder 10 ist, wird der komprimierte 8-Bit-Port als vorzeichenlose Ganzzahl codiert. Wenn P = 11 ist, werden die komprimierten 4-Bit-Ports als vorzeichenlose Ganzzahlen codiert.