本发明涉及通信,尤其涉及一种流量负载均衡方法及网络设备。
背景技术:
1、随着现代高性能网络和数据中心规模的增大,包含的交换机数量和拓扑的层级越多,端到端的可选路径也越来越多样和复杂。同时数据中心的应用业务也在不断增长,网络流量的压力越来越大,不均衡的并发应用流量经过组网时,流量负载不均衡会造成拥塞,导致整体通信耗时增加,甚至丢包。因此需要对组网进行负载均衡、优化阻塞。
技术实现思路
1、本技术提供了一种流量负载均衡方法、网络设备、计算机可读介质、计算机程序产品。在端口维度,基于每个端口待传输数据量大小和当前负载流个数来进行路径选择,将流量均匀分配到各端口。在端口内队列维度,通过根据各队列输入包速率和实时队列深度自适应调整队列调度的权重,实现在端口和队列维度的流量负载均衡,减少拥塞发生,提升网络效率。
2、第一方面,本技术提供了一种流量负载均衡方法,该方法应用于网络设备,该方法包括:获取目标数据流;在网络设备中不存在与目标数据流对应的路由转发信息的情况下,根据目标数据流的类型标识、网络设备上的转发端口上的待传输数据量、转发端口所传输的数据流个数,从网络设备的转发端口中筛选出用于转发目标数据流的目标转发端口,类型标识用于标识目标数据流的大小;通过目标转发端口,转发目标数据流。
3、在本方案中,网络设备在接收到目标数据流以后,在端口维度,根据网络设备上各个转发端口预计发送的数据流大小和正在发送的数据流的个数,对接收到的不同大小的目标数据流,按照不同的逻辑筛选目标转发端口,实现了目标数据流流大小不均衡情况下的端口粒度流量负载均衡,降低端口拥塞频率,减少大型数据流完成时间。
4、在一个可能的实现方式中,通过目标转发端口,转发目标数据流,包括:根据目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新目标转发端口内各队列的调度权重;根据各队列的调度权重,对目标端口内的各个队列进行调度。
5、也就是说,在端口内队列维度,目标转发端口内的各个队列根据输入数据流的速率(按一定时间内输入的数据包数衡量)和队列深度,实时分配各队列的调度权重。解决了在多应用叠加在同一队列或应用流量并发情况下各队列流量分布不均衡的问题,可以使流量在端口队列维度负载均衡,降低队列拥塞频率,减少大流量应用完成时间。
6、在一个可能的实现方式中,目标数据流的类型标识包括:大型流、中型流、小型流中的一个;目标数据流的类型标识由目标数据流的报文携带,或者目标数据流的类型标识由网络设备根据目标数据流的大小计算得到。
7、也就是说,可以由发送目标数据流的端侧设备根据目标数据流的大小对目标数据流进行分类,此时端侧设备发送的目标数据流的报文中携带有目标数据流的类型标识。也可以是网络设备接收到目标数据流以后,由网络设备根据目标数据的大小对目标数据流进行分类。
8、在一个可能的实现方式中,目标数据流的类型标识由网络设备根据目标数据流的大小计算得到,包括:根据流量阈值对目标数据流进行分类,流量阈值包括:第一流量阈值和第二流量阈值,第一流量阈值小于第二流量阈值;若目标数据流小于第一流量阈值,确定目标数据流为小型流;若目标数据流大于第一流量阈值,且小于第二流量阈值,确定目标数据流为中型流;若目标数据流大于第二流量阈值,确定目标数据流为大型流。
9、也就是说,在对目标数据流进行分类时,可以根据预先设定的两个流量阈值对目标数据流进行分类。其中,在设定流量阈值时,可以根据当前终端设备所处的数据网络的带宽、时延等因数进行设置。
10、在一个可能的实现方式中,根据目标数据流的类型标识、网络设备上的转发端口上的待传输数据量、转发端口所传输的数据流个数,从网络设备的转发端口中筛选出用于转发目标数据流的目标转发端口,包括:根据目标数据流的类型标识,确定目标数据流的类型;在目标数据流为小型流的情况下,根据等价多路径算法确定目标转发端口;在目标数据流为中型流的情况下,将网络设备的转发端口上所传输的数据流的个数最少的端口作为目标转发端口;在目标数据流为大型流的情况下,从网络设备的转发端口选择待传输数据量最小的n个转发端口,其中n为大于等于1的自然数;从n个转发端口中选择所传输的数据流个数最少的端口作为目标转发端口。
11、也就是说,在确定目标数据流的目标转发端口时,小型流数据量太小不影响网络设备整体的负载均衡度,也不会造成队列深度升高,可以直接通过ecmp进行端口选择。中型流对网络设备整体的负载均衡度影响不大,但是多条流同时从一个转发端口转发时可能导致队列深度升高,因此在选择目标端口时需要考虑端口负载的流的个数。大型流数据量较大,会影响网络设备整体的负载均衡,因此在选择目标端口时不光需要考虑端口负载的流的个数,还需要考虑端口待发送的数据量。
12、在一个可能的实现方式中,根据目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新目标转发端口内各队列的调度权重,包括:获取第一时间段内,目标端口内各个队列接收的报文个数;以第一时间为周期,获取目标端口内各个队列的队列深度,并根据目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重。
13、也就是说,可以通过一个固定时间段内输入队列的报文的个数来衡量各个队列输入报文的速率,以及以一个固定的时间段为周期,周期性的获取各个队列的队列深度,以达到周期性的计算各个转发端口的调度权重的目的。
14、在一个可能的实现方式中,根据目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重,包括:根据各个队列接收的报文个数,确定各个队列接收的报文个数比值;根据各个队列的队列深度,确定各个队列的深度比值;将各个队列接收的报文个数比值和各个队列的深度比值求和,得到各个队列的调度权重比值。
15、也就是说,在获取到各个队列接收到的报文个数、队列深度以后,可以口将各个队列接收到的报文数的比值、以及各个队列的深度比值求和,以得到各个队列的调度权重比值。
16、第二方面,本技术提供了一种流量负载均衡方法,该方法应用于网络设备,该方法包括:根据目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新目标转发端口内各队列的调度权重;根据各队列的调度权重,对目标端口内的各个队列进行调度。
17、在一个可能的实现方式中,根据目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新目标转发端口内各队列的调度权重,包括:获取第一时间段内,目标端口内各个队列接收的报文个数;以第一时间为周期,获取目标端口内各个队列的队列深度,并根据目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重。
18、在一个可能的实现方式中,根据目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重,包括:根据各个队列接收的报文个数,确定各个队列接收的报文个数比值;根据各个队列的队列深度,确定各个队列的深度比值;将各个队列接收的报文个数比值和各个队列的深度比值求和,得到各个队列的调度权重比值。
19、第二方面的有效效果可以参照上述第一方面的描述,在此不再赘述。
20、第三方面,本技术提供了一种流量负载均衡方法,该方法应用于第一终端设备,该方法包括:获取目标数据流,目标数据流中包括至少一个报文;根据流量阈值对目标数据流进行分类,并分配类型标识;对于目标数据流中的每一个报文,在报文头中添加报文所属的目标数据流的类型标识;根据第一终端设备上维护的队列信息,为目标数据流确定一个目标队列,队列信息用于标识了网络设备上转发端口中的队列负载的数据流的个数;将目标队列的队列号,添加到目标数据流的报文中;将目标数据流发送给网络设备。
21、在本方案中,在获取到目标数据流以后,第一终端设备可以对获取的目标数据流按大小进行分类。以及第一终端设备可以根据第一终端设备维护的队列信息,为目标数据流分配目标队列。根据第一终端设备上动态维护的队列信息可以保证网络设备中的端口中的队列分配的数据流尽可能的平均。
22、在一个可能的实现方式中,根据流量阈值对目标数据流进行分类包括:流量阈值包括:第一流量阈值和第二流量阈值,第一流量阈值小于第二流量阈值;若目标数据流小于第一流量阈值,确定目标数据流为小型流;若目标数据流大于第一流量阈值,且小于第二流量阈值,确定目标数据流为中型流;若目标数据流大于第二流量阈值,确定目标数据流为大型流。
23、也就是说,在对目标数据流进行分类时,可以根据预先设定的两个流量阈值对目标数据流进行分类。其中,在设定流量阈值时,可以根据当前终端设备所处的数据网络的带宽、时延等因数进行设置。
24、在一个可能的实现方式中,根据终端设备上维护的队列信息,为目标数据流确定一个目标队列,包括:根据第一终端设备维护的队列信息,从终端设备维护的队列中选择一个负载数据流最少的队列作为目标队列;在队列信息中,将目标队列负载的数据流个数加一。
25、也就是说,第一终端设备需要在将目标队列分配给目标数据流以后,更新第一终端设备上维护的队列信息,以达到动态维护队列信息的目的。
26、在一个可能的实现方式中,该方法还包括:接收第二终端设备发送的目标数据流的最后一个报文的应答信号,第二终端设备通过网络设备接收第一终端设备发送的目标数据流;在队列信息中,将目标队列负载的数据流个数减一。
27、也就是说,第一终端设备流在接收到目标数据流的最后一个报文的应答信号以后,第一终端设备需要通过修改第一终端设备维护的队列信息,将分配给目标数流的队列回收。
28、第四方面,本技术实施例提供了一种网络设备,包括:
29、至少一个存储器,用于存储程序;
30、至少一个处理器,用于执行所述存储器存储的程序,当存储器存储的程序被执行时,处理器用于执行第一方面或第二方面的任一种可能的实现方式所描述的方法。
31、第五方面,本技术实施例提供了一种计算机存储介质,计算机存储介质中存储有指令,当指令在计算机上运行时,使得计算机执行第一方面或第二方面或者第三方面的任一种可能的实现方式所描述的方法。
32、第六方面,本技术实施例提供了一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行第一方面或二方面或者第三方面的任一种可能的实现方式所描述的方法。
1.一种流量负载均衡方法,其特征在于,所述方法应用于网络设备,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,通过所述目标转发端口,转发所述目标数据流,包括:
3.根据权利要求1所述的方法,其特征在于,所述目标数据流的类型标识包括:大型流、中型流、小型流中的一个;
4.根据权利要求3所述的方法,其特征在于,所述目标数据流的类型标识由所述网络设备根据所述目标数据流的大小计算得到,包括:
5.根据权利要求1-4任一项所述的方法,其特征在于,所述根据所述目标数据流的类型标识、所述网络设备上的转发端口上的待传输数据量、所述转发端口所传输的数据流个数,从所述网络设备的转发端口中筛选出用于转发所述目标数据流的目标转发端口,包括:
6.根据权利要求2所述的方法,其特征在于,所述根据所述目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新所述目标转发端口内各队列的调度权重,包括:
7.根据权利要求6所述的方法,其特征在于,根据所述目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重,包括:
8.一种流量负载均衡方法,其特征在于,所述方法应用于网络设备,所述方法包括:
9.根据权利要求8所述的方法,其特征在于,所述根据所述目标转发端口内各队列输入报文速率、各队列的队列深度,实时更新所述目标转发端口内各队列的调度权重,包括:
10.根据权利要求9所述的方法,其特征在于,根据所述目标队列内各个队列接收到的报文个数、队列深度,确定各个队列的调度权重,包括:
11.一种网络设备,其特征在于,包括:
12.一种计算机可读介质,所述计算机存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-7或如权利要求8-10任一所述的方法。
13.一种包含指令的计算机程序产品,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1-7或如权利要求8-10任一所述的方法。
