使用DEFLATE的IP有效载荷压缩

【使用DEFLATE的IP有效载荷压缩】本备忘录的状态
本备忘录为Internet团体提供信息 。不在任何形式上规定一个Internet标准 。发布本备忘录不受任何限制 。
.版权声明
Copyright(C)TheInternetSociety(1998).AllRightsReserved.
.摘要
本文档一种基于DEFLATE压缩算法的压缩方法 。本文档描述了DEFLATE算法对IP有效载荷压缩协议的应用 。
1.介绍
IP有效载荷压缩协议答应通过支持不同的压缩算法对IP数据报的压缩 。本文档描述了怎样把DEFLATE压缩算法[Deutsch96]集成到IPCOMP[IPCOMP] 。
本文档SHOULD和[IPCOMP]结合阅读并且MUST通过上下文来理解 。
1.1DEFLATE压缩算法
被PKZIP和gzib压缩机制使用,并且被收录到自由和广泛发布的zlib库源代码,“deflate”压缩格式[3]有以下特点;
—一个明显的不受限制的编码和压缩算法,和开放的公共可用的规范 。
—对不可压缩数据的低开支的避开机制 。PPPDeflate规范提供更大程度上减少开支的选项 。
—很广泛的使用在网络、调制解调器和别的点到点链路上为个人计算机和工作站传输文件 。
—对压缩方和解压缩方来说,使用少于64K的内存,可以在Calgarycorpus[5]上很轻易的达到2:1的压缩率 。
1.2Licensing
1.2使用许可
zlib源代码是广泛的和自由的使用,服从以下版权:
(C)1995Jean-LoupGaillyandMarkAdler
提供本软件完全随意,不需要任何表示或者隐含的保证 。软件的作者不对因为使用本软件而带来的损害负有任何责任 。
授权给为任何目的使用本软件的任何人,包括商用程序,可以自由的改变和重新发布本软件 。服从以下限制:
1.本软件的原始资料不能被歪曲,不能声明你写的最原始的软件 。假如你在你的产品里使用了本软件,应该在爱产品文档里面表示致谢,但不是要求 。
2.对源版本的任何改变必须明白的标出,而且绝对不答应不如实的反映源软件 。
3.本提示可以从任何发布的源文件中移出或改变 。
Jean-LoupGaillyMarkAdler
gzip@prep.ai.mit.edumadler@alumni.caltech.edu
假如你在你的产品中使用了zlib库,我们很不情愿收到冗长的要签署的法律文件 。源代码是免费提供,不需要任何形式的授权 。这个库是完全由Jean-LoupGailly和MarkAdler写成,不包含第三方的代码 。
Deflate格式和压缩算法是基于Lempel-ZivLZ77压缩 。为了支持其专利免费状态,GNU计划和小型网络图形(PortableNetworkGraphics)工作组做了更广泛的研究 。
1.3需求说明
在本文档中出现的要害字‘MUST’、‘MUSTNOT’、‘REQUIRED’、‘SHOULD’、‘SHOULDNOT’和‘MAY’的解释在[Bradner97]中描述 。
2.DEFLATE算法的执行
DEFLATE压缩算法是PhilKatz设计的,其实现细节在[Deutsch96]中可以公开得到的 。所以它是一个可以在IPCOMP中实现的自由可用的算法 。
压缩和解压的细节遵循[Deutsch96]中概述的,或者使用软件库更好一些 。因为IPComp是一个无状态协议,不论在压缩或者解压过程不同报文之间压缩历史MUST被清空 。
2.1压缩
在[IPCOMP]中定义的,压缩过程是通过IP压缩联合(IPCA)决定的 。IPCA在本文档内MUST为压缩过程定义DEFLATE算法 。
压缩过程需要从IP数据报中压缩数据然后把压缩结果放在IPComp头的后面 。如下例,压缩一个TCP数据报:
压缩前:IPTCP...
压缩后:IPIPCOMP(TCP...)
请注重在IPCOMP头之后的数据是怎样压缩的 。
DELATE答应一个压缩等级数从最好的压缩率但比较慢到比较快压缩之间变化 。一个压缩等级数是压缩执行必须依靠的,因为要与解压保持一致 。

推荐阅读