数据压缩:压缩广域网流量 e800网站通信网络频道

来源:百度文库 编辑:神马文学网 时间:2024/04/28 16:40:56
数据压缩:压缩广域网流量
2006-02-19     推荐:113    收藏:72    评论:0     来源:中国计算机报 网络与通信

  数据  
  压缩  
  流量  
  流  
数据压缩是人们所熟知的一种技术,也一直被视为提高带宽的一种策略。但在WAN中,其作用就要重新定位了。在电信术语的字典中对压缩是这样定义的:“通过消除相同的或在后续的采样间隔中没有变化的位串,来减少对信息或信号编码时所需的位数量或带宽的技术”。由此看来,压缩的工作方式更像是一种速记,它把更多的流量填入相同的管道中,在流量到达目的地之后再解压缩,而实际的信息数据并没有发生变化。
减少压缩带来的延迟
虽然研究人员早就开始通过压缩实现带宽效率最大化的工作,但收效甚微。从理论上讲,针对某一特定的应用,使用压缩技术可在不增加延迟的条件下提高有效带宽,并减少WAN在升级和基础设施扩容时的成本,还可以低廉的成本将流量聚合到一个低能量的管道中,从而降低WAN的成本。虽然压缩技术是克服WAN链路中容量和阻塞问题的较好的方式,但现在很少有IT管理员在其企业路由器中选择压缩这个选项,因为一旦输入量到达256kbps到512kbps的时候,路由器会因处理负荷过重而性能急剧下滑;如果低于这个标准,带宽的效率则会较通常时提高1.5~2倍;如果高于这个标准,则因要求的处理太多而产生大量的延迟。
针对这一情况,一些厂商推出了新的产品,如Expand Networks公司和Peribit Networks公司的CPE设备就是通过以字节为单位扫描数据,从而提供了更高的压缩率,而且,无论接入方式或应用协议是什么,他们都将应用带宽提高到了以前的2.5~10倍。以往由于缺乏标准来统一协同工作,所以每个节点要遵从相同的厂商。现在这些新产品使用传统的压缩算法和自己的算法相结合的方法来提高系统的整体性能,通常他们都具有带宽管理或QoS功能。例如,Expand的设备就兼具加速和缓冲功能。
串与算法
因为流量会频繁地承载重复的数据元素,因此,数据压缩的目的就是减少用来存储或传输信息的位的数量。例如某个通用的报头,或用来响应的有效载荷元素,或在某PDF文件的多个页面中显示的页眉等。压缩技术要求识别出冗余的信息后,再从被压缩的应用中删除。而压缩达到的力度要依靠在源信息中发现的冗余总量,以及这些冗余元素被压缩设备吸收的效率。用户可以选择无损压缩和有损压缩。前者适合于数据库记录、电子表格的工作表以及Word文件,而后者更适合图像、视频及语音的压缩,当然前提是少许的QoS损伤是可接受的。
压缩算法的发展要回溯到上世纪40年代末期,当时的信息理论导致了第一个算法Shannon-Fano的产生,其原理是在文件中为每一个不同的符号分配一个二进制的代码。而它的出现又很快引发了时至今日还是两大重要算法的发明,即Lempel-Ziv和Huffman编码。
Lempel-Ziv算法在给定的流量或应用中寻找重复出现的称为串的字节序列,并以字节为单位找到第一个出现的最长的串,然后告诉其他的重复串,指出其长度和起始位置,并将这些信息存储在与路由器或压缩设备相关的数据库中。而Huffman编码从另一个方面减少了平均的串长度:它的代码封装了压缩的内容,并代表着一个字母表中的每个元素。这个字母表包含了以不同频率出现的符号或字符。通常,ASCII表示法规定了每个确定的文本字符要求8位,而Huffman编码方案将最短的代码分配给那些出现频率最高的字符,而将长一些的代码分配给那些不常出现的字符。常见的字符会以少于8位的代码来表示,而不常出现的字符会以多于8位的代码来表示。因此,用来表示文件内容的位的总量就大大减少了。
这两种压缩方案可用在不同类型的文本上:Huffman最适合于具有大众化的源文件字符的流量中,并且重现的字符串通俗易懂。而Lempel-Ziv可用于不同类型的源文件,不要求用户对文件中的重现字符串有过深的了解。从这点上说,Lempel-Ziv的应用更为广泛。其他的压缩算法主要包括:arithmetic compression和dictionary-based compression,但这些算法都鲜有使用,最流行的还是基于Lempel-Ziv、Huffman及其派生的算法。
新技术走向前台
传统的压缩方法主要面临两个问题:首先,传统压缩技术受制于他们搜索重复串时所使用的方法,也就是采样间隔的单位,正如以上所提到的,本地路由压缩通常以数据包为单位来搜寻串。而压缩算法设置了一套尺寸的“窗口”,例如,以2kbits的窗口寻找合适的串,如果目标串出现在窗口之外,它就不会被识别也不会被压缩。同样,数据库会在那个窗口通过