RFC 1975
PPP Magnalink Variable Resource Compression
RFC 1975: PPP Magnalink Variable Resource Compression π
Okay bestie, the title block first β¨ This is RFC 1975, called PPP Magnalink Variable Resource Compression. It came from the Network Working Group and was written by D. Schremp, J. Black, and J. Weiss, all at Magnalink. It's Informational and dated August 1996. It doesn't list anything it obsoletes or updates π
Status of This Memo π
This memo gives information to the Internet community πΈ It does not set any kind of Internet standard, and it can be shared without limits π¦
Abstract β¨
The Point-to-Point Protocol (PPP) [1] is the go-to standard for wrapping multiple protocol datagrams up and sending them over point-to-point links π§ The PPP Compression Control Protocol [2] is how two sides agree on data compression over a PPP link π€
The Magnalink Variable Resource Compression Algorithm (MVRCA) gives you a whole range of compression implementations that can still talk to each other π How well each one performs depends on how much CPU and memory is available π₯
Introduction π
Okay so the Magnalink variable resource compression algorithm is basically a family of compression solutions that all play nice together π«Ά Their performance depends on how much CPU and memory you have. It's giving tailored, because it can be fitted to the system it runs on without breaking interoperability π
Licensing π
Source licenses are available on a non-discriminatory basis β¨
If you want to evaluate it under NDA and licensing, the contact person is:
Director of OEM Sales
Magnalink Communications Division
Telco Systems Inc.
63 Nahatan Street
Norwood, Mass. 02062
Phone: (617) 255-9400, Fax: (617) 255-5885
oem@magna.telco.com
MVRCA Packets π¦
Before any MVRCA packets may be communicated, PPP must reach the Network-Layer Protocol phase[1], and the Compression Control Protocol must reach the Opened state π
The text of a Packet to be compressed starts with the PPP Protocol number. And if Protocol-Field-Compression was negotiated, the Packet header (PPP Protocol number included) may already be compressed π
Reliability and Sequencing π₯
MVRCA packets may be sent over an unreliable link, or over a reliable link described in "PPP Reliable Transmission"[3], as long as that reliable link was negotiated π If frames arrive out of order or one gets dropped, the decompressor notices and asks for a resynchronization using the Reset-Req and Reset-Ack types of the CCP[2], aimed at the compressor for the affected context π
Data Expansion π
Compression can occasionally make a data packet bigger, and that's the tea β MVRCA doesn't have expansion, though, because any data that would grow just gets sent uncompressed instead π Dictionary synchronization still holds across those uncompressed packets π«Ά
Encapsulation π
The encapsulation is made up of the PPP Protocol Identifier, a bit that tells you whether the data is compressed, the Context Identifier (CID), a proprietary flag bit (E), a Packet Integrity Byte (PIB), and the compressed data π§
0 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PPP Protocol Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|C|E| CID | PIB | C compressed flag
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 data is compressed
| Compressed data ... 0 data is not compressed
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Compressed/Uncompressed Flag (C) π¦
Sometimes the compressor isn't very effective on certain types of Packets or Fragments π When that happens, the uncompressed data goes into the compression History Buffer and gets sent across the link in a frame with the Compressed/Uncompressed Flag (C) set to 0 β¨
Context Identifier (CID) π
PPP carries multiple protocol datagrams, so it can be a great idea to compress each protocol, or each virtual circuit, in its own History Buffer (its own Context) πΈ The CID tells the decompressor which History Buffer the compressor picked for a given Packet. How that choice gets made is up to the implementor π The number of buffers and the size of each one are negotiated π
A CID of 0 means the Packet by Packet context gets used, if it was negotiated π§ That context gets cleared between Packets, so its History Buffer isn't kept across Packet boundaries π
Packet Integrity Byte (PIB) π
To make sure Packets are compressed and decompressed correctly, and that History Buffer synchronization stays intact, a Packet Integrity Byte gets added to the packet header π₯
The packet integrity byte is defined in the full protocol specification π
Configuration Option Format π
Description π
The CCP MVRCA Configuration Option is how you negotiate MVRCA on the link π«Ά By default, or if nobody can agree, no compression is used π
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 |FE |P| History | # Contexts |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type π¦
The value is 24 β¨
Length π§
The value is 4 π
FE - Features π₯
This field negotiates features that are specific to this compression algorithm π
History π
This defines the size of the compression history buffer. The valid values are defined in the full protocol specification π
# Contexts π
This is the number of contexts. Each context means a History Buffer gets created for that context, with the size given in the Context History field π Values are 1-63 πΈ This value includes both the Packet by Packet context and the contexts that keep history π«Ά
So if this value is 1 and the P (Packet by Packet) flag is also 1, then only per-packet compression is supported, and history isn't kept across packet boundaries π The Context Identifier (CID) starts at 1 for contexts where history is maintained π
P - Packet by Packet flag π
When P is 1, packet by packet compression is enabled for the context whose context ID is 0 β¨ When P is 0, packet by packet compression is not supported π
Security Considerations π±
Security issues are not discussed in this memo π Please don't skip over this one, because the whole memo leaves them out π
References π
[1] Simpson, W., Editor, "The Point-to-Point Protocol (PPP)", STD 51,
RFC 1661, July 1994.
[2] Rand, D., "The PPP Compression Control Protocol (CCP)", RFC 1962,
June 1996.
[3] Rand, D., "PPP Reliable Transmission", RFC 1663, July 1994.
Acknowledgments π«Ά
Chair's Address π
The working group can be contacted through the current chair:
Karl Fox
Ascend Communications
3518 Riverside Drive, Suite 101
Columbus, Ohio 43221
EMail: karl@ascend.com
Authors' Addresses π
Comments about this document may also be directed to the authors π¦
Doug Schremp
Telco Systems, Inc.
Magnalink Communications Division
63 Nahatan Street
Norwood Ma. 02062
Phone: (617) 255-9400
EMail: dhs@magna.telco.com
Jeffrey Black
Telco Systems, Inc.
Magnalink Communications Division
63 Nahatan Street
Norwood Ma. 02062
Phone: (617) 255-9400
EMail: jtb@magna.telco.com
Jeffrey Weiss
Telco Systems, Inc.
Magnalink Communications Division
63 Nahatan Street
Norwood Ma. 02062
Phone: (617) 255-9400
EMail: jaw@magna.telco.com
π¦ where this page comes from
- ietf: rfc1975 1996-08
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms