rfc1967.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,012 行 · 第 1/3 页
TXT
1,012 行
Network Working Group K. Schneider
Request for Comments: 1967 ADTRAN, Inc.
Category: Informational R. Friend
Stac Technology
August 1996
PPP LZS-DCP Compression Protocol (LZS-DCP)
Status of This Memo
This memo provides information for the Internet community. This memo
does not specify an Internet standard of any kind. Distribution of
this memo is unlimited.
Abstract
The Point-to-Point Protocol (PPP) [1] provides a standard method for
transporting multi-protocol datagrams over point-to-point links.
The PPP Compression Control Protocol [2] provides a method to
negotiate and utilize compression protocols over PPP encapsulated
links.
This document describes the use of the Stac LZS data compression
algorithm for compressing PPP encapsulated packets, using a DCP
header [6]. This protocol is an enhanced version of the non-DCP
(Option 17) PPP Stac LZS compression protocol [5], and will be
referred to as the LZS-DCP Compression Protocol.
Table of Contents
1. Introduction .......................................... 2
1.1 Licensing ....................................... 3
1.2 Specification of Requirements ................... 3
1.3 Terminology ..................................... 3
2. LZS-DCP Packets ....................................... 4
2.1 Example LZS-DCP Packets ......................... 5
2.2 Padding ......................................... 6
2.3 Reliabliity and Squencing ....................... 6
2.4 Data Expansion .................................. 6
2.5 Packet Format ................................... 7
2.5.1 PPP Protocol .................................... 7
2.5.2 DCP-Header ...................................... 8
2.5.3 History Number .................................. 9
2.5.4 Sequence Number ................................. 9
2.5.5 Data ............................................ 10
2.5.6 Longitudinal Check Byte ......................... 10
Schneider & Friend Informational [Page 1]
RFC 1967 LZS-DCP August 1996
2.5.7 Compressed Data ................................. 11
3. Sending Compressed Datagrams ..................... 11
3.1 Transmitter Process ............................. 11
3.2 Receiver Process ................................ 12
3.3 History Maintenance ............................. 13
3.4 Anti-Expansion Mechanism ........................ 14
3.5 History Resynchronization Mechanism ............. 14
4. Configuration Option Format ........................... 15
SECURITY CONSIDERATIONS ...................................... 16
REFERENCES ................................................... 17
CHAIR'S ADDRESS .............................................. 17
AUTHORS' ADDRESSES ........................................... 18
1. Introduction
Starting with a sliding window compression history, similar to LZ1
[3], Stac Electronics developed a compression algorithm identified as
Stac LZS. A PPP Compression Protocol for this compression algorithm
was developed and published [5]. That protocol was taken as a basis
for data compression work done in TIA for DSU/CSUs. As a part of
that standardization process, the concept of a portable Data
Compression Protocol (DCP) was introduced [6]. The resulting
(pending) TIA/EIA-655 standard uses this LZS-DCP protocol, which
ncorporates DCP into a PPP compression protocol for Stac LZS. A very
similar protocol is currently out for ballot in the Frame Relay
Forum. (It is identical except for the size of the history number
field.)
This publication of the LZS-DCP compression protocol is in the
interest of providing a common compression protocol for Stac-LZS, and
to provide features that are not available with the LZS compression
protocol [5]. Some of the differences between the LZS-DCP and LZS
(compression type 17) protocols are as follows:
1) LZS-DCP provides an option which allows packets containing
uncompressible data to be transferred without requiring the
compression history to be cleared, potentially allowing a
higher compression ratio. A bit is included in the DCP
header to indicate whether the packet contains compressed or
uncompressed data.
2) LZS-DCP uses reset request and acknowledgment bits in the DCP
header that is included on each packet rather than using
CCP's reset request and acknowledge packets, which may result
in fewer discarded data packets during the REQ/ACK handshake.
3) LZS-DCP allows simultaneous use of both sequence numbers and
the LCB for compression error detection.
Schneider & Friend Informational [Page 2]
RFC 1967 LZS-DCP August 1996
The Stac LZS compression algorithm supports both single and multiple
compression histories. A single compression history will require the
minimum amount of memory to implement, but may not provide as much
compression as a multiple history implementation.
Often, many streams of information are interleaved over the same
physical link. Each virtual connection will transmit data that is
independent of other virtual connections. Using multiple compression
histories can improve the compression ratio of a communication link
by associating separate compression histories with separate virtual
links of communication.
1.1. Licensing
Source and object licenses are available on a non-discriminatory
basis. Hardware implementations are also available. Contact Stac
Electronics (hardware.sales@stac.com) for further information.
1.2. Specification of Requirements
In this document, several words are used to signify the requirements
of the specification. These words are often capitalized.
MUST This word, or the adjective "required", means that the
definition is an absolute requirement of the specification.
MUST NOT This phrase means that the definition is an absolute
prohibition of the specification.
SHOULD This word, or the adjective "recommended", means that there
may exist valid reasons in particular circumstances to
ignore this item, but the full implications MUST be
understood and carefully weighed before choosing a
different course.
MAY This word, or the adjective "optional", means that this
item is one of an allowed set of alternatives. An
implementation which does not include this option MUST be
prepared to interoperate with another implementation which
does include the option.
1.3. Terminology
This document frequently uses the following terms:
datagram The unit of transmission in the network layer (such as IP).
A datagram may be encapsulated in one or more packets
passed to the data link layer.
Schneider & Friend Informational [Page 3]
RFC 1967 LZS-DCP August 1996
frame The unit of transmission at the data link layer. A frame
may include a header and/or a trailer, along with some
number of units of data.
packet The basic unit of encapsulation, which is passed across the
interface between the network layer and the data link
layer. A packet is usually mapped to a frame; the
exceptions are when data link layer fragmentation is being
performed, or when multiple packets are incorporated into a
single frame.
peer The other end of the point-to-point link.
silently discard
This means the implementation discards the packet without
further processing. The implementation SHOULD provide the
capability of logging the error, including the contents of
the silently discarded packet, and SHOULD record the event
in a statistics counter.
2. LZS-DCP Packets
Before any LZS-DCP packets are communicated, PPP MUST reach the
Network-Layer Protocol phase, and the CCP Control Protocol MUST reach
the Opened state.
Exactly one LZS-DCP datagram is encapsulated in the PPP Information
field, where the PPP Protocol field indicates type hex 00FD
(compressed datagram) or type hex 00FB (Individual link compressed
datagram). Type hex 00FD is used when compression is negotiated over
a single physical link or when compression is negotiated over a
single bundle consisting of multiple physical links. Type hex 00FB
is used when compression is negotiated separately over individual
physical links to the same destination. For more information, please
refer to PPP Compression Control Protocol.
The maximum length of the LZS-DCP datagram transmitted over a PPP
link is the same as the maximum length of the Information field of a
PPP encapsulated packet.
Prior to compression, the uncompressed data begins with the PPP
Protocol ID Field. Protocol-Field-Compression MAY be used on this
value, if 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
Schneider & Friend Informational [Page 4]
RFC 1967 LZS-DCP August 1996
layers.
PPP Link Control Protocol packets MUST NOT be sent within LZS-DCP
packets. PPP Network Control Protocol packets MUST NOT be sent
within LZS-DCP packets.
2.1. Example LZS-DCP packets (shown using PPP in HDLC-like framing,
using Address-and-Control-Field-Compression and Protocol-Field-
Compression. - RFC 1662 )
Compressed Packet:
PPP | | PPP
PID | HDR SEQ DATA LCB | FCS
+-----+-----+-----+---................---+-----+-----+
| F D | C 0 | n n | Compressed Data | y y | z z |
+-----+-----+-----+---................---+-----+-----+
/ \
/ Compression \
/ Transformation \
/ \
/PPP \
/ PID PPP Information Field \
+-----+----....................----+
| x x | upper layer protocol data |
+-----+----....................----+
Uncompressed Packet
PPP | | PPP
PID | HDR SEQ DATA | FCS
+-----+-----+-----+---................---+-----+
| F D | 8 0 | n n | Un-compressed Data | z z |
+-----+-----+-----+---................---+-----+
/ \
/ \
/ \
/ \
/PPP \
/ PID PPP Information Field \
+-----+----....................----+
| x x | upper layer protocol data |
+-----+----....................----+
where: C0 and 80 are representative LZS-DCP headers; nn, xx, yy,
and zz are values determined by the packet's context.
Schneider & Friend Informational [Page 5]
RFC 1967 LZS-DCP August 1996
2.2. Padding
PPP padding is not allowed in a LZS-DCP packet. However, on
compressed packets, padding may be accomplished by extending the
data field with zeros following the last compressed data octet
(see Section 2.1.1). This is referred to as LZS Padding. The
LCB, if present, MUST be the octet preceding the frame CRC.
2.3. Reliability and Sequencing
When no Compression History is kept, the algorithm does not depend
on a reliable link, and does not require that packets be delivered
in sequence. However, per packet compression results in a lower
compression ratio than it could be on a stream.
Some reasons for clearing the history on a per packet basis
include:
- The link has a high error rate.
- The resources of the transmitter or receiver limit the ability
to maintain a compression history between packets.
When one or more compression Histories are negotiated, the packet
sequence MUST be preserved within specific History Numbers. There
is no sequence requirement between different History Numbers.
When using one or more compression histories, the implementation
MUST rely on either a lower layer reliable link protocol (RFC
1663), use a technique to keep the compressor and decompressor
histories in synchronization, or both. The LZS-DCP protocol
provides the Request-Req and Request-Ack bits in the DCP header
for this purpose. Since this synchronization is done on a per
history basis, the history number fields are required to be the
same size in both directions of the link. Any data contained in
the packet is processed after the signaling bits are processed.
The transmitter MAY clear a Compression History at any time.
The transmitter MUST clear a history after a receiving a Reset-
Request for a given History Number.
2.4. Data Expansion
The maximum expansion of Stac LZS is 12.5%.
A Maximum Receive Unit (MRU) MAY be negotiated that is 12.5%
larger than the size of a normal packet. Then, packets can always
be sent compressed regardless of expansion.
Schneider & Friend Informational [Page 6]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?