一种TCP代理装置以及方法制造方法及图纸

技术编号:11707428 阅读:74 留言:0更新日期:2015-07-09 14:14
本发明专利技术提供一种TCP代理装置以及方法,应用于建立TCP连接的发送端与目的端之间的网络设备上,其中该装置包括:数据获取模块,用于在接收到发送端发送的TCP报文为TCP数据报文时,获取所述TCP数据报文中携带的明文数据;报文判断模块,用于按照预设分类规则判断所述TCP数据报文的明文数据是否需要修改,如果是,内容处理模块对所述TCP数据报文的明文数据进行修改,并对所述TCP数据报文的头部信息进行修改后转发至目的端;如果否,对所述TCP数据报文的头部信息进行修改后转发至目的端。本发明专利技术减少了操作系统资源的消耗,大幅度提高了代理效率,在网络中相对核心位置上使用效果更佳。

【技术实现步骤摘要】

本专利技术涉及通信
,尤其涉及一种TCP代理的装置W及方法。
技术介绍
TCP代理是处理基于内容的网络业务常见的手段,其基本模型为在原本互通的 TCP发送端与目的端之间加入代理端,使原本直接交互的两端分别与代理端进行交互,代理 端起到一个"传话"的作用,同时根据业务的需要对两端交互的内容进行修改。其应用十分 广泛,如;走层负载均衡、S化加速、SSLVPN、内容审计、代理上网、连接复用、肥B缓存等。大 部分基于内容处理的业务都可W使用TCP代理来实现。 现有TCP代理多数是使用socket代理来处理基于内容的网络业务,在传输过程中 socket代理充当的角色是两个终端,比如socket代理1W及socket代理2,其中socket代 理1与socket代理2运行在同一代理程序中。socket代理1负责与客户端进行TCP连接, 再提取接收到的报文数据发送给应用代理程序。之后socket代理2与服务器进行连接,代 理程序使用socket代理2把之前从socket代理1获得的数据转发至服务器。在该传输系 统中,socket代理的系统类似是两条完全独立的链接,所有数据报文通过应用代理程序进 行中转。 然而由于使用socket代理需将socket代理1获取的数据发送到应用程序,处理 完成后应用代理程序还要将数据发送到socket代理2,因此增加了操作系统资源的消耗W 及报文在网络协议找中的时间消耗,当并发数巨大时该无疑致命的打击。另一方面,使用 socket代理还需要时刻监控socket的读写信号,该样对于没有读写信号的socket就相当 于在做无用功,就算使用信号出发机制,也无法实现多CPU的异步处理,虽然对于普通系统 该样的并发处理已经足够,但对于高端的网络设备来说该是远远不够的,因为高端的网络 设备位于网络核也位置,其上的报文处理量十分巨大。
技术实现思路
有鉴于此,本专利技术提供了一种TCP代理装置,应用于建立TCP连接的发送端与目的 端之间的网络设备上,其中该装置包括: 数据获取模块,用于在接收到发送端发送的TCP报文为TCP数据报文时,获取所述 TCP数据报文中携带的明文数据; 报文判断模块,用于按照预设分类规则判断所述TCP数据报文的明文数据是否需 要修改,如果是,转内容处理模块进行处理,如果否,转头部处理模块进行处理; 内容处理模块,用于对所述TCP数据报文的明文数据进行修改,并转头部处理模 块进行处理; 头部处理模块,用于对所述TCP数据报文的头部信息进行修改后转发至目的端。 本专利技术还提供一种TCP代理方法,应用于建立TCP连接的发送端与目的端之间的 网络设备上,其中该方法包括: 步骤A、在接收到发送端发送的TCP报文为TCP数据报文时,获取所述TCP数据报 文携带的明文数据; 步骤B、按照预设分类规则判断所述TCP数据报文的明文数据是否需要修改,如果 是,转步骤C进行处理,如果否,转步骤D进行处理; 步骤C、对所述TCP数据报文的内容进行修改,并转步骤D进行处理; 步骤D、对所述TCP数据报文的头部信息进行修改处理后转发至目的端。 本专利技术提供的TCP代理装置W及方法,对于接收到的需要修改内容的TCP数据报 文根据其业务类型可直接进行修改,对于不需要修改内容的TCP数据报文则由TCP代理更 改其头部信息后直接进行转发,无需将所有报文发送到应用代理程序,再由应用代理程序 发送到网络层。由此可见,本专利技术实施例所提供的TCP代理减少了操作系统资源的消耗W 及减少报文在网络协议找中的时间消耗,大幅度提高了代理效率,在网络中相对核也位置 上使用效果更佳。【附图说明】 图1是本专利技术实施例中TCP代理装置的结构示意图; 图2是本专利技术实施例中TCP代理方法的流程框图; 图3是本专利技术实施例中TCP代理方法的工作流程图。【具体实施方式】 本专利技术提供一种TCP代理装置W及方法,该TCP代理通过模拟客户端与服务器建 立连接,然后再模拟服务器与客户端建立连接,在TCP连接建立之后,TCP代理则负责对客 户端与服务器通信的报文数据进行修改W及转发。W下W发送端为客户端,目的端为服务 器为例对本专利技术做进一步的阐述。 请参考图1,本专利技术提供了一种TCP代理装置,应用于发送端与目的端之间的网络 设备上,该装置的基本硬件环境包括CPU、内存、非易失性存储器W及其他硬件。该TCP代理 装置可W理解为CPU读取非易失性存储器中对应的计算机程序在内存中运行所形成的,从 本质上说其是一个逻辑装置。在本实施方式中,该装置在逻辑层面上包括:数据获取模块、 报文判断模块、内容处理模块W及头部处理模块,请参考图2,该装置在运行过程中执行如 下处理流程;包括: 步骤201,数据获取模块在接收到发送端发送的TCP数据报文后,获取所述TCP数 据报文中携带的明文数据; 步骤202,报文判断模块按照预设分类规则判断所述TCP数据报文的明文数据是 否需要修改,如果是,转步骤203进行处理,如果否,则转步骤204进行处理; 步骤203,内容处理模块对所述TCP数据报文的内容进行修改,并转步骤204进行 处理; 步骤204,头部处理模块对所述TCP数据报文的头部信息进行修改处理后转发至 目的端。TCP协议用来提供可靠的连接服务,在客户端与服务器建立TCP连接时,TCP代理 模拟客户端与服务器建立连接,然后再模拟服务器与客户端建立连接。经过H次握手建立 连接之后,TCP代理与两侧的TCP连接就建立了。接下来TCP代理则负责对客户端与服务 器通信的报文数据进行修改W及转发,类似一条连接。请参考图3,TCP代理的数据获取模 块在接收到客户端发送的TCP报文后,若判断该TCP报文为TCP数据报文,则进一步获取所 述TCP数据报文中携带的明文数据。 在获取到该TCP数据报文的明文数据之后,报文判断模块按照预设分类规则判 断所述TCP数据报文的明文数据是否需要修改,如果需要修改,则根据业务类型对该报文 的内容进行修改,在修改完成后再转由头部处理模块对该TCP数据报文的头部信息进行修 改,并将修改完成的报文根据其IP地址转发至指定的目的端;如果根据明文数据判断该 TCP数据报文的内容不需要修改,则直接由头部处理模块对该TCP数据报文的头部信息进 行修改,并将修改完成的报文根据其IP地址转发至指定的目的端。 在本专利技术实施例中,TCP代理对于接收到的需要修改内容的TCP数据报文可根据 其业务类型直接进行修改,对于不需要修改内容的TCP数据报文则由TCP代理更改其头部 信息后直接进行转发,无需将所有报文发送到应用代理程序,再由应用程序发送到网络层。 由此可见,本专利技术实施例所提供的TCP代理减少了操作系统资源的消耗W及减少报文在网 络协议找中的时间消耗,有效提高了代理效率。 本专利技术优选地实施例中,该TCP代理装置还包括TCP协议模块,用于按照TCP协议 对来自发送端的TCP协议报文进行处理。在接收到发送端发送的TCP报文后,若判断该TCP 报文是TCP协议报文则由TCP协议模块根据TCP协议对其进行处理,并不转发至服务器。 进一步地,本专利技术实施例提供的TCP代理还可完美兼容如S化等上层安全协议。其 中,该TCP代理装置还包括S化解密模块,用于对S化数据报本文档来自技高网
...

【技术保护点】
一种TCP代理装置,应用于建立TCP连接的发送端与目的端之间的网络设备上,其特征在于,所述装置包括:数据获取模块,用于在接收到发送端发送的TCP报文为TCP数据报文时,获取所述TCP数据报文中携带的明文数据;报文判断模块,用于按照预设分类规则判断所述TCP数据报文的明文数据是否需要修改,如果是,转内容处理模块进行处理,如果否,转头部处理模块进行处理;内容处理模块,用于对所述TCP数据报文的明文数据进行修改,并转头部处理模块进行处理;头部处理模块,用于对所述TCP数据报文的头部信息进行修改后转发至目的端。

【技术特征摘要】

【专利技术属性】
技术研发人员:姜跃
申请(专利权)人:杭州迪普科技有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1