分享
 
 
 

RFC3241 - Robust Header Compression (ROHC) over PPP

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

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.

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 RFC2119.

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.

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 RFC2507

essentially superseded RFC1144. However, with ROHC, it may now

very well be desirable to use RFC2507 TCP compression in

conjunction with RFC3095 RTP/UDP compression.

The present document now updates RFC1332 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.

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

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 RFC3095 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 RFC2507) 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

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.

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.

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.

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 RFCor 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 RFC3006 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.

9. References

9.1. Normative References

[RFC1332] McGregor, G., "The PPP Internet Protocol Control Protocol

(IPCP)", RFC1332, May 1992.

[RFC1661] Simpson, W., Ed., "The Point-To-Point Protocol (PPP)", STD

51, RFC1661, July 1994.

[RFC2472] HaSKIN, E. and E. Allan, "IP Version 6 over PPP", RFC2472,

December 1998.

[RFC3006] Davie, B., Casner, S., Iturralde, C., Oran, D. and J.

Wroclawski, "Integrated Services in the Presence of

Compressible Flows", RFC3006, 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", RFC3095, July 2001.

9.2. Informative References

[RFC1144] Jacobson, V., "Compressing TCP/IP Headers for Low-Speed

Serial Links", RFC1144, February 1990.

[RFC1889] Schulzrinne, H., Casner, S., Frederick, R. and V.

Jacobson, "RTP: A Transport Protocol for real-time

applications", RFC1889, January 1996.

[RFC2434] Alvestrand, H. and T. Narten, "Guidelines for Writing an

IANA Considerations Section in RFCs", BCP 26, RFC2434,

October 1998.

[RFC2507] Degermark, M., Nordgren, B. and S. Pink, "IP Header

Compression", RFC2507, February 1999.

[RFC2509] Engan, M., Casner, S. and C. Bormann, "IP Header

Compression over PPP", RFC2509, February 1999.

[RFC2686] Bormann, C., "The Multi-Class Extension to Multi-Link PPP",

RFC2686, September 1999.

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

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 RFCEditor function is currently provided by the

Internet Society.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有