文献标识码: A
文章编号: 0258-7998(2013)06-0096-04
网络技术的发展给人们的工作和生活带来了极大的便利,用户数量与日俱增。电子商务、网络游戏等业务对网络的传输速度和数据处理速度提出了更高的要求。传统TCP协议采用的加性增加和乘性减少的AIMD 窗口管理机制使其不能适应高带宽延时广域网的发展[1]。在高带宽延时网络环境下,TCP流将会不断抖动,造成路由器上的队列长度产生不稳定性,TCP 的性能会随着链路带宽或延时的增加而逐渐降低[2]。针对这些问题,很多学者对TCP的拥塞控制机制进行了改进,例如:BIC TCP、CUBIC、FAST TCP等,这些协议通过改变TCP拥塞窗口的调整参数使之在当今网络中发挥更好的性能。但是,由Hamilton实验室搭建的测试床对上述TCP协议进行测试的实验结果表明,除了H-TCP外,其他协议均存在很大的性能问题,特别是RTT不公平性问题[3]。与上述改进TCP协议的研究方法不同,并行TCP是通过增加TCP连接的数目以及TCP流之间的协作来提高网络传输性能的。
1 并行TCP加速系统的设计
针对广域网目前存在的带宽、可靠性和延迟三方面存在的问题,并行TCP广域网加速系统设计采用双网关模式,实现客户端局域网中的用户对服务器端局域网内多种服务应用的加速访问。加速系统主要由以下几个模块组成:系统配置和日志记录、接入会话控制、应用数据管理和网关间传输控制。
(1) 系统配置和日志记录
系统配置提供给用户灵活配置系统参数的功能,用户可以针对不同的服务及其侧重的优化指标进行灵活的系统参数配置,实现更好的加速效果,例如并发流数目的设置、并发流的调度策略以及各种策略本身的参数等。
(2) 接入会话控制
接入会话控制实现了会话管理、会话同步控制和会话数据流量控制三个功能。
根据需求,用户可以访问对端局域网内的多个服务应用,系统将根据服务应用的IP地址和端口对各种会话进行分组管理。会话管理通过为接入会话设置的ID,实现对会话的快速定位和控制。
由于采用双网关加速设计模式,数据的传输由两端网关接入会话和网间并行TCP隧道协同完成。服务器端会话在系统启动时已经创建成功。在系统支持的接入会话负载允许时,服务器端网关将为接入客户端网关新会话分配一个“空闲”会话连接,与网间隧道共同组成一条数据链路,完成用户与服务器之间的数据传输。
(3) 应用数据管理
应用数据管理主要负责数据的转化转发任务,包括对会话数据分块封装、分配转发控制和对网间数据进行重组解析、分发控制。
应用数据管理通过对会话类型的判断,分别完成对接入会话数据和网间隧道会话数据的不同处理操作。对于接入会话,系统根据接入会话的组标识和会话号对其数据进行分块封装,并按照数据分配策略分配给相应的网间隧道会话。对于网间隧道会话,系统将对其数据进行解析,根据解析得到的控制信息将其有效数据分发给相应的接入会话。
在低速网络中,传统TCP协议表现出良好公平性使得平均分配策略效率很高且简单易行,但是,随着带宽延时乘积增大,AIMD的窗口调整策略使传统TCP在高带宽延网络中公平分享带宽的调整时间过长,因此传统TCP协议的公平性越来越差。最小缓存数据量优先分配策略解决了这问题,根据缓存中排队的数据量的多少,判断TCP连接的发送能力,进而为其分配相当的数据。
(4) 网关间传输控制
网关间传输控制实现了网关间并行TCP隧道的管理,即隧道TCP会话的接入控制和隧道数据的传输。与会话管理中的会话接入控制相似,隧道TCP会话的接入控制是根据配置文件来配置的服务器端网关的IP地址和隧道侦听端口对隧道TCP会话进行分组管理,形成并行TCP隧道。系统通过隧道标识和隧道TCP会话标识进行定位,从而完成接入会话数据向隧道TCP会话的数据分配。隧道数据的传输交付socket完成。
2 并行TCP加速系统的实现
根据设计,系统实现了加速网关的两种启动模式:服务器端网关模式和客户端网关模式,具体的网关数据通信流程如图1所示。
2.1 数据转化转发控制
为了实现会话数据和网间数据的转化转发,应用数据管理定义了自己的网关间传输数据包封装格式。数据包用于携带会话数据;确认包和同步包用于携带控制信息,分别应用于会话流量控制和会话同步控制。
数据转发控制对会话数据的重组是在会话的发送缓存中完成的。会话的发送缓存是BlockContainer对象,是用STL容器中的映射表map实现的,BlockContainer对象以数据包序列号和指向数据包中有效数据的指针构成映射。数据转发控制完成对数据包的解析后,就可以在会话发送缓存BlockContainer对象中添加对应表项,这样可以避免大量数据的转储,如图2所示。会话发送数据时,则可顺序读取缓存BlockContainer中的表项,如果返回指针非空,则在对应内存地址取数据块;如果是空指针,则说明有数据包延迟,发送线程将会阻塞,等待该数据包到达激活该发送线程。
2.2 会话管理
加速网关系统的实现有两种会话类型,系统外接入会话和网间隧道中的TCP会话。基于socket编程中的主动请求和侦听接收两种建立连接的方式,系统分别对会话的客户端和服务器端实现了不同的管理方式。
客户端管理分三个层次,如图3所示,客户端分组的特征字符串是所连接服务器的IP地址和端口,多个Client对象组成一个Client group,多个Client group隶属于Client Manager对象进行统一管理。
Client Manager对象实现了针对服务应用的Client Group管理,Client Group直接对属于自己分组的Client对象进行管理,以会话号LINK_ID为关键字建立映射map,map定义为<LINK_ID,TCPClient>,实现TCP Client的快速定位。Client Group对象完成组内客户端的查找、添加和删除。 TCP Client对象实现了socket通信的基本功能,如发起连接、接收数据和发送数据,数据的接收和发送采用独立的线程操作,提高通信效率。
服务器端管理的层次与客户端管理是类似的,两者区别是服务端管理TcpServer Manager的管理对象是TcpServer,是以其监听的套接字和端口号为主键创建Map对象。TcpServer对象实现了端口监听和接收新连接的操作,将接收新连接TcpClient对象添加到其成员类TCPGroup对象进行管理。
2.3 会话同步控制
系统实现中,每一个会话分组都维护了一个布尔型数组。数组位序就是待分配的会话号资源(LINK_ID)。数组布尔型元素的值在两端网关上有着不同的意义,在客户端网关上,它标识其位序对应会话的“建立”或“断开”;在服务器端网关上,它标识的是其位序对应会话的“忙”或“空闲”状态。系统通过会话号实现了会话状态位和会话的绑定,进而通过对两端网关设置相同的会话号资源实现两端系统中的会话同步。
2.4 会话流量控制
TCP滑动窗口机制是通过控制发送窗口开始和结束位置包序列号来实现的。与其不同,本系统采用了类似TCP滑动窗口的流量控制机制,通过返回确认信息进行数据量统计来实现流量控制。
根据用户配置,系统分别为每个会话分组设定了一个发送窗口值SND_W和接收窗口值RCV_W,且保证SND_W不小于RCV_W。每个接入会话声明了两个变量snd_count和rcv_count,分别统计会话已转发到网关但未被对端确认的数据量和已从网关接收的数据量。整个流量控制过程由两端会话的接收线程和发送线程协同完成。
3 系统测试分析
系统测试是在实验室里搭建的测试床上进行的,如图4所示,网关主机配置Linux 2.6内核,用WANem模拟广域网,用iperf来生成TCP背景流。在100 MB的瓶颈带宽环境下,对系统进行大文件传输测试和Web网页访问测试。
在部署加速网关前,在无背景流的网络环境中,随着网络时延的增加,瓶颈链路的带宽有效利用率逐渐下降,由10 ms时的25 Mb/s降低到100 ms时的5 Mb/s。可见,网络延时对瓶颈带宽利用率的影响是很严重的,增加了背景流后的瓶颈链路的带宽有效利用率更差。在部署加速网关系统之后,无论有无背景流,瓶颈链路带宽的有效利用率明显得到提高。特别是在有背景流的网络环境中,瓶颈链路带宽的有效利用率提高了14~23倍之多。这说明了并行TCP传输在高带宽长时延的广域网中具有更好的带宽利用率。
3.2 Web网页访问测试
测试方案:广域网瓶颈带宽设置为100 MB,网络延时设置为100 ms,分别在有无背景流网络环境中,在启用加速网关的前后,对Web访问的平均响应时间进行测试。下载网页的大小为3 126 B。为了避免系统所带来的随机性,测试结果是多次测试结果的平均值,如图6所示。在实验中,Web访问测试采用了LoadRunner测试工具,录制了特定的测试脚本,实现了测试方案的可重复性,并对测试做出了准确的结果分析。
从图6中可以看出,在部署加速网关之前,在添加背景流前后,网页下载时间增长200 ms左右,其他的细分分量都有相应增加。这说明了添加背景流对Web网页访问的效率是有影响的。
在无背景流的情况下,部署加速网关明显减少了网页下载时间,在其三个细分分量中,连接时间减少到几乎为零,这是因为部署加速网关前,连接时间是指客户端经过客户端网关、路由器和服务器端网关与Web服务器建立连接花费的时间,经历了模拟广域网的网络时延;部署加速网关后,连接时间是指客户端与客户端网关建立连接的时间,这个连接的建立过程是在局域网内完成的,网关间的连接和服务器端网关与Web服务器的连接是在网关系统启动时建立好的,因此,从用户角度看,大大节省了连接建立的时间。
综上所述,针对要解决的网络应用环境所存在的问题,对于文件传输应用,并行TCP加速系统提高了对广域网瓶颈带宽的利用率,提高了数据的传输性能;对于Web网页访问应用,并行TCP加速系统减少了网页下载速度。可见,该加速方案对这两大互联网应用都具有很好的加速效果。
针对目前网络上普遍存在的广域网瓶颈问题,并行TCP加速网关系统提供了一个很好的解决方案。该系统已经实现了会话接入的重定向、会话数据的截获、分块封装、解封重组和数据的网关间的并行传输等系统功能。为了能应用到实际网络中,还需要从网关关联控制方面进行完善,该系统是一个分布式系统,客户端网关与服务器端网关之间需要实时的状态信息交互,以应对可能出现的网络异常情况(如网络的异常断开等),提高系统的健壮性。
参考文献
[1] AKYILDIZ I F, WANG X, WANG W. Wireless mesh networks: a survey[J]. Computer Networks, 2005,47(4):445-487.
[2] 王建新,郭振华,盛羽.基于并行TCP技术的广域网通信加速方法[P].CN201010528603.0.中南大学,2011-02-16.
[3] IEEE Standard 802.16-2004.IEEE standard for local and metropolitan area networks-part 16: air interface for fixed broadband wireless access systems[z]. Oct. 2004.
[4] KATEVENIS M, SIDIRPPOUS S, COURCOUBETIS. Courcoubetis[J]. Weighted Round Robin Cell Multiplexing in a General Purpose ATM Switch Chip. IEEE J. Select. Areas Commun.,1991,9(10):1265-1279.