summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3241.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3241.txt')
-rw-r--r--doc/rfc/rfc3241.txt675
1 files changed, 675 insertions, 0 deletions
diff --git a/doc/rfc/rfc3241.txt b/doc/rfc/rfc3241.txt
new file mode 100644
index 0000000..f3f5e40
--- /dev/null
+++ b/doc/rfc/rfc3241.txt
@@ -0,0 +1,675 @@
+
+
+
+
+
+
+Network Working Group C. Bormann
+Request for Comments: 3241 TZI/Uni Bremen
+Updates: 1332 April 2002
+Category: Standards Track
+
+
+ Robust Header Compression (ROHC) over PPP
+
+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 describes an option for negotiating the use of robust
+ header compression (ROHC) on IP datagrams transmitted over the
+ Point-to-Point Protocol (PPP). It defines extensions to the PPP
+ Control Protocols for IPv4 and IPv6.
+
+1. Introduction
+
+ Robust Header Compression (ROHC) as defined in [RFC3095] may be used
+ for compression of both IPv4 and IPv6 datagrams or packets
+ encapsulated with multiple IP headers. The initial version of ROHC
+ focuses on compression of the packet headers in RTP streams, while
+ supporting compression of other UDP flows; however, it also defines a
+ framework into which further header compression mechanisms can be
+ plugged as new profiles. Planned additions to the set of profiles
+ supported by ROHC will be capable of compressing TCP transport
+ protocol headers as well.
+
+ In order to establish compression of IP datagrams sent over a PPP
+ link each end of the link must agree on a set of configuration
+ parameters for the compression. The process of negotiating link
+ parameters for network layer protocols is handled in PPP by a family
+ of network control protocols (NCPs). Since there are separate NCPs
+ for IPv4 and IPv6, this document defines configuration options to be
+ used in both NCPs to negotiate parameters for the compression scheme.
+
+
+
+
+
+Bormann Standards Track [Page 1]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ ROHC does not require that the link layer be able to indicate the
+ types of datagrams carried in the link layer frames. However, there
+ are two basic types of ROHC headers defined in the ROHC framework:
+ small-CID headers (zero or one bytes are used to identify the
+ compression context) and large-CID headers (one or two bytes are used
+ for this purpose). To keep the PPP packets self-describing, in this
+ document two new types for the PPP Data Link Layer Protocol Field are
+ defined, one for small-CID ROHC packets and one for large-CID ROHC
+ packets. (This also avoids a problem that would occur if PPP were to
+ negotiate which of the formats to use in each of IPCP and IPV6CP and
+ the two negotiation processes were to arrive at different results.)
+ A PPP ROHC sender may send packets in either small-CID or large-CID
+ format at any time, i.e., the LARGE_CIDS parameter from [RFC3095] is
+ not used. Any PPP ROHC receiver MUST be able to process both small-
+ CID and large-CID ROHC packets, therefore no negotiation of this
+ function is required.
+
+ ROHC assumes that the link layer delivers packets in sequence. PPP
+ normally does not reorder packets. When using reordering mechanisms
+ such as multiclass multilink PPP [RFC2686], care must be taken so
+ that packets that share the same compression context are not
+ reordered. (Note that in certain cases, reordering may be acceptable
+ to ROHC, such as within a sequence of packets that all do not change
+ the decompression context.)
+
+ 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.
+
+2. Configuration Option
+
+ This document specifies a new compression protocol value for the IPCP
+ IP-Compression-Protocol option as specified in [RFC1332]. The new
+ value and the associated option format are described in section 2.1.
+
+ The option format is structured to allow future extensions to the
+ ROHC scheme.
+
+ It may be worth repeating [RFC1332], section 4: "The IP-Compression-
+ Protocol Configuration Option is used to indicate the ability to
+ receive compressed packets. Each end of the link must separately
+ request this option if bi-directional compression is desired." I.e.,
+ the option describes the capabilities of the decompressor (receiving
+ side) of the peer that sends the Configure-Request.
+
+
+
+
+
+
+
+Bormann Standards Track [Page 2]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ NOTE: The specification of link and network layer parameter
+ negotiation for PPP [RFC1661], [RFC1331], [RFC1332] does not
+ prohibit multiple instances of one configuration option but states
+ that the specification of a configuration option must explicitly
+ allow multiple instances. From the current specification of the
+ IPCP IP-Compression-Protocol configuration option [RFC1332] one
+ can infer that it can only be used to select a single compression
+ protocol at any time.
+
+ This was appropriate at a time when only one header compression
+ scheme existed. With the advent of IP header compression
+ [RFC2507, RFC2509], this did not really change, as RFC 2507
+ essentially superseded RFC 1144. However, with ROHC, it may now
+ very well be desirable to use RFC 2507 TCP compression in
+ conjunction with RFC 3095 RTP/UDP compression.
+
+ The present document now updates RFC 1332 by explicitly allowing the
+ sending of multiple instances of the IP-Compression-Protocol
+ configuration option, each with a different value for IP-
+ Compression-Protocol. Each type of compression protocol may
+ independently establish its own parameters.
+
+ This change is believed to not cause significant harm in existing PPP
+ implementations, as they would most likely Configure-Nak or
+ Configure-Reject the duplicate option, or simply happen to accept the
+ one option they understand. To aid interoperability, the peer
+ implementing the present specification SHOULD react to a Configure-
+ Nak or Configure-Reject by reducing the number of options offered to
+ one.
+
+2.1. Configuration Option Format
+
+ Both the network control protocol for IPv4, IPCP [RFC1332] and the
+ IPv6 NCP, IPV6CP [RFC2472] may be used to negotiate IP Header
+ Compression parameters for their respective protocols. The format of
+ the configuration option is the same for both IPCP and IPV6CP.
+
+ Description
+
+ This NCP configuration option is used to negotiate parameters for
+ Robust Header Compression. The option format is summarized below.
+ The fields are transmitted from left to right.
+
+
+
+
+
+
+
+
+
+Bormann Standards Track [Page 3]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ Figure 1: Robust Header Compression (ROHC) Option
+
+ 0 1 2 3
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | IP-Compression-Protocol |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MAX_CID | MRRU |
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | MAX_HEADER | suboptions...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+ 2
+
+ Length
+ >= 10
+
+ The length may be increased if the presence of additional
+ parameters is indicated by additional suboptions.
+
+ IP-Compression-Protocol
+ 0003 (hex)
+
+ MAX_CID
+ The MAX_CID field is two octets and indicates the maximum value of
+ a context identifier.
+
+ Suggested value: 15
+
+ MAX_CID must be at least 0 and at most 16383 (The value 0 implies
+ having one context).
+
+ MRRU
+ The MRRU field is two octets and indicates the maximum
+ reconstructed reception unit (see [RFC3095], section 5.1.1).
+
+ Suggested value: 0
+
+ MAX_HEADER
+ The largest header size in octets that may be compressed.
+
+ Suggested value: 168 octets
+
+
+
+
+
+
+
+
+Bormann Standards Track [Page 4]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ The value of MAX_HEADER should be large enough so that at least
+ the outer network layer header can be compressed. To increase
+ compression efficiency MAX_HEADER should be set to a value large
+ enough to cover common combinations of network and transport layer
+ headers.
+
+ NOTE: The four ROHC profiles defined in RFC 3095 do not provide
+ for a MAX_HEADER parameter. The parameter MAX_HEADER defined by
+ this document is therefore without consequence in these profiles.
+ Other profiles (e.g., ones based on RFC 2507) can make use of the
+ parameter by explicitly referencing it.
+
+ suboptions
+ The suboptions field consists of zero or more suboptions. Each
+ suboption consists of a type field, a length field and zero or
+ more parameter octets, as defined by the suboption type. The
+ value of the length field indicates the length of the suboption in
+ its entirety, including the lengths of the type and length fields.
+
+ Figure 2: Suboption
+
+ 0 1 2
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | Parameters...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+2.2. PROFILES Suboption
+
+ The set of profiles to be enabled is subject to negotiation. Most
+ initial implementations of ROHC implement profiles 0x0000 to 0x0003.
+ This option MUST be supplied.
+
+ Description
+
+ Define the set of profiles supported by the decompressor.
+
+ Figure 3: PROFILES suboption
+
+ 0 1 2
+ 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+ | Type | Length | Profiles...
+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
+ Type
+ 1
+
+
+
+
+Bormann Standards Track [Page 5]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ Length
+ 2n+2
+
+ Value
+ n octet-pairs in ascending order, each octet-pair specifying a
+ ROHC profile supported.
+
+3. Multiple Network Control Protocols
+
+ The ROHC protocol is able to compress both IPv6 and IPv4 datagrams.
+ Both IPCP and IPV6CP are able to negotiate option parameter values
+ for ROHC. The ROHC capability negotiated as a whole applies to the
+ compression of packets where the outer header is an IPv4 header and
+ an IPv6 header, respectively; e.g., an outer IPv6 header MUST NOT be
+ sent if the ROHC IP-Compression-Protocol option was not negotiated
+ for IPV6CP.
+
+ Offering a specific ROHC capability in a Configure-Request in either
+ IPCP or IPV6CP indicates that the capability is provided for the
+ entire ROHC channel formed by the PPP link. When the option has been
+ negotiated with different values in IPCP and IPV6CP, the result is
+ that the set of parameter values for the entire ROHC channel is the
+ logical union of the two values, i.e., the maximum for MAX_CID, MRRU
+ or MAX_HEADER, and the logical union of the suboptions. For the
+ PROFILES suboption, the logical union is the union of the two sets of
+ profiles. The unified values are kept as valid parameter values for
+ the ROHC channel even when either of the NCPs is taken down.
+
+ Note that each new suboption for this option must define the meaning
+ of "logical union", if the concept applies.
+
+3.1. Sharing Context Identifier Space
+
+ For the compression and decompression of IPv4 and IPv6 datagram
+ headers, the context identifier space is shared. While the parameter
+ values are independently negotiated, sharing the context identifier
+ spaces becomes more complex when the parameter values differ. Since
+ the compressed packets share context identifier space, the
+ compression engine must allocate context identifiers out of a common
+ pool; for compressed packets, the decompressor has to examine the
+ context state to determine what parameters to use for decompression.
+
+ In particular, the context identifier space is shared between ROHC
+ small-CID packets and ROHC large-CID packets. From the point of view
+ of the ROHC framework, the PPP NCP instances for IPCP and IPV6CP
+ together constitute exactly one ROHC channel; its feedback is
+ destined for the ROHC channel defined by the NCP instances for IPCP
+ and IPV6CP in the reverse direction on the same PPP link.
+
+
+
+Bormann Standards Track [Page 6]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ In particular, this means that taking down either of the NCPs while
+ the other is still open means that the contexts of the channel stay
+ active. To avoid race conditions, the same is true if both NCPs are
+ taken down and then one or more is reopened. Taking down LCP
+ destroys the channel, however; reopening LCP and then one or more of
+ IPCP and IPV6CP restarts ROHC with all contexts in no-context state.
+
+4. Demultiplexing of Datagrams
+
+ The ROHC specification [RFC3095] defines a single header format for
+ all different types of compressed headers, with a variant for small
+ CIDs and a variant for large CIDs. Two PPP Data Link Layer Protocol
+ Field values are specified below.
+
+ ROHC small-CIDs
+
+ The frame contains a ROHC packet with small CIDs as defined in
+ [RFC3095].
+
+ Value: 0003 (hex)
+
+ ROHC large-CIDs
+
+ The frame contains a ROHC packet with large CIDs as defined in
+ [RFC3095].
+
+ Value: 0005 (hex)
+
+ Note that this implies that all CIDs within one ROHC packet MUST be
+ of the same size as indicated by the Data Link Layer Protocol field,
+ either small or large. In particular, embedded feedback MUST have a
+ CID of the same size as indicated by the Protocol field value. For
+ piggybacking feedback, a compressor must be able to control the
+ feedback CID size used by the associated decompressor, ensure that
+ all CIDs are of the same size, and indicate this size with the
+ appropriate Protocol Field value.
+
+ To make CID interpretation unambiguous when ROHC segmentation is
+ used, all packets that contribute to a segment MUST be sent with the
+ same Data Link Layer Protocol Field value, either 0003 or 0005, which
+ then also applies to the CID size in the reconstructed unit. A unit
+ reconstructed out of packets with Protocol field values that differ
+ MUST be discarded.
+
+
+
+
+
+
+
+
+Bormann Standards Track [Page 7]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+5. ROHC Usage Considerations
+
+ Certain considerations are required for any ROHC-over-X protocol.
+ This section describes how some of these are handled for ROHC over
+ PPP.
+
+5.1. Uncompressed profile
+
+ There is no need for the ROHC uncompressed profile in ROHC over PPP,
+ as uncompressed packets can always be sent using the PPP protocol
+ demultiplexing method. Therefore, no consideration was given to
+ locking down one of the context numbers for the uncompressed profile
+ (see [RFC3095] section 5.1.2). Note, however, that according to the
+ ROHC specification, profile 0x0000 must not be rejected [RFC3095], so
+ it MUST be implemented by all receivers.
+
+5.2. Parameter selection
+
+ For each of the ROHC channel parameters MAX_CID and MRRU, the value
+ is the maximum of the respective values negotiated for the IPCP and
+ IPv6CP instances, if any. The ROHC channel parameter FEEDBACK_FOR is
+ set implicitly to the reverse direction on the same PPP link (see
+ "Sharing Context Identifier Space" above). The ROHC channel
+ parameter LARGE_CIDS is not used, instead the PPP protocol ID on the
+ packet is used (see "Demultiplexing of Datagrams" above).
+
+ A number of parameters for ROHC must be set correctly for good
+ compression on a specific link. E.g., the parameters k_1, n_1, k_2,
+ n_2 in section 5.3.2.2.3 of [RFC3095] need to be set based on the
+ error characteristics of the underlying links. As PPP links are
+ usually run with a strong error detection scheme [RFC1662], k_1 = n_1
+ = k_2 = n_2 = 1 is usually a good set of values. (Note that in any
+ case k values need to be set low enough relative to n values to allow
+ for the limited ability of the CRC to detect errors, i.e., the CRC
+ will succeed for about 1/8 of the packets even in case of context
+ damage, so k/n should be significantly less than 7/8.)
+
+6. Security Considerations
+
+ Negotiation of the option defined here imposes no additional security
+ considerations beyond those that otherwise apply to PPP [RFC1661].
+
+ The security considerations of ROHC [RFC3095] apply.
+
+ The use of header compression can, in rare cases, cause the
+ misdelivery of packets. If necessary, confidentiality of packet
+ contents should be assured by encryption.
+
+
+
+
+Bormann Standards Track [Page 8]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+ Encryption applied at the IP layer (e.g., using IPSEC mechanisms)
+ precludes header compression of the encrypted headers, though
+ compression of the outer IP header and authentication/security
+ headers is still possible as described in [RFC3095]. For RTP
+ packets, full header compression is possible if the RTP payload is
+ encrypted by itself without encrypting the UDP or RTP headers, as
+ described in [RFC1889]. This method is appropriate when the UDP and
+ RTP header information need not be kept confidential.
+
+7. IANA considerations
+
+ The ROHC suboption identifier is a non-negative integer. Following
+ the policies outlined in [RFC2434], the IANA policy for assigning new
+ values for the suboption identifier shall be Specification Required:
+ values and their meanings must be documented in an RFC or in some
+ other permanent and readily available reference, in sufficient detail
+ that interoperability between independent implementations is
+ possible. The range 0 to 127 is reserved for IETF standard-track
+ specifications; the range 128 to 254 is available for other
+ specifications that meet this requirement (such as Informational
+ RFCs). The value 255 is reserved for future extensibility of the
+ present specification.
+
+ The following suboption identifiers are already allocated:
+
+ Suboption Document Usage
+ identifier
+
+ 1 RFC3241 Profiles
+
+ The RFC 3006 compressibility hint [RFC3006] for ROHC is 0x0003pppp,
+ where 0xpppp is the profile assumed.
+
+ (Note that the PPP protocol identifier values 0003 and 0005 were
+ taken from a previously reserved space that exhibits inefficient
+ transparency in the presence of asynchronous control character
+ escaping, as it is considered rather unlikely that ROHC will be used
+ over links with highly populated ACCMs.)
+
+8. Acknowledgments
+
+ The present document borrows heavily from [RFC2509].
+
+ The author would like to thank Pete McCann and James Carlson for
+ clarifying the multiple option instance issue, Craig Fox for helping
+ with some PPP arcana, and Lars-Erik Jonsson for supplying some final
+ clarifications.
+
+
+
+
+Bormann Standards Track [Page 9]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+9. References
+
+9.1. Normative References
+
+
+ [RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol
+ (IPCP)", RFC 1332, May 1992.
+
+ [RFC1661] Simpson, W., Ed., "The Point-To-Point Protocol (PPP)", STD
+ 51, RFC 1661, July 1994.
+
+ [RFC2472] Haskin, E. and E. Allan, "IP Version 6 over PPP", RFC 2472,
+ December 1998.
+
+ [RFC3006] Davie, B., Casner, S., Iturralde, C., Oran, D. and J.
+ Wroclawski, "Integrated Services in the Presence of
+ Compressible Flows", RFC 3006, November 2000.
+
+ [RFC3095] 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.
+
+9.2. Informative References
+
+ [RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low-Speed
+ Serial Links", RFC 1144, February 1990.
+
+ [RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V.
+ Jacobson, "RTP: A Transport Protocol for real-time
+ applications", RFC 1889, January 1996.
+
+ [RFC2434] Alvestrand, H. and T. Narten, "Guidelines for Writing an
+ IANA Considerations Section in RFCs", BCP 26, RFC 2434,
+ October 1998.
+
+ [RFC2507] Degermark, M., Nordgren, B. and S. Pink, "IP Header
+ Compression", RFC 2507, February 1999.
+
+ [RFC2509] Engan, M., Casner, S. and C. Bormann, "IP Header
+ Compression over PPP", RFC 2509, February 1999.
+
+ [RFC2686] Bormann, C., "The Multi-Class Extension to Multi-Link PPP",
+ RFC 2686, September 1999.
+
+
+
+
+
+Bormann Standards Track [Page 10]
+
+RFC 3241 ROHC over PPP April 2002
+
+
+10. Author's Address
+
+ Carsten Bormann
+ Universitaet Bremen FB3 TZI
+ Postfach 330440
+ D-28334 Bremen, GERMANY
+
+ Phone: +49.421.218-7024
+ Fax: +49.421.218-7000
+ EMail: cabo@tzi.org
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bormann Standards Track [Page 11]
+
+RFC 3241 ROHC over PPP 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bormann Standards Track [Page 12]
+