RFC 1993
PPP Gandalf FZA Compression Protocol
PPP Gandalf FZA Compression Protocol π
Okay bestie, let's start with the title block β¨. This is RFC 1993, written by A. Barbir (Gandalf), D. Carr (Newbridge), and W. Simpson (DayDreamer). It's Informational and dated August 1996. There's no Obsoletes or Updates line in the header, so it doesn't replace or change any other RFC π¦.
Status of This Memo π
This memo gives information to the Internet community π. It doesn't specify an Internet standard. Distribution is unlimited, so share it with everyone π.
Abstract π§
The Point-to-Point Protocol (PPP) [1] gives us a standard way to carry multi-protocol datagrams over point-to-point links π₯.
The PPP Compression Control Protocol [2] is how two sides negotiate and use compression protocols on PPP-encapsulated links π .
This document explains how to use the Gandalf FZA data compression algorithm [3] to compress PPP-encapsulated packets π«Ά.
Table of Contents π
1. Introduction .......................................... 1
1.1 Licensing ....................................... 1
2. FZA Packets ........................................... 2
2.1 Packet Format ................................... 3
3. Configuration Option Format ........................... 4
SECURITY CONSIDERATIONS ...................................... 4
ACKNOWLEDGEMENTS ............................................. 5
REFERENCES ................................................... 5
CONTACTS ..................................................... 5
1. Introduction β¨
Okay so FZA is a high-performance LZ [4] derivative π₯. It maxes out compression by spending more memory and CPU. The good news is you can tune how much compression you get based on how much CPU and memory you have available π.
Multiple PPP packets can be squished into one compressed frame. A single PPP packet can also be spread across multiple frames π¦.
1.1. Licensing πΌ
Source and object licenses are available on a non-discriminatory basis, either for a royalty or for a fixed price. Patent indemnity is included with the license πΈ.
2. FZA Packets π¦
Before any FZA packets can be communicated, PPP has to reach the Network-Layer Protocol phase π§.
Once the Compression Control Protocol (CCP) reaches the Opened state, and FZA is negotiated as the primary compression algorithm, the PPP Protocol field shows either type hex 00FB (link compressed datagram) or type hex 00FD (compressed datagram) π .
The maximum length of an FZA datagram sent over a PPP link is the same as the maximum length of the Information field of a PPP-encapsulated packet π.
Padding
FZA packets need the Self-Describing-Padding Configuration Option [5] to be negotiated during LCP Link Establishment π.
Reliability and Sequencing
FZA expects a reliable link, as described in "PPP Reliable Transmission" [6] π«Ά.
FZA also expects packets to be delivered in sequence π₯.
Data Expansion
The maximum expansion of Gandalf FZA is 2:1. Typical expansion on pre-compressed data is 1.01:1, which is pretty chill π. Expanded data is still sent so the integrity of the compression history stays intact π.
When the expansion goes over the size of the peer's Maximum Receive Unit for the link, the expanded packet gets sent in multiple PPP frames. The compressed data includes an indication of where the original packet ends β¨.
2.1. Packet Format π¦
Here's a summary of the Gandalf FZA packet format. The fields are sent from left to right π.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol | Compressed Data ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
PPP Protocol
This is one or two octets. The PPP Protocol field is explained in the Point-to-Point Protocol Encapsulation [1] π§.
Type 00FD is used when the PPP multilink protocol isn't in use, and/or when it's "inside" a multilink bundle. Type 00FB is used "outside" multilink, so each individual link in a multilink bundle can compress on its own π₯. This value MAY be compressed when LCP Protocol-Field-Compression is negotiated π .
Compressed Data
This is one or more octets, holding the compressed PPP-encapsulated packet(s) πΈ.
Before compression, the uncompressed data starts with the original PPP Protocol number. This value MAY be compressed when LCP Protocol-Field-Compression is negotiated π.
The original Protocol number is followed by the original Information field. The length of the original Information field before compression MUST NOT exceed the link Maximum Receive Unit (MRU) π.
PPP Link Control Protocol packets MUST NOT be sent within compressed data π.
3. Configuration Option Format π
Description
The CCP Gandalf-FZA Configuration Option is how you negotiate using Gandalf FZA on the link. By default, or if there's ultimate disagreement, no compression is used π«Ά.
Here's a summary of the Gandalf-FZA Configuration Option format. Again, the fields go from left to right π¦.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | History | Version ...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
The value is 19 π.
Length
The value is >= 3 π.
History
This is one octet. The History field gives the maximum size of the compression history as a power of 2. Valid values run from 12 to 15 β¨.
The peer is not required to send as many histories as the implementation says it can accept π§.
Version
This is zero or more octets of extra configuration information. Any implementation that doesn't implement this information MUST send a Configure-Nak without this field π₯.
The Version field is not present for FZA π .
The Version field is a single octet, and it holds the value 1 for FZA+ πΈ.
Security Considerations π
Security issues are not discussed in this memo π¬. (Yes, really. Be careful out there, bestie π.)
Acknowledgements π
FZA was developed by David Carr while he was at Gandalf Data Limited π«Ά.
FZA+ was an improvement by Abbie Barbir π.
Editting and formatting was done by William Simpson π.
References π
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, DayDreamer, July 1994.
[2] Rand, D., "The PPP Compression Control Protocol (CCP)", RFC 1962, Novell, June 1996.
[3] Barbir, A., "A New Fast Approximate Arithmetic Coder", Proceedings of IEEE 28th SouthEastern Symposium on Systems Theory (SSST), Baton Rouge, Louisiana, pages 482-486, April 1996.
[4] Lempel, A. and Ziv, J., "A Universal Algorithm for Sequential Data Compression", IEEE Transactions On Information Theory, Vol. IT-23, No. 3, May 1977.
[5] Simpson, W., Editor, "PPP LCP Extensions", RFC 1570, DayDreamer, January 1994.
[6] Rand, D., "PPP Reliable Transmission", RFC 1663, Novell, July 1994.
Contacts π
Licensing queries should go to:
Michael Williams
Director of Business Development
Gandalf Data Limited
130 Colonnade Road South
Napean, Ontario, Canada K2E 7M4
(613) 274-6500 ext 6575
Comments should be submitted to the ietf-ppp@merit.edu mailing list π¬.
This document was reviewed by the Point-to-Point Protocol Working Group of the Internet Engineering Task Force (IETF) πΈ.
The working group can be contacted through the current chair:
Karl Fox
Ascend Communications
3518 Riverside Drive, Suite 101
Columbus, Ohio 43221
karl@MorningStar.com
karl@Ascend.com
Questions about this memo can also go to:
Abdulkader Barbir
Gandalf Data Limited
130 Colonnade Road South
Napean, Ontario, Canada K2E 7M4
(613) 274-6500 ext 8550
abarbir@gandalf.ca
Questions about this memo should not be directed to:
Dave Carr
Newbridge Networks Corporation
600 March Road
P.O. Box 13600
Kanata, Ontario, Canada, K2K 2E6
dcarr@newbridge.com
William Allen Simpson
DayDreamer
Computer Systems Consulting Services
1384 Fontaine
Madison Heights, Michigan 48071
wsimpson@UMich.edu
wsimpson@GreenDragon.com (preferred)
π¦ where this page comes from
- ietf: rfc1993 1996-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms