Internet DRAFT - draft-heath-ppp-v44
draft-heath-ppp-v44
INTERNET-DRAFT J. Heath
September 13, 2002 J. Border
Expires: March 13, 2003 Hughes Network Systems
PPP V.44 Compression Protocol
draft-heath-ppp-v44-02.txt
This document is an Internet-Draft and is subject to all provisions
of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and it working groups. Note that
other groups may also distribute working documents as
Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Status of this Memo
This memo is an Internet-Draft that provides information for the
Internet community. Distribution of this memo is unlimited.
Comments are invited and should be addressed to the authors whose
contact information is in Section 9.
This Internet-Draft expires on March 13, 2003.
Abstract
The Point-to-Point Protocol (PPP) provides a standard means for
transporting multi-protocol datagrams over point-to-point links.
The PPP Compression Control Protocol (CCP) provides a means to
negotiate and utilize compression protocols over PPP encapsulated
links.
This memo describes a means for compressing PPP encapsulated
datagrams by utilizing the data compression algorithm that is
described in International Telecommunication Union (ITU-T)
Recommendation V.44. Recommendation V.44 is a modem standard
but Annex B of the recommendation describes the implementation of
V.44 in packet networks. This memo defines the application of V.44,
with single or multiple compression dictionaries, to the PPP
Compression Control Protocol (RFC 1962).
Heath Internet-Draft [Page 1]
PPP V.44 Compression Protocol September 2002
Table of Contents
1 Introduction................................................... 2
1.1 General................................................... 3
1.2 Background of V.44 Data Compression....................... 3
1.3 Intellectual Property Rights.............................. 4
1.4 Specification of Requirements............................. 4
2 V.44 Compression Operation..................................... 4
2.1 Datagram Mode............................................. 5
2.1.1 Attributes........................................... 5
2.1.2 Transmit Operation................................... 6
2.1.3 Receive Operation.................................... 6
2.1.4 Dictionary Synchronization........................... 6
2.1.5 V.44 Compressed Datagram Format...................... 6
2.1.6 Data Expansion....................................... 7
2.1.7 Configuration........................................ 7
2.2 Multi-Datagram Mode....................................... 7
2.2.1 Attributes........................................... 7
2.2.2 Transmit Operation................................... 7
2.2.3 Receive Operation.................................... 8
2.2.4 Dictionary Synchronization........................... 8
2.2.5 V.44 Compressed Datagram Format...................... 8
2.2.6 Data Expansion....................................... 9
2.2.7 Configuration........................................ 9
2.3 Individual Link Mode...................................... 9
2.3.1 Attributes........................................... 9
2.3.2 Transmit Operation................................... 9
2.3.3 Receive Operation.................................... 10
2.3.4 Dictionary Synchronization........................... 10
2.3.5 Individual Link Compressed Datagram Format........... 11
2.3.5.1 Number of Dictionaries is 128 or Less........... 11
2.3.5.2 Number of Dictionaries is More Than 128......... 12
2.3.6 Data Expansion....................................... 12
2.3.7 Configuration........................................ 13
3 V.44 Configuration Option...................................... 13
3.1 Negotiation Rules......................................... 14
4 V.44 Compressed Data........................................... 15
4.1 Padding................................................... 15
5 Datagram Integrity............................................. 15
6 Reliable and In-order Delivery of Datagrams.................... 15
7 Security Considerations........................................ 16
8 IANA Considerations............................................ 16
9 References..................................................... 16
10 Authors' Addresses............................................ 17
11 Full Copyright Statement...................................... 17
1 Introduction
ITU-T Recommendation V.44 [V44] is based upon the
Limpel-Zev-Jeff-Heath (LZjH) data compression algorithm. Throughout
the remainder of this memo, the terms V.44 and LZjH are synonymous.
Heath Internet-Draft [Page 2]
PPP V.44 Compression Protocol September 2002
1.1 General
This memo specifies the application of V.44 data compression, a
lossless data compression algorithm, to PPP datagrams. V.44 data
compression is to be used in conjunction with the Point-to-Point
Protocol (PPP) [PPP] and the PPP Compression Control Protocol (CCP)
[CCP]. This memo is written with the assumption that the reader has
an understanding of the PPP and CCP protocols.
For the PPP application, V.44 can operate using one of three
compression modes defined as follows:
1. Datagram Mode: independent datagram compression using V.44 Packet
Method where a single dictionary is utilized for all virtual links
and the dictionary is re-initialized between each datagram. This
mode uses a minimum amount of memory and does not require the
reliable, in-order delivery of datagrams. However the compression
obtained may be less than with the other modes. V.44 Packet
Method is described in Annex B.1 of [V44].
2. Multi-Datagram Mode: datagram compression using V.44 Multi-Packet
Method where a single dictionary is utilized for all virtual links
and several datagrams, from potentially different links, are
processed as a continuation using a single history buffer. This
mode requires the reliable, in-order delivery of datagrams.
Multi-Datagram Mode generally requires somewhat more memory than
Datagram Mode but should obtain better compression. V.44
Multi-Packet Method is described in Annex B.2 of [V44].
3. Individual Link Mode: datagram compression using V.44 Multi-Packet
Method where a separate dictionary is utilized for each virtual
link and several datagrams on a link are processed as a
continuation using a separate history buffer for each link. This
mode requires dictionary and history buffer memory for each
virtual link and requires the reliable, in-order delivery of
datagrams on each link. However, this mode should obtain the best
compression of the 3 modes. V.44 Multi-Packet Method is described
in Annex B.2 of [V44].
1.2 Background of V.44 Data Compression
Pre-standardization, V.44 was known as LZjH. LZjH is similar to the
algorithm described in [LZ78] although it also has aspects that
are similar to the algorithm described in [LZ77]. As such, it
provides the execution speed and low memory requirements of [LZ78]
with compression ratios that are better than [LZ77]. Originally
developed for the satellite industry to compress IP datagrams
independently, it is ideal for the PPP data compression application.
The LZjH algorithm was modified to compress a continuous stream of
data for a modem environment and this modified version is the basis
Heath Internet-Draft [Page 3]
PPP V.44 Compression Protocol September 2002
for Recommendation V.44. LZjH is an adaptive, general purpose,
lossless data compression algorithm. It was selected by the ITU as
the basis for Recommendation V.44 based on its performance across a
wide variety of data types, particularly web HTML's, and its per MIP
and memory utilized compression ratio characteristics (as
compared to other candidate algorithms). Its encoder is extremely
efficient and can encode a redundant string using just a few
additional bits the second time that string is encountered in the
data stream.
To encode a datagram, unmatched characters are encoded as
ordinals and matched redundant strings of characters are encoded as
codewords or string-extension lengths that represent the redundant
strings. To decode a compressed datagram, the ordinals,
codewords, and string-extension lengths are interpreted to re-create
exactly the original datagram.
For V.44 Packet Method, where each datagram is processed
independently and dictionaries are re-initialized between datagrams,
the V.44 algorithm defaults to a dictionary of 1525 entries. This
requires a total of only 16K of dictionary memory for the encoder
and decoder.
For V.44 Multi-Packet Method, where several datagrams are processed
separately but as a continuation (i.e. no re-initialization between
each datagram), the V.44 algorithm defaults to a dictionary of 2048
entries and a history of 10K bytes. This requires a total of about
40K of dictionary and history memory for the encoder and decoder.
The details of V.44 data compression can be found in [V44].
1.3 Intellectual Property Rights
The IETF has been notified of intellectual property rights claimed in
regard to some or all of the specifications contained in this memo.
For more information, consult the online list of claimed rights.
1.4 Specification of Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
memo are to be interpreted as described in [KEY].
2 V.44 Compression Operation
Before any V.44 compressed datagrams may be communicated:
1. PPP MUST reach the Network-Layer Protocol phase.
2. V.44 MUST be negotiated as the primary compression algorithm.
3. The Compression Control Protocol (CCP) MUST reach the Opened
state.
Heath Internet-Draft [Page 4]
PPP V.44 Compression Protocol September 2002
Only datagrams with PPP Protocol field numbers in the range 0x0000 to
0x3FFF, except 0x00FD and 0x00FB, SHALL be passed to the V.44 encoder
to be compressed. Datagrams with PPP Protocol field numbers of
0x00FD or 0x00FB MUST be discarded and not compressed or sent.
Datagrams with PPP Protocol field numbers outside this range MUST NOT
be passed to the V.44 encoder and MUST always be sent uncompressed.
V.44 datagrams are created by the encoding/transmitting processes and
are identified by either an 0x00FD or 0x00FB in the PPP Protocol ID
Field (PPP Protocol field).
The receiving peer of V.44 datagrams SHALL ensure that the data has
not been corrupted and that packetized segments of the V.44 datagram
have not been lost prior to passing the compressed information field
to the V.44 decoder. Data integrity, reliable in-order delivery, and
segmentation/re-assembly methods are beyond the scope of this memo.
The maximum length of the V.44 datagram transmitted over a PPP link
is the same as the maximum length of the Information field of a PPP
encapsulated datagram.
Prior to compression, the uncompressed data begins with the PPP
Protocol ID Field. Protocol-Field-Compression MAY be used on this
value, if it has been successfully negotiated for the link.
The PPP Protocol ID Field is followed by the original Information
field. The length of the uncompressed data field is limited only by
the allowed size of the compressed data field and the higher protocol
layers.
PPP Link Control Protocol packets MUST NOT be sent within V.44
datagrams. PPP Network Control Protocol packets MUST NOT be sent
within V.44 datagrams.
The following sub-sections describe the operation of the three V.44
operating modes for compressing datagrams in the PPP application.
2.1 Datagram Mode
Datagram mode is used when each datagram is to be compressed
independently of other datagrams, i.e. dictionaries are
re-initialized between each datagram, regardless of whether the
stream of datagrams are from a single link or a multi-link bundle.
2.1.1 Attributes
1. Each datagram is compressed and transmitted separately within a
single V.44 Compressed Datagram.
2. Conforms to V.44 Packet Method as described in [V44] section B.1.
3. Each peer requires just a single dictionary for each direction.
4. Does not require a history buffer.
Heath Internet-Draft [Page 5]
PPP V.44 Compression Protocol September 2002
5. Does not require the reliable, in-order delivery of datagrams
between the compression peers.
6. Encoder and decoder dictionaries are re-initialized after
processing each datagram.
2.1.2 Transmit Operation
Datagrams with a PPP Protocol field value in the range 0x0000 to
0x3FFF MAY be passed to the V.44 encoder to be compressed. If
compression is successful, the entire compressed datagram is placed
into the PPP information field and the PPP Protocol field value is
set to 0x00FD to indicate a V.44 compressed datagram. If compression
is not successful, the original datagram is transmitted with its
original value in the PPP Protocol field (uncompressed datagram).
The V.44 algorithm, initialized for Packet Method, will re-initialize
the encoder dictionary after processing each datagram.
2.1.3 Receive Operation
The information field of all valid datagrams with a PPP Protocol
field value of 0x00FD MUST be passed to the V.44 decoder to be
decompressed. The decompression process will yield a datagram with
the original PPP Protocol field and information field. Datagrams
with a PPP Protocol field value in the range 0x0000 to 0x3FFF, but
not 0x00FD, MUST NOT be passed to the decoder since they have not
been compressed.
The V.44 algorithm, initialized for Packet Method, will re-initialize
the decoder dictionary after processing each V.44 datagram.
2.1.4 Dictionary Synchronization
Both encoder and decoder re-initialize the dictionary between each
datagram, ensuring dictionary synchronization under all
circumstances, including out of order delivery and lost datagrams.
2.1.5 V.44 Compressed Datagram Format
Datagrams that are not successfully compressed are sent in their
original form. Refer to [PPP] for possible formats.
The format of V.44 compressed datagrams of type 0x00FD is shown
below. The fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol (0x00FD) | Compressed Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Heath Internet-Draft [Page 6]
PPP V.44 Compression Protocol September 2002
The PPP Protocol field is a 2 octet field, described in [PPP],
that is set to 0x00FD to indicate a V.44 Compressed datagram. This
value MAY be compressed when Protocol-Field-Compression is
negotiated.
The Compressed Data is contained in the PPP Information field and
consists of the compressed original datagram.
2.1.6 Data Expansion
Data expansion is not possible since those datagrams where
compression does not result in a smaller datagram are transmitted in
their original form.
2.1.7 Configuration
Refer to section 3 for the negotiation of V.44 compression on a link
and the configuration of Datagram Mode.
2.2 Multi-Datagram Mode
Multi-datagram mode is used when several datagrams are compressed as
a continuation, using information in earlier datagrams to compress
later datagrams, regardless of whether the stream of datagrams are
from a single link or a multi-link bundle.
2.2.1 Attributes
1. Each datagram is compressed and transmitted separately within a
single V.44 Compressed Datagram even though two or more datagrams
may be compressed before the dictionary is re-initialized.
2. Conforms to V.44 Multi-Packet Method as described in [V44] section
B.2.
3. Each peer requires just a single dictionary and history for each
direction.
4. Requires the reliable, in-order delivery of all original
uncompressed and V.44 compressed datagrams.
2.2.2 Transmit Operation
Datagrams with a PPP Protocol field value in the range 0x0000 to
0x3FFF MUST be passed to the V.44 encoder to be compressed.
If compression is successful, the entire compressed datagram is
placed into the PPP information field and the PPP Protocol field
value is set to 0x00FD to indicate a V.44 compressed datagram.
If compression is not successful, the original datagram is sent with
its original value in the PPP Protocol field (uncompressed datagram).
The encoder also MUST re-initialize its dictionary when compression
is not successful.
Heath Internet-Draft [Page 7]
PPP V.44 Compression Protocol September 2002
2.2.3 Receive Operation
The information field of all datagrams with a PPP Protocol field
value of 0x00FD MUST be passed to the V.44 decoder to be
decompressed. The decompression process will yield a datagram with
the original PPP Protocol field and information field.
Datagrams with a PPP Protocol field value in the range 0x0000 to
0x3FFF, but not 0x00FD, MUST NOT be passed to the decoder since they
have not been compressed. The receiver MUST also re-initialize the
V.44 decoder dictionary when an uncompressed datagram is received.
2.2.4 Dictionary Synchronization
When either the encoder dictionary or history becomes filled, the
V.44 algorithm re-initializes the encoder dictionary (and
history), and inserts a REINIT control code into the compressed data
to indicate to the peer decoder that it MUST re-initialize its
dictionary and history.
When the encoder is unsuccessful in compressing a datagram, the
transmitting entity MUST transmit the original datagram and MUST
re-initialize the encoder dictionary and history.
When the peer receiving entity receives a datagram that does not
have a 0x00FD value in its PPP Protocol field, i.e. it is an original
uncompressed datagram, it MUST NOT pass that datagram to the V.44
decoder and it MUST re-initializes the decoder dictionary and
history.
2.2.5 V.44 Compressed Datagram Format
Datagrams that are not successfully compressed are sent in their
original form. Refer to [PPP] for possible formats.
The format of V.44 compressed datagrams of type 0x00FD is shown
below. The fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol (0x00FD) | Compressed Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The PPP Protocol field is a 2 octet field, described in [PPP],
that is set to 0x00FD to indicate a V.44 compressed datagram. This
value MAY be compressed when Protocol-Field-Compression is
negotiated.
The Compressed Data is contained in the PPP Information field that
consists of the compressed original datagram.
Heath Internet-Draft [Page 8]
PPP V.44 Compression Protocol September 2002
2.2.6 Data Expansion
Data expansion is not possible since those datagrams where
compression does not result in a smaller datagram are transmitted in
their original form.
2.2.7 Configuration
Refer to section 3 for the negotiation of V.44 compression on a link
and the configuration of Multi-Datagram Mode.
2.3 Individual Link Mode
Individual link mode is used when each individual link of a
multi-link bundle has a separate compression context for some or all
links and several datagrams on a link are compressed as a
continuation, using information in earlier datagrams to compress
later datagrams.
2.3.1 Attributes
1. Each datagram is compressed and transmitted separately within a
single V.44 Compressed Datagram even though two or more datagrams
on a link may be compressed before the dictionary is
re-initialized.
2. Conforms to V.44 Multi-Packet Method as described in [V44] section
B.2.
3. Each peer requires a separate dictionary and history for each
separate link for each direction.
4. Requires the reliable, in-order delivery on each link of all V.44
individual link compressed datagrams.
2.3.2 Transmit Operation
All datagrams, for links where V.44 compression is active, with a PPP
Protocol field value in the range 0x0000 to 0x3FFF MUST be passed to
the V.44 encoder to be compressed. The transmitting entity MUST
ensure that the dictionary used by the encoder to compress the
datagram corresponds to the correct link.
An 0x00FB is placed into the PPP Protocol field to indicate a V.44
individual link compressed datagram. The dictionary number is placed
into the Dictionary ID sub-field of the V.44 Control field.
If compression is successful, the entire compressed datagram is
placed into the PPP information field and the Compressed Bit in the
V.44 Control field is set to a 1.
If compression is not successful, the original datagram, including
the PPP Protocol field, is placed into the PPP information field and
the Compressed Bit in V.44 Control field is set to a 0. The
Heath Internet-Draft [Page 9]
PPP V.44 Compression Protocol September 2002
transmitting entity MUST also re-initialize the encoder dictionary
and history corresponding to that datagram's link when compression is
not successful.
2.3.3 Receive Operation
Datagrams with a PPP Protocol field value of 0x00FD are invalid and
MUST be discarded.
Datagrams with a PPP Protocol field value in the range 0x0000 to
0x3FFF, but not 0x00FB, are assumed to correspond to links where V.44
compression is not active and MUST NOT be passed to the V.44 decoder
by the receiving entity.
Datagrams with a PPP Protocol field value of 0x00FB are processed by
the receiving entity, depending upon the value of the Compressed Bit
in the V.44 Control field, as follows:
- if the Compressed Bit is a 1, the receiving entity uses the
Dictionary ID sub-field to access the corresponding dictionary and
passes the PPP information field to the V.44 decoder for
decompression.
- if the Compressed Bit is a 0, the receiving entity forwards the
datagram located in the PPP Information field without passing it to
V.44 decoder. The receiver also MUST use the Dictionary ID
sub-field to access and re-initialize the corresponding decoder
dictionary and history.
2.3.4 Dictionary Synchronization
When either the encoder dictionary or history, corresponding to the
datagrams link, becomes filled, the V.44 algorithm re-initializes
that encoder dictionary (and history), and inserts a REINIT control
code within the compressed data to indicate to the peer decoder that
it MUST re-initialize the dictionary and history corresponding to the
dictionary number in the Dictionary ID sub-field of the V.44 Control
field.
When the encoder is unsuccessful in compressing a datagram, the
original datagram is placed into the PPP Information field of the
V.44 Individual Link Compressed Datagram (PPP Protocol field of
0x00FB) and the dictionary and history corresponding to the
uncompressed datagrams link are re-initialized. Also a 0 value is
placed into the Compressed Bit in the V.44 Control field.
When the peer receiving entity receives a V.44 Individual Link
Compressed Datagram (i.e. an 0x00FB value in its PPP Protocol field)
with a 0 bit in the Compressed Bit in the V.44 Control field it MUST
NOT pass that datagram to the V.44 decoder. It MUST re-initializes
the decoder dictionary and history corresponding to the value in the
Heath Internet-Draft [Page 10]
PPP V.44 Compression Protocol September 2002
Dictionary ID sub-field.
2.3.5 Individual Link Compressed Datagram Format
Datagrams for links where V.44 compression not is active are
transmitted in their original form. Refer to [PPP] for possible
formats.
When using Individual Link Compression, all datagrams for a link
where V.44 compression is active MUST be transmitted using the format
of the Individual Link Compressed Datagram regardless of whether the
PPP Information field contains a V.44 compressed datagram or an
original datagram.
The format of V.44 Individual Link Compressed Datagrams of type
0x00FB depends upon the number of separate links, i.e. dictionaries,
that are negotiated between the V.44 compression peers.
2.3.5.1 Number of Dictionaries is 128 or Less
If the number of negotiated dictionaries is 128 or less then the V.44
Control field is one byte and the format is as shown below. The
fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol | V.44 | PPP
| (0x00FB) | Control | Information..
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The PPP Protocol field is a 2 octet field, described in [PPP],
that is set to 0x00FB to indicate a V.44 Individual Link Compressed
Datagram. This value MAY be compressed when
Protocol-Field-Compression is negotiated.
The format of the 8 bit V.44 Control field is:
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| Dictionary ID | C |
+---+---+---+---+---+---+---+---+
where:
- Dictionary ID (0 - 127) corresponds to a specific link and is
used to ensure the V.44 encoder and decoder are using the same
dictionary.
- C is the Compressed Bit indicating whether the PPP Information
contains a compressed datagram (C = 1) or an original datagram
(C = 0).
Heath Internet-Draft [Page 11]
PPP V.44 Compression Protocol September 2002
The PPP Information field contains either a compressed datagram or an
original datagram, depending upon the setting of the Compressed Bit
in the V.44 Control field.
2.3.5.2 Number of Dictionaries is More Than 128
If the number of negotiated dictionaries is 129 through 32K then the
V.44 Control field is two bytes and the format is as shown below.
The fields are transmitted from left to right.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol (0x00FB) | V.44 Control |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Information ..............
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The PPP Protocol field is a 2 octet field, described in [PPP],
that is set to 0x00FB to indicate an V.44 Individual Link Compressed
Datagram. This value MAY be compressed when
Protocol-Field-Compression is negotiated.
The format of the two octet V.44 Control field is:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
| Dictionary ID | C |
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
where:
- Dictionary ID corresponds to a specific link and is used to
ensure the V.44 encoder and decoder are using the same
dictionary.
- C is the Compressed Bit indicating whether the PPP Information
contains a compressed datagram (C = 1) or an original datagram
(C = 0).
The PPP Information field contains either a compressed datagram or an
original datagram, depending upon the setting of the Compressed Bit
in the V.44 Control field.
2.3.6 Data Expansion
The total length of datagrams that do not compress is expanded by up
to 4 bytes by the addition of a PPP Protocol field and the V.44
Control field. In addition, the PPP Information field is expanded by
up to 2 bytes by including both the original PPP Protocol field and
the original PPP Information field.
Heath Internet-Draft [Page 12]
PPP V.44 Compression Protocol September 2002
Thus, when using Individual Link Mode, both peers MUST negotiate a
Maximum Receive Unit, on all links where V.44 compression is used,
that is sufficiently larger than a normal maximum length datagram to
account for this expansion.
2.3.7 Configuration
Refer to Section 3 for the negotiation of V.44 compression on a link
and the configuration of V.44 Individual Link Mode.
3 V.44 Configuration Option
The V.44 Configuration Option of the CCP negotiates the use of V.44
compression between two peers. If a common compression algorithm can
not be negotiated then no compression is used.
All implementations MUST support the default values.
A summary of the V.44 Configuration Option format is shown below.
The fields are transmitted from left to right.
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 | Mode/Dictionary Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| *Dictionary Size | *History Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
27 (i.e. V.44 Compression)
Length
4, 6, or 8
Mode/Dictionary Count
The Mode/Dictionary Count field is two octets, most significant
octet first, and specifies the V.44 Compression Mode and the
number of individual link dictionaries proposed (Individual Link
Mode only). Mode selection values are:
0 = Datagram Mode (one dictionary and no history)
1 = Multi-Datagram Mode (one dictionary with history)
2 or more = Individual Link Mode and proposed number of
dictionaries each with a corresponding history
Heath Internet-Draft [Page 13]
PPP V.44 Compression Protocol September 2002
Dictionary Size
The Dictionary Size field is optional. If it is not present then
the History Length field MUST NOT be present either. If present,
the Dictionary Size field is two octets and contains the number of
proposed entries in the dictionary. The range is from 256 to
16,384 and the default depends upon the mode proposed as follows:
- if Datagram Mode is proposed the default is 1525.
- otherwise the default is 1024.
A peer is not required to propose as large a dictionary size as an
implementation indicates that it can accept. However, it should
be noted that resources MUST be allocated in a peer to support the
number of dictionary entries proposed by that peer in this field.
History Length
The History Length field is optional and, if present, MUST be
ignored if Datagram Mode is proposed in the Mode/Dictionary Count
field. The History Length field is two octets and contains the
proposed length of the history. The range is from 512 to 65,535.
The default is 3 times the Dictionary Size to be consistent with
[V44] Annex B.2. However, for best compression it should be 4 or
more times the Dictionary Size. The History Length MUST NOT be
less than twice the Dictionary Size.
3.1 Negotiation Rules
1. If either peer proposes Datagram Mode, then Datagram Mode is
used.
2. If neither peer proposes Datagram Mode, and either peer
proposes Multi-Datagram Mode, then Multi-Datagram Mode is used.
3. If both peers propose Individual Link Mode, then Individual
Link Mode is used. The number of dictionaries selected is the
lower of the two numbers proposed by the peers.
4. If the Dictionary Size field is not present from either peer,
then the default dictionary size is selected.
5. If the Dictionary Size field is present from both peers, then
the dictionary size selected is the lower of the two numbers
proposed by the peers.
6. If the History Length field is not present from either peer,
then the default history length is selected (i.e. 3 times the
dictionary size).
7. If the History Length field is present from both peers, then
the history length selected is the lower of the two numbers
proposed by the peers (but not less than 2 times the dictionary
size).
Heath Internet-Draft [Page 14]
PPP V.44 Compression Protocol September 2002
4 V.44 Compressed Data
The PPP information field MUST contain only one datagram in
compressed form. The length of this field is always an integer
number of octets. There MUST BE only one FLUSH control code per
block of compressed data.
The format of the PPP information field is one block of compressed
data as defined in ITU-T Recommendation V.44 and its Annex B. ITU-T
Recommendation V.44 defines the implementation of the core elements
of the V.44 algorithm, its encoder and decoder. Annex B of the
recommendation defines the implementation of the V.44 algorithm in
packet networks or applications such as PPP.
4.1 Padding
The PPP Information field of a V.44 compressed datagram always ends
with a FLUSH control code that is inserted by the V.44 encoder and is
used to signal the end of compressed data. The V.44 encoder also
adds 1 to 7 additional bits to obtain octet alignment, if necessary.
Thus, any full octets beyond the octet containing the remaining bits
of the FLUSH control code are considered padding that is not created
or used by the V.44 algorithm.
5 Datagram Integrity
Due to the very nature of data compression, the V.44 decoder is not
capable of determining that a datagram it has received for
decompression is corrupt or has otherwise been changed since it was
generated by its peer encoder. Thus, it is highly recommended that a
mechanism, or mechanisms, be implemented at the PPP link layer to
ensure the integrity of datagrams that are received by a PPP peer.
Mechanisms such as a two octet Cyclic Redundancy Check are commonly
used for this purpose. However, the choice of mechanisms and their
definition are beyond the scope of this memo.
A PPP peer that detects that the integrity of a received datagram has
been compromised MUST NOT pass the datagram (if a V.44 Compressed or
Individual Link Compressed Datagram) to the V.44 decoder. Further,
if either Multi-Datagram or Individual Link mode is being used, the
peer SHALL assume that dictionary synchronization has been or will be
lost and SHOULD terminate the link or use the mechanisms defined in
[CCP] to indicate the loss of dictionary synchronization.
6 Reliable and In-order Delivery of Datagrams
The Multi-Datagram and Individual Link modes of using V.44
compression in PPP require the reliable and in-order delivery of both
original (uncompressed) and V.44 compressed datagrams. The
mechanisms utilized by the PPP peers to ensure the reliable and
in-order delivery of datagrams are beyond the scope of this memo.
Heath Internet-Draft [Page 15]
PPP V.44 Compression Protocol September 2002
However, a reliable transport, such as LAPB [PRT], MUST be used.
A PPP peer that detects a lost or out-of-order datagram, while using
Multi-Datagram or Individual Link mode, MUST NOT pass this or
subsequent compressed datagrams to the V.44 decoder. Further, the
peer SHALL assume that dictionary synchronization has been or will be
lost and SHOULD terminate the link or use the mechanisms defined in
[CCP] to indicate the loss of dictionary synchronization.
7 Security Considerations
Security issues are not discussed in this memo. The use of the V.44
compression algorithm with PPP is not believed to have any different
security implications than the use of other compression algorithms.
Note that, even though a compression algorithm obscures data on the
wire, it does not do so in a secure fashion! Any eavesdropper can
remove the obscurity with a relatively trivial amount of effort.
8 IANA Considerations
This memo introduces no new name or numbering spaces to be managed
by IANA. Any numbers from existing IANA numbering spaces required
by this memo have already been allocated.
9 References
[PPP] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)",
STD 51, RFC 1661, Daydreamer, July 1994.
[CCP] Rand, D., "The PPP Compression Control Protocol (CCP)", RFC
1962, July 1996.
[V44] ITU Telecommunication Standardization Sector (ITU-T)
Recommendation V.44 "Data Compression Procedures", November
2000.
[LZ77] Lempel, A., and Ziv, J., "A Universal Algorithm for
Sequential Data Compression", IEEE Transactions On
Information Theory, Vol. IT-23, No. 3, May 1977.
[LZ78] Lempel, A., and Ziv, J., "Compression of Individual
Sequences via Variable Rate Coding", IEEE Transactions On
Information Theory, Vol. IT-24, No. 5, Sep 1978.
[KEY] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[PRT] Rand, D., "PPP Reliable Transmission", RFC 1663, Novell,
July 1994.
Heath Internet-Draft [Page 16]
PPP V.44 Compression Protocol September 2002
10 Authors' Addresses
Jeff Heath
Hughes Network Systems
10450 Pacific Center Court
San Diego, CA 92121
Phone: 858-452-4826
Fax: 858-597-8979
EMail: jheath@hns.com
John Border
Hughes Network Systems
11717 Exploration Lane
Germantown, MD 20876
Phone: 301-548-6819
Fax: 301-548-1196
EMail: border@hns.com
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.
This Internet-Draft expires on March 13, 2003.
Heath Internet-Draft [Page 17]