[发明专利]一种用于加速应用代理的核心级TCP连接粘合方法有效

专利信息
申请号: 201010263335.4 申请日: 2010-08-26
公开(公告)号: CN101924771A 公开(公告)日: 2010-12-22
发明(设计)人: 孟磊 申请(专利权)人: 北京天融信科技有限公司
主分类号: H04L29/06 分类号: H04L29/06;H04L12/56
代理公司: 信息产业部电子专利中心 11010 代理人: 梁军
地址: 100085 北京市海淀*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 用于 加速 应用 代理 核心 tcp 连接 粘合 方法
【说明书】:

技术领域

发明涉及网络安全技术领域,尤其涉及一种用于加速应用代理的核心级TCP连接粘合方法。

背景技术

应用级代理广泛应用于HTTP代理、HTTP缓存、基于应用的负载均衡、深度内容检测、网关病毒过滤等领域,扮演着当今重要的网络服务角色。统计显示当前互联网的安全问题越来越多的来自应用层,应用级代理在未来将扮演越来越重要的角色。

传统的应用级代理都采用应用层连接粘合代理,如图1所示,应用代理位于客户端和被访问的服务器之间。对于客户端来说代理扮演服务器的角色,对于服务器来说代理扮演客户端的角色。客户端首先和代理建立socket连接,然后代理再和服务器建立socket连接。连接建立完成后,代理透明的进行数据的双向传递,作为一个中间人协助客户端和服务器完成网络通信。

传统的应用代理的优势是保持了对现有网络的兼容性,并且可以在应用层实现复杂的协议处理。限制其大规模应用的核心问题是性能问题,表现为吐量小、通信延时长。原因在于对于每一个报文应用代理都会发生两次拷贝,首先是报文从客户端拷贝到应用代理,然后应用代理再拷贝给服务器。发生一次拷贝的同时伴随着一次内核态到用户态的上下文切换。内存拷贝特别是内核态/用户态之间的内存拷贝消耗大量的CPU资源,上下文切换同样会消耗大量的资源。这个过程同时明显的增加了通信延迟。

目前可用的应用代理加速方法,比如linux下的sendfile,只能用于把缓存的文件传递给服务器,可以避免内存拷贝、减少内核态/用户态的上下文切换。在HTTP缓存、基于文件扫描的病毒过滤比较有用。对于HTTP代理、基于应用的负载均衡、基于数据流的深度内容检测、基于数据流的病毒过滤,则完全无法发挥作用,并且和核心层的路由转发有相当大的性能差距。

现有技术中,为了解决上述问题采用了TCP粘合连接技术,该TCP粘合连接与应用级代理的最大不同在于客户端和服务器之间的连接在操作系统的核心层进行连接粘合。

其中,TCP粘合有三个关键问题需要解决,否则会导致通信异常:第一,必须要保证粘合之前客户端发送给代理的报文,完整的转发给服务器,同时保证服务器发送给代理的报文,完整的转发给客户端,因为TCP协议不会重传任何确认过的报文;第二,粘合模块实际上把两个TCP连接合并成一个,而TCP序号在连接建立时已经确定了,所以粘合模块需要对后续的报文做转换。第三,客户端和服务器操作系统不同,支持的TCP选项集合也不同,所以需要在TCP三次握手时协商TCP选项。

其中,粘合时机的选择是一个关键点,如图2所示,通常在应用代理获得HTTP请求头部即图中阶段2后就可以判定是否需要做粘合了,比如URL过滤、基于应用的负载均衡等。但是上述技术方案对于有些应用确不能适用,例如深度内容检测、病毒过滤等。

发明内容

本发明提供一种用于加速应用代理的核心级TCP连接粘合方法,用以解决现有技术中TCP粘合技术对于一些应用不适用导致其应用范围小的问题。

具体的,本发明提供的一种用于加速应用代理的核心级TCP连接粘合方法,包括:

代理服务器与客户端进行协商建立TCP连接;其中,在协商时,所述代理服务器通告客户端不支持时间戳和窗口扩大因子TCP选项,并记录交互报文的TCP序号、客户端支持的最大报文段长度信息MSS以及客户端是否支持选择确认TCP选项;

代理服务器接收到所述客户端发送的http请求报文时,与服务器进行协商建立TCP连接后,向所述服务器转发所述http请求报文;其中,在与服务器进行协商建立TCP连接时,记录交互报文的TCP序号,并基于所述代理服务器与客户端间的协商结果,调整所述代理服务器与服务器间的TCP选项,包括:修改TCP选项中的MSS为所述客户端支持的MSS,并剥离客户端不支持的TCP选项,包括时间戳、窗口扩大因子、选择确认选项;

所述服务器向代理服务器传送http响应头报文,并在所述http响应头报文传送至内核态的IP协议栈时,通过粘合模块检测所述http响应头报文是否符合预先配置的粘合条件,若符合,则进行TCP连接粘合。

进一步的,本发明所述方法中,所述客户端与代理服务器进行协商建立TCP连接具体为:

所述客户端向代理服务器发送syn报文,所述代理服务器记录所述syn报文中TCP选项中客户端支持的最大报文长度MSS,记录交互报文的TCP序号、客户端支持的TCP选项,包括时间戳、窗口扩大因子、选择确认;

所述代理服务器发送syn-ack报文给客户端;其中,在发送所述syn-ack报文过程中,通过粘合模块剥离时间戳和窗口扩大因子TCP选项;

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京天融信科技有限公司,未经北京天融信科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201010263335.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top