📄 rfc2118.txt
字号:
组织:中国互动出版网
(http://www.china-pub.com)
RFC文档中文翻译计划
(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:方桂成(fangguicheng fangguicheng@21cn.com)
广东视聆通应用研究开发中心(http://www.shiningsoft.com)
译文发布时间:2002-01-09
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载
,但必须保留本文档的翻译及版权信息。
Network Working Group G. Pall
Request for Comments: 2118 Microsoft Corporation
Category: Informational March 1997
微软点对点压缩(MPPC)协议
本备忘录的状态
本备忘录为因特网社区提供信息。本备忘录没有列入任何因特网标准。本备忘录
的分发不受限制。
摘要
点对点协议(PPP) [1] 为在点对点链路上传输多种协议数据报提供了一个标准
的方法。
PPP 压缩控制协议 [2] 为在 PPP 封装的链路上协商和利用压缩控制协议提供了
一种方法。
本文档描述了微软点对点压缩协议(以下简称MPPC)在压缩 PPP 封装包上的用法。
目录
1. 介绍 .................................................. 2
1.1 许可 ............................................ 2
1.2. 术语要求 ........................................ 2
2. 配置选项格式 .......................................... 3
3. MPPC 包 ............................................... 4
3.1 包格式 .......................................... 5
4. 压缩和编码描述 ............................................ 6
4.1 明文编码 ........................................ 7
4.2 批拷贝编码 ...................................... 7
4.2.1 偏移量编码 .................................. 7
4.2.2 匹配长度编码 ................................ 7
4.3 同步 ............................................ 8
安全考虑 ..................................................... 8
参考文献 ..................................................... 9
致谢 ......................................................... 9
主席地址 ..................................................... 9
作者地址 ..................................................... 9
Pall Informational [Page 1]
RFC 2118 MPPC Protocol March 1997
1. 介绍
微软点对点压缩方案可以把任何PPP包表示为压缩形式的方法。MPPC 算法设计
为通过优化处理器和带宽的利用,来支持大量并发连接。MPPC 算法也用来优化
典型的特定 PPP ,提高工作效率(例如1500字节的MTU等)。
MPPC 算法使用一种带有滑动窗口的历史纪录缓冲器的 LZ [3] 算法。
MPPC 算法保持一个连续的历史纪录,当压缩传输了8192字节数据之后,就总是
有8192字节历史纪录被用来做压缩,除非历史纪录被清空。
1.1. 许可
MPPC 仅用于实现 PPP 协议的产品,并且只能和其他的带有 MPPC 实现的 PPP
协议互操作。
Source and object licenses are available on a non-discriminatory
basis from Stac Electronics. Please contact:
Cheryl Poland
Stac Electronics
12636 High Bluff Drive,
San Deigo, CA 92130
Phone: (619)794-4534
Email: cherylp@stac.com
1.2. 术语要求
在本文中,一些词被用来表示特定含义,这些词总是大写的。
MUST 这个关键字,或是术语"REQUIRED"或"SHALL",意味着他们的定义是
一个绝对的规范的必要条件。
MUST NOT 这个词组,意味着他们的定义是一个绝对的规范的禁止的条件。
Pall Informational [Page 2]
RFC 2118 MPPC Protocol March 1997
SHOULD 这个关键字,或是形容词"RECOMENDED",意味着在特殊的环境下可
能存在正当的理由忽略一个特殊的项目,但是完整的含义必须能被理
解并且在重新选择一条不同的路径之前要仔细的考虑。
MAY 这个关键字,或是形容词"OPTIONAL",意味着一个项目是真正可选的。
一个买主可以选择包含项目因为一个特殊的市场要求或是因为买主觉
得它能够增强产品当另一个买主可能遗漏了同样的项目时。一个没有
包含一个特殊对象MUST的工具准备用来与另一个不包含这个对象的工
具间相互起作用,因此或许有简化的功能。在同样的脉络里一个包含
了特殊对象MUST的工具准备用来和另一个没有包含这个对象的工具间
相互作用。
2. 配置选项格式
描述
CCP 配置选项在链路上协商 MPPC。缺省的或者最终协商未果,就不使用压缩。
CCP 配置选项格式如下所示。这些域从左到右传输。
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 | Supported Bits |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Supported Bits |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type
18
Length
6
Supported Bits
这个域是4个八位组,重要的八位组在前。在最不重要的八位组中的最不重要
的比特设置为为1表示需要协商 MPPC。
所有其他的比特必须设置为 0。
Pall Informational [Page 3]
RFC 2118 MPPC Protocol March 1997
3. MPPC 包
PPP 必须到达网络层协议阶段,并且 CCP 控制协议必须到达打开状态。一个 MPPC
包才可能被用于通信。
确切地说,一个 MPPC 数据报封装在 PPP 信息域中。PPP 协议域指明十六进制协议
类型 00FD 。
MPPC 数据报在 PPP 链路上传输的最大长度与 PPP 信息域所能够封装的包的最大值
是一样的。由于历史纪录缓冲器限制为8192字节,这个长度不能大于8192字节。
只有 PPP 协议类型值在十六进制 0021 到十六进制 00FA 的包才被压缩。其他的包
不使用 MPPC 处理,并且以原来的 PPP 协议类似值发送。
填料
推荐 MPPC 不使用填料,因为这样一来达不到压缩的目的。假如发送者必须使用
填料,它必须在 LCP 阶段协商 Self-Describing-Padding 配置选项然后使用自
描述的填料。
可靠性和次序
MPPC 方案不需要可靠链路。然而,它依赖于在每个包中的12比特连续计数器来保
持历史纪录缓冲器的同步。假如接收方辨别出在接收到的包中的连续计数不符合预
期计数,它就发送一个 CCP 重置请求包来使它的历史纪录缓冲器和发送方的历史
纪录缓冲器同步。
MPPC 期望数据包是顺序地提交的,这样,历史纪录缓冲器就不会重新同步。
MPPC 可能在可靠的链路上使用。如 "PPP Reliable Transmision" [5] 描述那样,
但这只是象征性地增加了不必要的冗余,因为不再需要连续计数。
数据膨胀
假如压缩数据的结果反而导致数据膨胀了,原始的数据将被作为未压缩的 MPPC 包
发送。发送方必须在压缩任何数据之前清空历史纪录,并且在下一个外发包设置
FLUSHED 比特位。
Pall Informational [Page 4]
RFC 2118 MPPC Protocol March 1997
3.1. 包格式
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 |A|B|C|D| Coherency Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Compressed Data...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
PPP Protocol
在 PPP 协议封装中[1],PPP 协议域是需要的。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -