rfc3241.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 676 行 · 第 1/2 页
TXT
676 行
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]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?