summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc4224.txt
diff options
context:
space:
mode:
authorThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
committerThomas Voss <mail@thomasvoss.com> 2024-11-27 20:54:24 +0100
commit4bfd864f10b68b71482b35c818559068ef8d5797 (patch)
treee3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc4224.txt
parentea76e11061bda059ae9f9ad130a9895cc85607db (diff)
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc4224.txt')
-rw-r--r--doc/rfc/rfc4224.txt1179
1 files changed, 1179 insertions, 0 deletions
diff --git a/doc/rfc/rfc4224.txt b/doc/rfc/rfc4224.txt
new file mode 100644
index 0000000..790d19b
--- /dev/null
+++ b/doc/rfc/rfc4224.txt
@@ -0,0 +1,1179 @@
+
+
+
+
+
+
+Network Working Group G. Pelletier
+Request for Comments: 4224 L-E. Jonsson
+Category: Informational K. Sandlund
+ Ericsson
+ January 2006
+
+
+ RObust Header Compression (ROHC):
+ ROHC over Channels That Can Reorder Packets
+
+Status of This Memo
+
+ This memo provides information for the Internet community. It does
+ not specify an Internet standard of any kind. Distribution of this
+ memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2006).
+
+Abstract
+
+ RObust Header Compression (ROHC), RFC 3095, defines a framework for
+ header compression, along with a number of compression protocols
+ (profiles). One operating assumption for the profiles defined in RFC
+ 3095 is that the channel between compressor and decompressor is
+ required to maintain packet ordering. This document discusses
+ aspects of using ROHC over channels that can reorder packets. It
+ provides guidelines on how to implement existing profiles over such
+ channels, as well as suggestions for the design of new profiles.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pelletier, et al. Informational [Page 1]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+Table of Contents
+
+ 1. Introduction ....................................................3
+ 2. Terminology .....................................................4
+ 3. Applicability of This Document to ROHC Profiles .................5
+ 3.1. Profiles within Scope ......................................5
+ 3.2. Profiles with Special Considerations .......................5
+ 3.3. Profiles Incompatible with Reordering ......................6
+ 4. Background ......................................................6
+ 4.1. Reordering Channels ........................................6
+ 4.2. Robustness Principles of ROHC ..............................6
+ 4.2.1. Optimistic Approach (U/O-mode) ......................7
+ 4.2.2. Secure Reference Principle (R-mode) .................7
+ 5. Problem Description .............................................7
+ 5.1. ROHC and Reordering Channels ...............................7
+ 5.1.1. LSB Interpretation Interval and Reordering ..........7
+ 5.1.2. Reordering of Packets in R-mode .....................9
+ 5.1.2.1. Updating Packets ...........................9
+ 5.1.2.2. Non-Updating Packets ......................10
+ 5.1.3. Reordering of Packets in U/O-mode ..................10
+ 5.1.4. Reordering on the Feedback Channel .................11
+ 5.1.5. List Compression ...................................11
+ 5.1.6. Reordering and Mode Transitions ....................12
+ 5.2. Consequences of Reordering ................................13
+ 5.2.1. Functionality Incompatible with Reordering .........13
+ 5.2.2. Context Damage (Loss of Synchronization) ...........13
+ 5.2.3. Detected Decompression Failures (U/O/R-mode) .......13
+ 5.2.4. Undetected Decompression Failures (R-mode only) ....14
+ 6. Making ROHC Tolerant against Reordering ........................14
+ 6.1. Properties of ROHC Implementations ........................14
+ 6.1.1. Compressing Headers with Robustness against
+ Reordering .........................................14
+ 6.1.1.1. Reordering and the Optimistic Approach ....15
+ 6.1.1.2. Reordering and the Secure
+ Reference Principle .......................15
+ 6.1.1.3. Robust Selection of Compressed Header .....15
+ 6.1.2. Implementing a Reordering-Tolerant Decompressor ....16
+ 6.1.2.1. Decompressor Feedback Considerations ......16
+ 6.1.2.2. Considerations for Local Repair
+ Mechanisms ................................17
+ 6.2. Specifying ROHC Profiles with Robustness against
+ Reordering ................................................17
+ 6.2.1. Profiles with Interpretation Interval
+ Offset p = -1 ......................................17
+ 6.2.2. Modifying the Interpretation Interval Offset .......18
+ 6.2.2.1. Example Profile for Handling Reordering ...18
+ 6.2.2.2. Defining the Values of p for New
+ Profiles ..................................18
+
+
+
+Pelletier, et al. Informational [Page 2]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ 7. Security Considerations ........................................19
+ 8. Acknowledgements ...............................................19
+ 9. Informative References .........................................19
+
+1. Introduction
+
+ RObust Header Compression (ROHC), RFC 3095 [1], defines a framework
+ for header compression, along with a number of compression protocols
+ (profiles). One operating assumption for the profiles defined in RFC
+ 3095 is that the channel between compressor and decompressor is
+ required to maintain packet ordering for each compressed flow. The
+ motivation behind this assumption was that the primary candidate
+ channels considered did guarantee in-order delivery of header-
+ compressed packets. This assumption made it possible to meet the
+ design objectives that were on top of the requirements list at the
+ time when ROHC was being designed, namely to improve the compression
+ efficiency and the tolerance to packet losses.
+
+ Since the publication of RFC 3095 in 2001, the question about ROHC
+ operation over channels that do not guarantee in-order delivery has
+ surfaced several times; arguments that ROHC cannot perform adequately
+ over such channels have been heard. Specifically, this has been
+ raised as a weakness when compared to other header compression
+ alternatives, as RFC 3095 explicitly states its inability to operate
+ if in-order delivery is not guaranteed. For those familiar with the
+ details of ROHC and of other header compression schemes, it is clear
+ that this is a misconception, but it can also be easily understood
+ that the wording used in RFC 3095 can lead to such interpretation.
+
+ This document discusses the various aspects of implementing ROHC over
+ channels that can reorder header-compressed packets. It explains
+ different ways of implementing the profiles found in RFC 3095, as
+ well as other profiles based on those profiles, over reordering
+ channels. This can be achieved either by ensuring that compressor
+ implementations use compressed headers that are sufficiently robust
+ to the expected possible reordering and/or by modifying decompressor
+ implementations to tolerate reordered packets. Ideas regarding how
+ existing profiles could be updated and how new profiles can be
+ defined to cope efficiently with reordering are also discussed.
+
+ In some scenarios, there might be external means (such as a sequence
+ number) to detect and potentially correct reordering. That is, for
+ example, the case when running compression over an IPsec
+ Encapsulating Security Payload (ESP) tunnel. With such external
+ means to detect reordering, the decompressor can be modified to make
+ use of the external information provided, and reordering can then be
+ handled. How to make use of external means to address reordering is,
+ however, out of scope for this document.
+
+
+
+Pelletier, et al. Informational [Page 3]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+2. Terminology
+
+ This document uses terminology consistent with RFC 3759 [2], and is
+ in itself only informative. Although it does discuss technical
+ aspects of implementing the ROHC specifications in particular
+ environments, it does not specify any new technology.
+
+ ROHC
+
+ The term "ROHC" herein refers to the following profiles:
+
+ - 0x0001, 0x0002, and 0x0003 defined in RFC 3095 [1];
+ - 0x0004 for compression of IP-only headers [3];
+ - 0x0007 and 0x0008 for compression of UDP-Lite headers [4].
+
+ The term "ROHC" excludes the following profiles, which are either
+ not affected by reordering or have the assumption of in-order
+ delivery as a fundamental requirement for their proper operation:
+
+ - 0x0000 (uncompressed) [1];
+ - 0x0005 (Link-Layer Assisted (LLA)) [5] and 0x0105
+ (R-mode extension to LLA) [6];
+
+ Reordering
+
+ A type of transmission taking place between compressor and
+ decompressor where in-order delivery of header-compressed packets
+ is not guaranteed.
+
+ Reordering channel
+
+ A connection over which reordering, as defined above, can occur.
+
+ Sequentially early packet
+
+ A packet that reaches the decompressor before one or several
+ packets of the same context identifier (CID) that were delayed on
+ the link. At the time of the arrival of a sequentially early
+ packet, the packet(s) delayed on the link cannot be differentiated
+ from lost packet(s).
+
+ Sequentially late packet
+
+ A packet is late within its sequence if it reaches the
+ decompressor after one or several other packets belonging to the
+ same CID have been received, although the sequentially late packet
+ was sent from the compressor before the other packet(s).
+
+
+
+
+Pelletier, et al. Informational [Page 4]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ Updating packet
+
+ A packet that updates the context of the decompressor, e.g., all
+ packets except R-0 and R-1* in RFC 3095 [1].
+
+ Non-updating packet
+
+ A packet that does not update the context of the decompressor,
+ e.g., only R-0 and R-1* in RFC 3095 [1].
+
+ Change packet
+
+ A packet that updates one or more fields of the context other than
+ the fields pertaining to the functions established with respect to
+ the sequence number (SN). Specifically, it is a packet that
+ updates fields other than the SN, the IPv4 identifier (IP-ID), the
+ sequence number of an extension header or the RTP timestamp (TS).
+
+3. Applicability of This Document to ROHC Profiles
+
+ This document addresses general reordering issues for ROHC profiles.
+ The foremost objectives are to ensure that ROHC implementations do
+ not forward packets with incorrectly decompressed headers to upper
+ layers, as well as to limit the possible increase in the rate of
+ decompression failures or in events leading to context damage, when
+ compression is applied over reordering channels.
+
+3.1. Profiles within Scope
+
+ The following sections outline solutions that are generally
+ applicable to profiles 0x0001 (RTP), 0x0002 (UDP), and 0x0003 (ESP)
+ defined in RFC 3095 [1]. Profile 0x0000 (uncompressed) is not
+ affected by reordering, as the headers are sent uncompressed. The
+ solutions also apply to profiles for IP-only (0x0004) [3] and for
+ UDP-Lite (0x0007 and 0x0008) [4]. These profiles are based on the
+ profiles of RFC 3095 [1] and inherently make the same in-order
+ delivery assumption.
+
+3.2. Profiles with Special Considerations
+
+ Special considerations are needed to make some of the implementation
+ solutions of sections 6.1 and 6.2 applicable to profiles 0x0002 (UDP)
+ [1], 0x0004 (IP-only) [3], and 0x0008 (UDP-Lite) [4]. For these
+ profiles, the SN is generated at the compressor, as it is not present
+ in headers being compressed. For the least significant bit (LSB)
+ encoding method, the interpretation interval offset (p) is always
+ p = -1 (see section 5.1.1) when interpreting the SN. The SN is thus
+
+
+
+
+Pelletier, et al. Informational [Page 5]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ required to increase for each packet received at the decompressor,
+ which means that reordered packets cannot be decompressed.
+
+3.3. Profiles Incompatible with Reordering
+
+ The ROHC LLA profiles defined in RFC 3242 [5] and RFC 3408 [6] have
+ been explicitly designed with in-order delivery as a fundamental
+ requirement to their proper operation. Profiles 0x0005 and 0x0105
+ can therefore not be implemented over channels where reordering can
+ occur; this document therefore does not apply to these profiles.
+
+4. Background
+
+ ROHC was designed with the assumption that packets are delivered in
+ order from compressor to decompressor. This was considered as a
+ reasonable working assumption for links where it was expected that
+ ROHC would be used. However, many have expressed that it would be
+ desirable to use ROHC also over connections where in-order delivery
+ is not guaranteed [7].
+
+4.1. Reordering Channels
+
+ The reordering channels that are potential candidates to use ROHC are
+ single-hop channels and multi-hop virtual channels.
+
+ A single-hop channel is a point-to-point link that constitutes a
+ single IP hop. Note that one IP hop could be one or multiple
+ physical links. For example, a single-hop reordering channel could
+ be a wireless link that applies error detection and performs
+ retransmissions to guarantee error-free delivery of all data.
+ Another example could be a wireless connection that performs
+ bicasting of data during a handoff procedure.
+
+ A multi-hop virtual channel is a virtual point-to-point link that
+ traverses multiple IP hops. A multi-hop virtual channel would
+ typically be an IP tunnel, where compression is applied over the
+ tunnel by the endpoints of the tunnel (not to be confused with single
+ link compression of tunneled packets).
+
+4.2. Robustness Principles of ROHC
+
+ Robustness is based on the optimistic approach in the unidirectional
+ and optimistic modes of operation (U/O-mode), and on the secure
+ reference principle in the bidirectional reliable mode (R-mode).
+ Both approaches have different characteristics in the presence of
+ reordering between compressor and decompressor. However, in any
+ mode, decompression of sequentially early packets will generally be
+
+
+
+
+Pelletier, et al. Informational [Page 6]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ handled quite well since they will be perceived and treated by the
+ decompressor as if there had been one or more packet losses.
+
+4.2.1. Optimistic Approach (U/O-mode)
+
+ A ROHC compressor uses the optimistic approach to reduce header
+ overhead when performing context updates in U/O-mode. The compressor
+ normally repeats the same update until it is fairly confident that
+ the decompressor has successfully received the information. The
+ number of consecutive packets needed to obtain this confidence is
+ open to implementations, and this number is normally related to the
+ packet loss characteristics of the link where header compression is
+ used (see also [1], section 5.3.1.1.1).
+
+ All packet types used in U/O-mode are context updating.
+
+4.2.2. Secure Reference Principle (R-mode)
+
+ A ROHC compressor uses the secure reference principle in R-mode to
+ ensure that context synchronization between ROHC peers cannot be lost
+ due to packet losses. The compressor obtains its confidence that the
+ decompressor has successfully updated the context from a packet
+ carrying a 7- or 8-bit Cyclic Redundancy Check (CRC) based on
+ acknowledgements received from the decompressor (see also [1],
+ section 5.5.1.2).
+
+ The secure reference principle makes it possible for a compressor to
+ use packets that do not update the context (i.e., R-0 and R-1* [1]).
+
+5. Problem Description
+
+5.1. ROHC and Reordering Channels
+
+ This section reviews different aspects of ROHC susceptible of being
+ impacted by reordering of compressed packets between ROHC peers.
+
+5.1.1. LSB Interpretation Interval and Reordering
+
+ The least significant bit (LSB) encoding method defined in RFC 3095
+ ([1], section 5.7) specifies the interpretation interval offset,
+ called p, as follows:
+
+ For profiles 0x0001, 0x0003, and 0x0007:
+
+ p = 1, when bits(SN) <= 4;
+ p = 2^(bits(SN)-5) - 1 otherwise.
+
+
+
+
+
+Pelletier, et al. Informational [Page 7]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ The resulting table describing the interpretation interval is as
+ follows:
+
+ +-----------+--------------+--------------+
+ | bits (SN) | Offset p | (2^k-1) - p |
+ | k | (reordering) | (losses) |
+ +-----------+--------------+--------------+
+ | 4 | 1 | 14 |
+ | 5 | 0 | 31 |
+ | 6 | 1 | 62 |
+ | 7 | 3 | 124 |
+ | 8 | 7 | 248 |
+ | 9 | 15 | 496 |
+ +-----------+--------------+--------------+
+
+ As shown in the table above, the ability for ROHC to handle
+ sequentially late packets depends on the number of bits sent in
+ each packet. For example, a sequentially late packet of type 0
+ (with either 4 or 6 bits of SN) sets the limit to one packet out
+ of sequence for successful decompression to be possible.
+
+ For profiles 0x0002, 0x0004, and 0x0008:
+
+ p = - 1, independently of bits(SN).
+
+ A value of p = -1 means that the interpretation interval offset
+ can only take positive values and that no sequentially late packet
+ can be decompressed if reordering occurs over the link.
+
+ The trade-off between reordering and robustness
+
+ The ability of ROHC to handle sequentially late packets is limited
+ by the interpretation interval offset of the sliding window used
+ for LSB encoding. This offset has a very small value for packets
+ with a small number of sequence number (SN) bits, but grows with
+ the number of SN bits transmitted.
+
+ For channels where both packet losses and reordering can occur,
+ modifications to the interpretation interval face a trade-off
+ between the amount of reordering and the number of consecutive
+ packet losses that can be handled by the decompressor. If the
+ negative offset (i.e., p) is increased to handle a larger amount
+ of reordering, the value of the positive offset of the
+ interpretation interval must be decreased. This may impact the
+ compression efficiency when the channel has a high loss rate.
+
+
+
+
+
+
+Pelletier, et al. Informational [Page 8]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ This is shown in the figure:
+
+ <--- interpretation interval (size is 2^k) ---->
+ |------------------+---------------------------|
+ Lower v_ref Upper
+ Bound Bound
+ <--- reordering --> <--------- losses --------->
+ max delta(SN) = p max delta(SN) = (2^k-1) - p
+
+ where v_ref is the reference value as per [1], section 4.5.1.
+
+ In practice, the maximum variation in SN value (max delta(SN)) due
+ to reordering that can be handled will normally correspond to the
+ maximum number of packets that can be reordered. The same applies
+ to the maximum number of consecutive packet losses covered by the
+ robustness interval.
+
+ Timer-based compression of RTP TS (see [1], section 4.5.4) provides
+ means to reduce the number of timestamp bits needed in compressed
+ headers after longer gaps in the packet stream (e.g., for an audio
+ stream, this is typically due to silence suppression). To use
+ timer-based compression, an upper limit on the inter-arrival jitter
+ must be reliably estimated by the compressor. It should be noted
+ that although the risk of reordering of course means there is a more
+ significant jitter on the path between the compressor and the
+ decompressor, there are no special reordering considerations for
+ timer-based compression. It all still boils down to the task of
+ estimating the jitter, requiring channel characteristics knowledge at
+ the compressor, and/or jitter estimation figures received from the
+ decompressor.
+
+5.1.2. Reordering of Packets in R-mode
+
+5.1.2.1. Updating Packets
+
+ The compressor always adds references in the sliding window for all
+ updating packets sent. The compressor removes values older than
+ values for which it has received an acknowledgement to shrink the
+ window and thereby increase the compression efficiency.
+
+ The decompressor always updates the context when receiving an
+ updating packet and uses the new reference for decompression.
+ Acknowledgements are sent to allow the compressor to shrink its
+ sliding window.
+
+
+
+
+
+
+
+Pelletier, et al. Informational [Page 9]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ Reordering between updating packets
+
+ The decompressor can update its context from the reception of a
+ sequentially late updating packet. The decompressor reference is
+ then updated with a value that is no longer in the sliding window
+ of the compressor. This "missing reference" can be caused by
+ reordering when operating in R-mode.
+
+ The result is that the compressor and the decompressor lose
+ synchronization with each other. When the decompressor
+ acknowledges the sequentially late packet, the compressor might
+ already have discarded the reference to this sequence number, and
+ continue to compress packets based on more recent references (in
+ packet arrival time). Decompression will then be attempted using
+ the wrong reference.
+
+5.1.2.2. Non-Updating Packets
+
+ Reordering between non-updating packets only
+
+ A non-updating packet that reaches the decompressor out of
+ sequence only with respect to other non-updating packets can
+ always be decompressed properly.
+
+ Reordering between non-updating packets and updating packets
+
+ When a non-updating packet is reordered and becomes sequentially
+ late with respect to an updating packet, the decompressor may have
+ already updated the context with a new reference when the late
+ packet is received. It is thus possible for a non-updating packet
+ to be decompressed based on the wrong reference because of
+ reordering when operating in R-mode.
+
+ Since decompression of non-updating packets cannot be verified,
+ this can lead to a packet erroneously decompressed to be forwarded
+ to upper layers.
+
+5.1.3. Reordering of Packets in U/O-mode
+
+ Reordering between non-change packets only
+
+ When only non-change packets are reordered with respect to each
+ other, decompression of sequentially late packets is limited by
+ the offset p of the interpretation interval (see section 5.1.1).
+ Decompression of a sequentially late packet with SN = x is
+ possible if the value of the SN of the packet that last updated
+ the context was less than or equal to x + p.
+
+
+
+
+Pelletier, et al. Informational [Page 10]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ Problems occur if context(SN) has increased by more than p with
+ respect to field(SN) carried within the packet to decompress.
+
+ This means that for a well-behaved stream with a constant unit
+ increase in the RTP SN, a packet can arrive up to p packets out of
+ sequence and still be correctly decompressed. Otherwise, it
+ cannot be properly decompressed. It also means that if the
+ compressor sends two consecutive packets with SN(packet1)=100 and
+ SN(packet2)=108 when p=7, packet1 cannot be decompressed if it
+ arrives even one packet late due to reordering.
+
+ Reordering involving change packets
+
+ When a packet is reordered and becomes sequentially late with
+ respect to a change packet, decompression of the late packet may
+ eventually fail, as the context information required for
+ successful decompression may not be available anymore.
+
+ Decompression can always be verified since all U/O-mode packet types
+ are context updating. Consequently, a failure to decompress a packet
+ that is caused by reordering can be detected, and context
+ invalidation due to reordering can thus be avoided. The risk of
+ forwarding incorrectly decompressed packets to upper layers is
+ therefore small when operating in U/O-mode. For channels known to
+ reorder packets, U/O-mode should therefore be the preferred mode of
+ operation. The additional risk of losing context synchronization, or
+ for erroneous packet to be delivered to upper layers, is limited.
+
+5.1.4. Reordering on the Feedback Channel
+
+ For R-mode, upon reception of an acknowledgement, the compressor
+ searches the sliding window to locate an updating packet with the
+ corresponding SN; if it is not found, the acknowledgement is invalid
+ and is discarded ([1], section 5.5.1.2). In other words, feedback
+ received out of order either is still useful or is discarded.
+
+ In U/O-mode, if the compressor updates its context based on feedback,
+ the same logic as for R-mode applies in practice.
+
+ Reordering on the feedback channel has thus no impact in either mode.
+
+5.1.5. List Compression
+
+ ROHC list compression is an additional compression scheme for RTP
+ contributing source (CSRC) lists and IP extension header chains. The
+ base is called table-based item compression, and it is almost
+ completely independent from the rest of the ROHC compression logic.
+ Therefore, this part of the scheme does not exhibit any special
+
+
+
+Pelletier, et al. Informational [Page 11]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ vulnerabilities when it comes to reordering, assuming a reasonable
+ optimistic approach is used in U/O-mode. Specifically, it does not
+ suffer significantly from the "missing reference" problem when
+ operating in R-mode.
+
+ On top of the table-based item compression mechanism, an additional
+ compression technique may be used, called reference based list
+ compression. Reference based list compression however has a logic
+ that is similar to the rest of the ROHC compression logic, and
+ therefore it suffers from similar reordering vulnerabilities,
+ especially the "missing reference" problem of R-mode. Note, however,
+ that the generation identifier used in U/O-mode makes that scheme
+ more robust to reordering.
+
+ When using list encoding type 1, 2, or 3, which makes use of
+ reference lists, decompression will succeed only if all individual
+ items are known by the decompressor, along with the correct reference
+ list required to properly decompress the packet. List compression
+ using the "Generic scheme", also known as "Encoding type 0", is not
+ using reference based list compression, and type 0 decompression will
+ thus succeed as long as all individual items are known by the
+ decompressor. Because of this, type 0 list compression should be the
+ preferred method used when operating over reordering channels.
+
+5.1.6. Reordering and Mode Transitions
+
+ Transition from U/O-mode to R-mode
+
+ This transition can be affected by reordering if a packet type 0
+ (UO-0) is reordered and delayed by at least one round-trip time
+ (RTT). If the decompressor initiates a mode change request to
+ R-mode in the meantime, the reordered UO-0 packet may be handled
+ as an R-0 packet; it can be erroneously decompressed and forwarded
+ to upper layers. This is because the decompressor can switch to
+ R-mode as soon as it sends the acknowledgement Ack(SN, R) to the
+ compressor (see also [1], section 5.6).
+
+ Transition from R-mode to U/O-mode
+
+ A similar situation as above can occur during this transition.
+ However, because the outcome of the decompression is always
+ verified using a CRC verification in U/O-mode, the reordered
+ packet will most likely fail decompression and will be discarded.
+
+ The above situation, although it is not deemed to occur frequently,
+ is still possible; thus, mode transitions from U/O-mode to R-mode
+ should be avoided when reordering can occur.
+
+
+
+
+Pelletier, et al. Informational [Page 12]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+5.2. Consequences of Reordering
+
+ The context updating properties of the packets exchanged between ROHC
+ peers are the most important factors to consider when deriving the
+ impacts of reordering. For this reason, the robustness properties of
+ the U/O-mode and of the R-mode are affected differently.
+
+ The effects of reordering on ROHC can be summarized as follows:
+
+ - Functionality incompatible with reordering;
+ - Increased probability of context damage (loss of synchronization);
+ - Increased number of decompression failures - Detected (U/O/R-mode);
+ - Increased number of decompression failures - Undetected (R-mode).
+
+5.2.1. Functionality Incompatible with Reordering
+
+ There is one optional ROHC function that cannot work in the presence
+ of reordering between ROHC peers.
+
+ The ROHC segmentation scheme (see [1], section 5.2.5) relies entirely
+ on the in-order delivery of each segment, as there is no sequencing
+ information in the segments. A segmented packet for which one (or
+ more) segment is received out of order cannot be decompressed, and it
+ is discarded by the decompressor. Therefore, segmentation should not
+ be used if there can be reordering between the ROHC peers.
+
+ The use of this optional feature is open to implementations and is
+ local to the compressor only; it does not impact the decompressor.
+
+5.2.2. Context Damage (Loss of Synchronization)
+
+ Reordering of packets between ROHC peers can impact the robustness
+ properties of the optimistic approach (U/O-mode) as well as the
+ reliability of the secure reference principle (R-mode).
+
+ The successful decompression of a sequentially late change packet
+ (U/O-mode) and/or updating packet (R-mode) can update the context of
+ the decompressor in a manner unexpected by the compressor. This can
+ lead to a loss of context synchronization between the ROHC peers.
+
+5.2.3. Detected Decompression Failures (U/O/R-mode)
+
+ Reordering of packets between ROHC peers can lead to an increase in
+ the number of decompression failures for context updating packets
+ (see sections 5.1.2.1 and 5.1.3). Fortunately, as the outcome of the
+ decompression of updating packets can be verified, the decompressor
+ can reliably detect decompression failures, including those caused by
+ reordering, and discard the packet. Note that local repairs, subject
+
+
+
+Pelletier, et al. Informational [Page 13]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ to the limitations stated in [1] section 5.3.2.2.3, can still be
+ performed.
+
+5.2.4. Undetected Decompression Failures (R-mode only)
+
+ Reordering of packets between ROHC peers can lead to an increase in
+ the number of decompression errors for non-updating packets. For
+ R-mode, decompression of R-0 and R-1* packets cannot be verified. If
+ reordering occurs and decompression is performed using the wrong
+ secure reference (see section 5.1.2.1 and 5.1.2.2), the decompressor
+ cannot reliably detect such errors. As a result, erroneous packets
+ may be forwarded to upper layers.
+
+6. Making ROHC Tolerant against Reordering
+
+ This section describes different approaches that can improve the
+ performance of ROHC when used over reordering channels and minimize
+ the effects of reordering. Examples are provided to guide
+ implementers and designers of new profiles. The solutions target
+ either the properties of ROHC implementations or the specification of
+ profiles. This is covered by sections 6.1 and 6.2, respectively.
+
+6.1. Properties of ROHC Implementations
+
+ Existing ROHC profiles can be implemented with the capability to
+ properly handle packet reordering. The methods described in this
+ section conform with, and thus do not require any modifications to,
+ the ROHC specifications within scope of this document (see section
+ 3). Specifically, the methods presented in this section can be
+ implemented without any impairment to interoperability with other
+ ROHC implementations that do not use these methods.
+
+ The methods suggested here may, however, lower the compression
+ efficiency, and these modifications should not be used when
+ reordering is known not to occur. Some of these methods aim to
+ increase the decompression success rate at the decompressor, while
+ others aim to avoid context damage that would cause a loss of context
+ synchronization between compressor and decompressor.
+
+ The methods proposed are each addressing specific issues listed in
+ section 5 and can be combined to achieve better robustness against
+ reordering.
+
+6.1.1. Compressing Headers with Robustness against Reordering
+
+ The methods described in this section are methods local only to the
+ compressor implementation. They can be used without modifications or
+ impact to the decompressor.
+
+
+
+Pelletier, et al. Informational [Page 14]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+6.1.1.1. Reordering and the Optimistic Approach
+
+ The optimistic approach is affected by the reordering characteristics
+ of the channel when operating over a reordering channel. Compressor
+ implementations should therefore adjust their optimistic approach
+ strategy to match both packet loss and reordering characteristics.
+
+ For example, the number of repetitions for each context update can be
+ increased. The compressor should ensure that each update is repeated
+ until it is reasonably confident that at least one change packet in
+ the sequence of repetitions has reached the decompressor before the
+ first packet sent after this sequence.
+
+6.1.1.2. Reordering and the Secure Reference Principle
+
+ Fundamental to the secure reference principle is that only values
+ acknowledged by the decompressor can be used as reference for
+ compression. In addition, some of the packet types used in R-mode do
+ not include a CRC over the original uncompressed header, and the
+ decompressor has no means to verify the outcome of the decompression.
+
+ Decompression of non-updating packet types thus entirely relies on
+ the cumulative effect of previous updates to the secure reference,
+ and the compressed data is based on the current value of the
+ reference. This reference must be synchronized between ROHC peers.
+ For R-0 and R-1* packets, the reception of the encoded bits applied
+ to the secure reference is sufficient for correct decompression, but
+ only when in-order delivery between ROHC peers is guaranteed.
+
+ Avoiding the "missing reference" problem (section 5.1.2.1)
+
+ A compressor implementation can delay the advance in the sliding
+ window to a reference acknowledged by the decompressor, until it
+ has confidence that no acknowledgement for any of the values that
+ could be discarded can be received. This confidence can be based
+ on the maximum delay that reordering can introduce over the
+ channel.
+
+6.1.1.3. Robust Selection of Compressed Header
+
+ Packet formats can be chosen with an interpretation interval for the
+ LSB encoded sequence number that allows for larger negative offsets
+ (see section 5.1.1). This provides the capability to decompress
+ sequentially late packets with a greater amount of reordering.
+
+ To achieve this, the compressor should be implemented conservatively
+ in terms of the choice of packet types to send, by transmitting
+ packets with more sequence number bits. As shown in the table in
+
+
+
+Pelletier, et al. Informational [Page 15]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ section 5.1.1, using 8 bits of SN allows a packet to be decompressed
+ when the reordering leads to up to 7 units in sequence number
+ variation (i.e., delta(SN)). Increasing the number of SN bits (i.e.,
+ using a larger SN_k [1]) transmitted will make ROHC even more
+ tolerant to reordering.
+
+ For example, a conservative compressor implementation could use the
+ packet types as shown in the table below:
+
+ +----------------------+-------------------------+
+ | Optimal Packet Type | Alternative Packet Type |
+ | (without reordering) | (reordering possible) |
+ +----------------------+-------------------------+
+ | UO-0 | UOR-2*-ext0 |
+ | R-0 | R-1*-ext0 |
+ | R-0-CRC | UOR-2*-ext0 |
+ | R-1* | R-1*-ext0 |
+ | UO-1 | UOR-2-ext0 |
+ | UO-1-TS | UOR-2-TS-ext0 |
+ | UO-1-ID | UO-1-ID-ext3 (with S=1) |
+ | | UOR-2-ID-ext0 |
+ | UOR-2* | UOR-2*-ext0 |
+ +----------------------+-------------------------+
+
+ Such a compressor implementation would thus always be sending at
+ least 3 octets (R-mode) or 4 octets (U/O-mode). This is a trade-off
+ when compared to the 1 octet that can be sent by a more aggressive
+ implementation operating on a channel with no reordering.
+
+ Note that since the interpretation interval for profiles 0x0002,
+ 0x0004, and 0x0008 is always p = -1 independently of bits(SN), the
+ methods suggested in this section will not work for these profiles
+ unless this value is modified (section 6.2.1).
+
+6.1.2. Implementing a Reordering-Tolerant Decompressor
+
+ The methods described in this section are methods local only to the
+ decompressor implementation. They can be used without modifications
+ or impact to the compressor.
+
+6.1.2.1. Decompressor Feedback Considerations
+
+ Reducing the feedback rate when the flow behaves linearly
+
+ The decompressor should reduce its feedback rate when a large
+ number of UOR-2 packets with extensions are received, when the
+ flow behaves linearly (i.e., when only fields pertaining to the
+
+
+
+
+Pelletier, et al. Informational [Page 16]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ functions established with respect to the sequence number are
+ changing).
+
+ In particular, if the compressor implementation makes a more
+ conservative selection of packet types (section 6.1.1.3) in order
+ to handle reordering, the decompressor should try to avoid sending
+ more feedback than it would for the case where the more optimal
+ packet types are used. This can be useful to minimize the usage
+ of the feedback channel, thereby improving efficiency of the link.
+
+ Note that even if the decompressor does not make this adjustment
+ to its feedback rate, packet losses or context damages will not
+ increase.
+
+ Acknowledgements and sequentially late packets
+
+ Reordered feedback (or feedback for packets received out of order)
+ will not cause problems (see section 5.1.4). However, the
+ decompressor should not send acknowledging feedback for a packet
+ that can be identified as being sequentially late (e.g., based on
+ the sequence number of the packet), as the current state of the
+ context will better reflect the compressor context than the
+ content of the reordered packet.
+
+6.1.2.2. Considerations for Local Repair Mechanisms
+
+ When decompression fails, and if reordering can be assumed to be the
+ cause of this failure, subsequent decompressions may be attempted for
+ sequentially late packets by going backward in the interpretation
+ interval (as opposed to moving forward for local repair). If one of
+ the decompression attempts is successful, the late packet may be
+ passed on to upper layers with or without updating the decompressor
+ context. If the subsequent decompression attempt fails, the packet
+ should be handled according to [1] section 5.3.2.2.3.
+
+6.2. Specifying ROHC Profiles with Robustness against Reordering
+
+6.2.1. Profiles with Interpretation Interval Offset p = -1
+
+ New revisions of profiles 0x0002 (UDP) [1], 0x0004 (IP-only) [3], and
+ 0x0008 (UDP-Lite) [4] should redefine how the value of the offset p
+ is determined, and use the same algorithm as in profile 0x0001 [1]
+ instead of p = -1 independently of bits(SN) (section 5.1.1).
+
+ While such a change would make these updated profiles slightly less
+ robust to packet losses, they would still be no less robust than
+ profile 0x0001.
+
+
+
+
+Pelletier, et al. Informational [Page 17]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+6.2.2. Modifying the Interpretation Interval Offset
+
+ The interpretation interval offset p could be modified for existing
+ profiles to handle reordering while improving the compression
+ efficiency when compared to the solution in section 6.1.1.3.
+
+6.2.2.1. Example Profile for Handling Reordering
+
+ The value of the interpretation interval offset p can be adjusted to
+ achieve a robustness against reordering similar to the effect of
+ selecting packet types as suggested in section 6.1.1.3.
+
+ Consider a scenario where robustness against packet losses is kept a
+ priority, and for which of a value p=7 is deemed enough. In this
+ case, a ratio where the positive offset is about twice as large as
+ the negative offset can be used. This leaves a value of p = 2^k/ 3.
+
+ The resulting values are shown in the following table:
+
+ +-----------+--------------+----------------+
+ | bits (SN) | Offset p | Positive range |
+ | k | (reordering) | (losses) |
+ +-----------+--------------+----------------+
+ | 4 | 5 | 10 |
+ | 5 | 10 | 21 |
+ | 6 | 21 | 42 |
+ | 7 | 42 | 85 |
+ | 8 | 85 | 170 |
+ | 9 | 170 | 341 |
+ +-----------+--------------+----------------+
+
+ Using this value for p, a fair amount of reordering can be handled
+ without having to send UOR-2 packets most of the time. The trade-off
+ is that this is at the expense of robustness against packet losses.
+
+6.2.2.2. Defining the Values of p for New Profiles
+
+ As described in RFC 3095 [1], the interpretation interval when
+ sending k bits of SN is defined as follows:
+
+ f(v_ref, k) = [v_ref - p, v_ref + (2^k - 1) - p]
+
+ The negative bound (v_ref - p) limits the ability to handle
+ reordering, and the positive bound (v_ref + (2^k - 1) - p) limits the
+ ability to handle packet losses.
+
+ Adjusting p will increase one of these ranges, while the other range
+ will decrease. This trade-off between the capability to handle
+
+
+
+Pelletier, et al. Informational [Page 18]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ reordering and packet losses, including how these correlate with each
+ other, should be considered in a ROHC profile that is meant to handle
+ reordering.
+
+ For example, if it is desirable for a profile to be as robust against
+ reordering (negative range) and against packet losses (positive
+ range), this range can be made equal by setting p near (2^k / 2).
+
+7. Security Considerations
+
+ This document does not include additional security risks to [1]. In
+ addition, it may lower risks related to context damage in R-mode with
+ injected packets when sequentially late packets do not update the
+ context (section 6.1.2.1).
+
+8. Acknowledgements
+
+ Thanks to the committed WG document reviewers, Carl Knutsson and Mark
+ West, for their review efforts. Thanks also to Aniruddha Kulkarni,
+ Ramin Rezaiifar, and Gorry Fairhurst for their constructive comments.
+
+9. Informative References
+
+ [1] Bormann, C., Burmeister, C., Degermark, M., Fukushima, H.,
+ Hannu, H., Jonsson, L-E., 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.
+
+ [2] Jonsson, L-E., "RObust Header Compression (ROHC): Terminology
+ and Channel Mapping Examples", RFC 3759, April 2004.
+
+ [3] Jonsson, L-E. and G. Pelletier, "RObust Header Compression
+ (ROHC): A Compression Profile for IP", RFC 3843, June 2004.
+
+ [4] Pelletier, G., "RObust Header Compression (ROHC): Profiles for
+ User Datagram Protocol (UDP) Lite", RFC 4019, April 2005.
+
+ [5] Jonsson, L-E. and G. Pelletier, "RObust Header Compression
+ (ROHC): A Link-Layer Assisted Profile for IP/UDP/RTP", RFC 3242,
+ April 2002.
+
+ [6] Liu, Z. and K. Le, "Zero-byte Support for Bidirectional Reliable
+ Mode (R-mode) in Extended Link-Layer Assisted RObust Header
+ Compression (ROHC) Profile", RFC 3408, December 2002.
+
+
+
+
+
+Pelletier, et al. Informational [Page 19]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+ [7] Ash, J., Goode, B., Hand, J., and R. Zhang, "Requirements for
+ Header Compression over MPLS", RFC 4247, November 2005.
+
+Authors' Addresses
+
+ Ghyslain Pelletier
+ Ericsson AB
+ Box 920
+ SE-971 28 Lulea, Sweden
+
+ Phone: +46 8 404 29 43
+ Fax: +46 920 996 21
+ EMail: ghyslain.pelletier@ericsson.com
+
+
+ Lars-Erik Jonsson
+ Ericsson AB
+ Box 920
+ SE-971 28 Lulea, Sweden
+
+ Phone: +46 8 404 29 61
+ Fax: +46 920 996 21
+ EMail: lars-erik.jonsson@ericsson.com
+
+
+ Kristofer Sandlund
+ Ericsson AB
+ Box 920
+ SE-971 28 Lulea, Sweden
+
+ Phone: +46 8 404 41 58
+ Fax: +46 920 996 21
+ EMail: kristofer.sandlund@ericsson.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Pelletier, et al. Informational [Page 20]
+
+RFC 4224 ROHC over Reordering Channels January 2006
+
+
+Full Copyright Statement
+
+ Copyright (C) The Internet Society (2006).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
+ OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
+ ENGINEERING TASK FORCE DISCLAIM 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.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the procedures with respect to rights in RFC documents can be
+ found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at
+ ietf-ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is provided by the IETF
+ Administrative Support Activity (IASA).
+
+
+
+
+
+
+
+Pelletier, et al. Informational [Page 21]
+