专利名称:一种提供tcp服务的方法、系统和相关装置的利记博彩app
技术领域:
本发明涉及网络通信技术,特别涉及一种提供传输控制协议(TCP)服 务的方法、系统、安全套接层虚拟专用网(SSL VPN)客户端代理和SSL VPN网关。
背景技术:
安全套接层(SSL, Secure Sockets Layer)协i义是一种为通信双方提供 安全的通信服务的协议,其在通信双方间建立一个传输层安全通道,主要功 能包括加密和认证,其提供的安全通道是透明的,几乎所有基于传输控制协 议(TCP, Transfer Control Protocol)都可以运行于SSL之上,SSL已成为 用户与Internet之间进行保密通信的事实标准,支持SSL也成为浏览器的内 置功能。
安全超文本传输协议(HTTPS, Secure Hypertext Transfer Protocol)是 基于SSL的一种应用协议,它基于超文本传输协议(HTTP, Hypertext Transfer Protocol)开发,用于在客户端和服务器之间交换信息,是HTTP的安全版。
现有技术中,基于HTTPS为用户提供的TCP服务的过程如图l所示, 主要包括远程主机在登录时建立与SSL VPN之间的SSL会话连接1。 TCP 客户端在远程主机上下载一个SSL虚拟局域网(VPN)客户端代理,通过该 SSL VPN客户端代理登录SSL VPN网关,该SSL VPN客户端代理监听远程 主机本地的TCP端口 ,便可以在该SSL VPN客户端代理上获取配置在SSL VPN网关上的TCP服务信息。当用户需要获取TCP服务时,TCP客户端与 SSL VPN客户端代理建立TCP连接,SSL VPN客户端代理与SSL VPN网关 之间建立SSL会话连接2,并将与TCP客户端之间的TCP连接信息发送给SSL VPN网关。SSL VPN网关将该TCP连接与SSL会话连接2绑定,与对 应的TCP服务器建立TCP连接后,将与TCP服务器建立的TCP连接也与 该SSL会话连接2进行绑定,从而实现TCP客户端与TCP服务器之间的通信。
但是,在现有技术的上述过程中,如果用户同时使用多个TCP服务, 或者对同一个TCP服务使用多次,则SSL VPN客户端代理需要与SSL VPN 网关建立多个SSL会话连接,造成资源浪费严重。如图2所示,当用户需 要同时使用两个TCP服务时,TCP客户端与SSL VPN客户端代理建立TCP 连接1和TCP连接2,为了区分同一 SSL VPN客户端代理请求的不同TCP 服务,则在SSL VPN客户端代理与SSL VPN网关之间分别建立针对TCP 连接1的SSL会话连接2和针对TCP连接2的SSL会话连接3,建立并维 护TCP连接1与SSL会话连接2之间的绑定关系,以及TCP连接2的SSL 会话连接3的绑定关系。SSLVPN网关与TCP月i务器1建立TCP连接3后, 建立并维护TCP连接1 、 SSL会话连接2与TCP连接3之间的绑定关系; 与TCP服务器2建立TCP连接4后,建立并维护TCP连接2、 SSL会话连 接3与TCP连接4之间的绑定关系。
发明内容
有鉴于此,本发明提供了一种提供TCP服务的方法、系统、SSL VPN 客户端代理和SSL VPN网关,以便于减小用户同时使用多个TCP服务或同 一个TCP服务使用多次时造成的资源浪费问题。
一种提供TCP服务的方法,该方法包括
A、 SSL VPN客户端代理通过第一 TCP连接接收到TCP服务请求后,通过 该SSLVPN客户端代理与SSLVPN网关之间唯一的SSL会话连接将包含第一 TCP连接信息和请求的TCP服务信息的HTTPS报文发送给SSLVPN网关;
B、 所述SSL VPN网关将包含所述第一 TCP连接信息和请求的TCP服务 信息的表项存储在针对所述SSL会话的TCP服务信息表中,并在与提供请求的
8TCP服务的TCP服务器建立第二 TCP连接后,根据该TCP服务信息表进行所
一种SSL VPN客户端代理,该SSL VPN客户端代理包括
TCP连接处理单元,用于通过第一 TCP连接接收TCP服务请求后,将第 一 TCP连接信息和请求的TCP服务信息提供给SSL连接处理单元;
SSL连接处理单元,用于通过该SSL VPN客户端代理与SSL VPN网关 之间唯一的SSL会话连接将包含所述第一TCP连接信息和请求的TCP服务 信息的HTTPS报文发送给SSL VPN网关。
一种SSLVPN网关,该SSLVPN网关包括
SSL连接处理单元,用于通过该SSL VPN网关与SSL VPN客户端代理之 间唯一的SSL会话连接接收到所述SSL VPN客户端代理发送的HTTPS报文后, 获取该HTTPS报文中包含的第一 TCP连接信息和请求的TCP服务信息,并提 供给信息表处理单元;根据TCP服务信息表进行所述SSL VPN客户端代理与 所述TCP服务器之间的报文转发;
信息表处理单元,用于将包含所述第一 TCP连接信息和请求的TCP服务信 息的表项存储在针对所述SSL会话的TCP服务信息表中,并向TCP连接处理 单元发送建立通知;
TCP连接处理单元,用于接收到建立通知后与提供请求的TCP服务的TCP 服务器建立第二 TCP连接,根据TCP服务信息表进行所述SSL VPN客户端代 理与所述TCP服务器之间的报文转发。
由以上技术方案可以看出,本发明提供的方法、系统和相关装置中,SSL VPN客户端代理与SSL VPN网关之间仅建立一条SSL会话连接,SSL VPN 客户端代理通过第一TCP连接接收到TCP服务请求后,将第一TCP连接信 息和请求的TCP服务信息携带在HTTPS报文中都通过该唯一的SSL会话连 接发送给SSL VPN网关;为了区分各TCP连接请求的TCP服务,SSL VPN 网关在针对该SSL会话连接建立的TCP服务信息表中存储包含第一 TCP连 接信息和请求的TCP服务信息的表项,以便根据TCP服务信息表进行所述
9SSL VPN客户端代理与所述TCP服务器之间的报文转发。可以看出,本发 明在用户同时使用多个TCP服务或者一个TCP服务使用多次时,只需要在 SSL VPN客户端代理和SSL VPN网关间建立和维护一条SSL会话连接,节 省了占用的网络资源;另外,也避免了 SSL VPN客户端代理和SSL VPN网 关间多次SSL会话交互过程,提高了 SSL VPN客户端代理和SSL VPN网关 的性能。
图1为现有技术中的提供TCP服务的示意图2为现有技术中同时提供两个TCP服务的示意图3为本发明实施例提供的方法流程图4为本发明中同时提供两个TCP服务的示意图5为本发明实施例提供的SSL VPN客户端代理的结构图6为本发明实施例提供的SSL VPN网关结构图。
具体实施例方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体 实施例对本发明进行详细描述。
本发明所提供的方法主要包括SSL VPN客户端代理通过第一 TCP连 接接收到TCP服务请求后,通过SSL VPN客户端代理与SSL VPN网关之 间唯一的SSL会话连接将包含第一TCP连接信息和请求的TCP服务信息的 HTTPS报文发送给SSL VPN网关;SSL VPN网关将包含第一 TCP连接信 息和请求的TCP服务信息的表项存储在针对该SSL会话的TCP服务信息表 中,并在与提供请求的TCP服务的TCP服务器建立第二TCP连接后,根据 该TCP服务信息表进行SSL VPN客户端与TCP服务器之间的报文传递。
下面列举具体实施例对上述方法进行详细描述。图3为本发明实施例提 供的详细方法流程图,如图3所示,该方法可以包括以下步骤步骤301:远程主机在登录SSL VPN网关时建立远程主机与SSL VPN 网关之间的SSL会话连接1;用户通过在远程主机下栽的SSL VPN客户端 代理登录SSL VPN网关,监听本地远程主机上的TCP端口 ,从而获取配置 在SSL VPN网关上的TCP服务信息。
网络管理员在SSL VPN网关上会配置允许用户使用的TCP服务,在用 户通过SSL VPN客户端代理登录SSL VPN网关后,SSL VPN客户端代理便 可以获取TCP服务信息,用户登录后就可以在SSL VPN客户端代理上看到 这些TCP服务信息。
步骤302:用户要使用TCP服务时,TCP客户端与SSL VPN客户端代 理建立TCP连接1 ,并通过该TCP连接1发送TCP服务请求给SSL VPN客 户端代理。
当用户要使用某个TCP服务时,就点击该TCP服务,触发TCP客户端 与SSL VPN客户端代理建立TCP连接,并通过该TCP连接向SSL VPN客 户端代理发送TCP服务请求,该TCP服务请求中包含请求的TCP服务信息。 如果用户请求一个TCP服务,则建立一个TCP客户端与SSL VPN客户端代 理之间的TCP连接,如果请求多个TCP服务,则建立对多个TCP服务分别 建立TCP连接,即多个TCP连接。
以上步骤301和步骤302与现有4支术中的流程相同,并不是本发明的重 点,在此不再赘述。
步骤303: SSL VPN客户端代理通过TCP连接1接收到TCP服务请求 后,判断SSL VPN客户端代理是否已经与SSL VPN网关之间建立SSL会话 连接2,如果是,执行步骤305;否则执行步骤304。
步骤304:建立SSL VPN客户端代理与SSL VPN网关之间的SSL会话 连接2。
步骤305:通过SSL会话连接2向SSL VPN网关发送HTTPS报文,其 中该HTTPS报文中包含TCP连接1所使用的远程主机端口信息和请求的 TCP服务的统 一 资源标识(URL )信息。本发明中在SSL VPN客户端代理和SSL VPN网关之间仅建立唯——条 SSL会话连接,所有TCP服务的HTTPS报文都通过该SSL会话连接进行发送。
在该HTTPS报文中包含TCP连接1的信息和请求的TCP服务信息, 在该实施例中,TCP连接1的信息以TCP连接1所使用的远程主机端口信 息为例,其实也就是SSL VPN客户端代理建立TCP连接1时使用的远程主 机端口信息,除此之外还可以是其它能够标识TCP连接1的信息等;请求 的TCP服务信息以请求的TCP服务的URL为例,还可以是TCP服务地址 信息等。
可以在HTTPS报文中增加一个应用控制字段,用于指示该HTTPS报文 中是否携带TCP连接1所使用的远程主机端口信息和请求的TCP服务的 URL。例如当该应用控制字段为1时指示携带TCP连接1所使用的远程主 机端口信息和请求的TCP服务的URL,当该应用控制字段为0时指示不携 带TCP连接1所使用的远程主机端口信息和请求的TCP服务的URL。另外, 可以在HTTPS报文中增加应用标识字段,其中包含两部分, 一部分为TCP 连接信息字段,用于携带诸如源端口信息的TCP连接信息,另一部分为TCP 服务信息字段,用于携带诸如URL的TCP服务信息。上述应用控制字段和 应用标识字段可以使用HTTPS报文头的预留字段进行设置,也可以设置在 HTTPS报文头和数据段之间的部分。上述TCP连接的信息和请求的TCP服 务信息可以与数据 一起被加密封装。
步骤306: SSL VPN网关判断是否已经针对SSL会话连接2建立TCP 服务信息表,如果是,则执行步骤308;否则,执行步骤307。
步骤307:针对SSL会话连接2建立TCP服务信息表,执行步骤309。
本发明中由于SSL VPN网关与SSL VPN客户端f^理之间仅建立一条 SSL会话连接,所有请求TCP服务的HTTPS报文都通过这一条SSL会话连 接进行传输,为了区分不同的TCP服务,针对该SSL会话连接建立TCP服 务信息表,该TCP服务信息表中的各表项包含TCP连接1的信息和请求的TCP服务的信息,即本实施例中的TCP连接1所使用的远程主机端口信息 和请求的TCP服务的URL。
当多个SSL VPN客户端代理通过同一 SSL VPN网关请求TCP服务时, 不同的SSL VPN客户端代理分别与SSL VPN网关之间建立SSL会话连接, 并分别建立TCP服务信息表。
步骤308:判断已经建立的TCP服务信息表中是否已经存在包含TCP 连接1所使用的远程主机端口信息和请求的TCP服务的URL的表项,如果 否,执行步骤309,如果是,则执行步骤313。
步骤309:在针对SSL会话连接2的TCP服务信息表中建立包含TCP 连接1所使用的远程主机端口信息和请求的TCP服务的URL的表项,并根 据请求的TCP服务的URL与对应的TCP服务器建立TCP连接2,将该TCP 连接2与该表项进行映射。
如果TCP服务信息表中尚未存在包含TCP连接1所使用的远程主机端 口信息和请求的TCP服务的URL的表项,则说明首次接收到通过该TCP 连接1请求该TCP服务的HTTPS报文,因此需要建立相应表项,并建立与 对应TCP服务器之间的TCP连接,然后将该TCP连接与该表项进行映射以 方便后续SSL VPN客户端代理与TCP服务器之间的数据传输。
需要说明的是由于TCP服务器为内网TCP服务器,SSLVPN网关通 常是不会将内网TCP服务器的URL信息告之给远程的用户的,而是使用本 地地址加上端口号作为URL信息提供给远程用户的,为了区分,将TCP月良 务器的URL称为内网URL,将SSL VPN网关提供给远程用户的URL称为 外网URL。例如,内网URL为192.168.1.1: 23,外网URL可以为127.0.0.6.23。 SSL VPN网关本身具有内网URL和外网URL之间的对应关系,也具有进行 转换的能力,该内网URL和外网URL转换的内容为现有技术,在此也不再 赘述。
步骤310: SSL VPN网关将接收到的HTTPS报文进行协议转换后通过 TCP连接2发送给TCP服务器。由于SSL VPN客户端代理与SSLVPN网关之间采用SSL会话连接,而 SSLVPN网关与TCP服务器之间采用TCP连接,对应的协议报文也是不同 的,因此,需要将接收到的HTTPS报文进行协议转换,转换为HTTP报文 进行传输,其实也就是剥离HTTPS报文头的操作。
步骤311: SSL VPN网关通过TCP连接2接收到来自TCP服务器的数 据后,进行协议转换,确定TCP连接2映射的表项,将该表项中的远程主 机端口信息和URL携带在HTTPS报文中通过SSL会话连接2发送给SSL VPN客户端代理。
当接收到来自TCP服务器的数据后,同样需要进行协议转换,加上 HTTPS报文后,另外,需要确定TCP连接2映射的表项,将该表项中的内 容携带在HTTPS报文中以供SSL VPN客户端代理进行转发处理。这里也可 以采用应用控制字段和应用标识字段的表示方式,将应用控制字段设置为1 , 将应用标识字段中的TCP连接信息字段携带诸如源端口信息,TCP服务信 息字段携带URL信息。应用控制字段和应用标识字段同样可以设置在 HTTPS报文头的预留字段中,也可以设置在HTTPS报文头和数据段之间。
步骤312: SSL VPN客户端代理接收到HTTPS报文后,根据其中携带 的远程主机的端口信息,通过该远程主机的端口对应的TCP连接1将HTTPS 报文中的数据发送给TCP客户端,结束流程。
SSL VPN客户端代理接收到HTTPS报文后可以直接根据HTTPS报文 中携带的远程主机的端口信息来区分采用哪一个TCP连接来发送HTTPS报 文中的数据。
事实上,SSL VPN网关发送给SSL VPN客户端代理的HTTPS报文中 也可以不携带URL信息,但为了保持HTTPS报文格式一定,本实施例中携 带该URL信息。
步骤313: SSL VPN网关确定该表项所映射的TCP连接2,并将HTTPS 报文进行协议转换后通过该确定的TCP连接2发送给TCP服务器,结束流 程(图中所示为结束流程),或者转至步骤311。
14在该实施例中,SSL VPN网关可以为TCP服务信息表中的各表项设置 一个定时器,当没有该表项对应的HTTPS报文传输或者该表项映射的TCP 连接超时,启动该表项的定时器,该表项的定时器超时后删除该表项。当 SSL会话连接2被拆除时,删除针对该SSL会话连接2的TCP服务信息表。
按照上述方法假设用户需要同时使用两个TCP服务时,如图4所示, 会话连接1同样是SSL VPN客户端代理登录SSL VPN网关时建立的,TCP 客户端与SSL VPN客户端代理建立TCP连接1和TCP连接2, SSL VPN 客户端代理与SSL VPN网关之间建立SSL会话连接2,针对TCP连接1和 TCP连接2接收到的TCP服务请求,都通过该SSL会话连接2发送HTTPS 报文,针对TCP连接1的HTTPS报文中可以携带TCP连接1使用的远程主 机端口号i和请求的TCP服务的URL1,针对TCP连接2的HTTPS报文中 可以携带TCP连接2使用的远程主机端口号2和请求的TCP服务的URL2。
SSL VPN网关针对该SSL会话连接2建立TCP服务信息表,在该TCP 服务信息表中存储包含远程主机端口号1和URL1的表项1以及包含远程主 机端口号2和URL2的表项2。 SSL VPN网关针对URL1与TCP服务器1 建立TCP连接3后,将TCP连接3与表项1进行映射,针对URL2与TCP 服务器2建立TCP连接4后,将TCP连接4与表项2进行映射。
SSL VPN网关通过TCP连接3接收到TCP服务器l发送的报文后,确 定该TCP连接3映射的表项1,将报文转换为HTTPS报文并携带表项1中 的内容通过SSL会话连接2发送给SSL VPN客户端代理。
SSL VPN客户端代理接收到HTTPS报文后,根据其中携带的远程主机 端口号1可以确定需要通过TCP连接1将HTTPS报文中的数据发送给TCP 客户端。
可见在这种情况下,SSLVPN网关与SSL VPN客户端代理之间仅需要 建立和维护一条SSL会话连接,节约网络资源,在用户同时请求大量TCP 服务时效果更加突出。
以上是对本发明所提供的方法进行的详细描述,下面对本发明所提供的系统和相关装置进行详细描述。
本发明提供的系统主要包括SSL VPN客户端代理和SSL VPN网关。 SSL VPN客户端代理,用于通过第一 TCP连接接收到TCP服务请求后, 通过该SSL VPN客户端代理与SSL VPN网关之间唯一的SSL会话连接将包 含第一TCP连接信息和请求的TCP服务信息的HTTPS报文发送给SSL VPN网关。
SSL VPN网关,用于将包含第一TCP连接信息和请求的TCP服务信息
服务的TCP服务器建立第二 TCP连接后,根据该TCP服务信息表进行SSL VPN客户端代理与TCP服务器之间的报文转发。
其中,上述的第一 TCP连接信息可以为第一 TCP连接使用的远程主机 端口信息;上述请求的TCP服务信息可以为请求的TCP服务的URL信息。
图5为本发明实施例提供的SSL VPN客户端代理的结构图,如图5所示,该 SSL VPN客户端代理可以包括TCP连接处理单元500和SSL连接处理单元 510。
TCP连接处理单元500,用于通过第一 TCP连接接收TCP服务请求后,将 第一 TCP连接信息和请求的TCP服务信息提供给SSL连接处理单元510。
SSL连接处理单元510,用于通过该SSL VPN客户端代理与SSL VPN网关 之间唯一的SSL会话连接将包含第一 TCP连接信息和请求的TCP服务信息的 HTTPS才艮文发送给SSL VPN网关。
其中,SSL连接处理单元510可以具体包括连接判断单元511、 SSL连接 建立单元512和HTTPS 4艮文收发单元513。
连接判断单元511,用于接收到TCP连接处理单元提供的第一 TCP连接信 息和请求的TCP服务信息后,判断该SSL VPN客户端代理是否已经与SSL VPN 网关之间建立SSL会话连接,如果是,则向HTTPS报文收发单元513发送执 行通知,否则,向SSL连4妾建立单元512发送建立通知。SSL连接建立单元512,用于接收到建立通知后,建立该SSLVPN客户端 代理与SSL VPN网关之间的SSL会话连接,并向HTTPS报文收发单元513发 送净丸4亍通^口 。
HTTPS报文收发单元513 ,用于接收到执行通知后,通过该SSL VPN客户 端代理与SSL VPN网关之间的SSL会话连接,将包含第一 TCP连接信息和请 求的TCP服务信息的HTTPS报文发送给SSL VPN网关。
更进一步地,对于来自SSL VPN网关的HTTPS报文,HTTPS报文收发单 元513,还可以用于通过SSL会话连接接收到HTTPS报文后,将该HTTPS报 文中携带的第一 TCP连接信息和HTTPS报文中的数据提供给TCP连接处理单 元500。
TCP连接处理单元500,还用于根据接收到的第一 TCP连接信息,将HTTPS 报文中的数据通过第一 TCP连接发送给TCP客户端。
图6为本发明实施例提供的SSL VPN网关结构图,如图6所示,该SSL VPN 网关可以包括SSL连接处理单元600、信息表处理单元610和TCP连接处理 单元620。
SSL连接处理单元600,用于通过该SSL VPN网关与SSL VPN客户端代理 之间唯一的SSL会话连接接收到SSLVPN客户端代理发送的HTTPS报文后, 获取该HTTPS报文中包含的第一 TCP连接信息和请求的TCP服务信息,并提 供给信息表处理单元610;根据TCP服务信息表进行SSL VPN客户端代理与 TCP服务器之间的报文转发。
信息表处理单元610,用于将包含第一 TCP连接信息和请求的TCP服务信 息的表项存储在针对SSL会话的TCP服务信息表中,并向TCP连接处理单元 发送建立通知。
TCP连接处理单元620,用于接收到建立通知后与提供请求的TCP服务的 TCP服务器建立第二 TCP连接,根据TCP服务信息表进行SSL VPN客户端代 理与TCP服务器之间的报文转发。
其中,SSL连接处理单元600可以具体包括HTTPS才艮文处理单元601和
17表项判断单元602。
HTTPS报文处理单元601 ,用于通过该SSL VPN网关与SSL VPN客户端 代理之间唯一的SSL会话连接接收到SSL VPN客户端代理发送的HTTPS报文 后,该HTTPS报文中包含的第一 TCP连接信息和请求的TCP服务信息提供给 表项判断单元602。
表项判断单元602,用于判断信息表处理单元610是否已经针对SSL会话 连接建立TCP服务信息表,如果否,则向信息表处理单元610发送建立通知并 将第一 TCP连接信息和请求的TCP服务信息提供给信息表处理单元610;如果 是,则判断TCP服务信息表中是否已经存在包含第一 TCP连接信息和请求的 TCP服务信息的表项,如果否,则将第一TCP连接信息和请求的TCP服务信 息提供给信息表处理单元610。
信息表处理单元610,还用于接收到建立通知后,针对SSL会话连接建立 TCP月良务4言息表。
另外,信息表处理单元610还可以用于在TCP连接处理单元620建立第二 TCP连接之后,将第二 TCP连接与表项进4亍映射。
TCP连接处理单元620通过第二 TCP连接接收到TCP服务器发送的报文 后,确定该第二TCP连接所映射的表项,并将映射的表项和接收到的报文提供 给HTTPS报文处理单元601;或者,按照HTTPS报文处理单元601提供的第 二 TCP连接信息,通过第二 TCP连接将HTTPS报文处理单元601提供的报文 发送给TCP服务器。
HTTPS报文处理单元601将TCP连接处理单元620提供的报文转换为 HTTPS报文,将表项中的内容携带在转换后的HTTPS报文中通过SSL会话连 接进行发送;或者,通过SSL会话连接接收到包含第一TCP连接信息和请求的 TCP服务信息的HTTPS报文后,如果表项判断单元602确定针对该SSL会话 连接建立的TCP服务信息表中已经存在包含第一 TCP连接信息和请求的TCP 服务信息的表项,则将该HTTPS报文进行协议转换后连同表项所映射的第二 TCP连接信息提供给TCP连接处理单元620。更进一步地,信息表处理单元610还可以用于当表项对应的HTTPS报文传 输停止或者表项映射的第二TCP连接超时,启动表项对应的定时器,当该定时 器超时后,删除表项;当SSL会话连接被拆除时,,删除针对SSL会话连接建立 的TCP服务信息表。
由以上描述可以看出,本发明提供的方法、系统和相关装置中,SSL VPN 客户端代理与SSL VPN网关之间仅建立一条SSL会话连接,SSLVPN客户 端代理通过第一TCP连接接收到TCP服务请求后,将第一TCP连接信息和 请求的TCP服务信息携带在HTTPS报文中都通过该唯一的SSL会话连接发 送给SSL VPN网关;为了区分各TCP连接请求的TCP服务,SSL VPN网 关在针对该SSL会话连接建立的TCP服务信息表中存储包含第一TCP连接 信息和请求的TCP服务信息的表项,以便根据TCP服务信息表进行所述SSL VPN客户端代理与所述TCP服务器之间的报文转发。可以看出,本发明在 用户同时使用多个TCP服务或者一个TCP服务使用多次时,也只需要在SSL VPN客户端代理和SSL VPN网关间建立和维护一条SSL会话连接,节省了 占用的网络资源;另外,也避免了 SSL VPN客户端代理和SSL VPN网关间 多次SSL会话交互过程,提高了 SSL VPN客户端代理和SSL VPN网关的性S匕。
以上所述仅为本发明的较佳实施例而巳,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。
权利要求
1、一种提供传输控制协议TCP服务的方法,其特征在于,该方法包括A、安全套接层虚拟专用网SSL VPN客户端代理通过第一TCP连接接收到TCP服务请求后,通过该SSL VPN客户端代理与SSL VPN网关之间唯一的SSL会话连接将包含第一TCP连接信息和请求的TCP服务信息的安全超文本传输协议HTTPS报文发送给SSL VPN网关;B、所述SSL VPN网关将包含所述第一TCP连接信息和请求的TCP服务信息的表项存储在针对所述SSL会话的TCP服务信息表中,并在与提供请求的TCP服务的TCP服务器建立第二TCP连接后,根据该TCP服务信息表进行所述SSL VPN客户端代理与所述TCP服务器之间的报文转发。
2、 根据权利要求1所述的方法,其特征在于,所述步骤A具体包括Al 、 SSL VPN客户端代理通过第一 TCP连接接收到TCP服务请求后,判 断是否已经与所述SSL VPN网关之间建立SSL会话连接,如果是,则执行步 骤A3,否则^l行步骤A2;A2、所述SSLVPN客户端代理建立与所述SSLVPN网关之间的SSL会话 连接;A3、通过与所述SSLVPN网关之间建立的SSL会话连接,将包含第一TCP 连接信息和请求的TCP服务信息的HTTPS报文发送给所述SSL VPN网关。
3、 根据权利要求1所述的方法,其特征在于,所述第一TCP连接信息为 所述第一 TCP连接使用的远程主机端口信息;所述请求的TCP服务信息为请 求的TCP服务的统一资源标识URL信息。
4、 根据权利要求1所述的方法,其特征在于,在所述步骤A和步骤B之 间还包括务信息表,如果是,执行步骤C3,否则,执行步骤C2;C2、针对所述SSL会话连接建立TCP服务信息表,执行所述步骤B;C3、判断已经建立的TCP服务信息表中是否已经存在包含所述第一 TCP 连接信息和请求的TCP服务信息的表项,如果否,执行所述步骤B。
5、根据权利要求1所述的方法,其特征在于,在所述建立第二TCP连接 之后,将所述第二TCP连接与所述表项进行映射;步骤B中所述根据该TCP服务信息表进行所述SSL VPN客户端代理与所 述TCP服务器之间的报文转发包括如果所述SSL VPN网关通过所述第二 TCP 连接接收到所述TCP服务器发送的报文,将该报文转换为HTTPS报文,并确 定该第二 TCP连接所映射的表项,将该表项中的内容携带在转换后的HTTPS 报文中发送给所述SSL VPN客户端代理;或者,所述SSL VPN网关通过所述 SSL会话连接接收到包含所述第一 TCP连接信息和请求的TCP服务信息的 HTTPS报文后,如果确定针对该SSL会话连接建立的TCP服务信息表中已经 存在包含所述第一 TCP连接信息和请求的TCP服务信息的表项,则将所述 HTTPS报文进行协议转换后,通过所述表项所映射的第二 TCP连接发送给TCP 服务器。根据该HTTPS报文中携带的第一 TCP连接信息,通过所述第一 TCP连接将该 HTTPS报文中的数据发送给TCP客户端。
6、 根据权利要求1至5任一权项所述的方法,其特征在于,在所述HTTPS应用标识字段;其中,所述应用控制字段用于标识该HTTPS报文中是否包含第 一 TCP连接信息和请求的TCP服务信息;所述应用标识字^L中用于携带所述 第一 TCP连接信息和请求的TCP服务信息。
7、 根据权利要求1至5任一权项所述的方法,其特征在于,所述表项对应 一个定时器,当所述表项对应的HTTPS报文传输停止或者所述表项映射的第二 TCP连接超时,启动所述表项对应的定时器;所述表项的定时器超时后,删除所述表项;当所述SSL会话连接被拆除时,删除针对所述SSL会话连接建立的TCP服务信息表。
8、 一种SSLVPN客户端代理,其特征在于,该SSLVPN客户端代理包括 TCP连接处理单元,用于通过第一 TCP连接接收TCP服务请求后,将第一 TCP连接信息和请求的TCP服务信息提供给SSL连接处理单元;SSL连接处理单元,用于通过该SSL VPN客户端代理与SSL VPN网关之 间唯一的SSL会话连接将包含所述第一 TCP连接信息和请求的TCP服务信息 的HTTPS净艮文发送给SSL VPN网关。
9、 根据权利要求8所述的SSL VPN客户端代理,其特征在于,所述SSL 连接处理单元具体包括连接判断单元,用于接收到所述TCP连接处理单元提供的第一 TCP连接信 息和请求的TCP服务信息后,判断该SSL VPN客户端代理是否已经与所述SSL VPN网关之间建立SSL会话连接,如果是,则向HTTPS报文收发单元发送执 行通知,否则,向SSL连4妄建立单元发送建立通知;SSL连接建立单元,用于接收到建立通知后,建立该SSLVPN客户端代理 与所述SSL VPN网关之间的SSL会话连接,并向HTTPS报文收发单元发送执 行通知;HTTPS报文收发单元,用于接收到执行通知后,通过该SSLVPN客户端 代理与所述SSL VPN网关之间的SSL会话连接,将包含所述第一TCP连接信 息和请求的TCP服务信息的HTTPS报文发送给所述SSL VPN网关。
10、 根据权利要求9所述的SSL VPN客户端代理,其特征在于,所述HTTPS 报文收发单元,还用于通过所述SSL会话连接接收到HTTPS报文后,将该 HTTPS报文中携带的第一 TCP连接信息和HTTPS 4艮文中的数据提供给所述 TCP连接处理单元;所述TCP连接处理单元,还用于根据接收到的第一TCP连接信息,将所述 HTTPS报文中的数据通过所述第一 TCP连接发送给TCP客户端。
11、 一种SSLVPN网关,其特征在于,该SSLVPN网关包括SSL连接处理单元,用于通过该SSL VPN网关与SSL VPN客户端代理之获取该HTTPS报文中包含的第一 TCP连接信息和请求的TCP服务信息,并提 供给信息表处理单元;根据TCP服务信息表进行所述SSL VPN客户端代理与 所述TCP服务器之间的报文转发;信息表处理单元,用于将包含所述第一 TCP连接信息和请求的TCP服务信 息的表项存储在针对所述SSL会话的TCP服务信息表中,并向TCP连接处理 单元发送建立通知;TCP连接处理单元,用于接收到建立通知后与提供请求的TCP服务的TCP 服务器建立第二 TCP连接,根据TCP服务信息表进行所述SSL VPN客户端代 理与所述TCP服务器之间的报文转发。
12、 根据权利要求11所述的SSL VPN网关,其特征在于,所述SSL连接 处理单元具体包括HTTPS报文处理单元,用于通过该SSL VPN网关与SSL VPN客户端代理 之间唯一的SSL会话连接接收到所述SSL VPN客户端代理发送的HTTPS报文 后,该HTTPS报文中包含的第一 TCP连接信息和请求的TCP服务信息提供给 表项判断单元;所述表项判断单元,用于判断所述信息表处理单元是否已经针对SSL会话 连接建立TCP服务信息表,如果否,则向所述信息表处理单元发送建立通知并 将所述第一 TCP连接信息和请求的TCP服务信息提供给所述信息表处理单元; 如果是,则判断所述TCP服务信息表中是否已经存在包含所述第一 TCP连接 信息和请求的TCP服务信息的表项,如果否,则将所述第一 TCP连接信息和 请求的TCP服务信息提供给所述信息表处理单元;所述信息表处理单元,还用于接收到建立通知后,针对所述SSL会话连接 建立TCP服务信息表。
13、 根据权利要求12所述的SSL VPN网关,其特征在于,所述信息表处 理单元,还用于在所述TCP连接处理单元建立所述第二 TCP连接之后,将所 述第二 TCP连接与所述表项进行映射;所述TCP连接处理单元通过所述第二 TCP连接接收到TCP服务器发送的 报文后,确定该第二TCP连接所映射的表项,并将映射的表项和接收到的报文 提供给所述HTTPS报文处理单元;或者,按照所述HTTPS报文处理单元提供 的第二 TCP连接信息,通过所述第二 TCP连接将所述HTTPS报文处理单元提 供的报文发送给TCP服务器;所述HTTPS报文处理单元将所述TCP连接处理单元提供的报文转换为 HTTPS报文,将所述表项中的内容携带在转换后的HTTPS报文中通过所述SSL 会话连接进行发送;或者,通过所述SSL会话连接接收到包含所述第一 TCP 连接信息和请求的TCP服务信息的HTTPS报文后,如果所述表项判断单元确 定针对该SSL会话连接建立的TCP服务信息表中已经存在包含所述第一 TCP 连接信息和请求的TCP服务信息的表项,则将该HTTPS "t艮文进行协议转换后 连同所述表项所映射的第二 TCP连接信息提供给所述TCP连接处理单元。
14、 根据权利要求12所述的SSL VPN网关,其特征在于,所述信息表处 理单元还用于当所述表项对应的HTTPS报文传输停止或者所述表项映射的第 二TCP连接超时,启动所述表项对应的定时器,当该定时器超时后,删除所述 表项;当所述SSL会话连接被拆除时,删除针对所述SSL会话连接建立的TCP 服务信息表。
15、 一种提供TCP服务的系统,其特征在于,该系统包括如权利要求8所 述的SSLVPN客户端代理和如权利要求11所述的SSL VPN网关。
全文摘要
一种提供传输控制协议(TCP)服务的方法、系统和相关装置,其中,方法包括安全套接层虚拟专用网(SSL VPN)客户端代理通过第一TCP连接接收到TCP服务请求后,通过该SSL VPN客户端代理与SSL VPN网关之间唯一的SSL VPN会话连接将包含第一TCP连接信息和请求的TCP服务信息的HTTPS报文发送给SSL VPN网关;SSL VPN网关将包含第一TCP连接信息和请求的TCP服务信息的表项存储在针对SSL会话的TCP服务信息表中,并在与提供请求的TCP服务的TCP服务器建立第二TCP连接后,根据该TCP服务信息表进行所述SSL VPN客户端代理与所述TCP服务器之间的报文转发。
文档编号H04L29/08GK101534302SQ20091008242
公开日2009年9月16日 申请日期2009年4月16日 优先权日2009年4月16日
发明者任俊峰, 迪 周, 顾雷雷 申请人:杭州华三通信技术有限公司