连接转换方法和设备转让专利

申请号 : CN201110357430.5

文献号 : CN102413176B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李月史建鑫王春宁

申请人 : 华为技术有限公司

摘要 :

本发明涉及连接转换方法和设备。网关设备接收客户端发起的外网连接请求报文,为外网连接请求报文创建上下文context,根据外网连接请求,向内网服务器发送内网连接请求报文,接收内网服务器返回的针对内网连接请求报文的内网连接应答报文,根据内网连接应答报文中携带的context的校验部分对内网连接应答报文进行校验,并在校验通过后,根据context的数据部分找到对应的外网连接,根据所述内网连接应答报文,向客户端发送外网连接应答报文。根据本发明实施例,在内外网之间建立连接时,通过在WAN侧和LAN侧的扩展报文头中设置context,而收到报文后直接根据context索引到相关信息进行连接校验和报文转发,保证数据安全并且高效率地传输。

权利要求 :

1.一种连接转换方法,其特征在于,所述方法包括:

接收客户端发起的外网连接请求报文;

为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分;

根据所述外网连接请求报文,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context;

接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context;

根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文;根据所述context找到对应的所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文。

2.如权利要求1所述的方法,其特征在于,

所述context的所述校验部分包括多位随机数,所述多位随机数在创建所述context时随机产生。

3.如权利要求2所述的方法,其特征在于,所述context的数据部分指示参数数组的下标,其中所述参数数组内容包括客户端标识、外网连接标识、外网HTTPS请求和内网Socket标识。

4.如权利要求3所述的方法,其特征在于,所述外网连接请求为Web代理请求,其中,所述为所述外网连接请求报文创建上下文context,包括:针对所述Web代理请求,创建所述context,将所述context设置在所述Web代理请求的扩展请求报文头中,并对所述Web代理请求进行统一资源定位符URL改写;

所述针对所述外网连接请求,向内网服务器发送内网连接请求报文,包括:根据内网资源的内网统一资源定位符URL向内网服务器发送内网连接请求报文,其中所述context记录在所述内网连接请求报文的扩展报文头中;

所述根据所述context的校验部分对所述应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文,包括:根据所述应答报文的扩展报文头中的所述context的校验部分进行校验以确定所述内网连接应答报文是针对所述Web代理请求的响应报文;

所述根据所述context找到对应的所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文,包括:将所述内网连接应答报文进行URL反向改写,并根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端发送Web代理响应。

5.如权利要求4所述的方法,其特征在于,所述方法还包括:接收客户端发送的后续Web代理请求;

根据Web代理请求的外网连接标识找到已经建立的context,然后把context携带在Web代理请求的扩展请求报文中进行双向报文校验和转发。

6.如权利要求3所述的方法,其特征在于,所述外网连接请求是端口转发请求,其中,所述为所述外网连接请求创建context,和根据所述外网连接请求向内网服务器发送内网连接请求报文,包括:针对所述端口转发请求,创建所述context;

根据所述端口转发请求,向内网服务器发送套接字socket连接请求,所述socket连接请求的socket数据结构的扩展字段中包括所述context,所述接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,包括:接收所述内网服务器发送的针对所述socket连接请求的socket连接响应,所述socket连接响应的socket数据结构中包括所述context,所述根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文,包括:根据所述socket连接响应的socket数据结构中的所述context的校验部分进行校验,以确定所述socket连接响应是针对所述socket连接请求的响应,所述根据所述context找到对应的所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文,包括:根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端返回外网端口转发应答响应。

7.如权利要求6所述的方法,其特征在于,

所述context的数据部分索引到的参数数组内容还包括外网阻塞标志和缓存数据位置索引,所述方法还包括:

接收所述客户端发送的后续外网端口转发请求,所述后续外网端口转发请求中包括所述context;

根据所述后续外网端口转发请求的外网连接标识找到已经建立的context,并根据所述context的数据部分索引到的参数数组中的客户端标识和缓存位置索引确定当前socket连接是否存在外网缓存,在存在外网缓存的情况下,继续缓存数据,

在不存在外网缓存的情况下,通过所述socket连接向内网服务器转发数据。

8.如权利要求7所述的方法,其特征在于,所述方法还包括:获取后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理。

9.如权利要求8所述的方法,其特征在于,

所述后续socket连接响应为数据读取消息,

所述获取所述后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理,包括:根据所述context的数据部分索引到的参数数组中的外网阻塞标志判断外网连接是否阻塞,在确定外网连接阻塞的情况下,不读取所述后续socket连接响应中的socket数据,等待通知;

在确定外网连接不阻塞的情况下,读取所述后续socket连接响应中的所述socket数据,封装成预设的HTTPS响应,根据所述context的数据部分索引到的参数数组中的外网连接标识,向客户端转发数据。

10.如权利要求8所述的方法,其特征在于,

所述后续socket连接响应为数据写入消息,

所述获取所述后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理,包括:根据所述context的数据部分索引到的参数数组中的外网连接标识和缓存位置索引判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,通过所述socket连接向内网服务器发送数据。

11.如权利要求8所述的方法,其特征在于,

所述后续socket连接响应为连接成功消息,

所述获取所述后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理,包括:根据所述context的数据部分索引到的参数数组中的外网连接标识判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,通过所述socket连接向内网服务器发送数据。

12.如权利要求8所述的方法,其特征在于,

所述后续socket连接响应为关闭连接消息,

所述获取所述后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理,包括:根据所述context的数据部分索引到的参数数组中的外网连接标识,关闭外网连接。

13.一种网关设备,其特征在于,所述网关设备包括:

接收器,用于接收客户端发起的外网连接请求报文;

处理模块,用于为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分;

发送器,用于根据所述外网连接请求报文,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context;

接收器还用于接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context;

所述处理模块还用于根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文;

所述发送器,还用于根据所述context找到所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文。

14.如权利要求13所述的网关设备,其特征在于,

所述context的所述校验部分包括多位随机数,所述多位随机数在创建所述context时随机产生。

15.如权利要求14所述的网关设备,其特征在于,

所述context的数据部分指示参数数组的下标,其中所述参数数组内容包括客户端标识、外网连接标识、外网HTTPS请求和内网Socket标识。

16.如权利要求15所述的网关设备,其特征在于,

在所述外网连接请求为Web代理请求时,所述处理模块具体用于针对所述Web代理请求,创建所述context,将所述context设置在所述Web代理请求的扩展请求报文头中,并对所述Web代理请求进行URL改写;

所述发送器用于根据内网资源的内网URL向内网服务器发送内网连接请求报文,其中所述context记录在所述内网连接请求报文的扩展报文头中;

所述处理模块还用于根据所述应答报文的扩展报文头中的所述context的校验部分进行校验以确定所述内网连接应答报文是针对所述Web代理请求的响应报文,并在校验通过后,将所述内网连接应答报文进行URL反向改写,并由所述发送器根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端发送Web代理响应。

17.如权利要求16所述的网关设备,其特征在于,

在后续Web代理连接时,所述接收器还用于接收客户端发送的后续Web代理请求,以便所述处理模块根据Web代理请求的外网连接标识找到已经建立的context,然后把context携带在Web代理请求的扩展请求报文中,进行双向报文校验和转发。

18.如权利要求15所述的网关设备,其特征在于,

在所述外网连接请求为端口转发请求的情况下,所述context的数据部分指示的参数数组还包括外网阻塞标志、缓存数据位置索引,所述处理模块具体用于针对所述外网端口转发请求,创建所述context;

所述发送器用于根据所述外网端口转发请求,向内网服务器发送套接字socket连接请求,所述socket连接请求的socket数据结构的扩展字段中包括所述context,所述接收器具体用于接收所述内网服务器发送的针对所述socket连接请求的socket连接响应,所述socket连接响应的socket数据结构中包括所述context,所述处理模块具体用于根据所述socket连接响应的socket数据结构中的所述context的校验部分进行校验,以确定所述socket连接响应是针对所述socket连接请求的响应,校验通过后,所述发送器具体用于根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端返回外网端口转发应答响应。

19.如权利要求18所述的网关设备,其特征在于,

所述接收器还用于接收所述客户端发送的后续端口转发请求,所述后续端口转发请求中包括所述context;

所述处理模块还用于根据所述后续端口转发请求的外网连接标识找到已经建立的context,并根据所述context的数据部分索引到的参数数组中的客户端标识和缓存位置索引确定当前socket连接是否存在外网缓存,在存在外网缓存的情况下,继续缓存数据,

在不存在外网缓存的情况下,通过所述socket连接向内网服务器转发数据。

20.如权利要求19所述的网关设备,其特征在于,

所述处理模块还用于获取后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理。

21.如权利要求20所述的网关设备,其特征在于,

所述后续socket连接响应为数据读取消息,

所述处理模块用于根据所述context的数据部分索引到的参数数组中的外网阻塞标志判断外网连接是否阻塞,在确定外网连接阻塞的情况下,不读取所述后续socket连接响应中的socket数据,等待通知;

在确定外网连接不阻塞的情况下,读取所述后续socket连接响应中的所述socket数据,封装成预设的HTTPS响应,由所述发送器根据所述context的数据部分索引到的参数数组中的外网连接标识,向客户端转发数据。

22.如权利要求20所述的网关设备,其特征在于,

所述后续socket连接响应为数据写入消息,则所述处理模块用于根据所述context的数据部分索引到的参数数组中的外网连接标识和缓存位置索引判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,由所述发送器通过所述socket连接向内网服务器发送数据。

23.如权利要求20所述的网关设备,其特征在于,

所述后续socket连接响应为连接成功消息,则所述处理模块具体用于根据所述context的数据部分索引到的参数数组中的外网连接标识判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,由所述发送器通过所述socket连接向内网服务器发送数据。

24.如权利要求20所述的网关设备,其特征在于,

所述后续socket连接响应为关闭连接消息,则所述处理模块根据所述context的数据部分索引到的参数数组中的外网连接标识,关闭外网连接。

说明书 :

连接转换方法和设备

技术领域

[0001] 本发明实施例涉及互联网领域,更具体地说,涉及连接转换方法和设备。

背景技术

[0002] SSL VPN是一种采用安全套接层(Security Socket Layer,简称SSL)加密连接实现远程访问的虚拟专用网络(Virtual Private Network,简称VPN)技术。根据SSL VPN,远程主机与SSL VPN网关之间建立SSL连接,以加密方式在互联网(Internet)上传送报文;而SSL VPN网关终结该SSL连接,与内网的服务器之间建立传输控制协议(Transmission Control Protocol,简称TCP)连接,以明文方式传送远程主机发来的请求,并将服务器的应答通过SSL连接发给远程主机。
[0003] SSL VPN网关将每个可以访问的内网网络资源地址映射为一条SSLVPN网关上的虚拟路径。通常,通过SSL VPN访问内网Web资源的过程如下:
[0004] 1)用户通过Web浏览器,使用安全超文本传输协议(Secure Hypertext Transfer Protocol,简称HTTPS)协议登录SSL VPN网关,获得一张可以访问的内网资源列表(Web站点或TCP应用等)。
[0005] 2)用户访问内网网络资源时,远程主机将与SSL VPN网关建立SSL链接,并发出一个指向虚拟路径的HTTPS请求,SSL VPN网关遍历查找虚实路径映射表,可找到虚拟路径所对应的真实统一资源定位符(Uniform/Universal Resource Locator,简称URL)或者网络协议(InternetProtocol,简称IP)网段或者IP+端口(port)。
[0006] 3)SSL VPN网关终结该SSL连接,
[0007] 对于首次外网请求,根据查找到的内网网络资源发起连接,并在映射表中记录报文转发对应关系。
[0008] 对于同一个连接的后续请求,根据查找到的映射表中的对应表项,获取内网连接进行报文发送。
[0009] 4)内网服务器向SSL VPN网关返回应答回应。
[0010] 5)SSLVPN网关遍历查找映射表,与广域网(Wide Area Network,简称WAN)侧流程类似,使得原来指向内网服务器的链接都映射为SSL VPN网关上的路径。
[0011] 6)SSL VPN网关将处理后的应答回应返回给远程主机。
[0012] 这样的连接过程导致每一次连接请求都需要遍历查找表项,执行效率低下。而且,对于已经关闭的连接再次分配的情况,无法识别超时回应的应答报文,浪费资源。

发明内容

[0013] 本发明的目的是提出一种连接转换的方法,以减轻甚至消除目前连接转换过程中出现的问题。
[0014] 本发明实施例一方面提出了一种连接转换方法,所述方法包括:
[0015] 接收客户端发起的外网连接请求报文;
[0016] 为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分;
[0017] 根据所述外网连接请求,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context;
[0018] 接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context;
[0019] 根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文;
[0020] 根据所述context找到对应的所述外网连接,并将所述内网连接应答报文发送给所述客户端。
[0021] 根据本发明实施例,提出了一种网关设备,所述网关设备包括:
[0022] 接收器,用于接收客户端发起的外网连接请求报文;
[0023] 处理模块,用于为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分;
[0024] 发送器,用于根据所述外网连接请求,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context;
[0025] 接收器还用于接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context;
[0026] 所述处理模块还用于根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文;
[0027] 所述发送器,还用于根据所述context找到对应的所述外网连接,并将所述内网连接应答报文发送给所述客户端。
[0028] 根据本发明实施例,在内外网之间建立连接时,通过在WAN侧和LAN侧的扩展报文头中设置context,而收到报文后直接根据context索引到相关信息进行连接校验和报文转发,保证数据安全并且高效率传输。

附图说明

[0029] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030] 图1是根据本发明实施例的连接转换方法的流程图;
[0031] 图2是根据本发明实施例的Web代理类型的连接转换的流程图;
[0032] 图3是根据本发明实施例的端口转发类型的连接转换的流程图;
[0033] 图4是根据本发明实施例的网关设备的示意结构图。

具体实施方式

[0034] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0035] 图1是根据本发明实施例的连接转换方法100的流程图。如图1所示,方法100包括:
[0036] 110:接收客户端发起的外网连接请求报文。
[0037] 120:为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分。
[0038] 130:根据所述外网连接请求报文,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context。
[0039] 140:接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context。
[0040] 150:根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文。
[0041] 160:根据所述context找到所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文。
[0042] 其中,所述外网连接应答报文中,不需要再携带所述context。
[0043] 根据本发明实施例,所述context可以包括由多位随机数构成的校验部分以及由多位数字构成的数据部分,例如,所述context可以包括4位随机数构成的校验部分和12位数字构成的数据部分。
[0044] 根据本发明实施例,所述context的数据部分可以作为索引用来指示参数数组。所述的参数数组可以包括发起外网连接的客户端标识(Identity,简称ID)、外网连接ID(session ID)、外网HTTPS请求以及内网套接字(socket)ID。根据具体应用场景,所述参数数组还可以包括外网阻塞标志和/或缓存数据位置索引等。
[0045] 在本发明实施例的步骤110中,在SSL VPN网关接收到外网客户端发起的外网连接请求后,基于第一个传输控制协议(Transmission Control Protocol,简称TCP)会话,为本次外网连接创建context。
[0046] 下面基于常见的外网连接类型,例述本发明上述图1中的方法。
[0047] 图2是对于Web代理类型的外网连接,本发明实施例的方法的示例流程图。在建立连接的过程中,SSLVPN网关设备上存在两个过程:一是对于WAN侧客户端的请求在SSLVPN网关侧进行URL改写,与内网服务器建立连接;二是对于内网服务器响应的报文在SSLVPN网关侧进行反向URL改写,将报文发回客户端。需要注意的是,图2中仅示出了Web代理连接过程中的涉及外网客户端、SSL VPN网关以及内网服务器的关键步骤,并不排除其他的步骤。
[0048] 如图2所示,在Web类型的外网连接过程中,连接转换方法200包括:
[0049] 210:SSL VPN网关接收外网客户端发送的Web代理请求。
[0050] 220:SSL VPN网关针对所述Web代理请求,创建context,将所述context设置在所述Web代理请求的扩展请求报文头中,并对所述Web代理请求进行统一资源定位器URL改写。这里所说的URL改写包括将外网的URL按照SSL VPN网关发布的资源拼接规则改写为内网的资源URL。
[0051] 此外,SSL VPN网关还需要存储所述context以及所述Web代理请求相关的信息,该信息可以是上述参数数组。所述context的数据部分为上述参数数组的索引。
[0052] 230:SSL VPN网关将所述context记录在所述内网连接请求报文的扩展报文头中,并根据所述Web代理请求中包括的内网URL向内网服务器发起内网连接请求。
[0053] 240:SSL VPN网关接收内网服务器发送的内网连接应答报文,并且该内网应答报文中包括context。
[0054] 250:SSL VPN根据所述应答报文中的context的校验部分进行校验,以确定所述内网连接应答报文是针对所述Web代理请求的响应报文。
[0055] 260:校验通过后,SSL VPN网关将所述URL进行反向改写,并根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端发送Web代理响应。这里所述的URL反向改写包括将响应页面中嵌套的内网URL按照SSL VPN网关发布的资源拼接规则改写为外网的资源URL,便于后续请求能正常代理。
[0056] 在外网客户端后续发起Web代理请求时,SSL VPN网关根据Web代理请求的session ID找到已经建立的context,然后把context携带在Web代理请求的扩展请求报文中进行双向报文校验和转发。
[0057] 图3是对于端口转发类型的外网连接,本发明实施例的方法的示例流程图。这里所说的端口转发请求是对于SSL VPN的业务端口转发功能来说的,本质上为TCP请求。在建立连接的过程中,SSLVPN网关设备上存在两个过程:第一,接收客户端的TCP建立连接请求,主动向内网建立连接;第二,在建立好的TCP连接上传输数据。实现这两个过程时,例如可以通过客户端的JAVA插件来监听客户端的TCP请求,封装为预设的HTTPS请求,转发到SSL VPN网关设备。
[0058] 需要注意的是,图3中仅示出了端口转发连接过程中涉及外网客户端、SSL VPN网关以及内网服务器的关键步骤,并不排除其他的步骤。
[0059] 如图3所示,在端口转发类型的外网连接过程中,连接转换方法300包括:
[0060] 310:SSL VPN网关设备接收外网客户端发起的外网端口转发请求。
[0061] 320:SSL VPN网关设备针对所述外网端口转发请求,创建context。
[0062] 此外,SSL VPN网关还需要存储所述context以及所述Web代理请求相关的信息,该信息可以是上述参数数组。所述context的数据部分为上述参数数组的索引。
[0063] 330:SSL VPN网关设备根据所述外网端口转发请求,向内网服务器发送socket连接请求,并将所述context记入socket数据结构的扩展字段中。
[0064] 340:SSL VPN网关设备接收所述内网服务器发送的针对所述socket连接请求的socket连接响应,所述socket连接响应的socket数据结构中包括所述context。
[0065] 350:SSL VPN根据所述socket连接响应的socket数据结构中的所述context的校验部分进行校验,以确定所述socket连接响应是针对所述socket连接请求的响应。
[0066] 360:校验通过后,SSL VPN网关设备根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端返回外网端口转发应答响应,即TCP应答。
[0067] 根据本发明实施例,在后续传输数据时,SSL VPN网关设备接收到所述客户端发送的后续端口转发请求时,根据所述端口转发请求的session ID找到已经建立的context,并根据所述context的数据部分索引到的参数数组中的客户端标识和缓存位置索引确定当前外网连接是否存在外网缓存,在存在外网缓存的情况下,继续缓存数据,在不存在外网缓存的情况下,通过所述socket连接向内网服务器转发数据。
[0068] 根据本发明实施例,在SSL VPN网关设备收到的所述内网服务器发送的后续socket连接响应时,获取该后续socket连接响应中的context,并根据不同的socket连接响应的类型进行处理。具体地,所述内网服务器发送的socket连接响应为数据读取消息,则SSL VPN网关设备根据所述context的数据部分索引到的参数数组中的外网阻塞标志判断外网连接是否阻塞,在确定外网连接阻塞的情况下,不读取socket连接响应中的socket数据,等待通知;在确定外网连接不阻塞的情况下,读取socket连接响应中的socket数据,封装成预设的HTTPS响应,根据所述context的数据部分索引到的参数数组中的外网连接标识,向客户端转发数据。
[0069] 如果内网服务器发送的后续socket连接响应为数据写入消息,则所述SSL VPN网关设备根据所述context的数据部分索引到的参数数组中的外网连接标识和缓存索引位置判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,通过所述socket连接向内网服务器发送数据。
[0070] 如果所述内网服务器发送的后续socket连接响应为连接成功消息,则SSL VPN网关设备根据所述context的数据部分索引到的参数数组中的外网连接标识和缓存索引位置判断外网连接是否存在缓存,在确定外网连接存在缓存的情况下,通过所述socket连接向内网服务器发送数据。
[0071] 如果所述内网服务器发送的后续socket连接响应为关闭连接消息,则SSL VPN网关设备根据所述context的数据部分索引到的参数数组中的外网连接标识关闭外网连接。
[0072] 根据本发明实施例,在内外网之间建立连接时,通过在WAN侧和LAN侧的扩展报文头中设置context,而收到报文后直接根据context索引到相关信息进行连接校验和报文转发,能够保证数据安全并且高效率传输。
[0073] 本发明实施例还提出了用来进行连接转换的网关设备。图4是根据本发明实施例的网关设备400的示意结构图,网关设备400可以用作本发明实施例中的SSL VPN网关设备。如图4所示,网关设备400可以包括:
[0074] 接收器410,用于接收客户端发起的外网连接请求报文。
[0075] 处理模块420,用于为所述外网连接请求报文创建上下文context,其中所述context包括校验部分和数据部分。
[0076] 发送器430,用于根据所述外网连接请求报文,向内网服务器发送内网连接请求报文,其中所述内网连接请求报文包括所述context。
[0077] 接收器410还用于接收内网服务器返回的针对所述内网连接请求报文的内网连接应答报文,其中所述内网连接应答报文包括所述context。
[0078] 所述处理模块420还用于根据所述context的校验部分对所述内网连接应答报文进行校验以确定所述内网连接应答报文是针对所述内网连接请求的响应报文。
[0079] 所述发送器430,还用于根据所述context找到所述外网连接,根据所述内网连接应答报文,向所述客户端发送外网连接应答报文。
[0080] 本发明方法实施例部分的特征在适当的情况下适用于本发明设备实施例,反之亦然。
[0081] 具体来说,根据本发明实施例,所述context的所述校验部分包括多位随机数,所述多位随机数在创建所述context时随机产生。
[0082] 根据本发明实施例,所述context的数据部分指示参数数组的下标,其中所述参数数组内容包括客户端标识、外网连接ID(session ID)、外网HTTPS请求和内网Socket ID。
[0083] 根据本发明可选的实施例,所述参数数组还可以包括外网阻塞标志、缓存数据位置索引。
[0084] 根据本发明实施例,在所述外网连接请求为Web代理请求时,所述处理模块420具体用于针对所述Web代理请求,创建所述context,将所述context设置在所述Web代理请求的扩展请求报文头中,并对所述Web代理请求进行URL改写。
[0085] 此外,所述处理模块420还用于存储所述context以及所述Web代理请求相关的信息,该信息可以是上述参数数组。所述context的数据部分为上述参数数组的索引。
[0086] 所述发送器430用于将所述context记录在所述内网连接请求报文的扩展报文头中,并根据所述Web代理请求中包括的内网URL向内网服务器发起内网连接请求。
[0087] 所述处理模块420还用于根据所述应答报文的扩展报文头中的所述context的校验部分进行校验以确定所述内网连接应答报文是针对所述Web代理请求的响应报文,并在校验通过后,将所述内网连接应答报文进行URL反向改写,并由发送器430根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端发送Web代理响应。
[0088] 根据本发明实施例,在后续Web代理连接时,所述接收器410还用于接收客户端发送的后续Web代理请求,以便所述处理模块420根据Web代理请求的session ID找到已经建立的context,然后把context携带在Web代理请求的扩展请求报文中,进行双向报文校验和转发。
[0089] 根据本发明实施例,在所述外网连接请求为端口转发请求的情况下,[0090] 所述处理模块420具体用于针对所述外网端口转发请求,创建所述context。
[0091] 此外,所述处理模块420还用于存储所述context以及所述端口转发请求相关的信息,该信息可以是上述参数数组。所述context的数据部分为上述参数数组的索引。
[0092] 所述发送器430用于根据所述外网端口转发请求,向内网服务器发送套接字socket连接请求,所述socket连接请求的socket数据结构的扩展字段中包括所述context。
[0093] 所述接收器410具体用于接收所述内网服务器发送的针对所述socket连接请求的socket连接响应,所述socket连接响应的socket数据结构中包括所述context。
[0094] 所述处理模块420具体用于根据所述socket连接响应的socket数据结构中的所述context的校验部分进行校验,以确定所述socket连接响应是针对所述socket连接请求的响应。
[0095] 校验通过后,所述发送器430具体用于根据context的数据部分索引到的参数数组中的外网连接标识,向外网客户端返回外网端口转发应答响应。
[0096] 根据本发明实施例,在外网后续端口转发请求中,所述接收器410用于接收所述客户端发送的后续端口转发请求,所述后续端口转发请求中包括所述context;
[0097] 处理模块420还用于根据所述端口转发请求的session ID找到已经建立的context,并根据所述context的数据部分索引到的参数数组中的客户端标识和缓存位置索引确定当前context是否存在外网缓存,
[0098] 在存在外网缓存的情况下,继续缓存数据,
[0099] 在不存在外网缓存的情况下,通过所述socket连接向内网服务器转发数据。
[0100] 根据本发明实施例,所述处理模块420还用于获取后续socket连接响应中的所述context,并根据所述后续socket连接响应的类型进行相应处理。
[0101] 具体来说,所述后续socket连接响应为数据读取消息,
[0102] 所述处理模块420用于根据所述context的数据部分索引到的参数数组中的外网阻塞标志判断外网连接是否阻塞,
[0103] 在确定外网连接阻塞的情况下,不读取所述后续socket连接响应中的所述socket数据,等待通知;
[0104] 在确定外网连接不阻塞的情况下,读取所述后续socket连接响应中的所述socket数据,封装成预设的HTTPS响应,由所述发送器430根据所述context的数据部分索引到的参数数组中的外网连接标识,向客户端转发数据。
[0105] 如果所述后续socket连接响应为数据写入消息,则所述处理模块420用于根据所述context的数据部分索引到的参数数组中的外网连接标识和缓存位置索引判断外网连接是否存在缓存,
[0106] 在确定外网连接存在缓存的情况下,由所述发送器430通过所述socket连接向内网服务器发送数据。
[0107] 如果所述后续socket连接响应为连接成功消息,则所述处理模块420用于根据所述context的数据部分索引到的参数数组中的外网连接标识判断外网连接是否存在缓存,[0108] 在确定外网连接存在缓存的情况下,由所述发送器430通过所述socket连接向内网服务器发送数据。
[0109] 如果所述内网后续socket连接响应为关闭连接消息,则所述处理模块420根据所述context的数据部分索引到的参数数组中的外网连接标识,关闭外网连接。
[0110] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0111] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0112] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0113] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0114] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0115] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0116] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。