一种VPN传输隧道调度方法、装置以及VPN客户端服务器
技术领域
本发明涉及通信领域,尤其涉及一种VPN传输隧道调度方法、装置以及VPN客户端服务器
背景技术
近年来随着英特网(英文全称:Internet)的迅速发展,网络已经无所不在地影响着社会生产的各个方面。随之而来的,针对重要信息资源和网络基础设施的入侵行为和企图入侵行为的数量也持续不断的增加,从而对网络通讯安全造成了极大的威胁。虚拟专用网络(英文全称:Virtual Private Network,英文简称:VPN),是一种常用于大型企业或团体与团体间的私人网络。通过建立VPN可以利用公用的网络架构如英特网在处于不同位置的节点间建立私有数据传输通道,从而在消耗较少资源的前提下为用户提供安全性较高的端到端的网络通讯服务。
现有的VPN在传输数据时,可以将经过加密的数据包通过传输控制协议(英文全称:Transmission Control Protocol,英文简称:TCP)隧道进行传输,也可以通过用户数据报协议(英文全称:User Datagram Protocol,英文简称:UDP)隧道进行传输。其中由于TCP协议为可靠的传输协议,因此通过TCP隧道进行数据传输可以保证所传输数据的可靠性,但由于TCP协议为面向连接,当通过TCP隧道进行数据传输时若出现丢包则需要重传数据,从而导致其传输效率往往较低;而UDP协议中控制选项较少,通过UDP隧道进行数据传输的延迟往往较小、数据传输的效率较高,但由于UDP协议并不对数据传输的可靠性进行保证,当网络环境较差时,通过UDP隧道进行数据传输时会出现较严重的丢包现象。
在实际应用中,当需要通过VPN隧道传输数据时,通常使用预先指定类型的VPN隧道进行数据传输。由于通过VPN隧道所传输数据的种类往往较多,而以上两种类型的VPN隧道在使用过程中均具有各自的优势,但同时也均存在一定的缺陷,因此可能出现预先指定类型的VPN隧道并不适合通过该VPN隧道所传输的数据的现象,即所使用的VPN隧道可能会影响该VPN隧道所传输数据的传输效率或传输质量,从而损害了用户体验。
发明内容
本发明的实施例提供了一种VPN传输隧道调度方法、装置以及VPN客户端服务器,主要用以解决现有技术中使用的VPN隧道可能会影响该VPN隧道所传输数据的传输效率或传输质量的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法,包括:在路由处采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据;分析访问日志以及探测数据,并根据分析结果选择相应的隧道传输访问目标地址的数据。
第二方面,本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度装置,包括:采集模块,被配置为在路由处采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据;分析模块,被配置为分析访问日志以及探测数据,并根据分析结果选择相应的隧道传输访问目标地址的数据。
第三方面,本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度装置,VPN传输隧道调度装置包括:通信接口、存储器和处理器,存储器用于存储计算机执行代码,计算机执行代码用于控制处理器执行上述第一方面的实施例所提供的VPN传输隧道调度方法。
第四方面,本发明的实施例提供了一种计算机存储介质,用于储存为虚拟专用网络VPN传输隧道调度装置所用的计算机软件指令,其包含执行上述第一方面的实施例所提供的虚拟专用网络VPN传输隧道调度方法所设计的程序代码。
第五方面,本发明的实施例提供了一种计算机程序,可直接加载到计算机的内部存储器中,并含有软件代码,计算机程序经由计算机载入并执行后能够实现上述第一方面的实施例所提供的虚拟专用网络VPN传输隧道调度方法。
第六方面,本发明的实施例提供了一种虚拟专用网络VPN客户端服务器,其特征在于,包括上述第三方面的实施例所提供的虚拟专用网络VPN传输隧道调度装置。
本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法、装置以及VPN客户端服务器,通过采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据,由于所获取的访问日志以及探测数据能够用于评价访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响,因此可以根据上述所获取的访问日志以及探测数据进行分析,并根据分析结果选择相应的隧道传输访问目标地址的数据,使进行数据传输时所使用的VPN隧道不会对所传输数据的传输效率或传输质量造成影响,从而提高了数据传输效率、改善了数据传输质量,同时改善了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例所提供的一种VPN系统的示意性结构图;
图2为本发明的另一实施例所提供的一种VPN系统的示意性结构图;
图3为本发明的实施例所提供的一种虚拟专用网络VPN传输隧道调度方法的示意性流程图;
图4为本发明的另一实施例所提供的一种虚拟专用网络VPN传输隧道调度方法的示意性流程图;
图5为本发明的实施例所提供的一种虚拟专用网络VPN传输隧道调度装置的示意性结构图;
图6为本发明的另一实施例所提供的一种虚拟专用网络VPN传输隧道调度装置的示意性结构图;
图7为本发明的另一实施例所提供的一种虚拟专用网络VPN传输隧道调度装置的示意性结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如本申请所使用的,术语“单元”、“组件”、“模块”、“系统”等等旨在指代计算机相关实体,该计算机相关实体可以是硬件、固件、硬件和软件的结合、软件或者运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的处理、处理器、对象、可执行文件、执行中的线程、程序和/或计算机。作为示例,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于执行中的过程和/或线程中,并且组件可以位于一个计算机中以及/或者分布在两个或更多个计算机之间。此外,这些组件能够从在其上具有各种数据结构的各种计算机可读介质中执行。这些组件可以通过诸如根据具有一个或多个数据分组(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互)的信号,以本地和/或远程过程的方式进行通信。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本发明实施例中,“示例的”一词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本发明实施例中,信息(information),信号(signal),消息(message),信道(channel)有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。“的(of)”,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本发明实施例描述的网络架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
通常情况下,为了进行加密通讯,可以在公用网络上建立专用网络,即VPN。如附图1所示,本发明的实施例提供了一种VPN系统,包括:用户终端101,目标访问设备102、第一VPN服务器103以及第二VPN服务器104,第一VPN服务器103以及第二VPN服务器104间建立有VPN隧道,当用户终端101与目标访问设备102相距较远时,可以通过第一VPN服务器103以及第二VPN服务器104间的VPN隧道进行数据传输,以保证数据安全。其中,目标访问设备102可以为提供Web服务的Web服务器。
在大型商业网站中,Web服务一般由集群提供服务,集群中的服务器分别提供图片服务,动态应用,多媒体服务等。其中用户可以通过统一资源定位符(英文全称:UniformResource Locator,英文简称:URL)标示从网站获取到的资源,URL可以分为动态URL和静态URL,其中动态URL一般由程序动态生成,也可以称为动态页面,动态链接,例如在URL中出现“?、=、&”这样的参数符号并以“.aspx、.asp、.jsp、.php、.perl、.cgi”为后缀的URL为动态URL;静态URL一般包括媒体文件,HTML文件等内容文件,也可以称为静态页面,静态URL一般为固定的网站,不包含任何参数或代码,示例性的,静态URL可以为以.htm、.html、.shtml、.xml为后缀的URL。通过分析用户所访问网站的URL,基本可以确定该网站的特点。
随着网络技术的发展,用户所访问站点的网络资源中动态文件或大文件的比例逐渐增大,示例性的,新闻媒体网站以图片服务和视频服务为主,微博等社交网站的动态元素多,文件普遍较小,视频网站一般以媒体文件为主,且通过分片技术,将视频文件存放在媒体服务器,根据统计,Youtube的视频文件平均大小为10MBytes。
表1为网络中网站上的不同类型的资源的大小在2013年底与2014年底的统计数据。
表1
资源类型 |
2013年底 |
2014年底 |
增幅 |
HTML |
57kb |
59kb |
4% |
CSS |
46kb |
57kb |
24% |
JavaScript |
276kb |
295kb |
7% |
Images |
1030kb |
1243kb |
21% |
Flash |
87kb |
76kb |
-13% |
Other |
205kb |
223kb |
9% |
Total |
1701kb |
1953kb |
15% |
如表1所示,网站上的不同类型的资源中,HTML的大小随着时间的推移而增大,同时CSS、JavaScript等动态资源也随着时间的推移而增大。
由于现有的VPN隧道的类型通常可以包括TCP类型的VPN隧道以及UDP类型的VPN隧道,其中由于TCP协议为可靠的传输协议,通过TCP类型的VPN隧道进行数据传输时可以保证所传输数据的可靠性,但其传输速率往往较低;而UDP协议中控制选项较少,通过UDP类型的VPN隧道进行数据传输的延迟往往较小、数据传输的效率较高,但当网络质量较差时,通过UDP类型的VPN隧道进行数据传输时会出现较严重的丢包现象。以上两种类型的VPN隧道在使用过程中均具有各自的优势,但同时也均存在一定的缺陷,因此通常VPN服务商并不会主动为客户选择VPN隧道的类型,而是由用户自行进行选择,例如用户事先对VPN隧道的类型进行配置,当存在使用VPN隧道的需求时,使用预先设定的VPN隧道进行数据传输。
因此当根据用户预设的VPN隧道例如UDP类型的VPN隧道进行数据传输时,可能会出现当用户访问动态资源或大文件比例较高的网站时,因UDP类型的VPN隧道的传输可靠性较差从而导致业务失败的现象,即所使用的VPN隧道与VPN隧道所传输的数据并不对应导致业务失败,从而降低了数据传输的效率,并损害了用户体验。
针对上述问题,本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法,其中该方法应用于如附图2所示的VPN系统,该VPN系统包括:用户设备201、VPN客户端202、VPN服务端203以及目标网络设备204,其中,VPN客户端202与VPN服务端203间分别建立有数据报协议UDP隧道与传输控制协议TCP隧道需要说明的是TCP隧道也可以理解为根据TCP协议封装经过加密的数据包并传输,UDP隧道也可以理解为根据UDP协议封装经过加密的数据包并传输。用户设备201通过连接VPN客户端202,可以通过VPN客户端202与VPN服务端203间建立的任一隧道访问目标网络设备204上的网络资源,其中目标网络设备204可以为Web服务器。
如附图3所示,本发明的实施例提供的虚拟专用网络VPN传输隧道调度方法包括:
301、在路由处采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据。
具体的,通过VPN客户端与VPN服务端之间的隧道访问目标地址的访问日志,可以包括预设时间段内每次访问目标地址的URL的动静态特性、在预设时间段内每次访问目标地址的响应数据的大小。通过VPN客户端与VPN服务端之间的隧道访问目标地址的探测数据,可以包括VPN客户端与VPN服务端之间的隧道的丢包率、VPN客户端与VPN服务端之间的传播时延以及VPN客户端与目标地址之间的传播时延。
具体的,目标地址可以为通过VPN客户端与VPN服务端之间建立的隧道所访问的目标网络设备的地址,目标地址可以为IP地址,也可以为其他能够标示通过VPN客户端以及VPN服务端之间建立的隧道所访问的网络设备的地址,本发明不作具体限定。
优选的,VPN客户端与VPN服务端之间的隧道包括用户数据报协议UDP隧道以及传输控制协议TCP隧道。
需要说明的是,在路由处采集的访问日志可以为距离当前时间第一时间阈值范围内的访问日志,示例性的,可以采集距离当前时刻4个小时内的访问日志;在路由处采集的探测数据可以为距离当前时间第二时间阈值范围内的探测数据,示例性的,可以采集距离当前时刻15分钟内的探测数据,其中第一时间阈值与第二时间阈值相互对应,以便于使所采集的访问日志与探测数据在时间上相互对应,根据所采集的访问日志与探测数据在进行分析时,能够确定一定时间范围内访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响。当访问多个目标网络设备时,目标地址可以理解为该多个目标网络设备的地址的集合。
VPN服务端与目标地址之间的传播时延以及VPN客户端与VPN服务端之间的传播时延的比例关系,也可以理解为VPN服务端与目标地址对应的网络设备之间的物理距离与VPN客户端与VPN服务端之间的物理距离的比例关系。示例性的,由于可以通过测定ping时延值估算传播时延,因此当测定VPN客户端与VPN服务端之间的ping时延值为P1、测定VPN服务端与目标地址对应的网络设备之间的ping时延值为P2,则可以通过P=P1/(P1+P2)计算传播时延参数P。需要说明的是,当通过测定ping时延值估算传播时延时,可以为通过测定基于控制报文协议(英文全称;Internet Control Message Protocol,英文简称:ICMP)的ping时延值估算传播时延。
在预设时间段内每次访问目标地址的URL的动静态特性,可以理解为在预设时间段内每次访问目标地址对应的网络设备时在该网络设备上访问的网络资源对应的ULR为动态ULR还是为静态ULR,更进一步的,根据预设时间段内每次访问目标地址的URL的动静态特性可以确定访问目标地址所获取的网络资源动态资源与静态资源的比例关系。
在预设时间段内每次访问目标地址的响应数据的大小,可以理解为在预设时间段内每次访问目标地址对应的网络设备时,该网络设备针对访问行为进行响应的响应数据的大小,示例性的,可以获取在预设时间段内每次访问目标地址对应的网络设备时该网络设备针对访问行为进行响应的响应数据的大小,更进一步的,还可以获取在预设时间段内访问目标地址对应的网络设备时该网络设备针对访问行为进行响应的响应数据的总数量F1,并将该F1个响应数据与响应数据阈值进行对比(该响应数据阈值可以为预先获取),并获取大于该响应数据阈值的响应数据的数量F2,并根据F=F2/F1获取在该预设时间段内访问目标地址的响应数据的大小比例参考值F。
302、分析访问日志以及探测数据,并根据分析结果选择相应的隧道传输访问目标地址的数据。
具体的,根据访问日志以及探测数据可以选择在VPN客户端与VPN服务端之间适于进行数据传输的隧道。
进一步的,当VPN客户端与VPN服务端之间的隧道包括UDP隧道以及TCP隧道时,可以根据UDP隧道和TCP隧道的丢包率,可以确定在VPN客户端与VPN服务端之间适于进行数据传输的隧道,具体的,若UDP隧道与TCP隧道的丢包率均较低例如低于一定阈值时,可以使用传输速度较快的隧道进行数据传输,例如使用UDP隧道进行数据传输。
进一步的,根据传播时延参数可以确定VPN服务端与目标地址之间的传播时延与VPN客户端与VPN服务端间的传播时延的比例关系,当VPN服务端与目标地址之间的传播时延相对于VPN客户端与VPN服务端间的传播时延较大时,VPN服务端与目标地址之间可能存在较多的网元,因此应当使用VPN客户端与VPN服务端之间的中较为可靠的隧道进行数据传输,以便于减少整个传输路径中的不可靠因素。
进一步的,根据所访问目标地址的URL的动静态特性可以确定所访问的网络资源的URL中动态URL的比例以及访问的响应数据大小的分布。当通过访问的网络资源的URL中动态URL的比例较高时,可以理解为目标地址对应的网络设备可能为业务服务器,当访问该业务服务器时,应该使用可靠的传输方式以便于确保业务得到保障,此时传输速度并不是首要考虑的因此,因此应当使用VPN客户端与VPN服务端之间的较为可靠的隧道进行数据传输。而根据访问目标地址对应的网络设备针对访问的响应数据大小的分布,可以确定响应数据中大小超出一定阈值的响应数据在总的响应数据中所占比例,当该比例过高时,若通过可靠的隧道进行数据传输,例如使用TCP隧道进行数据传输,当由于传输出错导致数据报重新发送时,该重新发送的数据量较多,从而加大隧道发生二次拥塞现象的可能性,因此也应当使用UDP隧道进行数据传输。
根据上述内容,由于根据访问日志以及探测数据能够评价当访问目标地址时,可以确定VPN服务端与目标地址之间的隧道的其中一个与其他隧道相比是否适于传输访问目标地址的数据,因此可以根据访问日志以及探测数据进行分析以确定相应的隧道,示例性的,还可以根据分析结果生成路由信息,该路由信息用于调度相应的隧道传输访问目标地址的数据,从而使所使用的隧道不会对传输访问该目标地址的数据的传输效率或传输质量造成影响,改善了用户体验。
本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法,采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据,由于所获取的访问日志以及探测数据能够用于评价访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响,因此可以根据上述所获取的访问日志以及探测数据进行分析,并根据分析结果选择相应的隧道传输访问目标地址的数据,使进行数据传输时所使用的VPN隧道不会对所传输数据的传输效率或传输质量造成影响,从而提高了数据传输效率、改善了数据传输质量,同时改善了用户体验。
具体的,如附图4所示,本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法,包括:
401、获取VPN客户端与VPN服务端之间的UDP隧道以及TCP隧道各自的丢包率、VPN客户端与VPN服务端之间的传播时延、VPN客户端与目标地址之间的传播时延、在预设时间段内每次访问目标地址的URL的动静态特性、在预设时间段内每次访问目标地址的响应数据的大小。
参照上述实施例中步骤301,在此不再赘述。
402、获取VPN平均丢包率。
403、判断VPN平均丢包率是否小于或等于丢包率评价阈值。
当确定VPN平均丢包率小于或等于丢包率评价阈值时,执行步骤404。
具体的,VPN平均丢包率可以为VPN客户端与VPN服务端之间的网络的平均丢包率,其中,VPN客户端与VPN服务端之间隧道建立在VPN客户端与VPN服务端之间的网络上,VPN平均丢包率可以为VPN客户端与VPN服务端之间的网络的丢包率的在三个探测周期的平均值vpnpl_avg。
当vpnpl_avg大于或等于丢包率评价阈值时,说明VPN客户端与VPN服务端之间的隧道的丢包率均较高,传输质量较差,若通过VPN客户端与VPN服务端之间的可靠的隧道进行数据传输,例如使用TCP隧道进行数据传输,当数据本身为TCP数据时,容易提升数据报重新发送的几率,从而造成隧道发生二次拥塞现象,而由于UDP隧道本身为无连接的,不会出现数据报重新发送的现象,因此不会造成隧道堵塞。
因此当VPN平均丢包率大丢包率评价阈值时,可以认为直接通过VPN客户端与VPN服务端之间的传输速率较快的隧道例如UDP隧道进行数据传输。
需要说明的是,VPN平均丢包率小于或等于丢包率评价阈值,可以理解为VPN平均丢包率小于丢包率评价阈值、VPN平均丢包率等于丢包率评价阈值以及VPN平均丢包率小于或等于丢包率评价阈值。
需要说明的是,可以在分析访问日志以及探测数据前默认调度UDP隧道传输访问所述目标地址的数据,即缺省使用UDP隧道进行数据传输。
404、根据UDP隧道以及TCP隧道的丢包率、VPN客户端与VPN服务端之间的传播时延、VPN客户端与目标地址之间的传播时延、在预设时间段内每次访问目标地址的URL的动静态特性、在预设时间段内每次访问目标地址的响应数据的大小求取隧道评价值。
405、比较隧道评价值和隧道评价阈值。
406、根据比较结果判断TCP隧道是否应作为传输访问目标地址的数据的隧道。
具体的,根据UDP隧道和TCP隧道的丢包率、VPN的传播时延特性以及目标地址的动静态特性求取隧道评价值,可以为根据下式求取隧道评价值Result。
其中r_durl为在预设时间段内访问目标地址的URL为动态URL的数目与在预设时间段内访问目标地址的URL为静态URL的数目的比值、A为r_durl的权重值、r_udploss为UDP隧道的丢包率、B为r_udploss的权重值、r_fping为VPN服务端传播时延与目标地址传播时延的比值,VPN服务端传播时延为VPN客户端与VPN服务端之间的传播时延,目标地址传播时延为VPN客户端与目标地址之间的传播时延、C为r_fping的权重值、r_lfile为在预设时间段内访问目标地址的URL的响应数据超过大文件阈值的数目与在预设时间段内访问目标地址的URL的数目的比值、D为r_lfile的权重值、r_tcploss为TCP隧道的丢包率、E为r_tcploss的权重值。
由于当所访问的目标地址的动态URL较多且TCP隧道的丢包率较低时,TCP隧道适用于在VPN客户端与VPN服务端间进行数据传输。由于在上式中分子中的参数分别用于评价所访问的目标地址的动态URL的比例关系以及TCP隧道的丢包率,经过权重参数调整后分子可以用于评价通过VPN客户端与VPN服务端间的TCP隧道访问目标地址受到的影响,而分母中的参数为用于评价通过VPN客户端与VPN服务端间的隧道访问的目标地址时,影响数据传输的所有参数,经过权重参数调整后分母可以用于评价通过VPN客户端与VPN服务端间的隧道访问目标地址受到的影响。因此当求取隧道评价值Result小于隧道评价阈值时,可以认为通过VPN客户端与VPN服务端间的TCP隧道访问目标地址受到的影响较小,当使用TCP隧道传输数据时,TCP隧道与所传输的数据对应。
示例性的,r-fping可以根据下式求取:
r-fping=vpn-ping_avg/dest-ping_avg
其中,vpn-ping_avg可以为VPN客户端与VPN服务端之间的ping时延值在预设探测周期的平均值,dest-ping_avg为VPN客户端与目标地址之间的ping时延值在三个探测周期的平均值,VPN客户端与目标地址之间的ping时延值也可以理解为VPN客户端与VPN服务端之间的ping时延值以及VPN服务端与目标地址之间的ping时延值之和。
r_udploss可以为VPN客户端与VPN服务端之间的UDP隧道的丢包率在预设探测周期的平均值。
r_tcploss可以为VPN客户端与VPN服务端之间的TCP隧道的丢包率在预设探测周期的平均值。
r_durl可以根据下式求取:
r-durl=d-url_count/s-url_count
其中,d-url_count为在预设访问周期内访问目标地址的动态URL的数目,s-url_count为在预设访问周期内访问目标地址的静态URL的数目。
r_lfile可以根据下式求取:
r-lfile=lfile_count/file_count
其中,file_count为在预设访问周期内访问目标地址的相应数据大于预设响应文件阈值的数目,file_count为在预设访问周期内访问目标地址的相应数据的总数目。
示例性的,预设访问周期可以为4个小时,预设响应文件阈值可以为5M Byte。
示例性的,r_durl的权重值A与r_udploss的权重值B之和可以为1,r_fping的权重值C与r_lfile的权重值D一级r_tcploss的权重值E之和可以为1。
示例性的,r_durl的权重值A可以为0.8,r_udploss的权重值B可以为0.2,r_fping的权重值C可以为0.6,r_lfile的权重值D可以为0.2,r_tcploss的权重值E可以为0.2。隧道评价阈值可以为0.7。当隧道评价值Result大于0.7时,可以认为TCP隧道应作为目标地址的隧道即隧道评价值Result满足使用所述TCP隧道的条件。
当隧道评价值Result满足使用所述TCP隧道的条件时,选择TCP隧道传输访问目标地址的数据;否则,选择UDP隧道传输访问目标地址的数据。本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度方法,通过采集通过VPN客户端与VPN服务端之间的UDP隧道以及VPN客户端与VPN服务端之间的TCP隧道访问目标地址的访问日志以及探测数据,由于所获取的访问日志以及探测数据能够用于评价访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响,因此可以根据上述所获取的访问日志以及探测数据进行分析,并根据分析结果选择相应的隧道传输访问目标地址的数据,使进行数据传输时所使用的VPN隧道不会对所传输数据的传输效率或传输质量造成影响,从而提高了数据传输效率、改善了数据传输质量,同时改善了用户体验。
上述主要从各个网元之间交互的角度对本发明实施例提供的方案进行了介绍。可以理解的是,各个网元,例如虚拟专用网络VPN传输隧道调度装置等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本发明实施例可以根据上述方法示例对服务器等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,附图5示出了上述实施例中所涉及的虚拟专用网络VPN传输隧道调度装置500的一种可能的结构示意图,包括:
采集模块501,被配置为在路由处采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据。
具体的,通过VPN客户端与VPN服务端之间的隧道访问目标地址的访问日志,可以包括预设时间段内每次访问目标地址的URL的动静态特性、在预设时间段内每次访问目标地址的响应数据的大小。通过VPN客户端与VPN服务端之间的隧道访问目标地址的探测数据,可以包括VPN客户端与VPN服务端之间的隧道的丢包率、VPN客户端与VPN服务端之间的传播时延以及VPN客户端与目标地址之间的传播时延。
具体的,目标地址可以为通过VPN客户端与VPN服务端之间建立的隧道所访问的目标网络设备的地址,目标地址可以为IP地址,也可以为其他能够标示通过VPN客户端以及VPN服务端之间建立的隧道所访问的网络设备的地址,本发明不作具体限定。
优选的,VPN客户端与VPN服务端之间的隧道包括用户数据报协议UDP隧道以及传输控制协议TCP隧道。需要说明的是,在路由处采集的访问日志可以为距离当前时间第一时间阈值范围内的访问日志,示例性的,可以采集距离当前时刻4个小时内的访问日志;在路由处采集的探测数据可以为距离当前时间第二时间阈值范围内的探测数据,示例性的,可以采集距离当前时刻15分钟内的探测数据,其中第一时间阈值与第二时间阈值相互对应,以便于使所采集的访问日志与探测数据在时间上相互对应,根据所采集的访问日志与探测数据在进行分析时,能够确定一定时间范围内访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响。
当访问多个目标网络设备时,目标地址可以理解为该多个目标网络设备的地址的集合。
VPN服务端与目标地址之间的传播时延以及VPN客户端与VPN服务端之间的传播时延的比例关系,也可以理解为VPN服务端与目标地址对应的网络设备之间的物理距离与VPN客户端与VPN服务端之间的物理距离的比例关系。示例性的,由于可以通过测定ping时延值估算传播时延,因此当测定VPN客户端与VPN服务端之间的ping时延值为P1、测定VPN服务端与目标地址对应的网络设备之间的ping时延值为P2,则可以通过P=P1/(P1+P2)计算传播时延参数P。需要说明的是,当通过测定ping时延值估算传播时延时,可以为通过测定基于控制报文协议(英文全称;Internet Control Message Protocol,英文简称:ICMP)的ping时延值估算传播时延。
在预设时间段内每次访问目标地址的URL的动静态特性,可以理解为在预设时间段内每次访问目标地址对应的网络设备时在该网络设备上访问的网络资源对应的ULR为动态ULR还是为静态ULR,更进一步的,根据预设时间段内每次访问目标地址的URL的动静态特性可以确定访问目标地址所获取的网络资源动态资源与静态资源的比例关系;
在预设时间段内每次访问目标地址的响应数据的大小,可以理解为在预设时间段内每次访问目标地址对应的网络设备时,该网络设备针对的访问行为进行响应的响应数据的大小,示例性的,可以获取在预设时间段内每次访问目标地址对应的网络设备时该网络设备针对访问行为进行响应的响应数据的大小,更进一步的,还可以获取在预设时间段内访问目标地址对应的网络设备时该网络设备针对访问行为进行响应的响应数据的总数量F1,并将该F1个响应数据与响应数据阈值进行对比(该响应数据阈值可以为预先获取),并获取大于该响应数据阈值的响应数据的数量F2,并根据F=F2/F1获取在该预设时间段内访问目标地址的响应数据的大小比例参考值F。
分析模块502,被配置为分析访问日志以及探测数据,并根据分析结果选择相应的隧道传输访问目标地址的数据。
具体的,根据访问日志以及探测数据可以确定在VPN客户端与VPN服务端之间适于进行数据传输的隧道。
进一步的,当VPN客户端与VPN服务端之间的隧道包括UDP隧道以及TCP隧道时,可以根据UDP隧道和TCP隧道的丢包率,可以确定在VPN客户端与VPN服务端之间适于进行数据传输的隧道,具体的,若UDP隧道与TCP隧道的丢包率均较低例如低于一定阈值时,可以使用传输速度较快的隧道进行数据传输,例如使用UDP隧道进行数据传输。
进一步的,根据传播时延参数可以确定VPN服务端与目标地址之间的传播时延与VPN客户端与VPN服务端间的传播时延的比例关系,当VPN服务端与目标地址之间的传播时延相对于VPN客户端与VPN服务端间的传播时延较大时,VPN服务端与目标地址之间可能存在较多的网元,因此应当使用VPN客户端与VPN服务端之间的隧道中较为可靠的隧道进行数据传输,以便于减少整个传输路径中的不可靠因素。
进一步的,根据所访问目标地址的URL的动静态特性可以确定所访问的网络资源的URL中动态URL的比例以及访问的响应数据大小的分布。当通过访问的网络资源的URL中动态URL的比例较高时,可以理解为目标地址对应的网络设备可能为业务服务器,当访问该业务服务器时,应该使用可靠的传输方式以便于确保业务得到保障,此时传输速度并不是首要考虑的因此,因此应当使用UDP隧道和TCP隧道中较为可靠的隧道进行数据传输。而根据访问目标地址对应的网络设备针对访问的响应数据大小的分布,可以确定响应数据中大小超出一定阈值的响应数据在总的响应数据中所占比例,当该比例过高时,若通过可靠的隧道进行数据传输,例如使用TCP隧道进行数据传输,当由于传输出错导致数据报重新发送时,该重新发送的数据量较多,从而加大隧道发生二次拥塞现象的可能性,因此也应当使用UDP隧道进行数据传输。
根据上述内容,由于根据访问日志以及探测数据能够评价当访问目标地址时,可以确定VPN服务端与目标地址之间的隧道的其中一个与其他隧道相比是否适于传输访问目标地址的数据,因此可以根据访问日志以及探测数据进行分析以确定相应的隧道,示例性的,还可以根据分析结果生成路由信息,该路由信息用于调度相应的隧道传输访问目标地址的数据,从而使所使用的隧道不会对传输访问该目标地址的数据的传输效率或传输质量造成影响,改善了用户体验。
本发明的实施例提供了一种虚拟专用网络VPN传输隧道调度装置,采集通过VPN客户端与VPN服务端之间的每个隧道访问目标地址的访问日志以及探测数据,由于所获取的访问日志以及探测数据能够用于评价访问目标地址时VPN服务端与目标地址之间的隧道是否会对访问目标地址的数据传输造成影响,因此可以根据上述所获取的访问日志以及探测数据进行分析,并根据分析结果选择相应的隧道传输访问目标地址的数据,使进行数据传输时所使用的VPN隧道不会对所传输数据的传输效率或传输质量造成影响,从而提高了数据传输效率、改善了数据传输质量,同时改善了用户体验。
具体的,根据UDP隧道和TCP隧道的丢包率、VPN的传播时延特性以及目标地址的动静态特性求取隧道评价值,可以为根据下式求取隧道评价值Result。
其中r_durl为在预设时间段内访问目标地址的URL为动态URL的数目与在预设时间段内访问目标地址的URL为静态URL的数目的比值、A为r_durl的权重值、r_udploss为UDP隧道的丢包率、B为r_udploss的权重值、r_fping为VPN服务端传播时延与目标地址传播时延的比值,VPN服务端传播时延为VPN客户端与VPN服务端之间的传播时延,目标地址传播时延为VPN客户端与目标地址之间的传播时延、C为r_fping的权重值、r_lfile为在预设时间段内访问目标地址的URL的响应数据超过大文件阈值的数目与在预设时间段内访问目标地址的URL的数目的比值、D为r_lfile的权重值、r_tcploss为TCP隧道的丢包率、E为r_tcploss的权重值。
由于当所访问的目标地址的动态URL较多且TCP隧道的丢包率较低时,TCP隧道适用于在VPN客户端与VPN服务端间进行数据传输。由于在上式中分子中的参数分别用于评价所访问的目标地址的动态URL的比例关系以及TCP隧道的丢包率,经过权重参数调整后分子可以用于评价通过VPN客户端与VPN服务端间的TCP隧道访问目标地址受到的影响,而分母中的参数为用于评价通过VPN客户端与VPN服务端间的隧道访问的目标地址时,影响数据传输的所有参数,经过权重参数调整后分母可以用于评价通过VPN客户端与VPN服务端间的隧道访问目标地址受到的影响。因此当求取隧道评价值Result小于隧道评价阈值时,可以认为通过VPN客户端与VPN服务端间的TCP隧道访问目标地址受到的影响较小,当使用TCP隧道传输数据时,TCP隧道与所传输的数据对应。
示例性的,r-fping可以根据下式求取:
r-fping=vpn-ping_avg/dest-ping_avg
其中,vpn-ping_avg可以为VPN客户端与VPN服务端之间的ping时延值在预设探测周期的平均值,dest-ping_avg为VPN客户端与目标地址之间的ping时延值在三个探测周期的平均值,VPN客户端与目标地址之间的ping时延值也可以理解为VPN客户端与VPN服务端之间的ping时延值以及VPN服务端与目标地址之间的ping时延值之和。
r_udploss可以为VPN客户端与VPN服务端之间的UDP隧道的丢包率在预设探测周期的平均值。
r_tcploss可以为VPN客户端与VPN服务端之间的TCP隧道的丢包率在预设探测周期的平均值。
r_durl可以根据下式求取:
r-durl=d-url_count/s-url_count
其中,d-url_count为在预设访问周期内访问目标地址的动态URL的数目,s-url_count为在预设访问周期内访问目标地址的静态URL的数目。
r_lfile可以根据下式求取:
r-lfile=lfile_count/file_count
其中,file_count为在预设访问周期内访问目标地址的相应数据大于预设响应文件阈值的数目,file_count为在预设访问周期内访问目标地址的相应数据的总数目。
示例性的,预设访问周期可以为4个小时,预设响应文件阈值可以为5M Byte。
示例性的,r_durl的权重值A与r_udploss的权重值B之和可以为1,r_fping的权重值C与r_lfile的权重值D一级r_tcploss的权重值E之和可以为1。
示例性的,r_durl的权重值A可以为0.8,r_udploss的权重值B可以为0.2,r_fping的权重值C可以为0.6,r_lfile的权重值D可以为0.2,r_tcploss的权重值E可以为0.2。隧道评价阈值可以为0.7。当隧道评价值Result大于0.7时,可以认为TCP隧道应作为目标地址的隧道即隧道评价值Result满足使用所述TCP隧道的条件。
当隧道评价值Result满足使用所述TCP隧道的条件时,选择TCP隧道传输访问目标地址的数据;否则,选择UDP隧道传输访问目标地址的数据。
具体的,采集模块501还被配置为:
在分析访问日志以及探测数据前,获取VPN平均丢包率,VPN平均丢包率为VPN客户端与VPN服务端之间的网络的平均丢包率;
分析模块502具体被配置为:
当VPN平均丢包率小于或等于丢包率评价阈值时,分析访问日志以及探测数据。
具体的,VPN平均丢包率可以为VPN客户端与VPN服务端之间的网络的平均丢包率,其中,VPN客户端与VPN服务端之间隧道建立在VPN客户端与VPN服务端之间的网络上,VPN平均丢包率可以为VPN客户端与VPN服务端之间的网络的丢包率的在三个探测周期的平均值vpnpl_avg。
当vpnpl_avg大于或等于丢包率评价阈值时,说明VPN客户端与VPN服务端之间的隧道的丢包率均较高,传输质量较差,若通过VPN客户端与VPN服务端之间的可靠的隧道进行数据传输,例如使用TCP隧道进行数据传输,当数据本身为TCP数据时,容易提升数据报重新发送的几率,从而造成隧道发生二次拥塞现象,而由于UDP隧道本身为无连接的,不会出现数据报重新发送的现象,因此不会造成隧道堵塞。
因此当VPN平均丢包率大丢包率评价阈值时,可以认为直接通过VPN客户端与VPN服务端之间的传输速率较快的隧道例如UDP隧道进行数据传输。
需要说明的是,VPN平均丢包率小于或等于丢包率评价阈值,可以理解为VPN平均丢包率小于丢包率评价阈值、VPN平均丢包率等于丢包率评价阈值以及VPN平均丢包率小于或等于丢包率评价阈值。
需要说明的是,可以在分析访问日志以及探测数据前默认调度UDP隧道传输访问所述目标地址的数据,即缺省使用UDP隧道进行数据传输。
在采用集成的单元的情况下,附图6示出了上述实施例中所涉及的虚拟专用网络VPN传输隧道调度装置的一种可能的结构示意图。虚拟专用网络VPN传输隧道调度装置601包括:处理模块602和通信模块603。处理模块602用于对基站的动作进行控制管理,例如,处理模块602用于控制通信模块603支持VPN传输隧道调度装置执行图3中的过程301以及图4中的过程401-402和/或用于本文所描述的技术的其它过程,处理模块602用于支持VPN传输隧道调度装置执行图3中的过程302以及图4中的过程403-405和/或用于本文所描述的技术的其它过程。通信模块603用于支持基站与其他网络实体的通信,VPN传输隧道调度装置601还可以包括存储模块604,用于存储VPN传输隧道调度装置601的程序代码和数据。
其中,处理模块602可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块603可以是收发器、收发电路或通信接口等。存储模块604可以是存储器。
当处理模块602为处理器,通信模块603为通信接口,存储模块604为存储器时,本发明实施例所涉及的VPN传输隧道调度装置可以为附图7所示的虚拟专用网络VPN传输隧道调度装置。
参阅附图7所示,该虚拟专用网络VPN传输隧道调度装置701包括:处理器702、通信接口703、存储器704以及总线705。其中,通信接口703、处理器702以及存储器704通过总线705相互连接;总线705可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,附图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本发明公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。本发明实施例还提供一种存储介质,该存储介质可以包括存储器704,用于储存虚拟专用网络VPN传输隧道调度装置所用的计算机软件指令,其包含执行上述实施例中提供的虚拟专用网络VPN传输隧道调度方法所设计的程序代码。具体的,软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。
本发明实施例还提供一种计算机程序,该计算机程序可直接加载到存储器704中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述实施例所提供的虚拟专用网络VPN传输隧道调度方法。
本发明实施例还提供一种虚拟专用网络VPN客户端服务器,该VPN客户端服务器包括上述实施例提供的虚拟专用网络VPN传输隧道调度装置701。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。