一种流量分配方法、装置和系统与流程

摘要: 本技术涉及通信领域,尤其涉及一种流量分配方法、装置和系统。背景技术:1、在数据中心网络的网络拓扑中,两点之间往往存在多条可达路径,为了保证多条路径上流量的负载均...
一种流量分配方法、装置和系统与流程

本技术涉及通信领域,尤其涉及一种流量分配方法、装置和系统。

背景技术:

1、在数据中心网络的网络拓扑中,两点之间往往存在多条可达路径,为了保证多条路径上流量的负载均衡,一般采用等价多路径(equal cost multiple path,ecmp)技术。ecmp是一种逐跳的、基于流的负载均衡方法,通过计算哈希值的方式,将到达同一目的交换机的不同流随机分配到不同路径,从而实现多路径负载均衡。

2、在出现哈希不均等情况下,ecmp无法充分保证负载均衡,而基于包的负载均衡方式packet spray则不受哈希随机性的影响,通过将不同报文平分给不同路径,相比ecmp实现了更好的均匀性。在通常的对称拓扑组网下,packet spray有优秀的负载均衡效果,然而在链路故障场景下,拓扑对称性被破坏,故障交换机上可用链路少于其他同层级交换机,流量涌入剩余链路,无法保证负载均衡,会产生高负载链路,高负载链路拥塞将影响网络性能。

技术实现思路

1、本技术提供了一种流量分配方法、装置和系统,对于存在链路故障的场景,可以有效避免出现高负载链路拥塞的问题,有利于实现负载均衡。

2、第一方面,本技术提供了一种流量分配方法,该流量分配方法应用于多层网络系统。在多层网络系统中,位于第n层的任意2个通信装置之间传输的流量通过位于第n+1层的至少1个通信装置转发,n为正整数。其中,第一通信装置、第二通信装置和第三通信装置位于多层网络系统的第n层。该方法应用于位于第n层的第一通信装置,具体地,在第二通信装置通过第n+1层向第三通信装置发送报文的路径中,第二通信装置与位于第n+1层的通信装置之间的链路发生故障,第二通信装置可以将第一故障链路通告给位于第n+1层的其他通信装置,并转发至第一通信装置。也就是说,第一通信装置接收用于指示第一故障链路的第一通告信息,进而,第一通信装置根据第一通告信息确定向第三通信装置发送报文的多条链路的流量。

3、示例性的,第一通信装置可以是如图3、图8或图9中所示的tor交换机3,第二通信装置可以是如图3、图8或图9中所示的tor交换机1,第三通信装置可以是如图3、图8或图9中所示的tor交换机2。

4、可以看出,在第二通信装置通过第n+1层向第三通信装置发送报文的路径中,第二通信装置与位于第n+1层的某个通信装置之间的链路发生故障,会导致位于第n+1层的各通信装置与位于第n层的第三通信装置之间的链路负载不均衡,有的链路的剩余带宽较多,如第一故障链路所关联的位于第n+1层的通信装置与第三通信装置之间的链路的剩余带宽较多,而其他链路的剩余带宽较少。对于第一通信装置也需要向第三通信装置发送信息的场景,第一通信装置根据收到的第一通告信息获知第一故障链路,并根据第一故障链路分析出位于第n+1层的各通信装置与位于第n层的第三通信装置之间剩余带宽较多的链路,从而第一通信装置可以将向第三通信装置发送的流量更多地分配给剩余带宽较多的链路,以避免出现高负载链路拥塞的问题,有利于实现负载均衡。

5、在一些可能的实施方式中,第一通告信息包括第二通信装置向第三通信装置发送的总流量,以便于第一通信装置结合该总流量更合理地计算出第一通信装置所连接的各条上行链路各自的流量,从而尽可能地保证第n+1层的各通信装置分别与第三通信装置之间下行链路的负载更均衡。其中,总流量也可以称之为总吞吐量(throughput)。例如,第二通信装置通过多条路径向第三通信装置发送报文,多条路径发送报文的流量之和就是第二通信装置向第三通信装置发送报文的总流量。

6、在一些可能的实施方式中,第一通信装置根据第一通告信息确定向第三通信装置发送报文的多条链路的流量包括:第一通信装置根据总流量和多层网络系统的拓扑信息确定向第三通信装置发送报文的多条链路的流量。其中,第一通信装置本地可以预先配置好多层网络系统的拓扑信息,第一通信装置结合总流量和多层网络系统的拓扑信息可以更准确地计算出相关链路的剩余带宽,从而可以更好地通过调整流量分配来实现负载均衡。

7、在一些可能的实施方式中,第一通告信息由位于第n+1层的第四通信装置发送至第一通信装置。其中,第四通信装置是第n+1层中除了与第一故障链路关联的通信装置之外的至少一个通信装置,以使得第四通信装置可以接收到由第二通信装置反馈的第一故障链路,从而保证第一通信装置可以接收到第一通告信息。示例性的,第四通信装置可以是如图3、图8或图9中所示的spine交换机2、spine交换机3和spine交换机4中的至少一个spine交换机。

8、在一些可能的实施方式中,第一通告信息包括第一故障链路的标识;和/或,第一通告信息包括第二通信装置的标识和位于第n+1层的第五通信装置的标识,第一故障链路是第二通信装置与第五通信装置之间的链路。这里提供了多种用于指示第一故障链路的方式,丰富了本技术的实施方式。示例性的,第五通信装置可以是如图3、图8或图9中所示的spine交换机1。

9、在一些可能的实施方式中,第一通告信息包括第三通信装置的标识。第一通信装置结合第一通告信息中的第三通信装置的标识可以获知第二通信装置是向第三通信装置发送报文,那么,第一通信装置只需要调节向第三通信装置发送报文的多条链路的流量即可。而第一通信装置向其他位于第n层的通信装置发送报文的所有路径都不受第一故障链路的影响,第一通信装置不需要调节向其他位于第n层的通信装置发送报文的多条链路的流量,避免破坏已有的负载均衡。

10、在一些可能的实施方式中,第一通告信息通过控制报文或数据报文携带。需要说明的是,考虑到位于第n+1层的通信装置可能不是每时每刻都有向第一通信装置发送的数据报文,通过控制报文携带第一通告信息,可以使得第一通信装置能及时收到第一通告信息,通告的实时性更好。如果当前第n+1层的通信装置正好有向第一通信装置发送的数据报文,通过数据报文携带第一通告信息,就不需要再单独构造携带第一通告信息的控制报文了,实现代价更低。

11、在一些可能的实施方式中,方法还包括:第一通信装置接收第二通告信息,第二通告信息用于指示多层网络系统中的第二故障链路,第二故障链路是第二通信装置与第n+1层之间的链路。也就是说,本技术提供的流量分配方法也适用于相同通信装置的上行多链路故障场景,适用性更广。

12、和/或,

13、方法还包括:第一通信装置接收第三通告信息,第三通告信息用于指示多层网络系统中的第三故障链路,第三故障链路是位于第n层的第六通信装置与第n+1层之间的链路,第六通信装置通过第n+1层向第三通信装置发送流量。也就是说,本技术提供的流量分配方法也适用于不同通信装置的上行多链路故障场景,适用性更广。示例性的,第六通信装置可以是如图3、图8或图9中所示的tor交换机4。

14、在一些可能的实施方式中,方法还包括:第一通信装置根据第一通告信息确定向第三通信装置发送报文的多条链路的流量分配比例。其中,多条链路的流量分配比例也可以称之为多条链路的分流比,通过确定分流比便于配置好转发流表。

15、在一些可能的实施方式中,方法还包括:第一通信装置根据流量分配比例调节流表的项数。例如,通过合并或整形等操作节省流表的项数,从而节约存储资源。

16、在一些可能的实施方式中,在多层网络系统中,位于第n层的通信装置是机架顶部(top of rack,tor)交换机,位于第n+1层的通信装置是spine交换机。

17、第二方面,本技术提供了一种流量分配方法,该流量分配方法应用于多层网络系统。在多层网络系统中,位于第n层的任意2个通信装置之间传输的流量通过位于第n+1层的至少1个通信装置转发,n为正整数。其中,第一通信装置、第二通信装置和第三通信装置位于多层网络系统的第n层,第四通信装置位于多层网络系统的第n+1层。该方法应用于第四通信装置,具体地,在第二通信装置通过第n+1层向第三通信装置发送报文的路径中,第二通信装置与位于第n+1层的通信装置之间的链路发生故障,第四通信装置接收第二通信装置发送的第一通告信息,并根据第一通告信息向第一通信装置发送第二通告信息。其中,第一通告信息和第二通告信息都用于指示第一故障链路,以使得第一通信装置根据第二通告信息确定向第三通信装置发送报文的多条链路的流量。

18、示例性的,第一通信装置可以是如图3、图8或图9中所示的tor交换机3,第二通信装置可以是如图3、图8或图9中所示的tor交换机1,第三通信装置可以是如图3、图8或图9中所示的tor交换机2。第四通信装置可以是如图3、图8或图9中所示的spine交换机2、spine交换机3和spine交换机4中的至少一个spine交换机。

19、在一些可能的实施方式中,第一通告信息和第二通告信息都包括第二通信装置向第三通信装置发送的总流量,以便于第一通信装置结合该总流量更合理地计算出第一通信装置所连接的各条上行链路各自的流量,从而尽可能地保证第n+1层的各通信装置分别与第三通信装置之间下行链路的负载更均衡。

20、在一些可能的实施方式中,第一通告信息和第二通告信息都包括第一故障链路的标识。和/或,第一通告信息和第二通告信息都包括第二通信装置的标识和位于第n+1层的第五通信装置的标识,第一故障链路是第二通信装置与第五通信装置之间的链路。这里提供了多种用于指示第一故障链路的方式,丰富了本技术的实施方式。示例性的,第五通信装置可以是如图3、图8或图9中所示的spine交换机1。

21、在一些可能的实施方式中,第一通告信息和第二通告信息都通过控制报文携带,第一通告信息和第二通告信息都包括第三通信装置的标识。也就是说,第一通告信息和第二通告信息包括的内容相同,相当于第四通信装置直接将接收的通告信息转发给第一通信装置,简化了第四通信装置的操作。

22、在一些可能的实施方式中,第一通告信息和第二通告信息都通过数据报文携带,第二通告信息包括第三通信装置的标识。也就是说,第二通信装置有向第四通信装置发送的数据报文,且第四通信装置有向第一通信装置发送的数据报文,通过数据报文携带第一通告信息和第二通告信息,就不需要再单独构造携带第一通告信息和第二通告信息的控制报文了,实现代价更低。

23、在一些可能的实施方式中,第一通告信息通过数据报文携带,第二通告信息通过控制报文携带,第二通告信息包括第三通信装置的标识。也就是说,第二通信装置有向第四通信装置发送的数据报文,但第四通信装置没有向第一通信装置发送的数据报文,由于数据报文本身携带有目的地址,相当于指示了该数据报文是发往第三通信装置的,所以第一通告信息可以不包括第三通信装置的标识,而第二通告信息需要包括第三通信装置的标识。考虑到第四通信装置可能不是每时每刻都有向第一通信装置发送的数据报文,第四通信装置向第一通信装置发送携带第二通告信息的控制报文,可以使得第一通信装置能及时收到第二通告信息,通告的实时性更好。

24、在一些可能的实施方式中,方法还包括:第四通信装置接收第二通信装置发送的第三通告信息,并根据第三通告信息向第一通信装置发送第四通告信息,第三通告信息和第四通告信息都用于指示多层网络系统中的第二故障链路,第二故障链路是第二通信装置与第n+1层之间的链路。也就是说,本技术提供的流量分配方法也适用于相同通信装置的上行多链路故障场景,适用性更广。

25、和/或,

26、方法还包括:第四通信装置接收第二通信装置发送的第五通告信息,并根据第五通告信息向第一通信装置发送第六通告信息,第五通告信息和第六通告信息都用于指示多层网络系统中的第三故障链路,第三故障链路是位于第n层的第六通信装置与第n+1层之间的链路,第六通信装置通过第n+1层向第三通信装置发送流量。也就是说,本技术提供的流量分配方法也适用于不同通信装置的上行多链路故障场景,适用性更广。示例性的,第六通信装置可以是如图3、图8或图9中所示的tor交换机4。

27、在一些可能的实施方式中,在多层网络系统中,位于第n层的通信装置是tor交换机,位于第n+1层的通信装置是spine交换机。

28、第三方面,本技术提供了一种通信装置,该通信装置包括收发单元和处理单元,该通信装置可以称之为第一通信装置。在多层网络系统中,第一通信装置、第二通信装置和第三通信装置位于多层网络系统的第n层,n为正整数。收发单元,用于接收第一通告信息,第一通告信息用于指示多层网络系统中的第一故障链路,第一故障链路是第二通信装置与多层网络系统的第n+1层之间的链路,第二通信装置通过第n+1层向第三通信装置发送流量。处理单元,用于根据第一通告信息确定向第三通信装置发送报文的多条链路的流量。

29、示例性的,第一通信装置可以是如图3、图8或图9中所示的tor交换机3,第二通信装置可以是如图3、图8或图9中所示的tor交换机1,第三通信装置可以是如图3、图8或图9中所示的tor交换机2。

30、在一些可能的实施方式中,第一通告信息包括第二通信装置向第三通信装置发送的总流量。

31、在一些可能的实施方式中,处理单元,具体用于根据总流量和多层网络系统的拓扑信息确定向第三通信装置发送报文的多条链路的流量。

32、在一些可能的实施方式中,第一通告信息由位于第n+1层的第四通信装置发送至通信装置。示例性的,第四通信装置可以是如图3、图8或图9中所示的spine交换机2、spine交换机3和spine交换机4中的至少一个spine交换机。

33、在一些可能的实施方式中,第一通告信息包括第一故障链路的标识;和/或,第一通告信息包括第二通信装置的标识和位于第n+1层的第五通信装置的标识,第一故障链路是第二通信装置与第五通信装置之间的链路。示例性的,第五通信装置可以是如图3、图8或图9中所示的spine交换机1。

34、在一些可能的实施方式中,第一通告信息包括第三通信装置的标识。

35、在一些可能的实施方式中,第一通告信息通过控制报文或数据报文携带。

36、在一些可能的实施方式中,收发单元,还用于接收第二通告信息,第二通告信息用于指示多层网络系统中的第二故障链路,第二故障链路是第二通信装置与第n+1层之间的链路;

37、和/或,

38、收发单元,还用于接收第三通告信息,第三通告信息用于指示多层网络系统中的第三故障链路,第三故障链路是位于第n层的第六通信装置与第n+1层之间的链路,第六通信装置通过第n+1层向第三通信装置发送流量。示例性的,第六通信装置可以是如图3、图8或图9中所示的tor交换机4。

39、在一些可能的实施方式中,处理单元,还用于根据第一通告信息确定向第三通信装置发送报文的多条链路的流量分配比例。

40、在一些可能的实施方式中,处理单元,还用于根据流量分配比例调节流表的项数。

41、在一些可能的实施方式中,在多层网络系统中,位于第n层的通信装置是tor交换机,位于第n+1层的通信装置是spine交换机。

42、第四方面,本技术提供了一种通信装置,该通信装置包括收发单元,该通信装置可以称之为第四通信装置。在多层网络系统中,第一通信装置、第二通信装置和第三通信装置位于多层网络系统的第n层,第四通信装置位于多层网络系统的第n+1层,n为正整数。收发单元用于:接收第二通信装置发送的第一通告信息,第一通告信息用于指示多层网络系统中的第一故障链路,第一故障链路是第二通信装置与第n+1层之间的链路,第二通信装置通过第n+1层向第三通信装置发送流量;根据第一通告信息向第一通信装置发送第二通告信息,以使得第一通信装置根据第二通告信息确定向第三通信装置发送报文的多条链路的流量,第二通告信息用于指示第一故障链路。

43、示例性的,第一通信装置可以是如图3、图8或图9中所示的tor交换机3,第二通信装置可以是如图3、图8或图9中所示的tor交换机1,第三通信装置可以是如图3、图8或图9中所示的tor交换机2。第四通信装置可以是如图3、图8或图9中所示的spine交换机2、spine交换机3和spine交换机4中的至少一个spine交换机。

44、在一些可能的实施方式中,第一通告信息和第二通告信息都包括第二通信装置向第三通信装置发送的总流量。

45、在一些可能的实施方式中,第一通告信息和第二通告信息都包括第一故障链路的标识;和/或,第一通告信息和第二通告信息都包括第二通信装置的标识和位于第n+1层的第五通信装置的标识,第一故障链路是第二通信装置与第五通信装置之间的链路。示例性的,第五通信装置可以是如图3、图8或图9中所示的spine交换机1。

46、在一些可能的实施方式中,第一通告信息和第二通告信息都通过控制报文携带,第一通告信息和第二通告信息都包括第三通信装置的标识。

47、在一些可能的实施方式中,第一通告信息和第二通告信息都通过数据报文携带,第二通告信息包括第三通信装置的标识。

48、在一些可能的实施方式中,第一通告信息通过数据报文携带,第二通告信息通过控制报文携带,第二通告信息包括第三通信装置的标识。

49、在一些可能的实施方式中,收发单元,还用于接收第二通信装置发送的第三通告信息,并根据第三通告信息向第一通信装置发送第四通告信息,第三通告信息和第四通告信息都用于指示多层网络系统中的第二故障链路,第二故障链路是第二通信装置与第n+1层之间的链路;

50、和/或,

51、收发单元,还用于接收第二通信装置发送的第五通告信息,并根据第五通告信息向第一通信装置发送第六通告信息,第五通告信息和第六通告信息都用于指示多层网络系统中的第三故障链路,第三故障链路是位于第n层的第六通信装置与第n+1层之间的链路,第六通信装置通过第n+1层向第三通信装置发送流量。示例性的,第六通信装置可以是如图3、图8或图9中所示的tor交换机4。

52、在一些可能的实施方式中,在多层网络系统中,位于第n层的通信装置是tor交换机,位于第n+1层的通信装置是spine交换机。

53、第五方面,本技术提供了一种通信装置,通信装置用于执行如第一方面或第二方面的任一实施方式介绍的方法。

54、在一些可能的实施方式中,当通信装置为芯片时,芯片用于执行如第一方面或第二方面中的任一实施方式的部分或全部操作。

55、第六方面,本技术实施例提供了一种通信装置,通信装置包括控制电路和接口电路,接口电路用于收发信号,控制电路用于执行如第一方面或第二方面的任一实施方式介绍的方法。

56、第七方面,本技术实施例提供了一种通信系统,通信系统包括用于执行如第一方面任一实施方式介绍的方法的通信装置和用于执行如第二方面任一实施方式介绍的方法的通信装置。

57、第八方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质上存储有指令,指令被计算机执行时,以使得实现如第一方面或第二方面的任一实施方式介绍的方法。

58、第九方面,本技术提供了一种计算机程序产品,该计算机程序产品包括程序指令,当计算机程序产品被执行时,用于实现上述第一方面或第二方面的任一实施方式介绍的方法。