H3C OAA之WAN优化技术白皮书.docx
H3C OAA之WAN优化技术白皮书目 录目 录41. 概述51.1 背景51.2 广域网优化简介52. 广域网优化原理介绍62.1 数据压缩原理介绍62.2 缓存原理72.2.1 基本原理72.2.2 数据块缓存原理72.3 TCP加速原理介绍82.3.1 窗口大小通告与滑动窗口92.3.2 慢启动92.3.3 拥塞避免92.3.4 窗口调节技术112.3.5 选择性确认112.3.6 Split TCP112.4 QoS原理介绍122.4.1 模型122.4.2 QoS技术介绍133. 解决方案主要模块介绍143.1 多业务路由器MSR143.2 WAAM模块143.2.1 数据压缩153.2.2 应用加速193.2.3 TCP加速213.2.4 基于应用的QoS技术213.2.5 ACFP协议224. 参考案例25目 录图1 数据压缩原理7图2 同类数据压缩原理8图3 基于块的数据缓存9图4 字节级数据缓存9图5 拥塞避免与慢启动11图6 Split TCP13图7 IPComp和RTM压缩模式16图8 VDA算法17图9 SC算法18图10 APC算法18图11 压缩过程119图12 压缩过程219图13 HTTP/FTP应用加速20图14 DNS应用加速21图15 Citrix应用加速21图16 语音应用加速22图17 OAA体系结构示意图24图18 主机模式示意图25图19 透传模式示意图25图20 镜像模式示意图26图21 重定向模式示意图26OAA WAN优化解决方案技术白皮书1. 概述1.1 背景广域网的带宽比局域网带宽差很多,并且广域网带宽的增加会带来成本大幅度上升。与此同时还会带来一定影响的网络延迟。广域网应用大幅度增加,除了语音、视频外,传输文件、图片以及海量数据的分析以及处理,这些都是困扰用户正常使用的重要因素。 另外信息的集中化管理,对各分部和总部之间的高质量信息转送也提出了越来越高的要求,这就需要增加各地的分支机构。与此同时企业分支网络逐渐出现了数据集中趋势,一般情况下企业会将大部分共享数据库放到总部的数据中心,给每一个分支机构访问,但随着分支机构的迅速增加且多数员工外出办公时的访问量也在上升,这种一对多的数据服务给企业总部的服务器和带宽带来了巨大的压力,影响了数据交换的速度。企业虽然也可以向运营商购买更高的带宽,不过成本费用较高并且效果不明显。广域网性能低下对于用户的影响主要包括以下几个方面:n 大多数企业管理、应用软件均采用C/S结构进行编写,虽逐步在进行B/S的更改,但是大部分企业的应用仍然基于C/S结构,对于C/S到B/S结构的更改仍然是一个重要的课题n 增加带宽并不能解决访问及应用慢速的问题,问题存在与TCP自身,TCP自身慢启动问题仍然是阻碍企业业务正常开展的主要问题n 广域网行业纵向网的分支机构众多,全部采用高带宽连接投资非常巨大,合作伙伴之间带宽一般采取的是临时建立的连接,带宽极低,又要传输大量的数据,造成传输速度难以忍受n 基本语音视频业务没有最佳的QoS策略来进行保证,造成质量不佳,最终导致应用开展不起来;大量非法应用堵塞了现有正常应用开展,占据的带宽造成了正常带宽的缩减。1.2 广域网优化简介广域网(WAN)带宽昂贵,绝大多数用户也因此只能拥有有限的广域网带宽。如何以最小的投入提高网络性能?如何为远程用户提高访问速度和服务效率?怎样确保随时召开异地视频会议而不被打断?一种方式是“扩出口买带宽”,其实有更合理的方法解决。数据压缩、动态缓存、IP流量管理以及QoS等都可以一定程度上解决广域网传输加速的问题。但压缩仅仅解决了带宽资源的问题,对于延迟非常大的链路,仅靠压缩是无法完全解决问题的。为解决系统性能和应用系统数据传输受WAN通信限制的问题,相关技术开始浮出水面,并逐渐形成一个细分的市场这就是WAN优化技术市场。其中包括:应用加速、数据压缩、动态缓存、IP流量管理、QoS保障、带宽管理、延时缩减、序列缓存、路径优化和应用管理可视化等。要解决的核心问题是应用和广域网之间的矛盾,因为传统的网络资源限制了多种应用的性能。随着网络优化技术的发展,诸如控制网络应用(控制QQ、MSN、IM)、限制P2P(限制BT、eMule、PPLive、eDonkey)软件占用带宽、通过QoS合理分配带宽、Web缓存、数据压缩、动态缓存等网络加速方法和解决方案已经能够满足多数用户的需要了。为什么广域网优化会受到如此青睐呢?原因是它的确能解决广域网目前存在的几大关键弊病。首先,带宽问题。广域网的带宽比局域网带宽差得太多,如一条T1线路的带宽只相当于千兆网的千分之一,许多帧中继线路的带宽只有256Kbps,并且广域网带宽的增加会带来成本大幅度上升。其次,延迟问题。打过跨国IP电话的人或许都有这样的体验,当你说完话后,对方的回音总是过一小段时间才能听到,这就是延迟的最好例子,在进行视频通话时就更明显了。目前广域网应用剧增,除了语音、视频外,传输图形或图像文件、海量数据的处理,都是困扰用户的实际应用。再有,协议问题。一些目前采用的协议并不是为广域网而设计的(如TCP协议),协议效率低下,性能不够理想。2. 广域网优化原理介绍广域网优化的技术有很多,但核心的技术主要包括:数据压缩、动态缓存、TCP加速、应用加速、QoS等几个方面。2.1 数据压缩原理介绍迄今为止大多数网络压缩系统都是基于数据包。基于数据包的压缩系统缓冲数据包都通过解压器引导至远程网络。此后,用户可一次压缩一个数据包,或一次压缩多个数据包,然后再发送至在其中反向进行该流程的解压器。图1 数据压缩原理基于数据包压缩应用的主要问题是压缩时它将多种数据类型混合在一起。所有压缩例程在处理同类数据时将获得更大的压缩比。在处理异质数据时(例如,多种协议的大量数据包),压缩比率会大大降低。基于数据包的压缩系统会存在其它问题。压缩数据包时,这些系统必须在网络中编写小数据包,并进行其它工作以集合并封装多个数据包。仅有其中一项操作不可能达到最佳效果。在网络中编写小数据包会增加 TCP/IP 标头的开销。另外,集合并封装数据包会为该数据流增加封装标头。先进的压缩算法支持在处理所有应用类型时能够在完全同类的数据之间进行压缩。随之而来的结果是,与同类基于数据包的系统相比,压缩比更高。图2 同类数据压缩原理2.2 缓存原理2.2.1 基本原理所有压缩例程共同存在的局限性是存储空间有限。许多例程,例如 gzip,只能存储 64 Kb 的数据。其它技术,例如基于磁盘的压缩系统,可以存储 1 TB 的数据。为了理解字典大小的作用,需要对高速缓存管理内容有一个基本的了解。请求 web 站点类似,并非所有网络中传输的字节会在同一个频率下重复。有时系统会通过高频率传输一些字节,因为这些字节是常用文件或通用网络协议中的一部分。其它字节只会出现一次并且不会重复出现。压缩和堆积定律 (Zipfs Law and Heaps Law) 中描述了频繁重复字节序列和非频繁重复字节序列之间的关系。所有基于当前字典的压缩系统会通过存储频繁访问的数据并删除非频繁访问的数据以进行不均等的分配。通过这种优化方式,存储少于 10% 的所有字节方式会使命中率超过 50%。这种字节方式的不均等分布效果充分证明了公共压缩程序的效率。Gzip 仅存储 64kb 的历史记录,但平均能够压缩近 64% 的内容。Bzip2 能够存储 100kb 至 900kb 的历史记录,平均压缩了 66% 的内容。尽管数据存储空间不足,但 Gzip 和 Bzip2 仍能出色运行的原因在于频繁出现的字节序列能够表示网络中的大多数字节。2.2.2 数据块缓存原理基于块的系统可存储以前在广域网中传输数据流部分。再次遇到这些块时,其参考数据会传送到远程设备中,该远程设备继而会重组原始数据。基于块的系统主要缺点是反复出现的数据和块的长度永远不会完全相同。因此,匹配仅是部分匹配,还会留下一些重复数据不被压缩。下图详细描述了使用 256 字节块大小压缩 512 字节数据时的情况。图3 基于块的数据缓存为了提高缓存效率,字节级粒度的缓存技术出现了。匹配并发送带有字节级粒度 (byte level granularity) 的数据。下图说明了处理数据的过程。图4 字节级数据缓存与基于块的系统相比,字节粒度级别无论对于文档还是对于应用层协议标头,均能提高其压缩级别。2.3 TCP加速原理介绍TCP协议原理较为复杂,影响TCP性能的因素很多,但有一个关键的因素是TCP会降低带宽的利用率,这对于带宽极其有限的广域网来说是非常致命的。影响TCP带宽利用率的主要因素包括以下几个方面:n 窗口大小通告与滑动窗口n 拥塞避免n 慢启动n 窗口调节技术除了提高带宽利用率之外,减少确认重传次数,缩短TCP连接的握手过程时间等也是TCP加速的重要技术点。n 选择性确认n 3次握手过程的优化下面简单介绍这几个方面的原理。2.3.1 窗口大小通告与滑动窗口通信双方接收模块需要依据各自的缓冲区大小,相互通告还能接受对方数据的尺寸。双方发送模块则必须根据对方通告的接收窗口大小,进行数据发送。这种机制称之谓滑动窗口,它是TDP接收方的流量控制方法。它允许发送方在停止并等待确认前可以连续发送多个分组(依据滑动窗口的大小),由于发送方不必每发一个分组就停下来等待确认,因此可以加速数据的传输。 滑动窗口在排序数据流上不时的向右移动,窗口两个边沿的相对运动增加或减少了窗口的大小,关于窗口边沿的运动有三个术语:窗口合拢(当左边沿向右边沿靠近)、窗口张开(当右边沿向右移动)、窗口收缩(当右边沿向左移动)。 当遇到快的发送方与慢的接收方的情况时,接收方的窗口会很快被发送方的数据填满,此时接收方将通告窗口大小为0,发送方则停止发送数据。直到接收方用户程序取走数据后更新窗口大小,发送方可以继续发送数据;另外,因为ACK报文段有可能丢失,发送方可能没有成功接收到更新的窗口大小,因此发送方将启动一个坚持定时器,当坚持定时器超时,发送方将发送一个字节的数据到接收方,尝试检查窗口大小的更新。2.3.2 慢启动如果发送方一开始便向网络发送多个报文段,直至达到接收方通告窗口大小为止。当发送方与接收方在同一局域网时,这种方式是可以的。但如果在发送方与接收方之间存在多个路由器和速率较慢的链路时,就可能出现问题。一些中间路由器必须缓存分组,并有可能耗尽存储器的空间,将来得降低TCP连接的吞吐量。于是需要一种叫“慢启动”的拥塞控制算法。 慢启动为发送方增加一个拥塞窗口,记为cwnd,当与另一个网络的主机建立连接时,拥塞窗口被初始化为1个报文段。每收到一个ACK,拥塞窗口就增加一个报文段(cwnd以字节为单位,但慢启动以报文段大小为单位进行增加)。发送方取拥塞窗口与通告窗口中的最小值作为发送上限。拥塞窗口是发送方使用的流量控制,而通告窗口是接收方使用的流量控制。 发送方开始时发送一个报文段,然后等待ACK。当收到该ACK时,拥塞窗口从1增加到2,即可以发送两个报文段。当收到这两个报文段的ACK时,拥塞窗口就增加为4。这是一种指数增加的关系。2.3.3 拥塞避免慢启动算法增加拥塞窗口大小到某些点上可能达到了互联网的容量,于是中间路由器开始丢弃分组。这就通知发送方它的拥塞窗口开得太大。拥塞避免算法是一种处理丢失分组的方法。该算法假定由于分组受到损坏引起的丢失是非常少的(远小于1),因此分组丢失就意味着在源主机和目标主机之间的某处网络上发生了拥塞。有两种分组丢失的指示:发生超时和接收到重复的确认。拥塞避免算法与慢启动算法是两个独立的算法,但实际中这两个算法通常在一起实现。图5 拥塞避免与慢启动 拥塞避免算法和慢启动算法需要对每个连接维持两个变量:一个拥塞窗口cwnd和一个慢启动门限ssthresh。算法的工作过程如下: 1) 对一个给定的连接,初始化cwnd为1个报文段,ssthresh为65535个字节。 2) TCP输出例程的输出不能超过cwnd和接收方通告窗口的大小。拥塞避免是发送方使用的流量控制,而通告窗口则是接收方进行的流量控制。前者是发送方感受到的网络拥塞的估计,而后者则与接收方在该连接上的可用缓存大小有关。 3) 当拥塞发生时(超时或收到重复确认),ssthresh被设置为当前窗口大小的一半(cwnd和接收方通告窗口大小的最小值,但最少为2个报文段)。此外,如果是超时引起了拥塞,则cwnd被设置为1个报文段(这就是慢启动)。 4) 当新的数据被对方确认时,就增加cwnd,但增加的方法依赖于我们是否正在进行慢启动或拥塞避免。如果cwnd小于或等于ssthresh,则正在进行慢启动,否则正在进行拥塞避免。慢启动一直持续到我们回到当拥塞发生时所处位置的半时候才停止(因为我们记录了在步骤2中给我们制造麻烦的窗口大小的一半),然后转为执行拥塞避免。 慢启动算法初始设置cwnd为1个报文段,此后每收到一个确认就加1。这会使窗口按指数方式增长:发送1个报文段,然后是2个,接着是4个。拥塞避免算法要求每次收到一个确认时将cwnd增加1/cwnd。与慢启动的指数增加比起来,这是一种加性增长。我们希望在一个往返时间内最多为cwnd增加1个报文段(不管在这个RT T中收到了多少个ACK),然而慢启动将根据这个往返时间中所收到的确认的个数增加cwnd。 处于拥塞避免状态时,拥塞窗口的计算公式如下(引公式参照BSD的实现,segsize/8的值是一个匹配补充量,不在算法描述当中): cwnd <- cwnd + segsize * segsize / cwnd + segsize / 8。2.3.4 窗口调节技术传输窗口大小,即在收到回应之前一次发送的数据量,会直接影响到TCP的性能。相反,性能又与回程时间成正比,因为协议需要(通过ACK包表明数据已被成功接收的信号)确保数据投送到位。在最糟糕的情况下,一个端点会等待另一端点回应数据的传输情况,从而使网络闲置的时间变长。当传输窗口变得很小时,这种现象便会发生,但此现象并不能准确反映线路速度和延迟情况。 使情况变得更加复杂的是,TCP会根据响应速度调整自己的窗口大小。连接的距离越长,窗口就越小。如果响应的速度非常缓慢,TCP 协议就可能永远也不选择最大的窗口尺寸,这意味着许多广域网连接的完整容量永远也不会被完全利用。因此,TCP协议可能导致广域网性能的恶化,甚至在带宽 仍然非常充足时,性能的恶化也在所难免。同样,重传也会严重影响TCP的性能,要知道1%的包丢失可能导致最多80%的性能损失。TCP应当基于系统可用带宽时延积(BDP,Bandwidth Delay Product)设定合适的接收方窗口大小。接收方通知窗口应当至少同BDP一样大,否则接收方的TCP层将对最大可用带宽造成限制。该技术可以自行选择TCP窗口的大小,从而实现最高的传输速率并在广域网连接发生包丢失时 将重传数据包的数量减至最小。通知窗口应当尽可能地设大一些,使得所有的可用带宽都有可能使用;但如果通知窗口比BDP大太多,也可能因为缓存溢出和随后的TCP重传导致性能恶化。因而,通知窗口应当比BDP稍大,一方面充分使用容量,另一方面也不会损害到网络处理拥塞和丢报恢复的能力。TCP Fast Start也是一种算法,它可以加速TCP发送窗口的增长速度,从而实现了可用带宽的快速利用。2.3.5 选择性确认TCP连接期间,接收方将最后一个成功接收报文段的序号包含进ACK中,此即累积性确认。一般而言,选择性ACK(SACK,Selective Acknowledgement)则是可选项,它允许接收方向发送方通知所有数据段的传输状态。这样,发送方就可以有选择地重传,而不是仅仅重传第一个丢失分组并等待下一个ACK(一个RTT)来接收新的丢失信息。 在具有较大BDP通道时,SACK更能发挥作用,有研究结果表明它适合于具有中等丢失率(低于窗口大小的50%)的长延迟网络环境。这使得SACK比较适合于无线链路。但其不足在于它会稍微加大报头的尺寸(最多增添8byte),且其使用需要客户机、服务器两端的支持。2.3.6 Split TCPTCP连接跨越广域网时,广域网上跳数多,路由变化频繁,会对TCP连接的性能造成不良影响。为了提高TCP连接的吞吐率,提出Split TCP(即TCP代理)的解决思路。具体地说就是在TCP端到端连接中设置代理,将一条完整的长路经切割成多条段路径,针对每一条短路径分别建立TCP连接。这样可以提高TCP连接的吞吐量,同时也可以改善TCP建立的3次握手过程的性能。连接建立分要经过三次握手过程:1. 客户端发送一个SYN段到指明客户打算连接的服务器的端口,报文段中要设置客户端初始序号。2. 服务器发回包含服务器的初始序号的SYN报文段作为应答。同时,将确认序号设置为客户的初始序号加1,并设置ACK位标志报文段为确认报文段。3. 客户端必须将确认序号设置为服务器初始序号加1,对服务器的SYN报文段进行确认。 全局维护一个初始序号种子,这个初始序号为随时产生的32位整数。连接建立的超时和重传初始值为3秒,超时采用指数退避算法,3秒超时后超时值为6秒,然后是12秒,24秒。连接建立最长时间限制为75秒。图6 Split TCP2.4 QoS原理介绍2.4.1 模型1. Best-Effort模型Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。对Best-Effort服务网络,尽最大的可能性来发送报文,但对时延可靠性等性能不提供任何保证。2. InterServ模型该模型使用资源预留(RSVP)协议,RSVP运行在从源端到目的端的每个路由器上,负责请求/预留资源。InterServ模型能够在IP网上提供端到端的QOS保证。但是,InterServ模型对路由器的要求很高,当网络中的数据流数量很大时,路由器的存储和处理能力会遇到很大的压力。3. DiffServ模型区分服务(DiffServ)是IETF工作组为了克服InterServ的可扩展性差在1998年提出的另一个服务模型,目的是制定一个可扩展性相对较强的方法来保证IP的服务质量。在DiffServ模型中,业务流被划分成不同的差分服务类。一个业务流的差分服务类由其IP包头中的差分服务标记字段(Different Service Code Point,简称DSCP)来表示。在实施DiffServ的网络中,每一个路由器都会根据数据包的DSCP字段执行相应的PHB(Per Hop Behavior)行为,主要包括以下三类PHB:n Expedited Forwarding (EF):主要用于低延迟、抖动和丢包率的业务,这类业务一般运行一个相对稳定的速率,需要在路由器中进行快速转发;n Assured Forwarding (AF):这类业务在没有超过最大允许带宽时能够确保转发,一旦超出最大允许带宽,则允许根据不同的丢弃级别丢弃报文。AF确保转发类将转发行为分为4类,每一个确保转发类都被分配了不同的带宽资源,并对应3个不同的丢弃优先级。IETF建议使用4个不同的队列分别传输AF1x、AF2x、AF3x、AF4x业务,并且每个队列提供3种不同的丢弃优先级,因此可以构成12个有保证转发的PHB。n Best Effort (BE):尽力转发,主要用于对时延、抖动和丢包不敏感的业务。目前,基于DiffServ模型的QoS服务是业界主流。下面将简单介绍一些基于DiffServ模型的QoS技术。2.4.2 QoS技术介绍1. 流量分类和标记报文分类是将报文划分为多个优先级或多个服务类,如使用IP报文头的ToS(Type of service,服务类型)字段的前三位(即IP优先级)来标记报文,可以将报文最多分成8类;若使用DSCP(Differentiated Services Codepoint,区分服务编码点,ToS域的前6位),则最多可分成64类。在报文分类后,就可以将其它的QoS特性应用到不同的分类,实现基于类的拥塞管理、流量整形等。2. 拥塞管理拥塞管理是指网络在发生拥塞时,如何进行管理和控制。处理的方法是使用队列技术。将所有要从一个接口发出的报文 进入多个队列,按照各个队列的优先级进行处理。不同的队列算法用来解决不同的问题,并产生不同的效果。常用的队列有FIFO、PQ,CQ,RTP优先队列,WFQ,CBWFQ等。拥塞管理的处理包括队列的创建、报文的分类、将报文送入不同的队列、队列调度等。在一个接口没有发生拥塞的时候,报文在到达接口后立即就被发送出去,在报文到达的速度超过接口发送报文的速度时,接口就发生了拥塞。拥塞管理就会将这些报文进行分类,送入不同的队列;而队列调度对不同优先级的报文进行分别处理,优先级高的报文会得到优先处理。3. 拥塞避免由于内存资源的有限,按照传统的处理方法,当队列的长度达到规定的最大长度时,所有到来的报文都被丢弃。对于TCP报文,如果大量的报文被丢弃,将造成TCP超时,从而引发TCP的慢启动和拥塞避免机制,使TCP减少报文的发送。当队列同时丢弃多个TCP连接的报文时,将造成多个TCP连接同时进入慢启动和拥塞避免,称之为:TCP全局同步。这样多个TCP连接发向队列的报文将同时减少,使得发向队列的报文的量不及线路发送的速度,减少了线路带宽的利用。并且,发向队列的报文的流量总是忽大忽小,使线路的上的流量总在极少和饱满之间波动。为了避免这种情况的发生,队列可以采用加权随机早期检测WRED(Weighted Random Early Detection )的报文丢弃策略(WRED与RED的区别在于前者引入IP优先权,DSCP值,和MPLS EXP来区别丢弃策略)。采用WRED时,用户可以设定队列的阈值(threshold)。当队列的长度小于低阈值时,不丢弃报文;当队列的长度在低阈值和高阈值之间时,WRED开始随机丢弃报文(队列的长度越长,丢弃的概率越高);当队列的长度大于高阈值时,丢弃所有的报文。由于WRED随机地丢弃报文,将避免使多个TCP连接同时降低发送速度,从而避免了TCP的全局同步现象。当某个TCP连接的报文被丢弃,开始减速发送的时候,其他的TCP连接仍然有较高的发送速度。这样,无论什么时候,总有TCP连接在进行较快的发送,提高了线路带宽的利用率。4. 流量监管与流量整形流量监管(traffic policing)的典型作用是限制进入某一网络的某一连接的流量与突发。在报文满足一定的条件时,如某个连接的报文流量过大,流量监管就可以对该报文采取不同的处理动作,例如丢弃报文,或重新设置报文的优先级等。通常的用法是使用CAR来限制某类报文的流量,例如限制HTTP报文不能占用超过50%的网络带宽。流量整形(traffic shaping)的典型作用是限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送。流量整形通常使用缓冲区和令牌桶来完成,当报文的发送速度过快时,首先在缓冲区进行缓存,在令牌桶的控制下,再均匀地发送这些被缓冲的报文。5. 链路分片与交叉(Link Fragment & Interleave,LFI)对于低速链路,即使为语音等实时业务报文配置了高优先级队列(如RTP优先队列或LLQ),也不能够保证其时延与抖动,原因在于接口在发送其他数据报文的瞬间,语音业务报文只能等待,而对于低速接口发送较大的数据报文要花费相当的时间。采用LFI以后,数据报文(非RTP实时队列和LLQ中的报文)在发送前被分片、逐一发送,而此时如果有语音报文到达则被优先发送,从而保证了语音等实时业务的时延与抖动。LFI主要用于低速链路。6. RTP报文头压缩(RTP Header Compression,cRTP)cRTP主要在低速链路上使用,可将40字节的IP/UDP/RTP头压缩到24个字节(不使用校验和可到2字节),提高链路的利用率。cRTP主要得益于同一会话的语音分组头和语音分组头之间的差别往往是不变的,因此只需传递增量。RTP协议用于在IP网络上承载语音、视频等实时多媒体业务。3. 解决方案主要模块介绍H3C的OAA WAN优化解决方案,主要由MSR(Multiple Service Router)多业务路由器与WAAM(Wan Application )模块组成,两者之间通过ACFP(Application control forward protocol应用控制转发协议)进行互动连接。3.1 多业务路由器MSRMSR(Multiple Services Router)多业务开放路由器是H3C公司专门面向行业分支机构和大中型企业而推出的新一代网络产品。MSR先进的软件结构与硬件平台,能够在最小的投资范围内为企业边缘网络提供一体化解决方案,更能充分满足未来业务扩展的多元化应用需求,符合企业IT建设的现状与趋势。企业信息架构正在由C/S模式向B/S模式转变,MSR具备高数据转发能力与高加密能力,很好的解决了转变过程中凸现的网络带宽压力与安全隐患,保障企业关键业务流可以高速、机密的通过广域网传输。3.2 WAAM模块WAAM模块的主要功能包括以下4个部分:n 数据压缩n 应用加速n TCP加速n L7QoS3.2.1 数据压缩1. 压缩模式WAAM有两个压缩模式:IPComp, RTM。报文的具体压缩封装模式参加下图。图7 IPComp和RTM压缩模式n IPComp类似一种隧道封装方式,在两个WAAM模块之间建立一条静态隧道,对于隧道内的数据提供完全的封装,对原始报文头和数据都进行压缩处理,对外不可见,安全性较高。但由于对外屏蔽了原始报文头,使得网络中一些基于报文头特殊字段的处理无法实施,例如:QoS,流量分析等等。需要注意的是:如果有明确的需要,可以通过配置保留原始报文头中的部分字段,如:源地址、TTL或ToS域。n RTM保留原始报文头,仅压缩原始数据区,安全性较差,但由于保留了原始报文头,可以保证QoS、流量分析等功能的实施。2. 压缩算法WAAM的压缩算法主要有3个,分别针对不同区域的数据进行压缩。n VDA(Vertical Data Analysis), 将数据流分割成不同的报头和数据段,并标记可以缓存的部分。n SC(Selective Caching), 缓存重复传输的字节段。n APC(Adaptive Packet Compression), 对于不能缓存、不能分割报头的数据进行压缩。1) VDA算法图8 VDA算法VDA可以自动识别报文中的各个协议字段,例如::n HDLCn IP Headern TCP Headern HTTP/1.1 Headern XMLn Data通过预定义的规则,VDA能够分析更加细致的报头信息,例如:n sequence numbersn Checksumsn protocol identifiers2) SC算法图9 SC算法SC算法的本质就是数据块缓存,为了提高缓存效率,SC算法支持字节级粒度的缓存方式。从缓存的角度来看,VDA算法实际上是为SC算法服务的。3) APC算法图10 APC算法APC算法属于典型的压缩算法,具体原理与2.1小节中描述的原理很相似。不同的数据类型应用不同的压缩算法,例如:下列的数据就用不同的方式压缩处理。这样压缩效果更好。n HTMLn SQLn JavaScript4) 压缩处理过程在整个压缩过程中,VDA、SC、APC并不是独立存在的,而是相互配合、相互作用的一个整体,下面是一个完成的压缩过程中,各算法之间的关系。图11 压缩过程1VDA、SC、APC算法的应用有严格的顺序关系,VDA算法实际上可以看作是SC算法的一个准备步骤,而APC则是VDA/SC算法的有效补充。图12 压缩过程23.2.2 应用加速当前广域网存在的主要问题是时延过大,导致各种应用性能严重降低。针对广域网时延过大的问题,WAAM采用应用加速和TCP加速。应用加速主要包括:n HTTP/FTP/DNS等n Citrix的各种应用n 语音流的加速处理1. HTTP/FTP/DNS加速HTTP/FTP/DNS应用加速的原理是本地代理机制。即在本地应用加速设备上建立代理,通过代理与服务器连接连接,对常用的请求进行缓存。在收到请求时与缓存数据对比,如果匹配则可以直接从本地代理获取应答,有效的减少了穿越广域网的请求、应答过程。因此,可以取得很好的加速效果。图13 HTTP/FTP应用加速启用HTTP/FTP加速时,部分重复的请求与应答不需要穿越广域网,减小时延n 广域网优化设备终结会话n 缓存数据,并对重复的请求本地作出应答n 减少重复数据反复穿越广域网启用DNS加速时,广域网优化设备本地应答DNS请求,可以将原本需要200ms的应答缩短到5ms。图14 DNS应用加速2. Citrix应用加速Citrix应用加速的核心是“小包组大包”,减少报文头对带宽的消耗n Citrix数据流小包居多,平均报文大小是80-100字节,压缩后40-50字节,这些小包的报文头对带宽的消耗很可观n 将报文头相同的多个小包组成一个大包,可以有效的减少报文头部对于带宽的消耗图15 Citrix应用加速3. 语音应用加速语音加速的核心是链路分片与交叉(Link Fragment & Interleave,LFI)n 语音等实时业务报文配置了高优先级队列(如RTP优先队列或LLQ)n 低速接口发送较大的数据报文要花费相当的时间,影响语音时延n 采用LFI以后,数据报文(非RTP实时队列和LLQ中的报文)在发送前被分片、逐一发送,而此时如果有语音报文到达则被优先发送,从而保证了语音等实时业务的时延与抖动图16 语音应用加速3.2.3 TCP加速WAAM在实现TCP加速技术方面,主要依据SCPS(Space Communications Protocol Standards)的标准。重点突出以下几个方面的技术内容:1. Split TCP突破TCP端到端连接的理念:取消了广域网上TCP连接建立的3次握手过程。加快TCP连接建立过程。n 在两端的局域网内建立两个高速的TCP连接n 在两端的TCP加速设备之间建立一条优化的TCP连接内网隔离,快速启动。本地加速设备回应SYN报文,同时保证广域网连接启动2. 优化TCP,增加带宽的使用率n 取消广域网上TCP连接得慢启动过程,广域网两侧的加速设备统一配置带宽参数,通过带宽参数计算拥塞窗口的尺寸n 取消窗口大小调整过程。窗口尺寸根据带宽计算,相对固定,不再频繁变化。窗口大小调整, 扩大 TCP 窗口尺寸:基准值 16K ,最大值 64K。便于ACK快速到达,减少不必要的重传。n 选择性ACK SNACK,仅对丢弃的包进行重传。n 不对称链路,例如:减少广域网上ACK传输的数量n 取消拥塞避免机制n 优化容错算法3.2.4 基于应用的QoS技术基于应用的QoS的本质还是QoS,不同的是前者增加了一项功能:识别应用。在识别应用的基础上,对不同的应用进行标识,然后基于不同的标志对不同的应用作不同的QoS处理,就是基于应用的QoS技术的意义。1. 应用识别WAAM识别应用的范围包括以下几个方面:n 预定义的应用识别n 支持60种预定义的应用识别,保存全部统计信息n 支持266种预定义的应用识别,保存简要信息n 支持50种自定义的应用识别,定义内容包括:n IP地址和端口号n TOS/COSn 入方向或是出方向n 7层应用识别,包括:n HTTP地址,URL, MIME等等n Citrix发布的应用,客户端名称等等另外,WAAM还能监控所有应用的历史统计数据。2. QoS处理WAAM对不同的应用做不同的QoS处理,主要包括以下几个方面:n 识别应用后,指定应用的优先级n 根据应用的优先级,改变报文的TOS/COS域n 指定应用的最小占用带宽n 指定应用的最大占用带宽3.2.5 ACFP协议ACFP Application control forward protocol,应用控制转发协议,一种设备间的C/S(客户端/服务端)模式的联动框架。数据通信的基础网络主要由路由器、交换机这些设备组成,路由器、交换机完成了数据报文的转发;随着数据网络的逐步发展,数据网络上运行的业务也越来越多,路由器、交换机上支持的业务也越来越多,这期间,一些专门的业务处理设备也应运而生,譬如,防火墙、IDS、IPS等安全产品,还有一些语音、无线产品。为更好地支撑这些业务,路由器、交换机这些传统网络设备也纷纷推出业务板(卡)专门来处理这些业务,有些传统网络设备(这里指路由器、交换机)的厂家提供一套软硬件接口(譬如H3C提出的OAA 架构),允许其他厂家提供板(卡)的硬件或软件,插入到传统网络设备上,协作处理这些业务,从而能发挥各厂家在各自领域的优势,更有效地支撑这些,并同时减低了用户投资。OAA体系结构如下图所示:图17 OAA体系结构示意图从图中我们看到,OAA体系中,从硬件结构上看,可以分成三部分:路由交换部件、独立业务部件、接口连接部件。其中,路由交换部件就是路由器和交换机的主体部分,这部分有着完整的路由器或交换机的功能,也是用户管理控制的核心;独立业务部件则是可以开放给第三方合作开发的主体,主要用来提供各种独特的业务服务功能;接口连接部件则是路由交换接部件和独立业务部件的接口连接体,通过这个部件将两个不同厂商的设备连接在一起,以形成一个统一的产品。这里需要指出的是,此处,独立业务部件与路由交换部件是通过以太网相连。路由交换部件与独立业务部件实际是两个完全独立的主体,这两个主体如何协作完成某种特定业务,譬如,IPS业务,需要两者的联动,ACFP联动规范主要定义的就是这两者之间为协作完成业务而做的一系列工作。这种联动是一种C/S模式的联动,独立业务部件是ACFP Client,路由交换部件是ACFP Server;IDS等专门设备是ACFP Client,传统网络设备(主要指路由器、交换机)是ACFP Server。ACFP Client与ACFP Server之间允许以多对一的形式存在。根据ACFP Server与ACFP Client在报文流中的所处位置,将ACFP联动的工作模式分为以下四类:主机模式、透传模式、镜像模式、重定向模式。2. 主机模式主机模式下的报文流如下图所示,报文流的正常转发出接口同时也是连接ACFP Client的接口,ACFP Cli