diff options
Diffstat (limited to 'doc/rfc/rfc3242.txt')
-rw-r--r-- | doc/rfc/rfc3242.txt | 1179 |
1 files changed, 1179 insertions, 0 deletions
diff --git a/doc/rfc/rfc3242.txt b/doc/rfc/rfc3242.txt new file mode 100644 index 0000000..408337e --- /dev/null +++ b/doc/rfc/rfc3242.txt @@ -0,0 +1,1179 @@ + + + + + + +Network Working Group L-E. Jonsson +Request for Comments: 3242 G. Pelletier +Category: Standards Track Ericsson + April 2002 + + + RObust Header Compression (ROHC): + A Link-Layer Assisted Profile for IP/UDP/RTP + +Status of this Memo + + This document specifies an Internet standards track protocol for the + Internet community, and requests discussion and suggestions for + improvements. Please refer to the current edition of the "Internet + Official Protocol Standards" (STD 1) for the standardization state + and status of this protocol. Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2002). All Rights Reserved. + +Abstract + + This document defines a ROHC (Robust Header Compression) profile for + compression of IP/UDP/RTP (Internet Protocol/User Datagram + Protocol/Real-Time Transport Protocol) packets, utilizing + functionality provided by the lower layers to increase compression + efficiency by completely eliminating the header for most packets + during optimal operation. The profile is built as an extension to + the ROHC RTP profile. It defines additional mechanisms needed in + ROHC, states requirements on the assisting layer to guarantee + transparency, and specifies general logic for compression and + decompression making use of this header-free packet. + +Table of Contents + + 1. Introduction....................................................2 + 2. Terminology.....................................................4 + 3. Overview of the Link-Layer Assisted Profile.....................5 + 3.1. Providing Packet Type Identification.....................6 + 3.2. Replacing the Sequence Number............................6 + 3.3. CRC Replacement..........................................7 + 3.4. Applicability of This Profile............................7 + 4. Additions and Exceptions Compared to ROHC RTP...................8 + 4.1. Additional Packet Types..................................8 + 4.1.1. No-Header Packet (NHP)..........................8 + 4.1.2. Context Synchronization Packet (CSP)............8 + 4.1.3. Context Check Packet (CCP)......................9 + + + +Jonsson, et. al Standards Track [Page 1] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + 4.2. Interfaces Towards the Assisting Layer..................11 + 4.2.1. Interface, Compressor to Assisting Layer.......11 + 4.2.2. Interface, Assisting Layer to Decompressor.....12 + 4.3. Optimistic Approach Agreement...........................13 + 4.4. Fast Context Initialization, IR Redefinition............13 + 4.5. Feedback Option, CV-REQUEST.............................14 + 4.6. Periodic Context Verification...........................15 + 4.7. Use of Context Identifier...............................15 + 5. Implementation Issues..........................................15 + 5.1. Implementation Parameters and Signals...................15 + 5.1.1. Implementation Parameters at the Compressor....16 + 5.1.2. Implementation Parameters at the Decompressor..17 + 5.2. Implementation over Various Link Technologies...........18 + 6. IANA Considerations............................................18 + 7. Security Considerations........................................18 + 8. Acknowledgements...............................................18 + 9. References.....................................................19 + 10. Authors' Addresses.............................................20 + 11. Full Copyright Statement.......................................21 + +1. Introduction + + Header compression is a technique used to compress and transparently + decompress the header information of a packet on a per-hop basis, + utilizing redundancy within individual packets and between + consecutive packets within a packet stream. Over the years, several + protocols [VJHC, IPHC] have been developed to compress the network + and transport protocol headers [IPv4, IPv6, UDP, TCP], and these + schemes have been successful in improving efficiency over many wired + bottleneck links, such as modem connections over telephone networks. + In addition to IP, UDP, and TCP compression, an additional + compression scheme called Compressed RTP [CRTP] has been developed to + further improve compression efficiency for the case of real-time + traffic using the Real-Time Transport Protocol [RTP]. + + The schemes mentioned above have all been designed taking into + account normal assumptions about link characteristics, which + traditionally have been based on wired links only. However, with an + increasing number of wireless links in the Internet paths, these + assumptions are no longer generally valid. In wireless environments, + especially wide coverage cellular environments, relatively high error + rates are tolerated in order to allow efficient usage of the radio + resources. For real-time traffic, which is more sensitive to delays + than to errors, such operating conditions will be norm over, for + example, 3rd generation cellular links, and header compression must + therefore tolerate packet loss. However, with the previously + mentioned schemes, especially for real-time traffic compressed by + CRTP, high error rates have been shown to significantly degrade + + + +Jonsson, et. al Standards Track [Page 2] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + header compression performance [CRTPC]. This problem was the driving + force behind the creation of the RObust Header Compression (ROHC) WG + in the IETF. + + The ROHC WG has developed a header compression framework on top of + which profiles can be defined for different protocol sets, or for + different compression strategies. Due to the limited packet loss + robustness of CRTP, and the demands of the cellular industry for an + efficient way of transporting voice over IP over wireless, the main + focus of ROHC has so far been on compression of IP/UDP/RTP headers, + which are generous in size, especially compared to the payloads often + carried by packets with such headers. + + ROHC RTP has become a very efficient, robust and capable compression + scheme, able to compress the headers down to a total size of one + octet only. Also, transparency is guaranteed to an extremely great + extent even when residual bit errors are present in compressed + headers delivered to the decompressor. The requirements for RTP + compression [RTP-REQ], defined by the WG before and during the + development process, have thus been fulfilled. + + As mentioned above, the 3rd generation cellular systems, where IP + will be used end-to-end, have been one of the driving forces behind + ROHC RTP, and the scheme has been designed to also suit new cellular + air interfaces, such as WCDMA, making it possible to run even speech + services with spectrum efficiency insignificantly lower than for + existing one-service circuit switched solutions [VTC2000]. However, + other air interfaces such as those based on GSM and IS-95 will also + be used in all-IP networks, with further implications for the header + compression issue. These older air interfaces are less flexible, + with radio bearers optimized for specific payload sizes. This means + that not even a single octet of header can be added without using the + next higher fixed packet size supported by the link, something which + is obviously very costly. For the already deployed speech vocoders, + the spectrum efficiency over these links will thus be low compared to + existing circuit switched solutions. To achieve high spectrum + efficiency overall with any application, more flexible air interfaces + must be deployed, and then the ROHC RTP scheme will perform + excellently, as shown for WCDMA [MOMUC01]. However, for deployment + reasons, it is however important to also provide a suitable header + compression strategy for already existing vocoders and air + interfaces, such as for GERAN and for CDMA2000, with minimal effects + on spectral efficiency. + + This document defines a new link-layer assisted ROHC RTP profile + extending ROHC RTP (profile 0x0001) [ROHC], compliant with the ROHC + 0-byte requirements [0B-REQ]. The purpose of this new profile is to + provide a header-free packet format that, for a certain application + + + +Jonsson, et. al Standards Track [Page 3] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + behavior, can replace a majority of the 1-octet header ROHC RTP + packets during normal U/O-mode operation, while still being fully + transparent and complying with all the requirements of ROHC RTP + [RTP-REQ]. For other applications, compression will be carried out + as with normal ROHC RTP. + + To completely eliminate the compressed header, all functionality + normally provided by the 1-octet header has to be provided by other + means, typically by utilizing functionality provided by the lower + layers and sacrificing efficiency for less frequently occurring + larger compressed headers. The latter is not a contradiction since + the argument for eliminating the last octet for most packets is not + overall efficiency in general. It is important to remember that the + purpose of this profile is to provide efficient matching of existing + applications to existing link technologies, not efficiency in + general. The additional complexity introduced by this profile, + although minimized by a tight integration with already existing ROHC + functionality, implies that it should therefore only be used to + optimize performance of specific applications over specific links. + + When implementing this profile over various link technologies, care + must be taken to guarantee that all the functionality needed is + provided by ROHC and the lower layers together. Therefore, + additional documents should specify how to incorporate this profile + on top of various link technologies. + +2. Terminology + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119. + + CCP Context Check Packet + CRC Cyclic Redundancy Check + CSP Context Synchronization Packet + LLA Link Layer Assisted ROHC RTP profile + NHP No Header Packet + ROHC RObust Header Compression + RHP ROHC Header Packet (a non-NHP packet, i.e., RRP, CSP or CCP) + RRP ROHC RTP Packet as defined in [ROHC, profile 0x0001] + + Assisting layer + + "Assisting layer" refers to any entity implementing the interface + to ROHC (section 4.2). It may, for example, refer to a sub-layer + used to adapt the ROHC implementation and the physical link layer. + This layer is assumed to have knowledge of the physical layer + synchronization. + + + +Jonsson, et. al Standards Track [Page 4] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + Compressing side + + "Compressing side" refers to the combination of the header + compressor, operating with the LLA profile, and its associated + assisting layer. + + Lower layers + + "Lower layers" in this document refers to entities located below + ROHC in the protocol stack, including the assisting layer. + + ROHC RTP + + "ROHC RTP" in this document refers to the IP/UDP/RTP profile + (profile 0x0001) as defined in [ROHC]. + +3. Overview of the Link-Layer Assisted Profile + + The ROHC IP/UDP/RTP profile defined in this document, profile 0x0005 + (hex), is designed to be used over channels that have been optimized + for specific payload sizes and therefore cannot efficiently + accommodate header information when transmitted together with + payloads corresponding to these optimal sizes. + + The LLA profile extends, and thus also inherits all functionality + from, the ROCH RTP profile by defining some additional functionality + and an interface from the ROHC component towards an assisting lower + layer. + + +---------------------------------------+ + | | + The LLA | ROHC RTP, | + profile | Profile #1 +-----------------+ + | | LLA Additions | + +---------------------+-----------------+ + + By imposing additional requirements on the lower layers compared to + [ROHC], it is possible to infer the information needed to maintain + robust and transparent header compression even though the headers are + completely eliminated during most of the operation time. + + Basically, what this profile does is to replace the smallest and most + frequent ROHC U/O-mode headers with a no-header format, for which the + header functionality must be provided by other means. + + + + + + + +Jonsson, et. al Standards Track [Page 5] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + Smallest header in Smallest header in + ROHC RTP (profile #1) LLA (profile #5) + +--+--+--+--+--+--+--+--+ ++ + | 1 octet | -----> || No Header + +--+--+--+--+--+--+--+--+ ++ + | + | Header field functionality + +-------------------> provided by other means + + The fields present in the ROHC RTP headers for U/O-mode PT0 are the + packet type identifier, the sequence number and the CRC. The + subsequent sections elaborate more on how the functionality of these + fields is replaced for NHP. + +3.1. Providing Packet Type Identification + + All ROHC headers carry a packet type identifier, indicating to the + decompressor how the header should be interpreted. This is a + function that must be provided by some means in 0-byte header + compression. ROHC RTP packets with compressed headers will be + possible to distinguish thanks to the packet type identifier, but a + mechanism is needed to separate packets with a header from packets + without a header. This function MUST therefore be provided by the + assisting layer in one way or another. + +3.2. Replacing the Sequence Number + + From the sending application, the RTP sequence number is increased by + one for each packet sent. The purpose of the sequence number is to + cope with packet reordering and packet loss. If reordering or loss + has occurred before the transmission point, if needed the compressing + side can easily avoid problems by not allowing the use of a header- + free packet. + + However, at the transmission point, loss or reordering that may occur + over the link can not be anticipated and covered for. Therefore, for + NHP the assisting layer MUST guarantee in-order delivery over the + link (already assumed by [ROHC]) and at the receiving side it MUST + provide an indication for each packet loss over the link. This is + basically the same principle as the VJ header compression [VJHC] + relies on. + + Note that guaranteeing in-order delivery and packet loss indication + over the link not only makes it possible to infer the sequence number + information, but also supersedes the main function of the CRC, which + normally takes care of errors due to long link losses and bit errors + in the compressed sequence number. + + + + +Jonsson, et. al Standards Track [Page 6] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +3.3. CRC Replacement + + All context updating RRP packets carry a CRC calculated over the + uncompressed header. The CRC is used by the decompressor to verify + that the updated context is correct. This verification serves three + purposes in U/O-mode: + + 1) Detection of longer losses than can be covered by the sequence + number LSBs + 2) Protection against failures caused by residual bit errors in + compressed headers + 3) Protection against faulty implementations and other causes of + error + + Since this profile defines an NHP packet without this CRC, care must + be taken to fulfill these purposes by other means, when an NHP is + used as a replacement for a context updating packet. Detection of + long losses (1) is already covered since the assisting layer MUST + provide indication of all packet losses. Furthermore, the NHP packet + has one important advantage over RHP packets in that residual bit + errors (2) cannot damage a header that is not even sent. + + It is thus reasonable to assume that compression and decompression + transparency can be assured with high confidence even without a CRC + in header-free packets. However, to provide additional protection + against damage propagation due to undetected residual bit errors in + context updating packets (2) or other unexpected errors (3), periodic + context verifications SHOULD be performed (see section 4.6). + +3.4. Applicability of This Profile + + The LLA profile can be used with any link technology capable of + providing the required functionality described in previous sections. + Whether LLA or ROHC RTP should be implemented thus depends on the + characteristics of the link itself. For most RTP packet streams, LLA + will work exactly as ROHC RTP, while it will be more efficient for + packet streams with certain characteristics. LLA will never be less + efficient than ROHC RTP. + + Note as well that LLA, like all other ROHC profiles, is fully + transparent to any packet stream reaching the compressor. LLA does + not make any assumptions about the packet stream but will perform + optimally for packet streams with certain characteristics, e.g., + synchronized streams exactly timed with the assisting link over which + the LLA profile is implemented. + + + + + + +Jonsson, et. al Standards Track [Page 7] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + The LLA profile is obviously not applicable if the UDP checksum (2 + bytes) is enabled, which is always the case for IPv6/UDP. For + IPv4/UDP, the sender may choose to disable the UDP checksum. + +4. Additions and Exceptions Compared to ROHC RTP + +4.1. Additional Packet Types + + The LLA profile defines three new packet types to be used in addition + to the RRP packet types defined by [ROHC]. The following sections + describe these packet types and their purpose in detail. + +4.1.1. No-Header Packet (NHP) + + A No-Header Packet (NHP), i.e., a packet consisting only of a + payload, is defined and MAY be used when only sequencing must be + conveyed, i.e., when all header fields are either unchanged or follow + the currently established change pattern. In addition, there are + some considerations for the use of the NHP (see 4.3, 4.5 and 4.6). + An LLA compressor is not allowed to deliver NHP packets when + operating in R-mode. + + The assisting layer MAY send the NHP for RTP SN = X only if an NHP + was delivered by the LLA compressor AND the assisting layer can + guarantee that the decompressor will infer the proper sequencing for + this NHP. This guarantee is based on the confidence that the + decompressor + + a) has the means to infer proper sequencing for the packet + corresponding to SN = X-1, AND + b) has either received a loss indication or the packet itself for the + packet corresponding to SN = X-1. + + Updating properties: NHP packets update context (RTP Sequence + Number). + +4.1.2. Context Synchronization Packet (CSP) + + The case where the packet stream overruns the channel bandwidth may + lead to data being discarded, which may result in decompressor + context invalidation. It might therefore be beneficial to send a + packet with only the header information and discard the payload. + This would be helpful to maintain synchronization of the decompressor + context, while efficiently using the available bandwidth. + + + + + + + +Jonsson, et. al Standards Track [Page 8] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + This case can be handled with the Context Synchronization Packet + (CSP), which has the following format: + + 0 1 2 3 4 5 6 7 + +---+---+---+---+---+---+---+---+ + | 1 1 1 1 1 0 1 0 | Packet type identifier + +===+===+===+===+===+===+===+===+ + : ROHC header without padding : + : see [ROHC, section 5.7] : + +---+---+---+---+---+---+---+---+ + + Updating properties: CSP maintains the updating properties of the + ROHC header it carries. + + The CSP is defined by one of the unused packet type identifiers from + ROHC RTP, carried in the one-octet base header. As for any ROHC + packet, except the NHP, the packet may begin with ROHC padding and/or + feedback. It may also carry context identification after the packet + type identifier. It is possible to have two CID fields present, one + after the packet type ID and one within the encapsulated ROHC header. + If a decompressor receives a CSP with two non-equal CID values + included, the packet MUST be discarded. ROHC segmentation may also + be applied to the CSP. + + Note that when the decompressor has received and processed a CSP, the + packet (including any possible data following the CSP encapsulated + compressed header) MUST be discarded. + +4.1.3. Context Check Packet (CCP) + + A Context Check Packet (CCP), which does not carry any payload but + only an optional CRC value in addition to the packet type identifier, + is defined. + + The purpose of the CCP is to provide a useful packet that MAY be sent + by a synchronized physical link layer in the case where data must be + sent at fixed intervals, even if no compressed packet is available. + Whether the CCP is sent over the link and delivered to the + decompressor is decided by the assisting layer. The CCP has the + following format: + + + + + + + + + + + +Jonsson, et. al Standards Track [Page 9] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + 0 1 2 3 4 5 6 7 + +---+---+---+---+---+---+---+---+ + | 1 1 1 1 1 0 1 1 | Packet type identifier + +===+===+===+===+===+===+===+===+ + | C | CRC | + +---+---+---+---+---+---+---+---+ + + C: C = 0 indicates that the CRC field is not used; + C = 1 indicates that a valid CRC is present. + + Updating properties: CCP packets do not update context. + + The CCP is defined by one of the unused packet type identifiers from + ROHC RTP, carried in the first octet of the base header. The first + bit of the second octet, the C bit, indicates whether the CRC field + is used or not. If C=1, the CRC field MUST be set to the 7-bits CRC + calculated over the original uncompressed header defined in [ROHC + section 5.9.2]. As for any ROHC packet, except NHP, the packet MAY + begin with ROHC padding and/or carry context identification. + + The use of the CRC field to perform decompressor context verification + is optional and is therefore a compressor implementation issue. + However, a CCP MUST always be made available to the assisting layer. + + If the assisting layer receives CCPs with the C-bit set (C=1) from + the compressor, it MUST use the last CCP received if a CCP is to be + sent, i.e., the CCP corresponding to the last non-CCP packet sent + (NHP, RRP or CSP). An assisting layer MAY use the CCP for other + purposes, such as signaling a packet loss before the link. + + The decompressor is REQUIRED to handle a CCP received with the C bit + set (C=1), indicating a valid CRC field, and perform context + verification. The received CRC MUST then be applied to the last + decompressed packet, unless a packet loss indication was previously + received. Upon CRC failure, actions MUST be taken as specified in + [ROHC, section 5.3.2.2.3]. A CCP received with C=0 MUST be ignored + by the decompressor. The decompressor is not allowed to make any + further interpretation of the CCP. + + The use of CCP by an assisting layer is optional and depends on the + characteristics of the actual link. Whether it is used or not MUST + therefore be specified in link layer implementation specifications + for this profile. + + + + + + + + +Jonsson, et. al Standards Track [Page 10] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +4.2. Interfaces Towards the Assisting Layer + + This profile relies on the lower layers to provide the necessary + functionality to allow NHP packets to be sent. This interaction + between LLA and the assisting layer is defined as interfaces between + the LLA compressor/decompressor and the LLA applicable link + technology. + + | | + + + + +-------------------------+ +-------------------------+ + | ROHC RTP HC | | ROHC RTP HD | + +-------------------------+ +-------------------------+ + | LLA profile | | LLA profile | + +=========================+ +=========================+ + | Interface | | Interface | + | ROHC to assisting layer | | Assisting layer to ROHC | + +=========================+ +=========================+ + | Applicable | | Applicable | + | link technology | | link technology | + +=========================+ +=========================+ + | | + +------>---- CHANNEL ---->-----+ + + The figure above shows the various levels, as defined in [ROHC] and + this document, constituting a complete implementation of the LLA + profile. The figure also underlines the need for additional + documents to specify how to implement these interfaces for a link + technology for which this profile is relevant. + + This section defines the information to be exchanged between the LLA + compressor and the assisting layer for this profile to operate + properly. While it does define semantics, it does not specify how + these interfaces are to be implemented. + +4.2.1. Interface, Compressor to Assisting Layer + + This section defines the interface semantics between the compressor + and the assisting layer, providing rules for packet delivery from the + compressor. + + The interface defines the following parameters: RRP, RRP segmentation + flag, CSP, CSP segmentation flag, NHP, and RTP Sequence Number. All + parameters, except the NHP, MUST always be delivered to the assisting + layer. This leads to two possible delivery scenarios: + + a. RRP, CSP, CCP, NHP and RTP Sequence Number are delivered, along + with the corresponding segmentation flags set accordingly. + + + +Jonsson, et. al Standards Track [Page 11] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + This corresponds to the case when the compressor allows sending of + an NHP packet, with or without segmentation being applied to the + corresponding RRP/CSP packets. + + Recall that delivery of an NHP packet occurs when the ROHC RTP + compressor would have used a ROHC UO-0. + + b. RRP, CSP, CCP and RTP Sequence Number are delivered, along with + the corresponding segmentation flags set accordingly. + + This corresponds to the case when the compressor does not allow + sending of an NHP packet. Segmentation might be applied to the + corresponding RRP and CSP packets. + + Segmentation may be applied independently to an RRP or a CSP packet + if its size exceeds the largest value provided in the PREFERRED + PACKET_SIZES list and if the LARGE_PACKET_ALLOWED parameter is set to + false. The segmentation flags are explicitly stated in the interface + definition to emphasize that the RRP and the CSP may be delivered by + the compressor as segmented packets. + + The RTP SN MUST be delivered for each packet by the compressor to + allow the assisting layer to maintain the necessary sequencing + information. + +4.2.2. Interface, Assisting Layer to Decompressor + + Here the interface semantics between the assisting layer and the + decompressor are defined, providing simple rules for the delivery of + received packets to the decompressor. The decompressor needs a way + to distinguish NHP packets from RHP packets. Also, when receiving + packets without a header, the decompressor needs a way to infer the + sequencing information to keep synchronization between the received + payload and the sequence information of the decompressed headers. To + achieve this, the decompressor MUST receive the following from the + assisting layer: + + - an indication for each packet loss over the link between the + compressing and decompressing sides for CID=0 + - the received packet together with an indication whether the packet + received is an NHP or not + + Note that the context is updated from a packet loss indication. + + + + + + + + +Jonsson, et. al Standards Track [Page 12] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +4.3. Optimistic Approach Agreement + + ROHC defines an optimistic approach for updates to reduce the header + overhead. This approach is fully exploited in the Optimistic and + Unidirectional modes of operation. Due to the presence of a CRC in + all compressed headers, the optimistic approach is defined as a + compressor issue only because the decompressor will always be able to + detect an invalid context through the CRC verification. + + However, no CRC is present in the NHP packet defined by the LLA + profile. Therefore the loss of an RHP packet updating the context + may not always be detected. To avoid this problem, the compressing + and decompressing sides must agree on the principles for the + optimistic approach, and the agreed principles MUST be enforced not + only by the compressor but also by the transmitting assisting layer. + If, for example, three consecutive updates are sent to convey a + header field change, the decompressor must know this and invalidate + the context in case of three or more consecutive physical packet + losses. Note that the mechanism used to enforce the optimistic + approach must be reinitialized if a new field change needs to be + conveyed while the compressing side is already sending packets to + convey non-linear context updates. + + An LLA decompressor MUST use the optimistic approach knowledge to + detect possible context loss events. If context loss is suspected it + MUST invalidate the context and not forward any packets before the + context has been synchronized. + + It is REQUIRED that all documents, describing how the LLA profile is + implemented over a certain link technology, define how the optimistic + approach is agreed between the compressing side and the decompressing + side. It could be handled with a fixed principle, negotiation at + startup, or by other means, but the method must be unambiguously + defined. + +4.4. Fast Context Initialization, IR Redefinition + + As initial IR packets might overrun the channel bandwidth and + significantly delay decompressor context establishment, it might be + beneficial to initially discard the payload. This allows state + transitions and higher compression efficiency to be achieved with + minimal delay. + + To serve this purpose, the D-bit from the basic structure of the ROHC + RTP IR packet [ROHC section 5.7.7.1] is redefined for the LLA + profile. For D=0 (no dynamic chain), the meaning of the D-bit is + + + + + +Jonsson, et. al Standards Track [Page 13] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + extended to indicate that the payload has been discarded when + assembling the IR packet. All other fields keep their meanings as + defined for ROHC RTP. + + The resulting structure, using small CIDs and CID=0, becomes: + + 0 1 2 3 4 5 6 7 + +---+---+---+---+---+---+---+---+ + | 1 | 1 | 1 | 1 | 1 | 1 | 0 | D | + +---+---+---+---+---+---+---+---+ + | Profile | 1 octet + +---+---+---+---+---+---+---+---+ + | CRC | 1 octet + +---+---+---+---+---+---+---+---+ + | Static | variable length + | chain | + - - - - - - - - - - - - - - - - + | Dynamic | not present if D = 0 + | chain | present if D = 1, variable length + - - - - - - - - - - - - - - - - + | Payload | not present if D = 0 + | | present if D = 1, variable length + - - - - - - - - - - - - - - - - + + D: D = 0 indicates that the dynamic chain is not present + and the payload has been discarded. + + After an IR packet with D=0 has been processed by the decompressor, + the packet MUST be discarded. + +4.5. Feedback Option, CV-REQUEST + + The CV-REQUEST option MAY be used by the decompressor to request an + RRP or CSP for context verification. This option should be used if + only NHP have been received for a long time and the context therefore + has not been verified recently. + + +---+---+---+---+---+---+---+---+ + | Opt Type = 8 | Opt Len = 0 | + +---+---+---+---+---+---+---+---+ + + If the compressor receives a feedback packet with this option, the + next packet compressed SHOULD NOT be delivered to the assisting layer + as an NHP. + + + + + + + +Jonsson, et. al Standards Track [Page 14] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +4.6. Periodic Context Verification + + As described in section 3.3, transparency is expected to be + guaranteed by the functionality provided by the lower layers. This + ROHC profile would therefore be at least as reliable as the older + header compression schemes [VJHC, IPHC, CRTP], which do not make use + of a header compression CRC. However, since ROHC RTP normally is + extremely safe to use from a transparency point of view, it would be + desirable to be able to achieve this with LLA also. + + To provide an additional guarantee for transparency and also catch + unexpected errors, such as errors due to faulty implementations, it + is RECOMMENDED to periodically send context updating packets, even + when the compressor logic allows NHP packets to be used. + +4.7. Use of Context Identifier + + Since an NHP cannot carry a context identifier (CID), there is a + restriction on how this profile may be used, related to context + identification. Independent of which CID size has been negotiated, + NHP packets can only be used for CID=0. If the decompressor receives + an NHP packet, it can only belong to CID=0. + + Note that if multiple packet streams are handled by a compressor + operating using LLA, the assisting layer must in case of physical + packet loss be able to tell for which CID the loss occurred, or at + least it MUST be able to tell if packets with CID=0 (packet stream + with NHPs) have been lost. + +5. Implementation Issues + + This document specifies mechanisms for the protocol and leaves + details on the use of these mechanisms to the implementers. The + present chapter aims to provide guidelines, ideas and suggestions for + implementation of LLA. + +5.1. Implementation Parameters and Signals + + As described in [ROHC, section 6.3], implementations use parameters + to set up configuration information and to stipulate how a ROHC + implementation is to operate. The following parameters are + additions, useful to LLA, to the parameter set defined for ROHC RTP + implementations. Note that if the PREFERRED_PACKET_SIZES parameters + defined here are used, they obsolete all PACKET_SIZE and PAYLOAD_SIZE + parameters of ROHC RTP. + + + + + + +Jonsson, et. al Standards Track [Page 15] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +5.1.1. Implementation Parameters at the Compressor + + ALWAYS_PAD -- value: boolean + + This parameter may be set by an external entity to specify to the + compressor that every RHP packet MUST be padded with a minimum of + one octet ROHC padding. + + The assisting layer MUST provide a packet type identification. If + no field is available for this purpose from the protocol at the + link layer, then a leading sequence may be used to distinguish RHP + packets from NHP packets. Although the use of a leading sequence + is obviously not efficient, since it sacrifices efficiency for RHP + packets, the efficiency loss should be insignificant because the + leading sequence applies only to packets with headers in order to + favor the use of packets without headers. If a leading sequence + is desired for RHP identification, the lower layer MAY use ROHC + padding for the leading sequence by setting the ALWAYS_PAD + parameter. Note that in such cases, possible collisions of the + padding with the NHP payload must be avoided. + + By default, this parameter is set to FALSE. + + PREFERRED_PACKET_SIZES -- list of: + SIZE -- value: integer (octets) + RESTRICTED_TYPE -- values: [NHP_ONLY, RHP_ONLY, NO_RESTRICTION] + + This parameter set governs which packet sizes are preferred by the + assisting layer. If this parameter set is used, all RHP packets + MUST be padded to fit the smallest possible preferred size. If + the size of the unpadded packet (or, in the case of ALWAYS_PAD + being set, the packet with minimal one octet padding) is larger + than the maximal preferred packet size, the compressor has two + options. Either, it may deliver this larger packet with an + arbitrary size, or it may split the packet into several segments + using ROHC segmentation and pad each segment to one of the + preferred sizes. Which method to use depends on the value of the + LARGE_PACKETS_ALLOWED parameter below. + + NHP packets can be delivered to the lower layer only if the + payload size is part of the preferred packet size set. + Furthermore, if RESTRICTED_TYPE is set to one of NHP_ONLY or + RHP_ONLY for any of the preferred packet sizes, that size is + allowed only for packets of the specified type. + + By default, no preferred packet sizes are specified. When sizes + are specified, the default value for RESTRICTED_TYPE is + NO_RESTRICTION. + + + +Jonsson, et. al Standards Track [Page 16] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + LARGE_PACKETS_ALLOWED -- value: boolean + + This parameter may be set by an external entity to specify how to + handle packets that do not fit any of the preferred packet sizes + specified. If it is set to TRUE, the compressor MUST deliver the + larger packet as-is and MUST NOT use segmentation. If it is set + to FALSE, the ROHC segmentation scheme MUST be used to split the + packet into two or more segments, and each segment MUST further be + padded to fit one of the preferred packet sizes. + + By default, this parameter is set to TRUE, which means that + segmentation is disabled. + + VERIFICATION_PERIOD -- value: integer + + This parameter may be set by an external entity to specify to the + compressor the minimum frequency with which a packet validating + the context must be sent. This tells the compressor that a packet + containing a CRC field MUST be sent at least once every N packets, + where N=VERIFICATION_PERIOD (see section 4.6). + + By default, this parameter is set to 0, which indicates that + periodical verifications are disabled. + +5.1.2. Implementation Parameters at the Decompressor + + NHP_PACKET -- value: boolean + + This parameter informs the decompressor that the packet being + delivered is an NHP packet. The decompressor MUST accept this + packet type indicator from the lower layer. An assisting layer + MUST set this indicator to true for every NHP packet delivered, + and to false for any other packet. + + PHYSICAL_PACKET_LOSS -- signal + + This signal indicates to the decompressor that a packet has been + lost on the link between the compressing and the decompressing + sides, due to a physical link error. The signal is given once for + each packet that was lost, and a decompressor must increase the + sequence number accordingly when this signal is received. + + PRE_LINK_PACKET_LOSS -- signal + + This signal tells the decompressor to increase the sequence number + due to a gap in the sequencing, not related to a physical link + error. A receiving assisting layer may for example use this + + + + +Jonsson, et. al Standards Track [Page 17] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + signal to indicate to the decompressor that a packet was lost + before the compressor, or that a packet was discarded by the + transmitting assisting layer. + +5.2. Implementation over Various Link Technologies + + This document provides the semantics and requirements of the + interface needed from the ROHC compressor and decompressor towards + the assisting layer to perform link-layer assisted header + compression. + + However, this document does not provide any link layer specific + operational information, except for some implementation suggestions. + Further details about how this profile is to be implemented over + various link technologies must be described in other documents, where + specific characteristics of each link layer can be taken into account + to provide optimal usage of this profile. + + These specifications MAY use a packet type bit pattern unused by this + profile to implement signaling on the lower layer. The pattern + available to lower layer implementations is [11111001]. + +6. IANA Considerations + + ROHC profile identifier 0x0005 has been reserved by the IANA for the + IP/UDP/RTP profile defined in this document. + +7. Security Considerations + + The security considerations of ROHC RTP [ROHC section 7] apply also + to this document with one addition: in the case of a denial-of- + service attack scenario where an intruder injects bogus CCP packets + onto the link using random CRC values, the CRC check will fail for + incorrect reasons at the decompressor side. This would obviously + greatly reduce the advantages of ROHC and any extra efficiency + provided by this profile due to unnecessary context invalidation, + feedback messages and refresh packets. However, the same remarks + related to the presence of such an intruder apply. + +8. Acknowledgements + + The authors would like to thank Lila Madour, Ulises Olvera-Hernandez + and Francis Lupien for input regarding the typical links in which LLA + can be applied. Thanks also to Mikael Degermark for fruitful + discussions that led to improvements of this profile, and to Zhigang + Liu for many valuable comments. + + + + + +Jonsson, et. al Standards Track [Page 18] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +9. References + + [ROHC] Bormann, C., Burmeister, C., Degermark, M., Fukushima, + H., Hannu, H., Jonsson, L., Hakenberg, R., Koren, T., Le, + K., Liu, Z., Martensson, A., Miyazaki, A., Svanbro, K., + Wiebke, T., Yoshimura, T. and H. Zheng, "RObust Header + Compression (ROHC): Framework and four profiles: RTP, + UDP, ESP, and uncompressed", RFC 3095, July 2001. + + [IPv4] Postel, J., "Internet Protocol", STD 5, RFC 791, + September 1981. + + [IPv6] Deering, S. and R. Hinden, "Internet Protocol, Version 6 + (IPv6) Specification", RFC 2460, December 1998. + + [UDP] Postel, J., "User Datagram Protocol", STD 6, RFC 768, + August 1980. + + [RTP] Schulzrinne, H., Casner S., Frederick, R. and V. + Jacobson, "RTP: A Transport Protocol for Real-Time + Applications", RFC 1889, January 1996. + + [TCP] Postel, P., "Transmission Control Protocol", STD 7, RFC + 793, September 1981. + + [RTP-REQ] Degermark, M., "Requirements for IP/UDP/RTP Header + Compression", RFC 3096, July 2001. + + [0B-REQ] Jonsson, L-E., "RObust Header Compression (ROHC): + Requirements and Assumptions for 0-byte IP/UDP/RTP + Compression", RFC 3243, April 2002. + + [VJHC] Jacobson, V., "Compressing TCP/IP Headers for Low-Speed + Serial Links", RFC 1144, February 1990. + + [IPHC] Degermark, M., Nordgren, B. and S. Pink, "IP Header + Compression", RFC 2507, February 1999. + + [CRTP] Casner, S. and V. Jacobson, "Compressing IP/UDP/RTP + Headers for Low-Speed Serial Links", RFC 2508, February + 1999. + + [CRTPC] Degermark, M., Hannu, H., Jonsson, L-E. and K. Svanbro, + "Evaluation of CRTP Performance over Cellular Radio + Networks", IEEE Personal Communications Magazine, Volume + 7, number 4, pp. 20-25, August 2000. + + + + + +Jonsson, et. al Standards Track [Page 19] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + + [VTC2000] Svanbro, K., Hannu, H., Jonsson, L-E. and M. Degermark, + "Wireless real time IP-services enabled by header + compression", proceedings of IEEE VTC2000, May 2000. + + [MOMUC01] Liu, G., et al., "Experimental field trials results of + Voice-over IP over WCDMA links", MoMuC'01 - The + International Workshop on Mobile Multimedia + Communications, Conference proceedings, February 2001. + +10. Authors' Addresses + + Lars-Erik Jonsson + Ericsson AB + Box 920 + SE-971 28 Lulea + Sweden + + Phone: +46 920 20 21 07 + Fax: +46 920 20 20 99 + EMail: lars-erik.jonsson@ericsson.com + + + Ghyslain Pelletier + Ericsson AB + Box 920 + SE-971 28 Lulea + Sweden + + Phone: +46 920 20 24 32 + Fax: +46 920 20 20 99 + EMail: ghyslain.pelletier@epl.ericsson.se + + + + + + + + + + + + + + + + + + + + +Jonsson, et. al Standards Track [Page 20] + +RFC 3242 A Link-Layer Assisted ROHC RTP April 2002 + + +11. Full Copyright Statement + + Copyright (C) The Internet Society (2002). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis 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. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Jonsson, et. al Standards Track [Page 21] + |