发明内容
本发明主要解决的技术问题是提供一种多通道网络切换方法和系统,能够保证网络传输质量。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种多通道网络切换方法,包括:分别在两个终端中设置软件定义网络(software defined network,SDN)模块,以分别在所述两个终端内配置虚拟网卡信息,其中,所述虚拟网卡信息包括虚拟IP地址,所述两个终端内分别安装有应用软体,且所述两个终端之间设置有至少两个物理IP通信链路,而所述两个终端对应于每个所述物理IP通信链路分别具有一个对应的物理IP地址,所述两个终端内的所述应用软体调用所述两个终端的虚拟IP地址,而所述SDN模块根据每个所述终端的虚拟IP地址和每个所述物理IP通信链路所对应的物理IP地址之间的映射而构建路由信息;所述至少两个物理IP通信链路中的一个链路作为活动链路,其它链路作为备用链路;调取当前的所述活动链路而在所述两个终端之间进行通信;所述SDN模块监控所述至少两个物理IP通信链路的通信状态,以判断当前的所述活动链路的通信质量是否达到预定通信标准;当确定当前的所述活动链路的通信质量未达到所述预定通信标准时,则所述SDN模块切换至一条通信质量达到所述预定通信标准的所述备用链路,并以切换后的所述备用链路作为当前的活动链路以在所述两个终端之间进行通信。
其中,所述SDN模块监控所述至少两个物理IP通信链路的通信状态,以判断当前的所述活动链路的通信质量是否达到预定通信标准;当确定当前的所述活动链路的通信质量未达到所述预定通信标准时,则所述SDN模块切换至一条通信质量达到所述预定通信标准的所述备用链路,并以切换后的所述备用链路作为当前的活动链路以在所述两个终端之间进行通信包括:周期性发送心跳包到远端,所述远端收到所述心跳包后返回回复心跳包;根据收到的所述回复心跳包,实时统计距当前预定时间内的所述活动链路和所述备用链路的网络不良率;若当前所述活动链路的所述网络不良率大于所述预定通信标准,则进一步判断所述备用链路的所述网络不良率是否小于所述预定通信标准,若是则将所述备用链路切换为当前的活动链路以在所述两个终端之间进行通信。
其中,所述网络不良率为占第一权重的网络延迟率和占第二权重的丢包率之和,所述第一权重与所述第二权重之和为1。
其中,当确定当前的所述活动链路的通信质量未达到所述预定通信标准时,则所述SDN模块切换至一条通信质量达到所述预定通信标准的所述备用链路,并以切换后的所述备用链路作为当前的活动链路以在所述两个终端之间进行通信,进一步包括:在切换后,以切换后的当前的活动链路在所述两个终端之间发送和接收数据,且切换前的当前的活动链路继续在所述两个终端之间接收数据,以避免丢包现象的发生。
其中,所述在切换后,以切换后的当前的活动链路在所述两个终端之间发送数据包括:所述应用软体的待发送数据进入第一协议栈,所述第一协议栈对所述待发送数据进行第一协议包封装和内层IP包封装,从而获得第一数据包,并将所述第一数据包通过当前数据发送终端的虚拟网卡发送至所述SDN模块;所述SDN模块接收所述第一数据包,读取封装后所述内层IP包首部,进行路由,发送至第二协议栈;所述第二协议栈对所述第一数据包进行第二协议包封装和外层IP包封装,从而获得第二数据包,并通过数据发送终端的物理网卡将所述第二数据包发出,进而完成数据发送。
其中,所述在切换后,以切换后的当前的活动链路在所述两个终端之间接收数据,且切换前的当前的活动链路继续在所述两个终端之间接收数据包括:所述切换后的当前活动链路或所述切换前的当前活动链路的数据接收终端的物理网卡接收所述第二数据包,并将所述第二数据包传输至所述第二协议栈,所述第二协议栈对所述第二数据包的所述外层IP包和所述第二协议包进行解封,进而得到所述第一数据包;所述SDN模块读取所述第一数据包的所述内层IP包首部,并将所述第一数据包通过所述数据接收终端的虚拟网卡传输至所述第一协议栈,所述第一协议栈对所述第一数据包的所述内层IP包和所述协议包进行解封,所述应用软体进行数据读取。
为解决上述技术问题,本发明采用的另一个技术方案是:提供提供一种多通道网络切换系统,所述切换系统包括应用软体和SDN模块,所述SDN模块包括:数据传输子模块,用于建立至少两个物理IP通信链路,且所述至少两个物理IP通信链路中的一个链路作为活动链路,其它链路作为备用链路,所述活动链路为正常通信链路;路由管理子模块,用于配置虚拟网卡信息,其中,所述虚拟网卡信息包括虚拟IP地址;根据每个虚拟IP地址和每个所述物理IP通信链路所对应的物理IP地址之间的映射而构建路由信息;监控子模块,用于根据监控和判断当前所述活动链路的通信质量是否达到预定的通信标准;切换子模块,用于当确定当前所述活动链路的通信质量未达到预定通信标准的时候,从当前的活动链路切换至一条通信质量达到所述预定通信标准的所述备用链路,并以切换后的所述备用链路作为当前的活动链路;
所述应用软体通过路由管理子模块调用所述虚拟IP地址进行通信。
其中,所述监控子模块包括发送单元、判断单元,所述发送单元周期性发送心跳包到远端,所述远端收到所述心跳包后发回回复心跳包;所述判断单元根据收到的所述回复心跳包,实时统计距当前预定时间内的所述活动链路和所述备用链路的所述网络不良率;若当前所述活动链路的所述网络不良率大于所述预定通信标准,且当前所述备用链路的所述网络不良率小于所述预定通信标准,则发送第一信号至所述切换子模块;所述切换子模块接收所述第一信号,进而切换至一条通信质量达到所述预定通信标准的所述备用链路,并以切换后的所述备用链路作为当前的活动链路。
其中,所述监控子模块进一步包括计算单元,所述计算单元用于计算所述网络不良率,所述网络不良率的计算方法为占第一权重的网络延迟率和占第二权重的丢包率之和,所述第一权重与所述第二权重之和为1。
其中,所述数据传输子模块进一步用于建立与所述应用软体的通信通道,建立与所述远端的通信通道。
本发明的有益效果是:区别于现有技术的情况,一方面,本发明通过分别在两个终端中设置的SDN模块来配置两个终端内虚拟网卡信息,SDN模块监听两个终端之间至少两个物理IP通信链路的通信状态,切换以使正常通信的活动链路匹配到通信状态最佳的链路上,从而保证了网络通信质量;而终端内的应用软体通过调用虚拟网卡的虚拟IP地址以实现在网络中的通信,无需知道其使用的具体物理IP通信链路,从而保证了应用软体的网络通信质量。
另一方面,活动链路一直处于发送和接收数据的状态,备用链路一直处于接收数据的状态,当当前活动链路由于通信质量不佳而被切换为备用链路时,数据接收终端可以一直接收未被及时传输到的数据,从而降低数据传输的丢包率。
具体实施方式
请参阅图1.图1为本发明多通道网络切换方法的一实施方式的流程示意图,包括:
S101:分别在两个终端中设置软件定义网络(software defined network,SDN)模块,以分别在两个终端内配置虚拟网卡信息,其中,虚拟网卡信息包括虚拟IP地址,两个终端内分别安装有应用软体,且两个终端之间设置有至少两个物理IP通信链路,而两个终端对应于每个物理IP通信链路分别具有一个对应的物理IP地址,两个终端内的应用软体调用两个终端的虚拟IP地址,而SDN模块根据每个终端的虚拟IP地址和每个物理IP通信链路所对应的物理IP地址之间的映射而构建路由信息;至少两个物理IP通信链路中的一个链路作为活动链路,其它链路作为备用链路;
具体地,两个终端之间设置至少两条通信链路的实现方式为,在终端上分别安装至少两个物理网卡,物理网卡分别接入电信、联通或移动等其他网络接入商,并设置其对应的物理IP地址;同时在两个终端上添加物理IP地址路由表来实现通信链路设置。
在两个终端中分别设置SDN模块,SDN模块在其对应的终端内初始化虚拟网卡,并配置虚拟网卡的信息,包括虚拟IP地址、最大传输单元(MTU)等;SDN模块构建虚拟IP地址和物理IP地址的映射,创建路由信息,该路由信息可对外查询和及时更新;SDN模块建立与远端的通信通道,在一个应用场景中,该通信通道为UDP(user datagram protocol,用户数据报协议)通道,在其他应用场景中,可以为基于其他协议的通道;SDN模块通过文件接口,建立与本终端虚拟网卡的通信通道。
本实施例中应用软体直接调用SDN模块的虚拟IP地址通信,而不需要知道SDN模块具体链接的是哪条物理IP通信链路。
S102:调取当前的活动链路而在两个终端之间进行通信;
具体地,当前的活动链路在两个终端之间发送和接收数据,而当前其余备用链路在两个终端之间接收数据。
请结合图2,图2(a)为本发明活动链路发送数据的流程示意图,图2(b)为待发送数据封装示意图。活动链路发送数据过程为:应用软体的待发送数据进入第一协议栈201,第一协议栈201对待发送数据进行第一协议包封装和内层IP包封装,从而获得第一数据包,并将第一数据包通过当前数据发送终端的虚拟网卡202发送至SDN模块203;在一个应用场景中,第一协议栈201对待发送数据进行TCP协议封装,在其他应用场景中,还可为UDP、ICMP等协议封装;SDN模块203接收第一数据包后,读取内层IP包首部信息,进行路由,发送至第二协议栈204;第二协议栈204对第一数据包进行第二协议包封装和外层IP包封装,从而获得第二数据包,并通过数据发送终端的物理网卡将第二数据包发出,进而完成数据发送,第二数据包通过外层IP包首部在互联网传输,并根据路由信息到达指定接收终端;在一个应用场景中,第二协议包封装为基于UDP协议封装,在其他应用场景中,可以基于其他协议。
请结合图3,图3(a)为本发明活动链路或备用链路接收数据的流程示意图,图3(b)为待接收数据解封示意图。活动链路或备用链路接收数据的方法包括:活动链路或备用链路的数据接收端物理网卡205通过第二数据包的外层IP包首部接收第二数据包,并将第二数据包传输至第二协议栈204;第二协议栈204对第二数据包的外层IP包和第二协议包进行解封,进而得到第一数据包;SDN模块203读取第一数据包的内层IP包首部,并将第一数据包通过数据接收终端的虚拟网卡202传输至第一协议栈201,第一协议栈201对第一数据包的内层IP包和协议包进行解封,进而完成数据接收。
在上述两个应用场景中,第一协议栈201和第二协议栈204可以为同一个,也可以为不同的两个。
S103:SDN模块监控至少两个物理IP通信链路的通信状态,以判断当前的活动链路的通信质量是否达到预定通信标准;
周期性发送心跳包到远端,远端收到心跳包后发回回复心跳包;根据收到的回复心跳包,实时统计距当前预定时间内的活动链路和备用链路的网络不良率,网络不良率为占第一权重的网络延迟率和占第二权重的丢包率之和,第一权重与第二权重之和为1。
在一个应用场景中,每间隔1ms发送心跳包到远端服务器,远端服务器收到心跳包后发回回复心跳包;SDN模块根据收到的回复心跳包,实时统计距当前过去5min内的活动链路和备用链路的网络不良率。经统计得出,当前活动链路的网络延迟率为80%,丢包率为90%,当前某一条备用链路的网络延迟率为30%,丢包率为20%;另外本应用场景中,第一权重为30%,第二权重为70%,计算得出当前活动链路的网络不良率=30%*80%+90%*30%=0.51,当前某一条备用链路的网络不良率=30%*30%+20%*70%=0.23;在其他应用场景中,周期性发送心跳包的周期和实时统计的预定时间均可自行设定,计算网络不良率的方法也可根据实际情况进行更改,其余备用链路的网络不良率未具体给出,其计算方式类似。
S104:当确定当前的活动链路的通信质量未达到预定通信标准时,则SDN模块切换至一条通信质量达到预定通信标准的备用链路,并以切换后的备用链路作为当前的活动链路以在两个终端之间进行通信;
具体地,若当前活动链路的网络不良率大于预定通信标准,且当前备用链路的网络不良率小于预定通信标准,则将一条备用链路切换为当前的活动链路以在两个终端之间进行通信。在上述应用场景中,当前活动链路的网络不良率为0.51,当前某一条备用链路的网络不良率为0.23,而预定通信标准为0.3,此时SDN模块将上述某一条备用链路切换为活动链路,而当前的活动链路则切换为备用链路。在其他应用场景中,预定通信标准可根据实际需求设定。另外,在某些情况下,若此时有不只一条备用链路的网络不良率小于预定通信标准,可在其中任选一条或者选择通信状态最佳的一条备用链路将其切换为活动链路。
在切换后,以切换后的当前的活动链路在两个终端之间发送和接收数据,且切换前的当前的活动链路继续在两个终端之间接收数据,以避免丢包现象的发生。上述发送和接收数据的过程与上述步骤S102中相同,在此不再赘述。
本发明所提供的多通道网络切换系统包括应用软体和SDN模块,请参阅图4,图4为本发明多通道网络切换系统SDN模块一实施方式的结构示意图,SDN模块包括路由管理子模块401、数据传输子模块402、监控子模块403、切换子模块404。
具体地,数据传输子模块402,用于建立至少两个物理IP通信链路,且至少两个物理IP通信链路中的一个链路作为活动链路,其它链路作为备用链路,活动链路为正常通信链路;还用于建立与应用软体的通信通道,建立与远端的通信通道;
路由管理子模块401,用于配置虚拟网卡信息,其中,虚拟网卡信息包括虚拟IP地址;根据每个虚拟IP地址和每个物理IP通信链路所对应的物理IP地址之间的映射而构建路由信息;
监控子模块403,用于根据监控和判断当前活动链路的通信质量是否达到预定的通信标准;
切换子模块404,用于当确定当前活动链路的通信质量未达到预定通信标准的时候,从当前的活动链路切换至一条通信质量达到预定通信标准的备用链路,并以切换后的备用链路作为当前的活动链路;
应用软体根据路由管理子模块401调用虚拟IP地址进行通信。
在一个应用场景中,请参阅图5,图5为图4中监控子模块结构示意图,监控子模块403包括发送单元501和判断单元503,发送单元501周期性发送心跳包到远端,远端收到心跳包后发回回复心跳包;判断单元503根据收到的回复心跳包,实时统计距当前预定时间内的活动链路和备用链路的网络不良率;若当前活动链路的网络不良率大于预定通信标准,且当前备用链路的网络不良率小于预定通信标准,则发送第一信号至切换子模块404;切换子模块404接收第一信号,进而切换至一条通信质量达到预定通信标准的备用链路,并以切换后的备用链路作为当前的活动链路。请继续参阅图5,监控子模块403还包括计算单元502,计算单元502用于计算网络不良率,并将计算结果实时发送给判断单元503,网络不良率的计算方法为占第一权重的网络延迟率和占第二权重的丢包率之和,第一权重与第二权重之和为1。
综上所述,区别于现有技术的情况,一方面,本发明通过分别在两个终端中设置的SDN模块来配置两个终端内虚拟网卡信息,SDN模块监控两个终端之间至少两个物理IP通信链路的通信状态,切换以使正常通信的活动链路匹配到通信状态最佳的链路上,从而保证了网络通信质量;而终端内的应用软体通过调用虚拟网卡的虚拟IP地址以实现在网络中的通信,无需知道其使用的具体物理IP通信链路,从而保证了应用软体的网络通信质量。
另一方面,活动链路一直处于发送和接收数据的状态,备用链路一直处于接收数据的状态,当当前活动链路由于通信质量不佳而被切换为备用链路时,数据接收终端可以一直接收未被及时传输到的数据,从而降低数据传输的丢包率。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。