网络代理实现方法及装置的制作方法

文档序号:7711933阅读:161来源:国知局
专利名称:网络代理实现方法及装置的制作方法
技术领域
本发明实施例涉及计算机网络技术领域,尤其是一种网络代理实现方法及装置。
背景技术
随着网络的普及应用,网络攻击、病毒文件传播、垃圾邮件泛滥等网络安全问题日 益严重,防火墙、病毒网关、邮件网关等网关设备随着运营商、企业用户的迫切需要应运而 生。网关设备为了对数据流中的应用数据进行还原,首先需要对数据流中的应用数据进行 缓存,在应用数据进行缓存的过程中,代理网关既充当客户端又充当服务端,分别与真实的 服务端和客户端通信,截取应用数据并将应用数据进行缓存,在该过程中,真实的客户端与 服务端通常并不知道与其交互数据的对端的真实身份。在客户端与服务端建立连接的过程 中,网关设备通常是在三次握手时开始进行全代理,客户端与网关设备的代理服务器建立 连接,网关设备的代理客户端与服务器端建立连接。发明人在实施本发明的过程中发现,现有技术中由于代理客户端发起三次握手进 行连接后才能获知服务端是否处于工作状态,当客户端与服务端建立连接后若服务端处于 关闭状态,则会导致代理客户端与服务端建立连接后又迅速断开,从而影响了用户体验。

发明内容
本发明实施例的目的在于提供一种网络代理实现方法及装置,使客户端在获取到 服务端的状态信息后再建立代理连接,从而确保建立第二连接的可靠性,提高用户体验。本发明实施例提供了一种网络代理实现方法,包括建立客户端与服务端之间的第一连接,使所述客户端通过所述第一连接获取所述 服务端的状态信息;若所述服务端的状态信息显示所述服务端为开启状态,则建立所述客户端与所述 服务端之间的第二连接,使所述客户端与所述服务端通过所述第二连接传输数据报文。本发明实施例还提供了一种网络代理实现装置,包括第一建立模块,用于建立客户端与服务端之间的第一连接,使所述客户端通过所 述第一连接获取所述服务端的状态信息;第二建立模块,用于当所述服务端的状态信息显示所述服务端为开启状态,则建 立所述客户端与所述服务端之间的第二连接,使所述客户端与所述服务端通过所述第二连 接传输数据报文。上述本发明实施例提供的网络代理实现方法及装置,在建立客户端与服务端的第 二连接之前通过建立第一连接获知服务端的状态信息,当服务端的状态信息为开启时才建 立第二连接,从而确保建立第二连接的可靠性,提高了用户体验。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为本发明网络代理实现方法一个实施例的流程示意图;图2为本发明网络代理实现方法又一个实施例的流程示意图;图3为图2所示实施例建立第一连接的信令流程图;图4为图2所示实施例建立第二连接的信令流程图;图5为图2所示实施例客户端与服务端发送数据报文的信令流程图;图6为图2所示实施例断开第二连接的信令流程图;图7为本发明网络代理实现装置一个实施例的结构示意图;图8为本发明网络代理实现装置又一个实施例的结构示意图;图9为本发明实施例所适用系统的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。图1为本发明网络代理实现方法一个实施例的流程示意图,如图1所示,本实施例 包括以下步骤步骤101、通过代理适配器建立客户端与服务端之间的第一连接,使客户端通过第 一连接获取服务端的状态信息;步骤102、若服务端的状态信息显示所述服务端为开启状态,则建立客户端与服务 端之间的第二连接,使客户端与服务端通过第二连接传输数据报文。本发明实施例提供的网络代理实现方法,在建立客户端与服务端的第二连接之前 通过建立第一连接获知服务端的状态信息,当服务端的状态信息为开启状态时才建立第二 连接,从而确保建立第二连接的可靠性,提高了用户体验。图2为本发明网络代理实现方法又一个实施例的流程示意图,图3为图2所示实 施例建立第一连接的信令流程图,图4为图2所示实施例建立第二连接的信令流程图,图5 为图2所示实施例客户端与服务端发送数据报文的信令流程图,图6为图2所示实施例断 开第二连接的信令流程图。如图2所示,本实施例包括以下步骤步骤201、通过代理适配器建立客户端与服务端之间的第一连接,使客户端通过第 一连接获取服务端的状态信息;步骤202、若服务端的状态信息显示为开启状态,则建立客户端与服务端之间的第 二连接,使客户端与服务端通过第二连接传输数据报文;步骤203、若服务端的状态信息显示服务端为关闭状态,则断开客户端与服务端之 间的第一连接。步骤204、断开客户端与服务端的第二连接。
示例性的,在步骤201中,客户端与服务端之间的第一连接可以通过TCP协议的三 次握手协议实现,具体地,如图3所示,第一连接的建立过程可以包括以下步骤步骤2011、网关代理实现装置接收客户端发送的第一建立请求消息(SYN),并将 该第一建立请求信息发送给服务端;步骤2012、网关代理实现装置接收从服务端返回的第一建立确认消息 (SYN-ACK),并将该第一建立确认消息发送给客户端;步骤2013、网关代理实现装置接收客户端返回的第一连接确认消息(ACK),将该 第一连接确认消息发送给所述服务端。在上述步骤2011 2013完成后,可通过网关代理实现装置在服务端和客户端之
间建立起第一连接。示例性的,在步骤202中,若客户端获取到服务端的状态信息显示服务端为开启 状态,则通过网关代理实现装置在客户端与服务端之间建立第二连接,具体地,如图4所 示,建立第二连接的过程可以包括通过传输控制协议(Transmission Control Protocol, 简称TCP)的三次握手建立第三连接,以及通过TCP协议的三次握手建立第四连接,使得客 户端与服务端通过第三连接与第四连接形成第二连接;具体步骤如下所示步骤2021、网关代理实现装置的代理服务端接收代理适配器伪装成客户端发送的 第二建立请求消息(SYN);步骤2022、代理服务端根据第二建立请求消息向代理适配器发送第二建立确认消 息(SYN-ACK);步骤2023、代理服务端接收从代理适配器根据所述第二建立确认消息发送的第二 连接确认消息(ACK);在上述步骤2021 2023的TCP协议的三次握手之后,可通过网关代理实现装置 在代理服务端和代理适配器之间建立起第三连接。步骤2024、网关代理实现装置的代理客户端向代理适配器发送第三建立请求消息 (SYN);步骤2025、代理客户端接收代理适配器根据第三建立请求消息发送的第三建立确 认消息(SYN-ACK);步骤2026、代理客户端根据第三建立确认消息向代理适配器发送第三连接确认消 息(ACK)。在上述步骤2024 2026的TCP的三次握手之后,可通过网关代理实现装置在代 理服务端和代理适配器之间建立起第四连接。进一步地,若客户端获取到服务端的状态信息为开启,具体地,如图5所示,通过 网关代理实现装置在客户端与服务端之间通过第二连接传输数据报文可以包括如下步 骤步骤2021 ‘、网关代理实现装置的代理服务端接收客户端通过第三连接发送的数 据报文;步骤2022'、代理服务端在接收到数据报文后向客户端返回第一确认消息 (ACK);步骤2023'、网关代理实现装置对数据报文进行业务处理;
其中,对数据报文进行业务处理可以包括对所述数据报文进行病毒扫描,或者,对 所述数据报文进行过滤。步骤2024'、网关代理实现装置的代理客户端将处理后的数据报文通过第四连接 发送给服务端;步骤2025'、代理客户端接收服务端在接收到数据报文后返回的第二确认消息 (ACK)。示例性的,在步骤204中,如图6所示,网关代理实现装置断开客户端与服务端的 第二连接具体可以包括如下步骤步骤2041、网关代理实现装置的代理服务端接收客户端发送的第一结束请求消息 (FIN);步骤2042、代理服务端根据所接收的第一结束请求消息向客户端返回第一结束确 认消息(FIN-ACK);步骤2043、网关代理实现装置的代理客户端向服务端发送第二结束请求消息 (FIN);步骤2044、代理客户端接收服务端根据第二结束请求消息返回的第二结束确认消 息(FIN-ACK)。本发明实施例提供的网络代理实现方法,在建立客户端与服务端的第二连接之前 通过建立第一连接获知服务端的状态信息,当服务端的状态信息为开启时才建立第二连 接,从而确保建立第二连接的可靠性,并且第二连接的建立为数据报文的业务处理屏蔽了 网络链路的复杂状态,提高了用户体验。图7为本发明网络代理实现装置一个实施例的结构示意图,如图7所示,本实施例 包括第一建立模块71和第二建立模块72,其中第一建立模块71,用于通过代理适配器建立客户端与服务端之间的第一连接,使 所述客户端通过所述第一连接获取所述服务端的状态信息;第二建立模块72,用于当所述服务端的状态信息显示服务端为开启状态时,建立 所述客户端与所述服务端之间的第二连接,使所述客户端与所述服务端通过所述第二连接 传输数据报文。本发明实施例提供的网络代理实现装置,在第二建立模块72建立客户端与服务 端的第二连接之前通过第一建立模块71建立第一连接获知服务端的状态信息,当服务端 的状态信息为开启时才建立第二连接,从而确保建立第二连接的可靠性,提高了用户体验。图8为本发明网络代理实现装置又一个实施例的结构示意图,如图8所示,本实施 例包括第一建立模块81、第二建立模块82、断开模块83。其中,第一建立模块81通过代理适配器建立客户端与服务端之间的第一连接,使 所述客户端通过所述第一连接获取所述服务端的状态信息;若所述服务端的状态信息为开 启,则第二建立模块82建立所述客户端与所述服务端之间的第二连接,使所述客户端与所 述服务端通过所述第二连接传输数据报文;断开模块83用于断开所述客户端与所述服务 端的第二连接。进一步地,第一建立模块81进一步还可以包括第一收发单元811、第二收发单 元812、第三收发单元813 ;其中,第一收发单元811接收客户端发送的第一建立请求消息(SYN),并将所述第一建立请求信息发送给服务端;第二收发单元812接收从所述服务端返 回的第一建立确认消息(SYN-ACK),并将所述第一建立确认消息发送给所述客户端;第三 收发单元813接收所述客户端返回的第一连接确认消息(ACK),将所述第一连接确认消息 发送给所述服务端;上述过程即实现了建立客户端与服务端之间的第一连接。进一步地,第二建立模块82还可以包括第一建立单元821和第二建立单元822 ; 其中,第一建立单元821通过三次握手建立代理适配器和代理服务端之间的第三连接,第 二建立单元822通过三次握手建立所述代理适配器和代理客户端之间的第四连接,使得客 户端与服务端通过第一建立单元821建立的第三连接与第二建立单元822建立的第四连接 形成第二连接。进一步地,第一建立单元821建立第三连接的过程可以为第一建立单元821接收 代理适配器伪装成所述客户端发送的第二建立请求消息,根据所述第二建立请求消息向所 述代理适配器发送第二建立确认消息,以及接收从所述客户端根据所述第二建立确认消息 发送的第二连接确认消息;上述过程第一建立单元821即可实现网关代理实现装置与代理 适配器的第三连接;第二建立单元822建立第四连接的过程可以为第二建立单元822向 所述代理适配器发送第三建立请求消息,接收所述代理适配器根据所述第三建立请求消息 发送的第三建立确认消息,根据所述第三建立确认消息向所述代理适配器发送第三连接确 认消息;第二建立单元822即可实现网关代理实现装置与代理适配器的第四连接。第二建立模块82还可以包括数据接收单元823、业务处理单元824、数据发送单 元825 ;其中,数据接收单元823接收所述客户端通过第一建立单元821建立的第三连接发 送的数据报文;业务处理单元824对所述数据报文进行业务处理;数据发送单元825将处 理后的所述数据报文通过第二建立单元822建立的第四连接发送给所述服务端。进一步地,业务处理单元824可以包括扫描子单元8241,用于对所述数据报文进 行病毒扫描;和/或,过滤子单元8242,用于对所述数据报文进行过滤。本发明实施例提供的网络代理实现装置,在第二建立模块82建立客户端与服务 端的第二连接之前通过第一建立模块81建立第一连接获知服务端的状态信息,当服务端 的状态信息显示为开启状态时才建立第二连接,从而确保建立第二连接的可靠性,并且第 二连接的建立为数据报文的业务处理屏蔽了网络链路的复杂状态,提高了用户体验。图9为本发明实施例所适用系统的结构示意图,如图9所示,本实施例所适用的系 统包括客户端91、服务端92、代理适配器93、代理客户端94、代理服务端95 ;其中,代理适 配器93、代理客户端94、代理服务端95形成本发明实施例中的网络代理实现装置。当客户端91需要向服务端92需要通过网络代理实现装置发送数据报文时,客户 端91需要通过三次握手与服务端建立连接,该三次握手实现过程具体为代理适配器93 在接收到客户端91发送的第一建立连接请求消息(SYN)后将该第一建立连接请求消息 通过代理适配器93发送给服务端92,服务端92向代理适配器93发送第一建立确认消息 (SYN-ACK),代理适配器93将该第一建立确认消息发送给客户端91,客户端91在接收到该 第一建立确认消息后,代理适配器93将该发送第一连接确认消息(ACK)发送给服务端,从 而建立客户端91与服务端92之间的第一连接。通过该第一连接,客户端91可以获取服务 端92的状态信息,即客户端91可以获取到服务端92是处于开启还是关闭的状态,进一步 根据获取到的状态信息确定是否需要建立后续的第二连接。
当客户端91获取到服务端92的状态信息为开启时,代理适配器93伪装成客户 端通过虚拟网卡向代理服务端95发送第二建立请求消息(SYN),代理服务端95根据接 收到的第二建立请求消息(SYN)通过虚拟网卡向代理适配器93发送第二建立确认消息 (SYN-ACK),通过TCP的三次握手之后,网关代理实现装置即可在代理服务端95和代理适配 器93之间建立起第三连接;之后,代理客户端94向代理适配器93发送第三建立请求消息 (SYN),代理客户端94接收代理适配器93根据第三建立请求消息发送的第三建立确认消息 (SYN-ACK),代理客户端94根据第三建立确认消息向代理适配器93发送第三连接确认消息 (ACK),通过TCP的三次握手之后,网关代理实现装置即可在代理客户端94和代理适配器93 之间建立起第四连接,在第三连接和第四连接建立后,客户端91与服务端92通过第三连接 与第四连接即可形成第二连接。当第二连接建立后,客户端91通过代理适配器93发送数据报文,代理适配器93 将该数据报文重定向至虚拟网卡,虚拟网卡将该数据报文发送给网络代理实现装置,网络 代理实现装置对数据报文进行业务处理,具体可以为对数据报文进行病毒扫描,或者,对数 据报文进行过滤;网络代理实现装置将处理后的数据报文通过虚拟网卡发送给代理适配器 93后,代理适配器93将该数据报文进行重定向后发送给服务端92。当数据报文传输完毕后,还可以进行断开连接的操作,具体为客户端91向代理服务端95发送第一结束请求消息(FIN);代理服务端95根据第 一结束请求消息向客户端91返回第一结束确认消息(FIN-ACK);代理客户端94向服务端 92发送的第二结束请求消息(FIN);代理客户端94接收服务端92根据第二结束请求消息 返回的第二结束确认消息(FIN-ACK),结束本次数据报文的处理过程。在图9所示本发明实施例所适用系统中,若网络代理实现装置具体为反病毒网 关,则以超文本传送协议(Hypertext transfer protocol,简称HTTP)为例,则具体过程如 下反病毒网关收到目的地址为80端口的SYN报文,开始建立第一连接和第二连接,即建立 HTTP代理连接;将客户端的数据报文重定向至网络代理实现装置,则网络代理实现装置提 取数据报文进行病毒扫描。由于在互联网络上80端口承载的应用层协议不一定是HTTP,例 如也可以为端对端(peer-to-peer,简称P2P)协议,如果把P2P协议上送至网络代理实现 装置,则极大地消耗系统资源,此时若代理适配器检测出从客户端发送的SYN报文之后的 数据报文不是基于HTTP协议的报文,则直接通过代理适配器转发至虚拟网卡,而不需要将 数据报文发送至网络代理实现装置进行病毒扫描处理。若网络代理实现装置具体为邮件过滤网关,则以简单邮件传送协议(Simple mail transfer protocol,简称SMTP)协议为例,则具体过程如下网络代理实现装置收到目的 地址为25端口的SYN报文,开始建立第一连接和第二连接,即建立SMTP代理连接;将客户 端发送的邮件文件重定向至网络代理实现装置,获取到邮件文件并进行过滤。上述本发明实施例中,在客户端与服务端建立连接的过程中,网关代理实现装置 在第一次握手时建立第一连接,当客户端获取到服务端的状态信息后,根据状态信息建立 第二连接,在该第二连接建立的过程中,客户端与网关代理实现装置的代理服务器建立第 三连接,网关代理实现装置的代理客户端与服务器端建立第四连接,为网络代理实现装置 对数据报文进行业务处理屏蔽了网络链路的复杂状态,提高了用户体验。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执 行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘 等各种可以存储程序代码的介质。 最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1.一种网络代理实现方法,其特征在于,包括通过代理适配器建立客户端与服务端之间的第一连接,使所述客户端通过所述第一连 接获取所述服务端的状态信息;若所述服务端的状态信息显示所述服务端为开启状态,则建立所述客户端与所述服务 端之间的第二连接,使所述客户端与所述服务端通过所述第二连接传输数据报文。
2.根据权利要求1所述的方法,其特征在于,所述建立客户端与服务端之间的第一连 接包括通过代理适配器接收客户端发送的第一建立请求消息,并将所述第一建立请求信息发 送给服务端;接收从所述服务端返回的第一建立确认消息,并将所述第一建立确认消息发送给所述 客户端;接收所述客户端返回的第一连接确认消息,将所述第一连接确认消息发送给所述服务端。
3.根据权利要求1所述的方法,其特征在于,所述建立所述客户端与所述服务端之间 的第二连接包括通过三次握手建立所述代理适配器和代理服务端之间的第三连接,以及通过三次握手 建立所述代理适配器和代理客户端之间的第四连接,使得所述客户端与所述服务端通过所 述第三连接与第四连接形成第二连接。
4.根据权利要求3所述的方法,其特征在于,所述使所述客户端与所述服务端通过所 述第二连接传输数据报文包括接收所述客户端通过所述第三连接发送的数据报文;对所述数据报文进行业务处理;将处理后的所述数据报文通过所述第四连接发送给所述服务端。
5.根据权利要求4所述的方法,其特征在于,所述对所述数据报文进行业务处理包括对所述数据报文进行病毒扫描;或者,对所述数据报文进行过滤。
6.根据权利要求1 5任一所述的方法,其特征在于,还包括若所述服务端的状态信息显示所述服务端为关闭状态,则断开所述客户端与所述服务 端之间的第一连接。
7.—种网络代理实现装置,其特征在于,包括第一建立模块,用于通过代理适配器建立客户端与服务端之间的第一连接,使所述客 户端通过所述第一连接获取所述服务端的状态信息;第二建立模块,用于当所述服务端的状态信息显示所述服务端为开启状态,则建立所 述客户端与所述服务端之间的第二连接,使所述客户端与所述服务端通过所述第二连接传 输数据报文。
8.根据权利要求7所述的装置,其特征在于,所述第一建立模块包括第一收发单元,用于接收客户端发送的第一建立请求消息,并将所述第一建立请求信 息发送给服务端;第二收发单元,用于接收从所述服务端返回的第一建立确认消息,并将所述第一建立确认消息发送给所述客户端;第三收发单元,用于接收所述客户端返回的第一连接确认消息,将所述第一连接确认 消息发送给所述服务端。
9.根据权利要求7所述的装置,其特征在于,所述第二建立模块包括第一建立单元,用于通过三次握手建立代理适配器和代理服务端之间的第三连接; 第二建立单元,用于通过三次握手建立所述代理适配器和代理客户端之间的第四连 接,使得所述客户端与所述服务端通过所述第三连接与第四连接形成第二连接。
10.根据权利要求9所述的装置,其特征在于,所述第二建立模块还包括 数据接收单元,用于接收所述客户端通过所述第三连接发送的数据报文; 业务处理单元,用于对所述数据报文进行业务处理;数据发送单元,用于将处理后的所述数据报文通过所述第四连接发送给所述服务端。
11.根据权利要求10所述的装置,其特征在于,所述业务处理单元包括 扫描子单元,用于对所述数据报文进行病毒扫描;和/或,过滤子单元,用于对所述数据报文进行过滤。
全文摘要
本发明实施例涉及一种网络代理实现方法及装置,其中方法包括通过代理适配器建立客户端与服务端之间的第一连接,使所述客户端通过所述第一连接获取所述服务端的状态信息;若所述服务端的状态信息显示所述服务端为开启状态,则建立所述客户端与所述服务端之间的第二连接,使所述客户端与所述服务端通过所述第二连接传输数据报文。本发明实施例提供的网络代理实现方法及装置,在建立客户端与服务端的第二连接之前通过建立第一连接获知服务端的状态信息,当服务端的状态信息为开启时才建立第二连接,从而确保建立第二连接的可靠性,提高了用户体验。
文档编号H04L9/00GK101997673SQ20091016630
公开日2011年3月30日 申请日期2009年8月17日 优先权日2009年8月17日
发明者李勇勇 申请人:成都市华为赛门铁克科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1