一种适用于虚拟专用网络的快速重连方法
技术领域
本发明属于网络安全技术领域,尤其涉及一种适用于虚拟专用网络的快速重连方法。
背景技术
随着虚拟专用网络(VPN)技术的普及,VPN技术已经支持移动设备,移动设备安装VPN客户端,接入网络(Wlan网络或移动网络)后即可访问专网。
但是网络信号仍旧不稳定,移动设备经常变化位置,造成网络信号的不断切换,包括Wlan到2/3/4G,或者同一2/3/4G网络中的不同基站之间。VPN技术的安全实施依赖于隧道,隧道的持续依赖于建立时使用的网络信息。当网络信息改变时,隧道便无法持续,VPN技术无法安全实施。
为了VPN技术的安全实施,VPN客户端需要在新的网络环境中重新握手建立隧道,而发起握手请求之前需要等待一个超时时间。
在等待超时,且网络信号恢复后,隧道恢复。建立隧道需要握手并推送服务端配置等过程,这均需要额外的流量。因此,隧道重连的过程,给移动设备带来了巨大的时间、流量和电量开销。
即使在超时时间内网络信号恢复,但是VPN客户端的IP地址信息已经发生变化,例如,移动蜂窝式网络使用DHCP方式给接入的移动设备动态分配IP地址,前后两次分配同一个IP地址的可能性较小,VPN服务端使用VPN客户端旧地址信息建立的客户端实例,当VPN客户端携带新地址信息前往服务端获取服务时,VPN服务端无法根据新的地址信息匹配到旧有的客户端实例,就无法给响应正在等待的VPN客户端,直到超时,VPN客户端发起重连请求。
经调查分析,现有的VPN的实现方式,如SSL VPN、IPSec VPN、MPLS VPN、L2TP VPN、PPTP VPN均存在这样的问题。为此,申请人进行了有益的探索和尝试,找到了解决上述问题的办法,下面将要介绍的技术方案便是在这种背景下产生的。
发明内容
本发明所要解决的技术问题:针对现有VPN技术中网络断线并恢复(或网络切换)后,VPN客户端为了继续加密应用的访问,重新建立隧道需要大量的时间和流量的问题,而提出了一种适用于虚拟专用网络的快速重连方法,该方法可以在网络环境变化时,VPN客户端快速恢复隧道,保证了加密应用的流畅使用,为手机、平板电脑这种网络流量、电量有限的移动设备节省了资源,提升了用户体验。
本发明所解决的技术问题可以采用以下技术方案来实现:
一种适用于虚拟专用网络的快速重连方法,包括以下步骤:
步骤S1,VPN客户端向VPN服务端申请会话序列号;
步骤S2,VPN服务端接收到步骤S1中VPN客户端的申请后生成会话序列号,并下发给VPN客户端;与此同时,VPN服务端在本地建立会话序列号表,该会话序列号表保存VPN服务端生成的会话序列号与之相对应的VPN客户端当前使用的地址结构的映射关系;
步骤S3,VPN客户端接收到步骤S2中VPN服务端下发的会话序列号后保存到本地,并实时监听网络连接是否发生变化,当监听到网络连接断开时,VPN客户端向VPN服务端发送携带有会话序列号的数据包;
步骤S4,当网络恢复后,VPN服务端接收到VPN客户端发送过来的携带有会话序列号的数据包,并根据该会话序列号查找会话序列号表,取出与该会话序列号相对应的网络恢复前VPN客户端使用的地址结构,并据此查找到存有整个会话信息的客户端实例;
步骤S5,VPN服务端使用VPN客户端当前的地址结构更新步骤S4中的网络恢复前VPN客户端使用的地址结构,保存并重用步骤S4中查找到的整个会话信息的客户端实例;
步骤S6,VPN服务端发送通知给VPN客户端,VPN客户端通过当前的地址信息开始正常加密访问VPN服务端。
在本发明的一个优选实施例中,所述VPN客户端的地址结构为IP地址、IP地址与端口的组合形式、或IP地址与端口的hash值的组合形式中的一种。
在本发明的一个优选实施例中,在步骤S1中,所述VPN客户端向VPN服务端申请会话序列号的时间在网络发生变化前完成。
在本发明的一个优选实施例中,在步骤S1中,所述VPN客户端向VPN服务端申请会话序列号的时间可在隧道建立前或隧道建立后完成。
在本发明的一个优选实施例中,所述会话序列号的封装位置位于VPN协议与传输层之间或者位于VPN协议中。
在本发明的一个优选实施例中,所述会话序列号的长度为任意长度的比特。
在本发明的一个优选实施例中,所述VPN客户端安装在移动终端上。
由于采用了如上的技术方案,本发明的有益效果在于:本发明能够在网络环境发生变化时,VPN客户端通过增加的会话层,更新在VPN服务端保存的过时的客户端信息,减少了重新建立隧道需要的时间以及流量开销,为移动设备节省了资源,提高了用户在使用VPN进行加密访问应用的流畅度,大大提高了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的处理流程图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本发明的VPN客户端安装在移动终端上,例如,手提电脑、平板电脑、手机、PDA等。本发明的VPN技术可以采用SSL VPN、IPSEC VPN、MPLS VPN、L2TP VPN、PPTP VPN等方式实现。
参见图1,本发明的一种适用于虚拟专用网络的快速重连方法,包括以下步骤:
步骤1,VPN客户端向VPN服务端申请会话序列号sid,其中,VPN客户端向VPN服务端申请会话序列号sid的时间需要在网络发生变化前完成,优选地,可以在隧道建立前或隧道建立后完成;会话序列号sid的封装位置位于VPN协议与传输层之间或者位于VPN协议中;会话序列号sid的长度为任意长度的比特;
步骤2,VPN服务端接收到步骤1中VPN客户端的申请后生成会话序列号sid,并下发给VPN客户端;与此同时,VPN服务端在本地建立会话序列号表,该会话序列号表保存VPN服务端生成的会话序列号sid与之相对应的VPN客户端当前使用的地址结构的映射关系;VPN客户端的地址结构可以为IP地址、IP地址与端口的组合形式、或IP地址与端口的hash值的组合形式中的一种;
步骤3,VPN客户端接收到步骤2中VPN服务端下发的会话序列号后保存到本地;
步骤4,VPN客户端实时监听网络连接是否发生变化,当VPN客户端判断其监听到网络连接发生变化时,例如网络断开,则进入步骤5,否则进入步12;
步骤5,VPN客户端开始向VPN服务端发送携带有会话序列号sid的IP_CHANGE数据包;
步骤6,当网络恢复连接后,判断VPN服务端接收到VPN客户端发送过来的数据包是否携带有会话序列号sid,判定为是,则进入步骤7,判定为否,则进入步骤13;
步骤7,VPN服务端根据会话序列号sid查找会话序列表,取出与该会话序列号sid相对应的网络恢复前VPN客户端使用的地址结构,并据此查找到存有整个会话信息的客户端实例;
步骤8,VPN服务端将VPN客户端当前的地址结构与取出的网络恢复前VPN客户端使用的地址结构进行比较,判定为相同,则表示VPN服务端的会话序列号表已经更新,但VPN客户端未收到IP_CHANGE_ACK数据包,则进入步骤10,判定为不同,则进入步骤9;
步骤9,VPN服务端使用VPN客户端当前的地址结构更新会话序列号表中的网络恢复前VPN客户端使用的地址结构,并重用步骤7中查找的整个会话信息的客户端实例;
步骤10,VPN服务端将IP_CHANGE_ACK数据包发送至VPN客户端;
步骤11,判断VPN客户端是否接收到VPN服务端发送过来的IP_CHANGE_ACK数据包,若判定为是,则进入步骤12,则判定为否,则返回步骤5;
步骤12,VPN客户端向VPN服务端发送不携带有会话序列号sid的普通数据包,并通过当前的地址信息开始正常加密访问VPN服务端。
步骤13,VPN服务端匹配本地表后返回VPN客户端实例。
根据以上方法,搭建实际环境进行测试,比较不使用快速重连方法和使用快速重连方法的重连速度和流量。VPN技术采用OpenVPN,超时时间设为60s。VPN客户端使用4G或Wlan接入VPN服务端。使用两个VPN客户端接入同一个VPN服务端,VPN客户端1带有快速重连方法,VPN客户端2不带有快速重连方法。模拟的网络变化场景包括:
由上述实验得知,在各种网络变化场景中,带有快速重连方法的VPN客户端1只要3s~4s就可以完成重连过程,且需要0.1KB左右的流量,相比不带快速重连方法的VPN客户端2,使用快速重连方法完成隧道重连过程需要时间更短,需要的流量更少,提升效果极为明显。
因此,根据上述方案得到的本发明能够在网络环境发生变化时,VPN客户端通过增加的会话层,更新在VPN服务端保存的过时的客户端信息,减少了重新建立隧道需要的时间以及流量开销,为移动设备节省了资源,提高了用户在使用VPN进行加密访问应用的流畅度,大大提高了用户体验。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。