Network Working Group D. Rand
Request for Comments: 1962 Novell
Category: Standards Track June 1996
The PPP Compression Control Protocol (CCP)
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.
Abstract
The Point-to-Point Protocol (PPP) [1] provides a standard method for
transporting multi-protocol datagrams over point-to-point links. PPP
also defines an extensible Link Control Protocol.
This document defines a method for negotiating data compression over
PPP links.
Table of Contents
1. Introduction .......................................... 1
2. Compression Control Protocol (CCP) .................... 2
2.1 Sending Compressed Datagrams .................... 3
3. Additional Packets .................................... 4
3.1 Reset-Request and Reset-Ack ..................... 4
4. CCP Configuration Options ............................. 5
4.1 Proprietary Compression OUI ..................... 7
4.2 Other Compression Types ......................... 8
SECURITY CONSIDERATIONS ...................................... 9
REFERENCES ................................................... 9
ACKNOWLEDGEMENTS ............................................. 9
CHAIR'S ADDRESS .............................................. 9
AUTHOR'S ADDRESS ............................................. 9
1. Introduction
In order to establish communications over a PPP link, each end of the
link must first send LCP packets to configure and test the data link
during Link Establishment phase. After the link has been
established, optional facilities may be negotiated as needed.
Rand Standards Track [Page 1]
RFC 1962 PPP Compression June 1996
One such facility is data compression. A wide variety of compression
methods may be negotiated, although typically only one method is used
in each direction of the link.
A different compression algorithm may be negotiated in each
direction, for speed, cost, memory or other considerations, or only
one direction may be compressed.
2. Compression Control Protocol (CCP)
The Compression Control Protocol (CCP) is responsible for
configuring, enabling, and disabling data compression algorithms on
both ends of the point-to-point link. It is also used to signal a
failure of the compression/decompression mechanism in a reliable
manner.
CCP uses the same packet exchange mechanism as the Link Control
Protocol (LCP). CCP packets may not be exchanged until PPP has
reached the Network-Layer Protocol phase. CCP packets received
before this phase is reached should be silently discarded.
The Compression Control Protocol is exactly the same as the Link
Control Protocol [1] with the following exceptions:
Frame Modifications
The packet may utilize any modifications to the basic frame format
which have been negotiated during the Link Establishment phase.
Data Link Layer Protocol Field
Exactly one CCP packet is encapsulated in the PPP Information
field, where the PPP Protocol field indicates type hex 80FD
(Compression Control Protocol).
When individual link data compression is used in a multiple link
connection to a single destination, the PPP Protocol field
indicates type hex 80FB (Individual link Compression Control
Protocol).
Code field
In addition to Codes 1 through 7 (Configure-Request, Configure-
Ack, Configure-Nak, Configure-Reject, Terminate-Request,
Terminate-Ack and Code-Reject), two additional Codes 14 and 15
(Reset-Request and Reset-Ack) are defined for this protocol.
Other Codes should be treated as unrecognized and should result in
Code-Rejects.
Rand Standards Track [Page 2]
RFC 1962 PPP Compression June 1996
Timeouts
CCP packets may not be exchanged until PPP has reached the
Network-Layer Protocol phase. An implementation should be
prepared to wait for Authentication and Link Quality Determination
to finish before timing out waiting for a Configure-Ack or other