2 低速串行链路上的TCPIP头部压缩( 四 )



注42:差别是由于TCP/IP数据包与ASCII文本非常不同的的字节样式(bytepattern) 。任何
使用Markov源文件模型的压缩方案,如Lempel-Ziv,在完全不同源文件交叉存取时将变得更
糟糕 。假如这两个源的相对比例改变,也就是说提高MTU,两处压缩器的性能差异将减小 。
但是减小的速度非常慢—MTU提高400%(从256到1024)仅使数据和ModemL-Z之间的差从
2.5%降到1.3% 。
注43.在源进行压缩还有其他原因:使更少的数据包被封装,更少的字符被送到modem 。作
者认为“在Modem中压缩数据”的选择应该避免,除非碰到很难处理的某些厂商专有的操
作系统中 。
Jacobson[Page24]
RFC1144CompressingTCP/IPHeadersFebruary1990
机器
每个包的平均处理时间(μs)
压缩
解压缩
Sparcstation-1
Sun4/260
Sun3/60
Sun3/50
HP9000/370
HP9000/360
DEC3100
Vax780
Vax750
CCITahoe
24
46
90
130
42
68
27
430
800
110
18
20
90
150
33
70
25
300
500
140
表3:压缩代码的执行时间
6性能评估
压缩代码的一个实现目标,是力求足够简单以能在典型的1989工作站上以ISDN
速度(64Kbps)运行 。64Kbps即每个字节122μs,所以随意地把120μs作为压缩/解压
缩程序执行时间的目标(注44) 。
作为压缩代码的一部分,开发了一个“记录跟踪驱动”的实验程序(trace-driven
exerciser) 。最初用它来比较不同的压缩协议选项,然后在不同结构的计算机上测试代
码运行的结果,以及在性能“提高”后进行回归测试(regressiontests) 。对该测试程
序进行小小的改动便可得到一个有用的评估工具(注45) 。表3显示了作者所能用到的
所有机器上压缩代码运行的时间(这些时间通过一个混合的telnet/ftp流量跟踪取得) 。除
了被(a)错误的字节序(b)糟糕的编译器(lousyUnixpcc)影响)的Vax结构计算机之外,所
有的机器本质上都达到了120μs的目标
.
注44:时间选择并不是完全随意的:解压缩一般在各帧之间的“标志”字符(inter-frame"flag"
character)时间进行,所以在压缩运行于与串行链路输入中断相同的优先级的系统中,选用
比一个字符时间长得多的时间将导致接收方来不及接收(overrun) 。并且,使用当前平均5
个字节的帧(指线路上的帧,包括压缩后的头部和帧),花费1个字节时间的压缩/解压缩最多
能使用可用时间的20%,这似乎是一件很划算的事情 。
注45:测试程序和测量时间的程序在附录A的可通过ftp获得的数据包中,文件为tester.c和
timer.c 。
Jacobson[Page25]
RFC1144CompressingTCP/IPHeadersFebruary1990
7致谢
作者非常感谢由PhillGross担任主席的InternetEngineeringTaskForce(因特网工程
任务攻坚组)的成员,他们给予作者很多鼓励并认真审阅本手稿 。几个耐心的beta测试
员,尤其是SamLeffler和CraigLeres,记录并修改了最初的实现中的问题 。Cynthia
Livingston和CraigPartridge仔细阅读本文档的部分草案并提出很多改进意见 。最后当然
还不止,Telebitmodem公司,尤其是MikeBallard,从一开始便鼓励作者写这篇文档,
已经并且现在还是串行线和拨号IP的支持者
参考文献
[1]BINGHAM,J.A.C.Modem设计的理论和实践(TheoryandPracticeofModemDesign)
JohnWiley&Sons,1988.
[2]CAREY,M.B.,CHAN,H.-T.,DESCLOUX,A.,INGLE,J.F.,ANDPARK,K.I.1982/83endOffice
connectionstudy:Analogvoiceandvoicebanddatatransmissionperformancecharacterization

推荐阅读