MPPC 微软点对点压缩协议( 二 )


相互作用 。
2.配置选项格式
描述
CCP配置选项在链路上协商MPPC 。缺省的或者最终协商未果,就不使用压缩 。
CCP配置选项格式如下所示 。这些域从左到右传输 。
0123
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeLengthSupportedBits
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SupportedBits
- - - - - - - - - - - - - - - -
Type
18
Length
6
SupportedBits
这个域是4个八位组,重要的八位组在前 。在最不重要的八位组中的最不重要
的比特设置为为1表示需要协商MPPC 。
所有其他的比特必须设置为0 。

PallInformational[Page3]
RFC2118MPPCProtocolMarch1997
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可能在可靠的链路上使用 。如"PPPReliableTransmision"[5]描述那样,
但这只是象征性地增加了不必要的冗余,因为不再需要连续计数 。
数据膨胀
假如压缩数据的结果反而导致数据膨胀了,原始的数据将被作为未压缩的MPPC包
发送 。发送方必须在压缩任何数据之前清空历史纪录,并且在下一个外发包设置
FLUSHED比特位 。
PallInformational[Page4]
RFC2118MPPCProtocolMarch1997
3.1.包格式
0123
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PPPProtocolABCDCoherencyCount
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CompressedData...
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
PPPProtocol
在PPP协议封装中[1],PPP协议域是需要的 。
当MPPC压缩协议成功地由PPP压缩控制协议协商后,这个值是十六进制的
00FD 。这个值当协议域压缩选项被协商时可能会被压缩掉 。
BitA
这个比特位指明在这个包产生时历史纪录缓冲器被初始化 。这个包总是可以被
解压缩的,因为它不依靠于任何以前的历史纪录 。典型地,设置这个比特位来
通知对方,发送方在压缩这个包之前已经数市话了历史纪录缓冲器,接收方也
应在解压缩这个包之前初始化它的历史纪录缓冲器 。这个比特位称为FLUSHED
比特位 。
实现要点:压缩和解压缩历史纪录总是被初始化成全零 。
BitB
这个比特位指明本包被移到历史纪录缓冲器的开头,一般是因为历史纪录缓冲

推荐阅读