本发明涉及通信技术领域,尤其涉及一种基于多链路的数据转发方法、装置及终端设备。
背景技术:
mesh组网的路由设备之间以回传链路(backhaul)的形式相互连接,两个mesh设备之间可以有多条回传链路。在多条回传链路同时存在时,如果某条链路过载,而其他链路空闲,会造成对链路带宽资源的浪费,因此,为了充分利用多条链路的带宽资源,需要一种方法来决定流量在多条回传链路上的分配策略,并控制流量按分配策略转发。
技术实现要素:
本发明实施例提供一种基于多链路的数据转发方法、装置及终端设备,能够将流量从过载链路调整至空闲链路进行转发,达到链路负载均衡的效果,并且,还能按照链路优先级,优先将流量分配至高优先级链路进行转发,有助于提升网络性能和提高网络应用体验。
本发明一实施例提供一种基于多链路的数据转发方法,包括:
确定本设备与另一设备间已建立连接的多条链路的负载状态;
获取预先配置的所述多条链路的优先级;
基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;
基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;
将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发。
作为上述方案的改进,所述确定本设备与另一设备间已建立连接的多条链路的负载状态,具体包括:
获取本设备与另一设备间已建立连接的多条链路的带宽占用率;
比较所述多条链路的带宽占用率与预设带宽占用率阈值之间的大小关系;
根据所述大小关系,判定所有带宽占用率小于或等于所述预设带宽占用率阈值的链路的负载状态为空闲状态;
根据所述大小关系,判定所有带宽占用率大于所述预设带宽占用率阈值的链路的负载状态为过载状态。
作为上述方案的改进,当某一链路为有线链路时,所述本设备具体通过以下方式获取所述有线链路的带宽占用率:
获取所述有线链路上的所有流量的吞吐量;
计算所述所有流量的吞吐量之和;
获取所述有线链路的总带宽;
计算所述吞吐量之和与所述总带宽的比值,得到所述有线链路的带宽占用率。
作为上述方案的改进,所述方法还包括:
确定所述多条链路所属的链路类型;其中,所述链路类型包括有线链路、5g链路和2g链路;
基于预设的链路类型与链路优先级之间的对应关系,根据所述多条链路所属的链路类型,配置所述多条链路的优先级;
其中,所述链路类型与链路优先级之间的对应关系具体为有线链路与第一优先级相对应、5g链路与第二优先级相对应以及2g链路与第三优先级相对应,所述第一优先级大于所述第二优先级,所述第二优先级大于所述第三优先级。
作为上述方案的改进,所述基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路,具体包括:
基于所述多条链路的负载状态,确定所述多条链路中的处于空闲状态的若干条候选链路;
基于所述若干条候选链路的优先级,从所述若干条候选链路中选取一条优先级最高的链路作为最优链路。
作为上述方案的改进,所述将所述第一链路集合和第二链路集合中的链路上的流量调整为由所述最优链路进行转发,具体包括:
按照链路的优先级从低到高的顺序,依次将所述第一链路集合中的各链路上的流量按照预设的流量调整策略调整为由所述最优链路进行转发;
按照链路的优先级从高到低的顺序,依次将所述第二链路集合中的各链路上的流量按照所述流量调整策略调整为由所述最优链路进行转发。
作为上述方案的改进,所述流量调整策略具体包括:
计算所述最优链路的空闲带宽;
确定所述当前调整的链路上的各流量的吞吐量;
根据所述最优链路的空闲带宽和所述当前调整的链路上的各流量的吞吐量,判断所述当前调整的链路上是否存在吞吐量不大于所述最优链路的空闲带宽的若干待调整流量,并判断已调整流量的数量是否小于预设的配置数量,若均是,则执行下一步骤,否则,则结束所述当前调整的链路的流量调整过程;其中,所述已调整流量的数量的初始值为0,所述配置数量大于或等于1;
判断所述当前调整的链路属于所述第一链路集合和所述第二链路集合中的哪一集合;
当判断到所述当前调整的链路属于所述第一链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最大的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最大的流量作为当前调整流量;
当判断到所述当前调整的链路属于所述第二链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最小的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最小的流量作为当前调整流量;
将所述当前调整流量调整为由所述最优链路进行转发,将所述已调整流量的数量增加1,并返回至所述计算所述最优链路的空闲带宽的步骤。
作为上述方案的改进,所述本设备具体通过以下方式将流量转发至所述另一设备:
确定需转发至所述另一设备的待转发流量的类型;
若所述待转发流量为tcp/udp非分片报文,则将所述待转发流量的报文五元组作为所述待转发流量的匹配项信息;
若所述待转发流量为非tcp/udp协议报文或tcp/udp分片报文,则将所述待转发流量的mac地址作为所述待转发流量的匹配项信息;
根据所述待转发流量的匹配项信息,在预先配置的转发表中查找所述待转发流量对应的转发条目;其中,所述转发表用于记录所述多条链路中的流量的转发条目,所述转发条目至少包括匹配项信息和用于指示传输该流量的链路的发包网络接口;
当查找到所述待转发流量对应的转发条目时,基于所述待转发流量对应的转发条目进行所述待转发流量的转发;
当查找不到所述待转发流量对应的转发条目时,根据所述待转发流量的匹配项信息和参数信息,在所述转发表中建立所述待转发流量对应的转发条目,并基于所述待转发流量对应的转发条目进行所述待转发流量的转发;其中,所述参数信息至少包括发包网络接口。
本发明另一实施例提供了一种基于多链路的数据转发装置,包括:
负载状态确定模块,用于确定本设备与另一设备间已建立连接的多条链路的负载状态;
优先级获取模块,用于获取预先配置的所述多条链路的优先级;
最优链路确定模块,用于基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;
调整链路选取模块,用于基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;
流量调整模块,用于将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发。
本发明另一实施例还提供了一种终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的基于多链路的数据转发方法。
与现有技术相比,本发明实施例提供的基于多链路的数据转发方法、装置及终端设备,通过基于本设备与另一设备间已建立连接的多条链路的负载状态和优先级,来确定所述多条链路中的最优链路,并从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合,然后将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发,从而实现基于多链路的数据转发。基于上述分析可知,本发明实施例能够将流量从过载链路调整至空闲链路进行转发,达到链路负载均衡的效果,并且,还能按照链路优先级,优先将流量分配至高优先级链路进行转发,有助于提升网络性能和提高网络应用体验。
附图说明
图1是本发明一实施例提供的一种基于多链路的数据转发方法的流程示意图;
图2是本发明另一实施例提供的一种基于多链路的数据转发方法的流程示意图;
图3是本发明一实施例提供的一种基于多链路的数据转发装置的结构示意图;
图4是本发明一实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明一实施例提供的一种基于多链路的数据转发方法的流程示意图。
本发明实施例提供的基于多链路的数据转发方法,包括:
s11、确定本设备与另一设备间已建立连接的多条链路的负载状态。
其中,所述负载状态包括空闲状态和过载状态。
具体地,所述步骤s11具体包括:
s111、获取本设备与另一设备间已建立连接的多条链路的带宽占用率。
示例性地,对于无线backhaul,带宽占用率等于信道占用率,而对于有线backhaul,带宽占用率等于链路上所有流量的吞吐量之和与总带宽之比。
具体地,当某一链路为有线链路时,所述本设备具体通过以下方式获取所述有线链路的带宽占用率:
s1111、获取所述有线链路上的所有流量的吞吐量;
s1112、计算所述所有流量的吞吐量之和;
s1113、获取所述有线链路的总带宽;
s1114、计算所述吞吐之和与所述总带宽的比值,得到所述有线链路的带宽占用率。
s112、比较所述多条链路的带宽占用率与预设带宽占用率阈值之间的大小关系。
需要说明的是,在具体实施时,所述预设带宽占用率阈值可以是根据实际需要进行设定,在此不做限制。
s113、根据所述大小关系,判定所有带宽占用率小于或等于所述预设带宽占用率阈值的链路的负载状态为空闲状态。
其中,对每条backhaul,若其带宽占用率未超过预设带宽占用率阈值,则可以判断其为空闲状态。
s114、根据所述大小关系,判定所有带宽占用率大于所述预设带宽占用率阈值的链路的负载状态为过载状态。
其中,对每条backhaul,若其带宽占用率超过预设带宽占用率阈值,则可以判断其为过载状态。
在本实施例中,通过获取第一设备与第二设备间已建立连接的多条链路的带宽占用率与预设带宽占用率阈值进行比对,能够准确地判定多条链路的负载状态。
s12、获取预先配置的所述多条链路的优先级。
需要说明的是,所述多条链路的优先级可以是由mesh设备自行设置。
s13、基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路。
示例性地,具体可以是基于多条链路的负载状态和优先级,从多条链路中选取出一条通信质量最好的链路,以作为最优链路。
优选地,所述步骤s13具体包括:
s131、基于所述多条链路的负载状态,确定所述多条链路中的处于空闲状态的若干条候选链路。
s132、基于所述若干条候选链路的优先级,从所述若干条候选链路中选取一条优先级最高的链路作为最优链路。
在本实施例中,寻找一条优先级最高的未过载链路作为最优链路,能够保证最优链路后续可以容纳足够多的调整流量,并且保证流量的转发效率。
s14、基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合。
其中,在确定了最优链路后,基于多条链路的负载状态和优先级,从多条链路中寻找所有优先级低于最优链路的若干条链路作为第一链路集合,以及所有优先级不低于目标链路的过载链路作为第二链路集合,以供后续进行流量调整。
s15、将所述第一链路集合和所述第二链路集合中的链路的流量调整为由所述最优链路进行转发。
其中,将第一链路集合和第二链路集合中的链路的流量调整为由最优链路进行转发,从而实现将过载链路的流量向空闲链路进行调整,并且,将流量向更高优先级的空闲链路调整。
示例性地,对于某个流量来说,具体可以是将转发表中的该流量对应的转发条目的发包网络接口修改为最优链路,从而实现将该流量调整为由最优链路进行转发。
需要说明的是,本发明实施例可以应用于各种基于多链路的数据传输场合,尤其适用于mesh组网的路由设备之间的数据传输。
本发明实施例提供的基于多链路的数据转发方法,通过基于本设备与另一设备间已建立连接的多条链路的负载状态和优先级,来确定所述多条链路中的最优链路,并从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合,然后将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发,从而实现基于多链路的数据转发。基于上述分析可知,本发明实施例能够将流量从过载链路调整至空闲链路进行转发,达到链路负载均衡的效果,并且,还能按照链路优先级,优先将流量分配至高优先级链路进行转发,有助于提升网络性能和提高网络应用体验。
在具体实施时,本发明实施例提供的基于多链路的数据转发方法可以是由定时器和拓扑变化事件触发。
作为其中一个可选的实施例,参见图2,所述方法还包括:
s21、确定所述多条链路所属的链路类型;其中,所述链路类型包括有线链路、5g链路和2g链路。
s22、基于预设的链路类型与链路优先级之间的对应关系,根据所述多条链路所属的链路类型,配置所述多条链路的优先级;
其中,所述链路类型与链路优先级之间的对应关系具体为有线链路与第一优先级相对应、5g链路与第二优先级相对应以及2g链路与第三优先级相对应,所述第一优先级大于所述第二优先级,所述第二优先级大于所述第三优先级。
在本实施例中,通过根据预设的链路类型与链路优先级之间的对应关系和所确定的多条链路所属的链路类型,来配置多条链路的优先级,能够使得链路的优先级能够更好地反映出该链路的传输质量,从而保证流量调整的效果。
作为其中一个可选的实施例,参见图2,所述步骤s15具体包括:
s151、按照链路的优先级从低到高的顺序,依次将所述第一链路集合中的各链路上的流量按照预设的流量调整策略调整为由所述最优链路进行转发;
s152、按照链路的优先级从高到低的顺序,依次将所述第二链路集合中的各链路上的流量按照所述流量调整策略调整为由所述最优链路进行转发。
需要说明的是,步骤s151和步骤152的执行次序在此不做限定,例如,步骤s151可以是在步骤s152之前执行,也可以是在步骤s152之后执行,还可以是与步骤s152同步执行,均不影响本发明可取得的有益效果。
在本实施例中,由于第二链路集合中的链路的优先级均低于最优链路,此时应是将第二链路集合中的链路上的流量调整向质量更好的链路,既然是将流量向质量更好的链路调整,那么在第二链路集合中质量最好的链路就应该有优先调整的权利,因此,对于优先级低于最优链路的若干条链路,是按优先级从高到低的顺序依次根据预设的流量调整策略向最优链路调整流量。而对于优先级高于目标链路的若干条链路,由于是向质量更差的链路调整流量,那么第一链路集合中质量最好的链路应是最后调整,因此是按优先级从低到高的顺序依次根据预设的流量调整策略向最优链路调整流量。
进一步地,所述流量调整策略具体包括:
s31、计算所述最优链路的空闲带宽;
s32、确定所述当前调整的链路上的各流量的吞吐量;
s33、根据所述最优链路的空闲带宽和所述当前调整的链路上的各流量的吞吐量,判断所述当前调整的链路上是否存在吞吐量不大于所述最优链路的空闲带宽的若干待调整流量,并判断已调整流量的数量是否小于预设的配置数量,若均是,则执行步骤s34,否则,则结束所述当前调整的链路的流量调整过程;其中,所述已调整流量的数量的初始值为0,所述配置数量大于或等于1;
s34、判断所述当前调整的链路属于所述第一链路集合和所述第二链路集合中的哪一集合,若所述当前调整的链路属于所述第一链路集合,则执行步骤s35,若所述当前调整的链路属于所述第二链路集合,则执行步骤s36;
s35、当判断到所述当前调整的链路属于所述第一链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取在类型为tcp/udp非分片报文的若干流量中吞吐量最大的流量作为当前调整流量,并执行步骤s37,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最大的流量作为当前调整流量,并执行步骤s37;
s36、当判断到所述当前调整的链路属于所述第二链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取在类型为tcp/udp非分片报文的若干流量中吞吐量最小的流量作为当前调整流量,并执行步骤s37,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最小的流量作为当前调整流量,并执行步骤s37;
s37、将所述当前调整流量调整为由所述最优链路进行转发,将所述已调整流量的数量增加1,并返回至步骤s31。
示例性地,在具体实施时,本设备在每个流量对应报文收包时,可以是对报文的字节数大小进行统计并进行记录,那么,步骤s32具体可以是通过直接读取本设备中所记录的各流量的报文字节数大小,以确定所述当前调整的链路上的各流量的吞吐量。此外,还可以是对当前调整的链路上的流量进行遍历,从而得到当前调整的链路上的各流量的吞吐量,在此不做限定。
需要说明的是,配置数量用于指示每次流量调整过程中,可调整至最优链路转发的流量的个数。
示例性地,所述最优链路的空闲带宽的计算方法具体包括:
获取所述最优链路的协商速率和带宽占用率;
根据所述最优链路的协商速率、带宽占用率和预设的折算因子,计算所述所述最优链路的空闲带宽;其中,所述最优链路的空闲带宽等于协商速率、带宽占用率和折算因子三者的乘积。
其中,所述折算因子为可配常量。
在本实施例中,从当前调整的链路上遍历吞吐量不高于最优链路的空闲带宽的所有流量,调整流量时先调整按五元组分类的流量,完成调整后如果最优链路还有空闲带宽,再调整按mac地址分类的流量,并且,对于优先级低于最优链路的链路,优先调整吞吐量较小的流量,而对于优先级不低于最优链路的链路,优先调整吞吐量较大的流量,调整后,重新最优链路的空闲带宽,再次决策待调整流量,直到最优链路不能容纳任何流量,能够提高负载均衡的效率,并且,避免最优链路过载。
作为其中一个可选的实施例,所述本设备具体通过以下方式将流量转发至所述另一设备:
s371、确定需转发至所述另一设备的待转发流量的类型;其中,所述类型包括tcp/udp非分片报文、非tcp/udp协议报文和tcp/udp分片报文;
s372、若所述待转发流量为tcp/udp非分片报文,则将所述待转发流量的报文五元组作为所述待转发流量的匹配项信息;
s373、若所述待转发流量为非tcp/udp协议报文或tcp/udp分片报文,则将所述待转发流量的mac地址作为所述待转发流量的匹配项信息;
s374、根据所述待转发流量的匹配项信息,在预先配置的转发表中查找所述待转发流量对应的转发条目;其中,所述转发表用于记录所述多条链路中的流量的转发条目,所述转发条目至少包括匹配项信息和用于指示传输该流量的链路的发包网络接口;
s375、当查找到所述待转发流量对应的转发条目时,基于所述待转发流量对应的转发条目进行所述待转发流量的转发;
s376、当查找不到所述待转发流量对应的转发条目时,根据所述待转发流量的匹配项信息和参数信息,在所述转发表中建立所述待转发流量对应的转发条目,并基于所述待转发流量对应的转发条目进行所述待转发流量的转发;其中,所述参数信息至少包括发包网络接口。
在本实施例中,通过基于五元组和基于mac地址的转发表提供转发表条目配置接口,在流量调整决策变化时,通过配置接口修改变化流量的发包网络接口,那么,在需要转发流量时,将当前待转发流量发送至对应的转发条目中的发包网络接口,以将当前待转发流量从分配的链路转发至另一设备,从而管理和控制各类流量的转发方向,替代网桥原有转发控制,从而使得转发方向可受应用层控制。
在一个具体的实施方式中,所述转发条目还包括收包网络接口和用于指示该流量的吞吐量的流量统计信息。
则,所述步骤s375具体可以为:当查找到所述待转发流量对应的转发条目时,分别根据所述待转发流量的收包网络接口和吞吐量,对所述待转发流量对应的转发条目中的收包网络接口和流量统计信息进行更新,并将所述待转发流量发送至所述待转发流量对应的转发条目中记录的发包网络接口。
则,所述步骤s376中的所述参数信息具体还可以包括收包网络接口和吞吐量,所述步骤s376具体可以为:当查找不到所述待转发流量对应的转发条目时,根据所述待转发流量的匹配项信息和参数信息,在所述转发表中建立所述待转发流量对应的转发条目,并将所述待转发流量发送至所述待接收流量对应的转发条目中记录的发包网络接口。
需要说明的是,当查找到待转发流量对应的转发条目时,比较待转发流量的收包网络接口与转发条目上记录是否一致,若不一致,说明出现了流量调整或站点漫游等情况,此时更新条目记录的收包网络接口,从而保证数据转发的准确性,并且,将待转发流量的吞吐量记录在流量统计信息中,以供后续用于流量调整。
具体地,每个待转发流量的吞吐量是在收包时根据报文字节数大小进行统计的。
示例性地,对于包含tcp/udp分片报文的流量,在可配置时间t内,禁止该流量中的所有报文按五元组匹配转发表条目。
相应地,本发明实施例还提供了一种基于多链路的数据转发装置,能够实施上述基于多链路的数据转发方法的所有流程。
参见图3,是本发明一实施例提供的一种基于多链路的数据转发装置的结构示意图。
本发明实施例提供一种基于多链路的数据转发装置,包括:
负载状态确定模块201,用于确定本设备与另一设备间已建立连接的多条链路的负载状态;
优先级获取模块202,用于获取预先配置的所述多条链路的优先级;
最优链路确定模块203,用于基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;
调整链路选取模块204,用于基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;
流量调整模块205,用于将所述第一链路集合和所述第二链路集合中的链路的流量调整为由所述最优链路进行转发。
本发明实施例提供的基于多链路的数据转发装置,通过基于本设备与另一设备间已建立连接的多条链路的负载状态和优先级,来确定所述多条链路中的最优链路,并从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合,然后将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发,从而实现基于多链路的数据转发。基于上述分析可知,本发明实施例能够将流量从过载链路调整至空闲链路进行转发,达到链路负载均衡的效果,并且,还能按照链路优先级,优先将流量分配至高优先级链路进行转发,有助于提升网络性能和提高网络应用体验。
作为其中一个可选的实施方式,所述负载状态确定模块具体用于:
获取本设备与另一设备间已建立连接的多条链路的带宽占用率;
比较所述多条链路的带宽占用率与预设带宽占用率阈值之间的大小关系;
根据所述大小关系,判定所有带宽占用率小于或等于所述预设带宽占用率阈值的链路的负载状态为空闲状态;
根据所述大小关系,判定所有带宽占用率大于所述预设带宽占用率阈值的链路的负载状态为过载状态。
进一步地,当某一链路为有线链路时,所述本设备具体通过以下方式获取所述有线链路的带宽占用率:
获取所述有线链路上的所有流量的吞吐量;
计算所述所有流量的吞吐量之和;
获取所述有线链路的总带宽;
计算所述吞吐量之和与所述总带宽的比值,得到所述有线链路的带宽占用率。
作为其中一个可选的实施方式,所述装置还包括优先级配置模块,所述优先级配置模块具体用于:
确定所述多条链路所属的链路类型;其中,所述链路类型包括有线链路、5g链路和2g链路;
基于预设的链路类型与链路优先级之间的对应关系,根据所述多条链路所属的链路类型,配置所述多条链路的优先级;
其中,所述链路类型与链路优先级之间的对应关系具体为有线链路与第一优先级相对应、5g链路与第二优先级相对应以及2g链路与第三优先级相对应,所述第一优先级大于所述第二优先级,所述第二优先级大于所述第三优先级。
作为其中一个可选的实施方式,所述最优链路确定模块具体用于:
基于所述多条链路的负载状态,确定所述多条链路中的处于空闲状态的若干条候选链路;
基于所述若干条候选链路的优先级,从所述若干条候选链路中选取一条优先级最高的链路作为最优链路。
作为其中一个可选的实施方式,所述流量调整模块具体用于:
按照链路的优先级从低到高的顺序,依次将所述第一链路集合中的各链路上的流量按照预设的流量调整策略调整为由所述最优链路进行转发;
按照链路的优先级从高到低的顺序,依次将所述第二链路集合中的各链路上的流量按照所述流量调整策略调整为由所述最优链路进行转发。
进一步地,所述流量调整策略具体包括:
计算所述最优链路的空闲带宽;
确定所述当前调整的链路上的各流量的吞吐量;
根据所述最优链路的空闲带宽和所述当前调整的链路上的各流量的吞吐量,判断所述当前调整的链路上是否存在吞吐量不大于所述最优链路的空闲带宽的若干待调整流量,并判断已调整流量的数量是否小于预设的配置数量,若均是,则执行下一步骤,否则,则结束所述当前调整的链路的流量调整过程;其中,所述已调整流量的数量的初始值为0,所述配置数量大于或等于1;
判断所述当前调整的链路属于所述第一链路集合和所述第二链路集合中的哪一集合;
当判断到所述当前调整的链路属于所述第一链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最大的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最大的流量作为当前调整流量;
当判断到所述当前调整的链路属于所述第二链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最小的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最小的流量作为当前调整流量;
将所述当前调整流量调整为由所述最优链路进行转发,将所述已调整流量的数量增加1,并返回至所述计算所述最优链路的空闲带宽的步骤。
更进一步地,所述本设备具体通过以下方式将流量转发至所述另一设备:
确定需转发至所述另一设备的待转发流量的类型;
若所述待转发流量为tcp/udp非分片报文,则将所述待转发流量的报文五元组作为所述待转发流量的匹配项信息;
若所述待转发流量为非tcp/udp协议报文或tcp/udp分片报文,则将所述待转发流量的mac地址作为所述待转发流量的匹配项信息;
根据所述待转发流量的匹配项信息,在预先配置的转发表中查找所述待转发流量对应的转发条目;其中,所述转发表用于记录所述多条链路中的流量的转发条目,所述转发条目至少包括匹配项信息和用于指示传输该流量的链路的发包网络接口;
当查找到所述待转发流量对应的转发条目时,基于所述待转发流量对应的转发条目进行所述待转发流量的转发;
当查找不到所述待转发流量对应的转发条目时,根据所述待转发流量的匹配项信息和参数信息,在所述转发表中建立所述待转发流量对应的转发条目,并基于所述待转发流量对应的转发条目进行所述待转发流量的转发;其中,所述参数信息至少包括发包网络接口。
参见图4,是本发明一实施例提供的终端设备的示意图。
本发明实施例提供的一种终端设备,包括处理器301、存储器302以及存储在所述存储器302中且被配置为由所述处理器301执行的计算机程序,所述处理器301执行所述计算机程序时实现如上任一实施例所述的基于多链路的数据转发方法。
所述处理器301执行所述计算机程序时实现上述基于多链路的数据转发方法实施例中的步骤,例如图1所示的基于多链路的数据转发方法的所有步骤。或者,所述处理器301执行所述计算机程序时实现上述基于多链路的数据转发装置实施例中各模块/单元的功能,例如图3所示的基于多链路的数据转发装置的各模块的功能。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器302中,并由所述处理器301执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述终端设备中的执行过程。例如,所述计算机程序可以被分割成负载状态确定模块、优先级获取模块、最优链路确定模块、调整链路选取模块和流量调整模块,各模块具体功能如下:负载状态确定模块,用于确定本设备与另一设备间已建立连接的多条链路的负载状态;优先级获取模块,用于获取预先配置的所述多条链路的优先级;最优链路确定模块,用于基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;调整链路选取模块,用于基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;流量调整模块,用于将所述第一链路集合和所述第二链路集合中的链路的流量调整为由所述最优链路进行转发。
所述终端设备可包括,但不仅限于,处理器301、存储器302。本领域技术人员可以理解,所述示意图仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器301可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器301是所述终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分。
所述存储器302可用于存储所述计算机程序和/或模块,所述处理器301通过运行或执行存储在所述存储器302内的计算机程序和/或模块,以及调用存储在存储器302内的数据,实现所述终端设备的各种功能。所述存储器302可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述终端设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。
需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
1.一种基于多链路的数据转发方法,其特征在于,包括:
确定本设备与另一设备间已建立连接的多条链路的负载状态;
获取预先配置的所述多条链路的优先级;
基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;
基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;
将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发。
2.如权利要求1所述的基于多链路的数据转发方法,其特征在于,所述确定本设备与另一设备间已建立连接的多条链路的负载状态,具体包括:
获取本设备与另一设备间已建立连接的多条链路的带宽占用率;
比较所述多条链路的带宽占用率与预设带宽占用率阈值之间的大小关系;
根据所述大小关系,判定所有带宽占用率小于或等于所述预设带宽占用率阈值的链路的负载状态为空闲状态;
根据所述大小关系,判定所有带宽占用率大于所述预设带宽占用率阈值的链路的负载状态为过载状态。
3.如权利要求2所述的基于多链路的数据转发方法,其特征在于,当某一链路为有线链路时,所述本设备具体通过以下方式获取所述有线链路的带宽占用率:
获取所述有线链路上的所有流量的吞吐量;
计算所述所有流量的吞吐量之和;
获取所述有线链路的总带宽;
计算所述吞吐量之和与所述总带宽的比值,得到所述有线链路的带宽占用率。
4.如权利要求1所述的基于多链路的数据转发方法,其特征在于,所述方法还包括:
确定所述多条链路所属的链路类型;其中,所述链路类型包括有线链路、5g链路和2g链路;
基于预设的链路类型与链路优先级之间的对应关系,根据所述多条链路所属的链路类型,配置所述多条链路的优先级;
其中,所述链路类型与链路优先级之间的对应关系具体为有线链路与第一优先级相对应、5g链路与第二优先级相对应以及2g链路与第三优先级相对应,所述第一优先级大于所述第二优先级,所述第二优先级大于所述第三优先级。
5.如权利要求1所述的基于多链路的数据转发方法,其特征在于,所述基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路,具体包括:
基于所述多条链路的负载状态,确定所述多条链路中的处于空闲状态的若干条候选链路;
基于所述若干条候选链路的优先级,从所述若干条候选链路中选取一条优先级最高的链路作为最优链路。
6.如权利要求1所述的基于多链路的数据转发方法,其特征在于,所述将所述第一链路集合和第二链路集合中的链路上的流量调整为由所述最优链路进行转发,具体包括:
按照链路的优先级从低到高的顺序,依次将所述第一链路集合中的各链路上的流量按照预设的流量调整策略调整为由所述最优链路进行转发;
按照链路的优先级从高到低的顺序,依次将所述第二链路集合中的各链路上的流量按照所述流量调整策略调整为由所述最优链路进行转发。
7.如权利要求6所述的基于多链路的数据转发方法,其特征在于,所述流量调整策略具体包括:
计算所述最优链路的空闲带宽;
确定所述当前调整的链路上的各流量的吞吐量;
根据所述最优链路的空闲带宽和所述当前调整的链路上的各流量的吞吐量,判断所述当前调整的链路上是否存在吞吐量不大于所述最优链路的空闲带宽的若干待调整流量,并判断已调整流量的数量是否小于预设的配置数量,若均是,则执行下一步骤,否则,则结束所述当前调整的链路的流量调整过程;其中,所述已调整流量的数量的初始值为0,所述配置数量大于或等于1;
判断所述当前调整的链路属于所述第一链路集合和所述第二链路集合中的哪一集合;
当判断到所述当前调整的链路属于所述第一链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最大的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最大的流量作为当前调整流量;
当判断到所述当前调整的链路属于所述第二链路集合时,判断所述若干待调整流量中是否存在类型为tcp/udp非分片报文的流量,若是,则从所述若干待调整流量中选取类型为tcp/udp非分片报文的若干流量中吞吐量最小的流量作为当前调整流量,若否,则从所述若干待调整流量中选取类型为非tcp/udp报文或tcp/udp分片报文的若干流量中吞吐量最小的流量作为当前调整流量;
将所述当前调整流量调整为由所述最优链路进行转发,将所述已调整流量的数量增加1,并返回至所述计算所述最优链路的空闲带宽的步骤。
8.如权利要求1所述的基于多链路的数据转发方法,其特征在于,所述本设备具体通过以下方式将流量转发至所述另一设备:
确定需转发至所述另一设备的待转发流量的类型;
若所述待转发流量为tcp/udp非分片报文,则将所述待转发流量的报文五元组作为所述待转发流量的匹配项信息;
若所述待转发流量为非tcp/udp协议报文或tcp/udp分片报文,则将所述待转发流量的mac地址作为所述待转发流量的匹配项信息;
根据所述待转发流量的匹配项信息,在预先配置的转发表中查找所述待转发流量对应的转发条目;其中,所述转发表用于记录所述多条链路中的流量的转发条目,所述转发条目至少包括匹配项信息和用于指示传输该流量的链路的发包网络接口;
当查找到所述待转发流量对应的转发条目时,基于所述待转发流量对应的转发条目进行所述待转发流量的转发;
当查找不到所述待转发流量对应的转发条目时,根据所述待转发流量的匹配项信息和参数信息,在所述转发表中建立所述待转发流量对应的转发条目,并基于所述待转发流量对应的转发条目进行所述待转发流量的转发;其中,所述参数信息至少包括发包网络接口。
9.一种基于多链路的数据转发装置,其特征在于,包括:
负载状态确定模块,用于确定本设备与另一设备间已建立连接的多条链路的负载状态;
优先级获取模块,用于获取预先配置的所述多条链路的优先级;
最优链路确定模块,用于基于所述多条链路的负载状态和优先级,确定所述多条链路中的最优链路;
调整链路选取模块,用于基于所述多条链路的负载状态和优先级,从所述多条链路中选取出优先级不低于所述最优链路且处于过载状态的若干条链路作为第一链路集合,以及优先级低于所述最优链路的若干条链路作为第二链路集合;
流量调整模块,用于将所述第一链路集合和所述第二链路集合中的链路上的流量调整为由所述最优链路进行转发。
10.一种终端设备,其特征在于,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至8中任意一项所述的基于多链路的数据转发方法。
技术总结