RFC 3096

Requirements for robust IP/UDP/RTP header compression

๐Ÿ“… published July 2001, from ietf

RFC 3096: Requirements for robust IP/UDP/RTP header compression ๐Ÿ’–

okay bestie, this one is the requirements doc for ROHC (Robust Header Compression). it's an Informational RFC, so it's giving "here's what we're aiming for" ๐Ÿงš It was written by M. Degermark, Editor, from the University of Arizona, and it's dated July 2001. The header doesn't list any RFCs it obsoletes or updates, so no drama there โœจ

Network Working Group, Request for Comments 3096, Category: Informational, July 2001 ๐ŸŽ€

Status of This Memo ๐ŸŒธ

okay so this memo is just giving information to the Internet community. it does NOT specify an Internet standard of any kind ๐Ÿ’… and distribution of this memo is unlimited, so share it with everyone ๐Ÿฆ‹

Copyright (C) The Internet Society (2001). All Rights Reserved. โœจ

Abstract ๐Ÿ“

this doc holds the requirements for robust IP/UDP/RTP header compression, which the ROHC (Robust Header Compression) WG is going to build. it's based on the ROHC charter, discussions in the WG, the 3GPP document "3GPP TR 23.922", version 1.0.0 of October 1999, and contributions from 3G.IP ๐Ÿซถ

1. Introduction ๐Ÿฆ‹

the ROHC WG's whole goal is to develop header compression schemes that perform well over links with high error rates and long link round trip times. the schemes MUST perform well for cellular links built using technologies like WCDMA, EDGE, and CDMA-2000. however, the schemes SHOULD also be applicable to other future link technologies with high loss and long round trip times ๐Ÿ”ฅ

the requirements are split into three groups. it's kinda arbitrary, tbh ๐Ÿ’€ but here's how it goes: group one is about how a header compression scheme affects the rest of the Internet infrastructure. group two is about which kinds of headers MUST be compressed efficiently. group three is about efficiency and the stuff that comes from the link technologies we're expecting ๐Ÿ“

2. Header compression requirements ๐Ÿ’œ

this part is giving cellular drama. several current standardization efforts in the cellular arena want to support voice over IP and other real-time services over IP, like GERAN (specified by the ETSI SMG2 standards group) and UTRAN (specified by the 3GPP standards organization) ๐ŸŽ€ it's critical for these efforts that a suitable header compression scheme is developed before completion of the Release 2000 standards. so it's imperative that the ROHC WG keeps its schedule โฐ

2.1 Impact on Internet infrastructure ๐ŸŒธ

1. Transparency: when a header is compressed and then decompressed, the resulting header MUST be semantically identical to the original header. if that can't be achieved, the packet containing the erroneous header MUST be discarded ๐Ÿ™ˆ

Justification: the header compression process MUST NOT produce headers that might cause problems for any current or future part of the Internet infrastructure. no messing up the internet, periodt ๐Ÿ’…

2. Ubiquity: it MUST NOT require modifications to existing IP (v4 or v6), UDP, or RTP implementations ๐Ÿงš

Justification: ease of deployment. nobody wants to update everything ๐Ÿ˜ญ

Note: the ROHC WG may recommend changes that would increase the compression efficiency for the RTP streams emitted by implementations. however, ROHC cannot rely on those recommendations being followed ๐Ÿฅบ

2.2 Supported headers and kinds of RTP streams โœจ

1. IPv4 and IPv6: ROHC MUST support both IPv4 and IPv6 ๐Ÿ‘‘

Justification: IPv4 and IPv6 are both gonna be around for the foreseeable future, so we're not picking favourites ๐Ÿ’–

2. Mobile IP: the kinds of headers used by Mobile IP{v4,v6} SHOULD be compressed efficiently. for IPv4 that includes headers of tunneled packets. for IPv6 that includes headers containing the Routing Header, the Binding Update Destination Option, and the Home Address option ๐Ÿฆ‹

Justification: it's very likely that Mobile IP will be used by cellular devices. the phones are gonna be on it ๐Ÿ“ฑ

3. Genericity: ROHC MUST support compression of headers of arbitrary RTP streams ๐ŸŒˆ

Justification: there MUST be a generic scheme which can compress reasonably well for any payload type and traffic pattern. this doesn't stop optimizations for certain media types where the traffic pattern is known, like low-bandwidth voice and low-bandwidth video ๐ŸŽ€

Note: this applies to the RTP stream before as well as after it has passed through an internet โœจ

4. IPSEC: ROHC SHOULD be able to compress headers containing IPSEC subheaders ๐Ÿ”

Note: it's of course not possible to compress the encrypted part of an ESP header, nor the cryptographic data in an AH header. the encrypted stuff stays encrypted, bestie ๐Ÿ™…โ€โ™€๏ธ

2.3 Efficiency ๐Ÿ”ฅ

1. Performance/Spectral Efficiency: ROHC MUST provide low relative overhead under expected operating conditions. compression efficiency SHOULD be better than RFC 2508 under equivalent operating conditions. the error rate SHOULD only marginally increase the overhead under expected operating conditions ๐Ÿ’…

Justification: spectrum efficiency is a primary goal, and RFC 2508 just doesn't perform well enough. it's not it ๐Ÿ’€

Note: the relative overhead is the average header overhead relative to the payload. any auxiliary (e.g., control or feedback) channels used by the scheme SHOULD be taken into account when calculating the header overhead ๐Ÿงฎ

2. Error propagation: error propagation due to header compression SHOULD be kept at an absolute minimum. error propagation is defined as the loss or damage of headers subsequent to headers lost or damaged by the link, even if those subsequent headers are not lost or damaged. it's like one bad header ruining the whole vibe ๐Ÿ˜ญ

Justification: error propagation reduces spectral efficiency and reduces quality. CRTP suffers severely from error propagation, and that's a big ick ๐Ÿ™ˆ

Note: there are at least two kinds of error propagation. loss propagation is when an error causes subsequent headers to be lost. damage propagation is when an error causes subsequent headers to be damaged ๐ŸŒธ

3a. Handover loss events: there MUST be a way to run ROHC where loss events of length 150 milliseconds are handled efficiently, and where loss or damage propagation is not introduced by ROHC during such events ๐Ÿฆ‹

Justification: such loss events can be introduced by handover operations in a (radio) network between compressor and decompressor. handover operations can be frequent in cellular systems. failing to handle handover well can hurt spectrum efficiency and quality, and nobody wants that ๐Ÿ“ถ

3b. Handover context recreation: there MUST be a way to run ROHC that deals well with events where the route of an RTP conversation changes, so that either the compressor or the decompressor of the conversation is relocated to another node and the context needs to be recreated. ROHC MUST NOT introduce erroneous headers during such events, and SHOULD NOT introduce packet loss during such events ๐Ÿงš

Justification: these events can be frequent in cellular systems, where the compressor/decompressor on the network side is close to the radio base stations ๐Ÿ“ก

Note: to help developers of context recreation schemes where context is transferred to the new node, the specification SHALL outline which parts of the context are to be transferred, as well as the conditions for using them. procedures for context recreation (and discard) without such context transfer will also be provided ๐Ÿซถ

6. References ๐Ÿ“š

Okay so, here's the reading list, bestie ๐Ÿงš Every reference is copied exactly as the RFC lists it, so nothing gets lost in translation:

[TR]      3GPP TR 23.922 version 1.0.0, 3rd Generation partnership
          Project; Technical Specification Group Services and Systems
          Aspects; Architecture for an All IP network.

[TS]      TS 22.101 version 3.6.0: Service Principles

[RFC768]  Postel, J., "User Datagram Protocol", STD 6, RFC 768,
          August 1980.

[RFC791]  Postel, J., "Internet Protocol", STD 5, RFC 791, September
          1981.

[RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low-Speed
          Serial Links", RFC 1144, February 1990.

[CRTP]    Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP Headers
          for Low-Speed Serial Links", RFC 2508, February 1999.

[OHC]     Bormann, C., Editor, "Robust Header Compression (ROHC)", RFC
          3095, June 2001.

The [RFC768] and [RFC791] entries are the classic UDP and IP specs, and [RFC1144] and [CRTP] are the older header compression work that this whole story builds on ๐Ÿฆ‹


Okay, legal stuff, but it's giving important ๐ŸŽ€ The Internet Society owns the copyright here (2001), and all rights are reserved.

Here's the vibe: you're allowed to copy this document and share it with other people. You can also write derivative works that comment on it, explain it, or help people implement it, and publish and distribute those however you like, in whole or in part, with no restrictions. The one catch is that the copyright notice and this paragraph have to stay on every copy and every derivative work ๐Ÿ”ฅ

What you can't do is change the document itself. No removing the copyright notice, no removing references to the Internet Society or other Internet organizations. The only exceptions are when it's needed to develop Internet standards (in which case the Internet Standards process copyright procedures have to be followed), or when you're translating it into a language other than English ๐ŸŒˆ

These permissions are perpetual. The Internet Society and its successors or assigns can't take them back โœจ

Last but not least, the whole document and everything in it is provided "AS IS", and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Basically, no promises of any kind ๐Ÿ’€

Acknowledgement ๐Ÿซถ

Funding for the RFC Editor function is currently provided by the Internet Society. So the people who keep these RFCs organized and published are supported by them, and that's iconic โœจ

๐Ÿ“ฆ where this page comes from