应用网络服务

思科广域应用服务高级网络压缩技术

运行在思科广域应用引擎(WAE)设备系列或网络模块上的思科广域应用服务(WAAS),提供了突破性的全新网络压缩技术。这一称为重复数据消除(DRE)的高级网络压缩技术,不受应用协议的限制,能够从TCP流量中提取数据模式,然后利用该信息去除未来TCP传输中的重复流量,因而使WAAS能为许多基于TCP的应用提供极高水平的压缩功能。本白皮书将对DRE的架构进行介绍。

DRE功能概述

思科WAAS DRE功能是建立在这样一个前提上的,即通信节点间的连接路径上存在多个思科WAE设备,且已配置了相应的支持DRE的应用流量策略(ATP)。一旦WAE相互自动发现并协商了所采用的优化技术,包括DRE等,WAE就会使用下列DRE流程,使思科WAAS DRE能够提供高水平的无数据包丢失压缩功能,并保持全部数据和信息的完整性:

  • DRE环境同步
  • DRE编码:数据块识别和模式匹配
  • DRE解码:信息重建和有效性验证

本白皮书将对这些流程进行详细介绍。

DRE环境同步

思科WAAS DRE运行的前提是,两个连接的WAE对等设备拥有一个松散同步的“环境”,在一对WAE中,每个WAE对应一个专用的DRE数据库段,包含对等TCP传输中见到过的数据块和签名。一旦自动发现完成,而且所协商的优化包括DRE,DRE环境同步流程就开始启动,以确定每个WAE上的哪部分环境依然有效。

在相连的对等设备的环境内,每个数据库项不仅包含数据(数据块)和代表该数据的签名(指令),还包含该项目何时添加入环境的时钟信息。由于DRE数据库以先入先出 (FIFO) 模式运行,所以,保留时钟信息使DRE能够根据输入项的时间顺序执行删除操作,以便为更新的流量模式留下数据库空间。

在初始环境同步的过程中,对等WAE将交换数据库‘头部’项和‘尾部’项的时钟信息,如果出现新的流量,第一个和最后一个数据库项将被清除。由于时钟信息与实际的时间没有关联(只是一个与对等WAE设备之间的连接有关的内部时钟),如果存在可用的共同时钟数值范围(假设环境存在的话),那么那些数据库项就会保留在环境中并由DRE使用(见图1)。而其余数据库项由于不是两个WAE的共同内容,它们将被刷新。

图1. 有重叠的典型DRE环境同步

有重叠的典型DRE环境同步

DRE环境容量可以根据环境的使用情况进行调整。如果一个环境与其他环境相比使用程度较高,DRE能够自动地将其他环境额外的存储容量重新分配给使用程度较高的环境,以使更活跃的对等WAE能够实现更高的压缩水平。如果一个环境的使用程度不是很高,分配的容量可能会随着时间而缩减,并重新分配给使用程度更高的环境。由于环境的容量可以调整,可能会遇到初始DRE同步过程中找不到重叠数据库项的情况。在这种情况下,这两个WAE会完全刷新环境并重新开始运行(图2)。这种形式的环境刷新只涉及相连的对等设备的环境,不会刷新整个DRE数据库。

图2. 无重叠的DRE环境同步

无重叠的DRE环境同步

同步环境使WAE能够作为一个编码器,以去除传输中不必要的数据,并用签名(或指令)替代原始数据,通知远程WAE如何重建全部原始信息(见图3)。

图3. DRE最大限度地减少了设备间的数据传输

DRE最大限度地减少了设备间的数据传输

只要在对等WAE间存在优化的连接,DRE同步流程就会至少每隔十分钟重复一次,或者将数据库项从环境中清除,以确保每个WAE环境所包含的信息保持松散的同步。

DRE编码:数据块识别和模式匹配

思科WAAS DRE能够利用基于内容的层次化数据块识别传输中的数据模式,并根据所传输的数据建立数据模式间的界限。数据由WAE的TCP代理负责接收,TCP代理暂时缓存输入流量,并将大型数据块(最大32KB)发送至DRE,进行数据块识别和数据压缩。一旦DRE接收到数据块后,就会计算一个称为信息有效性签名的16字节MD5散列,在传输时它会伴随编码信息一起传输。对等WAE则将该信息有效性签名用于信息有效性验证(在DRE解码部分讨论)。

当数据从TCP代理发送至DRE时,“编码”过程开始,WAE将识别较小的数据块,并用签名清除重复数据块。在编码过程中,DRE利用滑动窗口功能将数据解析成较小的、更便于管理的数据块,每个大小平均约256B。每个被识别的数据块相应生成一个6字节签名。DRE在搜索数据块的同时,还会识别数据块执行汇聚的区域,因此,一个6字节的签名能够代表许多数据块。数据块汇聚使DRE能层次化地“汇总”数据块,即一个代表汇聚数据块的签名可能实际上代表许多汇总数据块,因而实现了更高水平的数据压缩。

一旦数据被分割成数据块和汇聚数据块,也生成了相应的签名,DRE就开始将签名与环境进行比较,以识别重复的数据块。这一模式匹配流程首先从识别出的最大汇聚数据块开始,然后逐渐过渡到最小的数据块。随着重复内容不断被查出,数据块自身就被从信息中清除,而代之以6字节的签名。对于未发现重复内容的数据,本地环境则用新的数据、签名和一个FIFO时钟数值更新。这些非重复数据保留于编码信息中,并伴以生成的签名,使对等WAE能够以新信息更新其环境。编码流程(包括模式匹配和数据块更新)如图4所示。

图4. DRE编码流程

DRE编码流程

DRE是一个高效的流程,首先对最大的数据块进行模式匹配。随着新的非重复数据不断被识别,DRE数据库随时更新以该信息,如图4中的“添加”部分所示。

在数据全部编码后,生成的信息如图5所示,只包含重复数据签名(指示远程WAE如何重新插入原始数据)和非重复数据的数据和签名(指示远程WAE如何更新其环境)。传输的信息还包括原始信息的16字节信息有效性签名,用于远程WAE的信息有效性验证。

图5. DRE编码信息

DRE编码信息

一旦信息全部编码,WAE能够有选择地将编码信息发送给LZ压缩机制,再进行压缩。在全面编码和压缩信息后,DRE将编码信息返还给TCP代理,并利用原始源和目的地分组报头信息,将信息发送至原始目的地。随着信息通过网络发送至对等WAE所驻留的远程地点,网络截获功能会将该流量导向远程WAE进行解码。

虽然DRE的主要价值是最大限度地减少由应用流量占用的带宽量,但它还能帮助缩短延迟。因为DRE最大限度地削减了必须在广域网上交换的数据量,交换数据所需的数据包量也相应减少,从而提高了应用性能和广域网使用效率。

DRE解码:信息重建和数据完整性

当从一个WAE对等设备收到DRE编码信息后,DRE解码流程就开始启动。这一重建过程利用的是相连的对等设备的环境中包含的数据。收到编码信息后,WAE首先从编码信息中提取信息有效性签名。然后,WAE解析该信息,以识别单独传输的签名(环境中必须包含重复数据),以及与数据(必须添加到环境中的非重复数据)一道传输的签名。

对于与数据一道传输的签名,签名和数据都会添加到本地环境中,如果将来再传输该数据,则将被视为重复数据。然后,从信息中去除该签名。对于未伴随数据传输的签名,WAE将在环境中寻找签名并提取数据块,以实际的数据块替代信息中的签名。每一次查询成功都会发送一个异步确认(ACK)给对等WAE,通知其查询成功。

如果签名包含在编码信息中,但WAE在本地环境中没有相应的数据块,就会给对等WAE发送一个未确认(NACK)通知,请求重新传输签名和数据块。当对等WAE收到NACK后,它会传输签名和数据块,当解码WAE收到它们后,则对本地环境进行更新,并将数据块相应地添加至解码信息中。

在更新本地环境并用环境中的数据块替代签名后,WAE则为重建信息生成一个新的16字节MD5散列值。该散列会与由相连的对等设备生成的信息有效性签名进行比较。如果两个数值一致,解码WAE就知道重建的信息与编码WAE收到的数据完全相同。此时,解码WAE就将该数据转发给TCP代理,以便传送至目的地。如果散列与信息有效性签名不一致,就会同时发送一个NACK给对等WAE,请求重新传输所有签名和数据块。当收到更新数据后,解码WAE则相应地更新其环境,解码信息,并将数据发送给TCP代理,再转发至目的地。

总结

思科WAAS DRE使WAE能够将传输过的TCP流量保存到一个数据库中,以便无需多次传输重复数据块。由于DRE和TCP一起运行于第四层,它在设计上与应用协议无关,因此,通过一个应用协议传输而索引出的数据块,能够直接提高另一个应用协议数据流的压缩功能。借助DRE,思科WAAS能够提供高达100倍的压缩功能,而不会影响数据、信息或协议的完整性,并能安全地缩短传输导致的延迟,极大地提高应用性能。

联系我们