基于广域网数据压缩的改进TCP代理方法转让专利

申请号 : CN201511026543.1

文献号 : CN106936875B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈弘原李文达阚珊蕾余丽丽

申请人 : 南京理工大学

摘要 :

本发明公开了一种基于广域网数据压缩的改进TCP代理方法,当代理服务器监听到本地局域网内的客户端向目标局域网内的服务器发出连接请求,则代理服务器会将带有广域网标记的连接请求发往代理客户端;代理服务器与代理客户端之间在连接建立过程中进行私有选项协商;连接完成后,代理客户端与代理服务器采用本地终结模式对数据进行应答;基于广域网环境,代理服务器和代理客户端之间的数据通信采用改进的TCP协议机制并配合使用广域网压缩技术。本发明能够有效减少广域网数据传输的时间开销,提高广域网带宽的利用率,加快文件和数据传输的速度。

权利要求 :

1.一种基于广域网数据压缩的改进TCP代理方法,在本地局域网中,客户端与代理服务器连接,在目标局域网中,代理客户端与服务器连接,其特征在于,客户端与代理服务器之间的连接、代理服务器和代理客户端之间的连接以及代理客户端与服务器的连接为TCP连接、基于TCP的HTTP连接或基于TCP的FTP连接,方法包括以下步骤:步骤1、基于广域网环境,代理服务器和客户端在本地注册侦听驱动事件;

步骤2、当代理服务器侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个LAN TCP,并向应用层上报连接请求事件;然后创建一个与LAN TCP对应的WAN TCP,由WAN TCP构造一个新的连接请求SYN’报文,并发送给代理客户端;

步骤3、当代理客户端侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个WAN TCP,并向应用层上报连接请求事件;然后将请求报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后,创建一个与WAN TCP对应的LAN TCP,由LAN TCP构造一个新的连接请求SYN报文,并发送给服务器;

所述的WAN优化选项包括透明代理功能、冗余数据消除功能及数据压缩功能中的一种或多种,保存在TCP报文中;

步骤4、当代理客户端接收到服务器回复的SYN+ACK报文,匹配到本地LAN TCP;然后获取与之相对应的WAN TCP,由WAN TCP构造一个新的SYN+ACK’报文,并发送给代理服务器;

步骤5、代理服务器接收到SYN+ACK’报文后,匹配到本地WAN TCP;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后获取与之相对应的LAN TCP,由LAN TCP构造一个新的SYN+ACK报文,报文中不携带本地WAN优化选项,并发送给客户端;

步骤6、代理服务器收到客户端发送的ACK报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后构造新的ACK’报文,携带本地WAN优化选项,发送到代理客户端;

步骤7、代理客户端收到代理服务器发送的ACK’报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后构造新的ACK报文,不携带本地WAN优化选项,发送到服务器;至此,TCP代理连接建立完成;

步骤8、连接建立后,代理服务器中的LAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给客户端;然后通知应用层读取数据;

最后,应用层调用数据发送接口,由WAN TCP将数据发送给代理客户端;

步骤9、代理客户端中的WAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给代理服务器;然后通知应用层读取数据;最后,应用层调用数据发送接口,由LAN TCP将数据发送给服务器;通信过程完成。

2.根据权利要求1所述的基于广域网数据压缩的改进TCP代理方法,其特征在于,代理服务器与代理客户端发送数据之前需要对数据进行压缩处理。

3.根据权利要求2所述的基于广域网数据压缩的改进TCP代理方法,其特征在于,代理服务器与代理客户端接收数据之后需要对数据进行解压缩处理。

说明书 :

基于广域网数据压缩的改进TCP代理方法

技术领域

[0001] 本发明涉及广域网加速技术,特别是一种基于广域网数据压缩的改进TCP代理方法。

背景技术

[0002] 随着经济的快速发展和科技的快速进步,企业的形态和规模也发生了巨大的变化。无论是大型的企业集团,还是处于快速发展过程中的中小型企业,分布式的企业结构都是企业在进行信息系统的建设和自动化办公中需要面临的难题。大量国内甚至国外的异地分部和办事处(以下统称分支)的存在,每个分支都有自己的业务系统和数据,为了实现高效率的协同办公,利用网络互联的方式将分散在各地分支的内部小型信息系统和工作网络连接起来协同工作,在整个公司内部实现全天时大范围的数据传输和应用服务的共享式最好的解决方案。
[0003] 由于TCP协议本身应答机制和拥塞控制所带来的时延,以及诞生之初TCP协议在安全性方面未做过多考虑,再加上受到广域网的传输效率、网络时延和网络拥塞等所种因素的影响,企业的各个分支在使用TCP进行数据传输时主要问题在于能否有效提高数据传输的效率。广域网一般跨区域跨运营商的情况非常普遍,大量的路由及网关导致的丢包和延时使得传输系统的使用效果大打折扣。提高广域网的传输速度从硬件和基础设施建设方面而言,需要多方面的投入,并且是一个长期建设和发展的过程。对于像企业这样的用户而言,能否提供一些基于软件和通信协议的解决方案,使企业异地之间的数据和网络通信能够通过广域网实现高效传输,就成为了企业迫在眉睫的需求。

发明内容

[0004] 本发明的目的是提供一种基于广域网数据压缩的改进TCP代理方法,从而有效减少广域网数据传输的时间开销,加快文件和数据传输的速度。
[0005] 实现本发明目的的技术解决方案为:一种基于广域网数据压缩的改进TCP代理方法,在本地局域网中,客户端与代理服务器连接,在目标局域网中,代理客户端与服务器连接,方法包括以下步骤:
[0006] 步骤1、基于广域网环境,代理服务器和客户端在本地注册侦听驱动事件;
[0007] 步骤2、当代理服务器侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个LAN TCP,并向应用层上报连接请求事件;然后创建一个与LAN TCP对应的WAN TCP,由WAN TCP构造一个新的连接请求SYN’报文,并发送给代理客户端;
[0008] 步骤3、当代理客户端侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个WAN TCP,并向应用层上报连接请求事件;然后将请求报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后,创建一个与WAN TCP对应的LAN TCP,由LAN TCP构造一个新的连接请求SYN报文,并发送给服务器;
[0009] 所述的WAN优化选项包括透明代理功能、冗余数据消除功能及数据压缩功能中的一种或多种,保存在TCP报文中;
[0010] 步骤4、当代理客户端接收到服务器回复的SYN+ACK报文,匹配到本地LAN TCP;然后获取与之相对应的WAN TCP,由WAN TCP构造一个新的SYN+ACK’报文,并发送给代理服务器;
[0011] 步骤5、代理服务器接收到SYN+ACK’报文后,匹配到本地WAN TCP;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后获取与之相对应的LAN TCP,由LAN TCP构造一个新的SYN+ACK报文,报文中不携带本地WAN优化选项,并发送给客户端;
[0012] 步骤6、代理服务器收到客户端发送的ACK报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后构造新的ACK’报文,携带本地WAN优化选项,发送到代理客户端;
[0013] 步骤7、代理客户端收到代理服务器发送的ACK’报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后构造新的ACK报文,不携带本地WAN优化选项,发送到服务器;至此,TCP代理连接建立完成;
[0014] 步骤8、连接建立后,代理服务器中的LAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给客户端;然后通知应用层读取数据;最后,应用层调用数据发送接口,由WAN TCP将数据发送给代理客户端;
[0015] 步骤9、代理客户端中的WAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给代理服务器;然后通知应用层读取数据;最后,应用层调用数据发送接口,由LAN TCP将数据发送给服务器;通信过程完成。
[0016] 与现有技术相比,本发明的有益效果为:
[0017] (1)本发明将代理技术和广域网压缩技术进行组合,在代理服务器和代理客户端之间使用改进后的TCP协议栈进行加速;相对于需要服务端和客户端的传输加速方法,本发明没有修改服务端和客户端的连接配置和网络拓扑结构,不影响所代理对象的应用软件的使用;
[0018] (2)相对于实现应用层加速的TCP代理技术,本发明在代理服务器和客户端之间的传输层使用改进后的TCP协议栈对TCP数据进行控制,提高了广域网数据传输速率;
[0019] (3)针对大文件下载的典型网络应用,本发明大幅度提高了广域网瓶颈带宽的利用率;针对Web网页访问的典型网络应用,本发明大幅减少了数据收发的时间,减少了网页的下载时间;
[0020] (4)本发明结合广域网压缩技术对广域网中的数据进行处理,减少数据的载荷大小,减轻广域网链路的负载,大大提高了Web访问典型应用的网页下载速度。

附图说明

[0021] 图1为本发明的网络部署示意图。
[0022] 图2为本发明应用层与传输层交互示意图。
[0023] 图3为本发明系统连接建立时序图。
[0024] 图4为本发明的客户端和服务器的交互时序图。
[0025] 图5为本发明实施例中系统测试组网图。

具体实施方式

[0026] 结合图1、图2,一种基于广域网数据压缩的改进TCP代理方法,在本地局域网中,客户端与代理服务器连接,在目标局域网中,代理客户端与服务器连接,方法包括以下步骤:
[0027] 步骤1、基于广域网环境,代理服务器和客户端在本地注册侦听驱动事件;
[0028] 步骤2、当代理服务器侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个LAN TCP,并向应用层上报连接请求事件;然后创建一个与LAN TCP对应的WAN TCP,由WAN TCP构造一个新的连接请求SYN’报文,并发送给代理客户端;
[0029] 步骤3、当代理客户端侦听到本地局域网内的客户端向目标局域网内的服务器发出TCP连接请求,在本地创建一个WAN TCP,并向应用层上报连接请求事件;然后将请求报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后,创建一个与WAN TCP对应的LAN TCP,由LAN TCP构造一个新的连接请求SYN报文,并发送给服务器;
[0030] 所述的WAN优化选项包括透明代理功能、冗余数据消除功能及数据压缩功能中的一种或多种,保存在TCP报文中;
[0031] 步骤4、当代理客户端接收到服务器回复的SYN+ACK报文,匹配到本地LAN TCP;然后获取与之相对应的WAN TCP,由WAN TCP构造一个新的SYN+ACK’报文,并发送给代理服务器;
[0032] 步骤5、代理服务器接收到SYN+ACK’报文后,匹配到本地WAN TCP;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后获取与之相对应的LAN TCP,由LAN TCP构造一个新的SYN+ACK报文,报文中不携带本地WAN优化选项,并发送给客户端;
[0033] 步骤6、代理服务器收到客户端发送的ACK报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后构造新的ACK’报文,携带本地WAN优化选项,发送到代理客户端;
[0034] 步骤7、代理客户端收到代理服务器发送的ACK’报文,本地两个TCP连接建立完成,向应用层上报DATA_READY事件;然后将报文中的WAN优化选项与本地WAN优化选项取交集,保存在本地;最后构造新的ACK报文,不携带本地WAN优化选项,发送到服务器;至此,TCP代理连接建立完成;
[0035] 步骤8、连接建立后,代理服务器中的LAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给客户端;然后通知应用层读取数据;最后,应用层调用数据发送接口,由WAN TCP将数据发送给代理客户端;
[0036] 步骤9、代理客户端中的WAN TCP接收到本地局域网内的客户端向目标局域网内的服务器发送的数据报文,伪造ACK报文,发送给代理服务器;然后通知应用层读取数据;最后,应用层调用数据发送接口,由LAN TCP将数据发送给服务器;通信过程完成。
[0037] 进一步的,客户端与代理服务器之间的连接、代理服务器和代理客户端之间的连接以及代理客户端与服务器的连接为TCP连接、基于TCP的HTTP连接或基于TCP的FTP连接。
[0038] 代理服务器与代理客户端发送数据之前需要对数据进行压缩处理;代理服务器与代理客户端接收数据之后需要对数据进行解压缩处理。
[0039] 代理客户端和代理服务器的两个TCP均维护三个队列,分别为乱序队列、重传队列及发送队列;乱序队列对乱序的数据报文进行存储和管理,重传队列对已经发送出去但未收到确认的报文进行存储和管理,发送队列中保存等待发送的数据,以保证在正常情况下数据发送的有序进行。
[0040] 步骤2中WAN TCP发送的SYN’报文选项和步骤4中WAN TCP发送的SYN+ACK’报文选项中均包含扩大窗口因子选项、使能选择性重传选项及WAN优化选项。
[0041] 代理服务器和代理客户端均包括传输流优化模块和数据冗余消除模块。
[0042] 步骤2中当代理服务器收到连接请求报文后,LAN TCP状态置为syn_sent,WAN TCP状态置为syn_sent;步骤3中当代理客户端收到连接请求报文后,WAN TCP状态置为syn_received,LAN TCP状态置为syn_received;步骤6中连接建立后,WAN TCP和LAN TCP状态均置为established;步骤7中连接建立后,WAN TCP和LAN TCP状态均置为established。
[0043] 下面结合具体实施例对本发明做进一步详细说明。
[0044] 实施例
[0045] 如图1所示,代理部署在网关上,位于企业局域网内,与客户端建立TCP连接的设备是代理服务器;位于另一企业局域网内,与服务器建立TCP连接的设备是代理客户端;代理客户端和代理服务器之间是广域网环境。
[0046] 如图2所示,代理一边与同一局域网内客户端通信,另一边与广域网内另一代理通信;WAAS指广域网加速设备应用,FTCP为TCP代理的传输层协议栈;通信步骤如下:
[0047] 步骤一,在代理服务器和代理客户端开启WAAS服务,表示TCP传输需要支持广域网加速功能;并设置WAAS能力为TFO/DRE/LZ,表示代理服务器和代理客户端均支持基于广域网压缩技术的TCP代理功能,广域网应用服务WAAS向FTCP注册侦听驱动并绑定相应端口;
[0048] 步骤二,客户端向服务器发起连接,代理客户端向代理服务器发送源地址和目的地址分别为客户端和服务器IP地址的连接请求报文,并进行请求阶段的选项协商,FTCP截获客户端向服务器发送的SYN报文,经FTCP模块处理后,将携带自定义选项的SYN’报文发往代理客户端,并向WAAS应用上报socket_request事件;
[0049] 步骤三,FTCP截获代理客户端回复的SYN+ACK报文,去除自定义选项再将报文SYN’+ACK发往客户端;
[0050] 步骤四,FTCP截获客户端发送的ACK报文,添加自定义选项后再将ACK’发往代理客户端,并向WAAS上报data_ready事件;
[0051] 步骤五,WAAS调用FTCP_Accept获取到当前已经完成连接建立的TCP句柄;
[0052] 步骤六,FTCP截获客户端向服务器端发送的数据报文,向WAAS上报data_ready事件;
[0053] 步骤七,WAAS读取数据,再交由FTCP发送数据;
[0054] 步骤八,数据经DRE/LZ处理后,发往代理客户端;
[0055] 步骤九,FTCP截获服务器向客户端发送的数据报文,向WAAS上报data_ready事件;
[0056] 步骤十,WAAS读取数据,再交由FTCP发送数据;
[0057] 步骤十一,数据经DRE/LZ的逆向操作,发往客户端。
[0058] 如图3所示,本发明建立的TCP连接包括客户端和代理服务器之间的TCP连接(局域网内)、代理服务器和代理客户端之间的TCP连接(广域网内)及代理客户端和服务器之间的TCP连接(局域网内)。
[0059] 代理服务器和代理客户端集成在现有的网关中,建立的过程如下:
[0060] 步骤一,根据网络结构和应用要求,配置各代理节点的配置,包括本端的WAN优化能力、最大客户端连接请求的数目和最大完成连接的TCP数目;
[0061] 步骤二,代理服务器和代理客户端启动监听端口,监听客户端连接;
[0062] 步骤三,启动后,客户端向服务器请求连接,代理服务器发送源地址和目的地址分别为客户端和服务器IP地址的TCP连接请求报文;
[0063] 步骤四,代理服务器收到请求报文后,建立WAN TCP控制块和LAN TCP记录TCP信息,WAN TCP源地址与目的地址分别为请求报文的源地址和目的地址,而LAN TCP的源地址与目的地址分别为请求报文的目的地址和源地址;然后重构请求报文,添加本地WAN优化能力选项,不改变报文原有的源地址和目的地址信息,并发送给代理客户端;
[0064] 步骤五,代理客户端收到请求报文后,建立WAN TCP控制块和LAN TCP记录TCP信息,WAN TCP源地址与目的地址分别为请求报文的目的地址和源地址,而LAN TCP的源地址与目的地址分别为请求报文的源地址和目的地址;然后重构请求报文,去除WAN优化能力选项,不改变报文原有的源地址和目的地址信息,并发送给代理服务器;
[0065] 步骤六,直至连接完成,代理服务器和代理客户端均具有两个连接建立状态为ESTABLISHED的TCP连接;
[0066] 下面以数据传输实例说明本发明,数据传输包括连接过程和交互过程,其中:
[0067] (一)连接过程,具体如图3所示,包括以下步骤:
[0068] 客户端向服务器发送连接请求报文;
[0069] 代理服务器向代理客户端发送连接请求,包含本地WAN优化选项,代理服务器中的两个TCP的状态均为syn_sent;
[0070] 代理客户端向服务器发送连接请求,不包含本地WAN优化选项,代理客户端中的两个TCP的状态均为syn_sent;
[0071] 服务器回复连接请求响应;
[0072] 代理客户端回复连接请求响应,包含本地WAN优化选项,代理客户端中的两个TCP的状态均为syn_received;
[0073] 代理服务器回复连接请求响应,不包含本地WAN优化选项,代理客户端中的两个TCP的状态均为syn_received;
[0074] 客户端回复最后一个响应报文;
[0075] 代理服务器回复最后一个响应报文,包含本地WAN优化选项,连接建立完成,此时TCP状态为established;
[0076] 代理客户端回复最后一个响应报文,不包含本地WAN优化选项,连接建立完成,此时TCP状态为established。
[0077] (二)交互过程,具体如图4所示,包括以下步骤:
[0078] 客户端向服务器发送数据报文;
[0079] 代理服务器向客户端回复ACK报文;
[0080] 代理服务器将数据报文压缩处理后发送给代理客户端;
[0081] 代理客户端将收到的报文进行解压缩处理;
[0082] 代理客户端向代理客户端回复ACK;
[0083] 代理客户端将数据解压后的数据发送给服务器;
[0084] 服务器向代理客户端回复ACK。
[0085] 如图5所示,网关中用三层口来模拟与广域网相连的WAN口,用二层口来模拟与局域网相连的LAN口,在广域网环境下,对系统进行Web网页访问测试。
[0086] 客户端通过代理服务器和代理客户端访问Web服务器上的网站,加速网关部署在代理客户端和代理服务器两台主机上,代理服务器的三层口和代理客户端的三层口互连,模拟广域网环境;
[0087] Web网页访问测试指标是Web网页下载时间;
[0088] 测试方案:本次测试需要三个文件,分别是一个452.6MB大小的RAR压缩包(下称文件A),一个43.1MB大小的wmv视频文件(下称文件B),一个18.2MB大小的TXT文本文件(下称文件C)。
[0089] 先进行三轮基础传输测试作为后续测试的参照,测试的步骤是A、B、C三个文件按顺序依次传输,总共传输两遍;测试时,每传输一个文件就记录该文件传输完成后传输时间和平均传输速率;这三轮基础传输测试分别为:
[0090] (1)原始传输测试:在搭建好的系统环境下,不启动任何TCP代理,按测试步骤进行测试;
[0091] (2)基于改进TCP协议的TCP代理的基础传输测试:启动传输层优化广域网加速技术的TCP代理,即开启TFO功能,按照测试步骤进行测试;
[0092] (3)结合广域网数据压缩的改进TCP代理的基础传输测试:启动广域网数据压缩技术的TCP代理,即开启TFO/DRE/LZ功能,按照测试步骤进行测试。
[0093] 为了避免系统所带来的随机性,测试结果是多次测试结果的平均值,如表1所示,该表显示了访问Web网页的下载时间:
[0094] 表1
[0095]
[0096] 从表1中可以看出,在部署加速网关之前,网页下载时间较长。部署加速网关明显减少了网页下载时间,这说明基于广域网数据压缩的改进TCP代理方法在数据传输上具有较高的传输效率。