一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

网络拥塞的控制方法、装置、设备、系统及存储介质与流程

2021-12-03 19:56:00 来源:中国专利 TAG:


1.本技术涉及通信技术领域,尤其涉及网络拥塞的控制方法、装置、设备、系统及存储介质。


背景技术:

2.随着高性能计算、分布式存储等应用的出现和广泛使用,对数据中心网络和协议提出高吞吐、低时延、低中央处理单元(central processing unit,cpu)开销的需求。由于传统的传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)协议cpu开销极大,不能很好的满足这些应用的需求。因此,允许用户态的应用程序直接读取和写入远程内存,而无内核干预和内存拷贝发生的远程直接内存访问(remote direct memory acess,rdma)协议应运而生。
3.目前运用比较广泛的rdma协议是聚合以太网上的rdma(rdma over converged ethernet,roce)协议,在roce网络中,对网络拥塞进行有效的控制,是降低业务时延,支持大规模roce组网的关键。


技术实现要素:

4.本技术实施例提供了一种网络拥塞的控制方法、装置、设备、系统及存储介质,以解决相关技术提供的问题,技术方案如下:
5.第一方面,提供了一种网络拥塞的控制方法,以该方法应用于第一交换机为例,该方法包括:第一交换机接收第二交换机在目标网络拥塞状态发送的目标信令报文,该目标信令报文携带流量来源信息。第一交换机根据该目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,该目标流量控制信息用于指示进行流量控制。
6.本技术实施例提供的方法,接收到第二交换机在目标网络拥塞状态发送的目标信令报文后,通过向目标信令报文中携带的流量来源信息所对应的网络设备发送目标流量控制信息,以指示进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网,解决了大规模高并发场景下dcqcn控速失效的问题。
7.在第一方面的一种可能的实现方式中,根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,包括:根据目标信令报文向流量来源信息对应的网络设备发送第一流量控制信息,第一流量控制信息用于指示网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
8.通过第一流量控制信息来指示流量来源信息对应的网络设备暂停发送目标队列的数据包,能够有效抑制拥塞侧的队列积压,进一步保证业务低时延。
9.在第一方面的一种可能的实现方式中,根据目标信令报文向流量来源信息对应的网络设备发送第一流量控制信息,包括:根据目标信令报文构造第一基于优先级的流量控制pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;向
流量来源信息对应的网络设备发送第一pfc报文。
10.在第一方面的一种可能的实现方式中,接收第二交换机在目标网络拥塞状态发送的目标信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第一信令报文,第一信令报文用于指示发送第一流量控制信息。
11.在第一方面的一种可能的实现方式中,接收第二交换机在目标网络拥塞状态发送的第一信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第一拥塞通知包cnp报文,第一cnp报文的帧头中的指定字段的值为第一特征值,第一特征值用于指示发送第一流量控制信息。
12.在第一方面的一种可能的实现方式中,根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,包括:根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
13.通过第二流量控制信息来指示流量来源信息对应的网络设备继续发送目标队列的数据包,从而不影响业务的吞吐量。
14.在第一方面的一种可能的实现方式中,根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,包括:根据目标信令报文构造第二基于优先级的流量控制pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;向流量来源信息对应的网络设备发送第二pfc报文。
15.在第一方面的一种可能的实现方式中,接收第二交换机在目标网络拥塞状态发送的目标信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第二信令报文,第二信令报文用于指示发送第二流量控制信息。
16.在第一方面的一种可能的实现方式中,接收第二交换机在目标网络拥塞状态发送的第二信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第二拥塞通知包cnp报文,第二cnp报文的帧头中的指定字段的值为第二特征值,第二特征值用于指示发送第二流量控制信息。
17.在第一方面的一种可能的实现方式中,根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,包括:根据目标信令报文携带的流量来源信息确定流量来源端口;通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息。
18.在第一方面的一种可能的实现方式中,通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息,包括:通过流量来源端口向流量来源信息对应的网络设备发送第三流量控制信息,所述第三流量控制信息用于指示暂停发送所述流量来源端口所对应的队列的数据包。
19.在第一方面的一种可能的实现方式中,通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息,包括:通过流量来源端口向流量来源信息对应的网络设备发送第四流量控制信息,所述第四流量控制信息用于指示继续发送所述流量来源端口所对应的队列的数据包。
20.第二方面,提供了一种方法应用于第二交换机,方法包括:第二交换机识别网络拥塞状态;响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发送目标信令报文,目标信令报文携带流量来源信息,目标信令报文用于指示第一交换机进行流量控制。
21.本技术实施例提供的方法,通过识别网络拥塞状态,在目标网络拥塞状态,通过目标信令报文指示第一交换机进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网,解决大规模高并发场景下dcqcn控速失效的问题。
22.在第二方面的一种可能的实现方式中,目标信令报文包括第一信令报文或第二信令报文,响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发送目标信令报文,包括:响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度大于第一阈值,向第一交换机发送第一信令报文,第一信令报文用于指示第一交换机发送第一流量控制信息,第一流量控制信息用于指示流量来源信息对应的网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;或者,
23.响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度小于第二阈值,向第一交换机发送第二信令报文,第二信令报文用于指示第一交换机发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,第二阈值小于第一阈值。
24.在第二方面的一种可能的实现方式中,向第一交换机发送第一信令报文之前,还包括:获取第一cnp报文,将第一cnp报文的帧头中的指定字段的值设为第一特征值,将第一cnp报文作为第一信令报文;
25.向第一交换机发送第二信令报文之前,还包括:获取第二cnp报文,将第二cnp报文的帧头中的指定字段的值设为第二特征值,将第二cnp报文作为第二信令报文。
26.通过cnp报文来构造第一信令报文或第二信令报文只是一种示例,还可以通过其他类型的报文格式来构造第一信令报文或第二信令报文,本技术实施例对此不进行限定。
27.在第二方面的一种可能的实现方式中,识别网络拥塞状态,包括:读取当前的队列长度及显式拥塞通知ecn阈值范围,ecn阈值范围用于指示添加ecn标识的概率,ecn标识用于指示网络发生拥塞;根据当前的队列长度及ecn阈值范围识别网络拥塞状态。
28.通过识别不同网络拥塞状态,便于后续基于不同的网络拥塞状态进行相应的网络拥塞的控制。
29.第三方面,提供了一种网络拥塞的控制方法,该方法应用于网络设备,方法包括:网络设备接收第一交换机发送的目标流量控制信息,目标流量控制信息用于指示进行流量控制,所示目标流量控制信息是第一交换机接收到第二交换机在目标网络拥塞状态发送的目标信令报文之后发送的;根据目标流量控制信息进行流量控制。
30.本技术实施例提供的方法,接收到第一交换机发送的目标流量控制信息后,基于该目标流量控制信息进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网,解决大规模高并发场景下dcqcn控速失效的问题。
31.在第三方面的一种可能的实现方式中,接收第一交换机发送的目标流量控制信息,包括:接收第一交换机发送的第一流量控制信息,第一流量控制信息用于指示暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;
32.根据目标流量控制信息进行流量控制,包括:根据第一流量控制信息暂停发送目标队列的数据包。
33.在第三方面的一种可能的实现方式中,接收第一交换机发送的第一流量控制信息,包括:接收第一交换机发送的第一pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;
34.根据第一流量控制信息暂停发送目标队列的数据包,包括:根据第一pfc报文的时间字段的值确定暂停发送数据包的时间长度,在时间长度内暂停发送目标队列的数据包。
35.在第三方面的一种可能的实现方式中,接收第一交换机发送的目标流量控制信息,包括:接收第一交换机发送的第二流量控制信息,第二流量控制信息用于指示继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列;
36.根据目标流量控制信息进行流量控制,包括:根据第二流量控制信息继续发送目标队列的数据包。
37.在第三方面的一种可能的实现方式中,接收第一交换机发送的第二流量控制信息,包括:接收第一交换机发送的第二pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;
38.根据第二流量控制信息继续发送目标队列的数据包,包括:根据第二pfc报文的时间字段的值继续发送目标队列的数据包。
39.第四方面,提供了一种网络拥塞的控制装置,装置包括:
40.接收模块,用于接收第二交换机在目标网络拥塞状态发送的目标信令报文,目标信令报文携带流量来源信息;
41.发送模块,用于根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,目标流量控制信息用于指示进行流量控制。
42.在第四方面的一种可能的实现方式中,发送模块,用于根据目标信令报文向流量来源信息对应的网络设备发送第一流量控制信息,第一流量控制信息用于指示网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
43.在第四方面的一种可能的实现方式中,发送模块,用于根据目标信令报文构造第一基于优先级的流量控制pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;向流量来源信息对应的网络设备发送第一pfc报文。
44.在第四方面的一种可能的实现方式中,接收模块,用于接收第二交换机在目标网络拥塞状态发送的第一信令报文,第一信令报文用于指示发送第一流量控制信息。
45.在第四方面的一种可能的实现方式中,接收模块,用于接收第二交换机在目标网络拥塞状态发送的第一拥塞通知包cnp报文,第一cnp报文的帧头中的指定字段的值为第一特征值,第一特征值用于指示发送第一流量控制信息。
46.在第四方面的一种可能的实现方式中,发送模块,用于根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
47.在第四方面的一种可能的实现方式中,发送模块,用于根据目标信令报文构造第二基于优先级的流量控制pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;向流量来源信息对应的网络设备发送第二pfc报文。
48.在第四方面的一种可能的实现方式中,接收模块,用于接收第二交换机在目标网络拥塞状态发送的第二信令报文,第二信令报文用于指示发送第二流量控制信息。
49.在第四方面的一种可能的实现方式中,接收模块,用于接收第二交换机在目标网络拥塞状态发送的第二拥塞通知包cnp报文,第二cnp报文的帧头中的指定字段的值为第二特征值,第二特征值用于指示发送第二流量控制信息。
50.在第四方面的一种可能的实现方式中,发送模块,用于根据目标信令报文携带的流量来源信息确定流量来源端口;通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息。
51.在第四方面的一种可能的实现方式中,发送模块,用于通过流量来源端口向流量来源信息对应的网络设备发送第三流量控制信息,所述第三流量控制信息用于指示暂停发送所述流量来源端口所对应的队列的数据包。
52.在第四方面的一种可能的实现方式中,发送模块,用于通过流量来源端口向流量来源信息对应的网络设备发送第四流量控制信息,所述第四流量控制信息用于指示继续发送所述流量来源端口所对应的队列的数据包。
53.第五方面,提供了一种网络拥塞的控制装置,装置包括:
54.识别模块,用于识别网络拥塞状态;
55.发送模块,用于响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发送目标信令报文,目标信令报文携带流量来源信息,目标信令报文用于指示第一交换机进行流量控制。
56.在第五方面的一种可能的实现方式中,目标信令报文包括第一信令报文或第二信令报文,发送模块,用于响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度大于第一阈值,向第一交换机发送第一信令报文,第一信令报文用于指示第一交换机发送第一流量控制信息,第一流量控制信息用于指示流量来源信息对应的网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;或者,
57.响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度小于第二阈值,向第一交换机发送第二信令报文,第二信令报文用于指示第一交换机发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,第二阈值小于第一阈值。
58.在第五方面的一种可能的实现方式中,装置还包括:
59.获取模块,用于获取第一cnp报文,将第一cnp报文的帧头中的指定字段的值设为第一特征值,将第一cnp报文作为第一信令报文;
60.或者,获取模块,用于获取第二cnp报文,将第二cnp报文的帧头中的指定字段的值设为第二特征值,将第二cnp报文作为第二信令报文。
61.在第五方面的一种可能的实现方式中,识别模块,用于读取当前的队列长度及显式拥塞通知ecn阈值范围,ecn阈值范围用于指示添加ecn标识的概率,ecn标识用于指示网络发生拥塞;根据当前的队列长度及ecn阈值范围识别网络拥塞状态。
62.在第五方面的一种可能的实现方式中,目标网络拥塞状态包括ecn失效状态或拥塞通知包cnp失效状态,识别模块,用于响应于当前的队列长度大于参考范围的最大值,且未补充cnp报文,则网络拥塞状态为ecn失效状态,参考范围基于ecn阈值范围确定;响应于当前的队列长度大于参考范围的最大值,且已补充cnp报文,则网络拥塞状态为cnp失效状态。
63.第六方面,提供了一种网络拥塞的控制装置,装置包括:
64.接收模块,用于接收第一交换机发送的目标流量控制信息,目标流量控制信息用于指示进行流量控制,所示目标流量控制信息是第一交换机接收到第二交换机在目标网络拥塞状态发送的目标信令报文之后发送的;
65.控制模块,用于根据目标流量控制信息进行流量控制。
66.在第六方面的一种可能的实现方式中,接收模块,用于接收第一交换机发送的第一流量控制信息,第一流量控制信息用于指示暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;
67.控制模块,用于根据第一流量控制信息暂停发送目标队列的数据包。
68.在第六方面的一种可能的实现方式中,接收模块,用于接收第一交换机发送的第一pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;
69.控制模块,用于根据第一pfc报文的时间字段的值确定暂停发送数据包的时间长度,在时间长度内暂停发送目标队列的数据包。
70.在第六方面的一种可能的实现方式中,接收模块,用于接收第一交换机发送的第二流量控制信息,第二流量控制信息用于指示继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列;
71.控制模块,用于根据第二流量控制信息继续发送目标队列的数据包。
72.在第六方面的一种可能的实现方式中,接收模块,用于接收第一交换机发送的第二pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;
73.控制模块,用于根据第二pfc报文的时间字段的值继续发送目标队列的数据包。
74.在第一方面至第六方面的一种可能的实现方式中,目标网络拥塞状态包括显式拥塞通知(explicit congestion notification,ecn)失效状态或拥塞通知包(congestion notification packet,cnp)失效状态;
75.ecn失效状态是指第二交换机当前的队列长度大于参考范围的最大值,且未补充cnp报文的状态;cnp失效状态是指第二交换机当前的队列长度大于参考区域的最大值,且已补充cnp报文的状态;参考范围基于ecn阈值范围确定,ecn阈值范围用于指示添加ecn标识的概率,ecn标识用于指示网络发生拥塞。
76.还提供一种网络拥塞的控制设备,该设备包括:存储器及处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述第一方面任一所述的网络拥塞的控制方法。
77.还提供一种网络拥塞的控制设备,该设备包括:存储器及处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述第二方面任一所述的网络拥塞的控制方法。
78.还提供一种网络拥塞的控制设备,该设备包括:存储器及处理器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述第三方面任一所述的网络拥塞的控制方法。
79.还提供了一种网络拥塞的控制系统,该系统包括上述三种设备。
80.还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如上第一方面至第三方面中任一所述的网络拥塞的控制
方法。
81.提供了另一种通信装置,该装置包括:收发器、存储器和处理器。其中,该收发器、该存储器和该处理器通过内部连接通路互相通信,该存储器用于存储指令,该处理器用于执行该存储器存储的指令,以控制收发器接收信号,并控制收发器发送信号,并且当该处理器执行该存储器存储的指令时,使得该处理器执行第一方面或第一方面的任一种可能的实施方式中的方法。或者,当该处理器执行该存储器存储的指令时,使得该处理器执行第二方面或第二方面的任一种可能的实施方式中的方法。或者,当该处理器执行该存储器存储的指令时,使得该处理器执行第三方面或第三方面的任一种可能的实施方式中的方法。
82.作为一种示例性实施例,所述处理器为一个或多个,所述存储器为一个或多个。
83.作为一种示例性实施例,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
84.在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(readonly memory,rom),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本技术实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
85.提供了一种计算机程序(产品),所述计算机程序(产品)包括:计算机程序代码,当所述计算机程序代码被计算机运行时,使得所述计算机执行上述各方面中的方法。
86.提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
87.提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
附图说明
88.图1为相关技术中提供的一种网络架构示意图;
89.图2为本技术实施例提供的ecn标识模型示意图;
90.图3为本技术实施例提供的流量模型示意图;
91.图4为本技术实施例提供的ecn打标率与队列积压关系示意图;
92.图5为本技术实施例提供的流传输过程示意图;
93.图6为本技术实施例提供的流量模型示意图;
94.图7为本技术实施例提供的服务器qp数与时延的关系示意图;
95.图8为本技术实施例提供的流量模型示意图;
96.图9为相关技术提供的流速率与cnp数目变化示意图;
97.图10为本技术实施例提供的数据中心网络的结构示意图;
98.图11为本技术实施例提供的网络拥塞的控制方法流程图;
99.图12为本技术实施例提供的应用场景示意图;
100.图13为本技术实施例提供的网络拥塞的控制装置的结构示意图;
101.图14为本技术实施例提供的网络拥塞的控制装置的结构示意图;
102.图15为本技术实施例提供的网络拥塞的控制装置的结构示意图;
103.图16为本技术实施例提供的网络拥塞的控制设备的结构示意图。
具体实施方式
104.本技术的实施方式部分使用的术语仅用于对本技术的实施例进行解释,而非旨在限定本技术。
105.由于传统的tcp/ip协议cpu开销极大,不能很好的满足数据中心网络和协议提出的高吞吐、低时延、低cpu开销的需求,因此,rdma协议应运而生。
106.目前运用比较广泛的rdma协议是roce协议,roce协议有roce1和roce2两个版本。其中,roce1是基于以太网链路层实现的rdma协议,rocev2则是基于以太网tcp/ip协议中用户数据报协议(user datagram protocol,udp)层实现的rdma协议。无论是哪个版本的roce协议,在roce网络中,对网络拥塞进行有效的控制,是降低业务时延,支持大规模roce组网的关键。
107.对此,相关技术提供了一种数据中心量化拥塞通知(data center quantized congestion notification,dcqcn)算法来对roce网络进行拥塞控制。以图1所示的网络架构为例,该网络架构包括发送端网络接口控制器(network interface controller,nic)、交换机及接收端nic。其中,发送端nic为响应点(reaction point,rp),交换机为拥塞点(cp,congestion point),接收端nic为通知点(notification point,np)。
108.在交换机侧,当一个数据包到达交换机的出端口时,交换机查看交换机的出端口的队列缓存长度。如果交换机的出口端的队列缓存长度超过给定阈值,则对这个数据包按标记概率标记显式拥塞通知(explicit congestion notification,ecn)标识。ecn最初在rfc 3168中定义,交换机会在检测到拥塞时,通过在ip头部嵌入一个拥塞指示器和在tcp头部嵌入一个拥塞确认实现。rocev2标准定义了rocev2拥塞管理(rcm)。启用了ecn之后,交换机一旦检测到rocev2流量出现了拥塞,会在数据包的ip头部ecn域进行标记。
109.其中,拥塞指示器被目的终端节点按照存在于ib数据段中的基本传输头(base transport header,bth)中的前向显式拥塞通告(forward explicit congestion notification,fecn)拥塞指示标识来解释意义。换句话说,当被ecn标记过的数据包到达原本要到达的目的地时,拥塞通知就会被反馈给源节点,源节点再通过对有问题的队列对(queue pairs,qp)进行网络数据包的速率限制来回应拥塞通知。
110.以基于图2所示的ecn标识模型对数据包按标记概率标记ecn为例,当交换机的出口端的队列缓存长度小于给定下限阈值kmin时,则标记概率为0%;当交换机的出口端的队列缓存长度大于给定上限阈值kmax时,则标记概率为100%;当交换机的出口端的队列缓存长度介于kmin和kmax之间时,标记概率随队列缓存长度线性增加。
111.在接收端侧,当携带ecn标识的数据包到达接收端nic时,表明网络中发生了拥塞,则接收端nic针对该携带ecn标识的报文返回拥塞通知包(congestion notification packet,cnp)报文,以通过该cnp报文将拥塞信息传递给发送端nic。示例性地,如果某条数据流中携带ecn标识的数据包到达接收端nic,且在之前的参考时间段内没有相应cnp报文被发送,则接收端nic立刻发送一个cnp报文。其中,参考时间段的长度为n微妙,n的值可配置为0,即接收端nic每收到一个携带ecn标识的报文就返回一个cnp报文。
112.cnp报文作为拥塞控制报文,也会存在延迟和丢包,从发送端到接收端经过的每一跳设备、每一条链路都会有一定的延迟,会最终加大发送端接收到cnp报文的时间。与此同时,交换机的出端口下的拥塞也会逐步增多,若发送端不能及时降速,仍然可能造成丢包。
因此,在发送端侧,发送端nic控制每条数据流的发送速率。例如,通过收到的cnp报文来触发对数据流的降速控制,通过时间定时器和字节计数器来触发对数据流的升速控制,升速控制与降速控制相互独立。
113.通过上述过程不难看出,dcqcn算法的升速控制基于发送端nic的定时器触发,降速控制基于接收端nic发送的cnp报文触发。当升速控制和降速控制不能协调工作时,将会导致dcqcn控速失效。尤其是网络数据流规模增大时,更容易发生dcqcn控速失效的问题。
114.例如,随着数据流数目的增加,每条数据流分到的带宽随之减小,单位时间内发出的cnp报文数量也随之变少,而cnp报文间隔随之变大。比如发送端带宽限制每秒发出两千个数据包,每个数据包的间隔是500us,这样即使每个数据包都标记ecn标识,那么接收端返回的cnp报文间隔最小也是500us。但是dcqcn源端的升速周期是300us,这时cnp的间隔大于升速周期。当拥塞发生时,会使得发送端的数据流在拥塞状态下仍错误的升速,导致dcqcn控速失败。
115.以图3所示的数据流量模型,由单个柜顶(top of rack,tor)交换机实现多个发送端到一个接收端的数据流传输,且以tcp协议的报文与roce协议的报文按照9:1的带宽比例进行传输为例。数据流数、ecn和队列积压的关系如图4所示。由图4可以看出,当数据流数目较少,例如数据流数目低于4时,dcqcn工作的很好,ecn打标率随着数据流数目的增加而增加,队列缓存长度控制的很低,业务时延也很小。但是,当数据流数目达到一定程度后,例如图4所示的数据流数目超过4以后,即使ecn达标率已经达到100%了,但是队列缓存长度突变为mb级,业务时延劣化为ms级,这时ecn失效。
116.为了解决ecn失效的问题,相关技术还提出了一种在交换机侧记录交换机的出端口的拥塞程度和收到的cnp报文时间,根据交换机的出端口的拥塞程度来确定是否补充cnp报文的方法。以图5所示的数据流传输示意图为例,当交换机的出端口进入拥塞状态时,则交换机检查经过该出端口的数据流的cnp报文的时间间隔。如果在dcqcn的升速周期内没有cnp报文经过,则交换机侧补充一个cnp报文发往发送端并更新cnp报文时间。如果在dcqcn的升速周期内有cnp报文经过,则交换机只更新cnp报文经过的时间,不再补充cnp报文。当交换机的出端口不拥塞时,则只更新cnp报文经过的时间,不再补充cnp报文。
117.然而,上述补充cnp报文的方式,在数据流进一步增加时仍会出现队列积压,时延劣化的问题。例如,以图6所示的流量模型,由单个tor交换机实现多个发送端到一个接收端的数据流传输,且以tcp协议的报文与roce协议的报文按照9:1的带宽比例进行传输为例,不断增加每个服务器的数据流数(qp数)。服务器的qp数与时延的关系可如图7的测试结果所示,可以看出当每个服务器输出的数据流数小于9时,时延较小。但是当服务器输出的数据流数大于9时,时延突变劣化为ms级,导致该方案仍然存在cnp失效。
118.为便于理解,以图8所示的流量模型做进一步分析。如图8所示,流量模型中的发送端1(sender1)和发送端2(sender2)同时向接收端(receiver)发送数据流,receiver可根据需要构造任意多的cnp报文给sender1和sender2。服务器每秒处理的cnp报文数与流速率的关系可如图9所示,服务器的速率随着单位时间内处理的cnp报文数增加而减少,但是当速率下降到一定值后,不再下降,称这种现象为cnp失效。因此当大规模高并发场景下,每个数据流分配的带宽小于网卡能控速的极限值时,cnp失效必然出现,这时队列会压不住,业务时延会很大。
119.例如,以在图6所示的流量模型下进一步测试为例,得到如表1所示的测试结果。从下面表1所示的测试结果可以看出,在任何比例下,cnp失效都会出现,这时队列积压很深,业务时延很大。
120.表1
121.tcp:roce带宽配比数据流数目端口堆积时延90:107*1119446kb31637.50us70:307*4019757kb10360.06us50:507*6518845kb5987.04us30:707*8516829kb3824.71us10:907*11518160kb3206.68us
122.对此,为了解决cnp失效的问题,也即解决大规模高并发场景下dcqcn控速失效的问题,本技术实施例提供了一种网络拥塞的控制方法。该方法将网络的拥塞状态分为ecn正常状态、ecn失效状态和cnp失效状态三种,通过识别当前的网络拥塞的状态,根据网络拥塞的状态按照路径级触发式产生优先级的流量控制(priority-based flow control,pfc)报文,通过pfc控制流量,从而抑制拥塞侧的队列积压,保证业务低时延的同时不影响业务的吞吐,进而支持大规模roce组网。
123.示例性地,本技术实施例提供的方法可应用于图10所示的数据中心网络中。该数据中心网络是一种clos网络架构,clos网络架构是一种交换架构,能够做到可重排无阻塞、可扩展,用于高性能计算、高性能分布式存储、大数据、人工智能等。该clos网络架构中包括:第一交换机、第二交换机和源服务器。第一交换机如图10中t所示的tor交换机,第二交换机如图10中与第一交换机不同的t所示的tor交换机,源服务器如图10中h所示的服务器(host)。第一交换机可作为源端交换机,第二交换机作为拥塞侧交换机,源服务器作为流量来源对应的网络设备。其中,各个交换机的功能如下。
124.第二交换机(t):用于读取队列长度、当前ecn的阈值范围(如水线kmin、kmax值)。如果队列长度在kmin-kmax附近,则识别网络拥塞状态为ecn正常状态;如果队列长度远大于kmax,则识别网络拥塞状态为ecn失效状态,并智能添加cnp报文;如果添加cnp报文后,队列长度仍远大于kmax,则识别网络拥塞状态为cnp失效状态。ecn失效状态和cnp失效状态可以作为目标网络拥塞状态,识别当前网络拥塞状态为目标网络拥塞状态时,该第二交换机构造目标信令报文,通知源端交换机即第一交换机当前进入目标网络拥塞状态。例如,进入cnp失效状态,进行补pfc操作。例如,如果队列长度大于给定上限值,则第二交换机构造第一信令报文发往第一交换机,以第一信令报文为cnp报文为例,第二交换机在cnp报文的帧头的指定字段例如保留(reserved)字段填入第一特征值,例如1。如果队列长度小于给定下限值,则第二交换机构造第二信令报文发往第一交换机,仍以第一信令报文为cnp报文为例,第二交换机在cnp报文的帧头的reserved字段填入第二特征值,例如2。
125.第一交换机(t):第一交换机接收并解析第二交换机发送的目标信令报文,发现通告对象是第一交换机自身,如果reserved字段为第一特征值1,标识该目标信令报文是第一信令报文,则第一交换机构造第一pfc报文发送给对应的源服务器(h),以触发对应的源服务器暂停发送目标队列的数据包。例如,第一交换机构造的第一pfc报文为xoff pfc报文。如果reserved字段为第二特征值2,标识该目标信令报文是第二信令报文,则第一交换机构
造第二pfc报文发送给对应的源服务器,以触发对应的源服务器继续发送目标队列的数据包。例如,第一交换机构造的第二pfc报文为xon pfc报文。其中,目标队列是源服务器的一个或多个队列,可通过pfc报文来指示。此外,第一交换机也可通过流量来源端口来进行流量控制。例如,通过该流量来源端口向流量来源信息对应的源服务器发送对应的目标流量控制信息,以指示暂停或继续发送该流量来源端口所对应的队列的数据包。
126.该clos网络架构中除了包括第一交换机和第二交换机外,在示例性实施例中,第一交换机与第二交换机之间还具有中间交换机,该中间交换机如图10中l所示的叶(leaf)交换机以及图10中s所示的汇聚(spine)交换机。
127.中间交换机(l、s):中间交换机接收并解析第二交换机发送的目标信令报文,如果通告对象不是中间交换机自身,则中间交换机不作特殊操作,将该目标信令报文继续转发。
128.需要说明的是,图10所示的各个交换机的数量仅是示例性说明,本技术实施例不对各个交换机的数量进行限定。此外,源服务器仅是一种作为流量来源对应的网络设备的举例,除了源服务器,还可以是其他交换机,本技术实施例不对流量来源对应的网络设备的类型进行限定。再有,本技术实施例提供的方法不仅仅局限于图10所示数据中心网络场景,也可应用于其他使用dcqcn技术的场景,本技术实施例对应用场景不进行限定。
129.接下来,对本技术实施例提供的网络拥塞的控制方法进行说明。该方法可通过第一交换机、第二交换机及流量来源对应的网络设备之间的交互实现,示例性地,网络设备为源服务器。参见图11,本技术实施例提供的方法包括如下几个步骤。
130.1101,第二交换机识别网络拥塞状态。
131.在示例性实施例中,第二交换机识别网络拥塞状态,包括但不限于如下1101a和1101b两个过程。
132.1101a:读取当前的队列长度及ecn的阈值范围,ecn的阈值范围用于指示添加ecn标识的概率,ecn标识用于指示网络发生拥塞。
133.在示例性实施例中,第二交换机为检测拥塞的交换机,当前的队列长度为第二交换机的出端口当前缓存数据的队列长度。当一个数据包到达第二交换机的出端口时,该第二交换机查看第二交换机的出端口缓存数据的队列长度。如果第二交换机的出口端缓存数据的队列长度超过给定阈值,则对这个数据包按标记概率标记ecn标识。因此,ecn标识能够用于指示网络拥塞。本技术实施例不对给定阈值的大小进行限定,例如可基于应用场景设置,也可以基于经验设置。
134.对数据包标记ecn标识时,标记概率基于ecn的阈值范围和队列长度来确定,例如图2所示的ecn标记模型所示,该ecn的阈值范围是指给定下限阈值kmin与给定上限阈值kmax构成的范围。该ecn的阈值范围用于指示添加ecn标识的概率,网络拥塞越严重,具有ecn标识的报文数量越多。
135.本技术实施例提供的方法通过当前的队列长度和ecn的阈值范围来识别网络拥塞状态。为便于理解,以该方法应用于图12所示的应用场景为例。如图12所示,该网络架构包括4个l交换机,分别为交换机l1、交换机l2、交换机l3和交换机l4,包括2个s交换机,分别为交换机s1和交换机s2。以交换机l4侧发生拥塞为例,该交换机l4即为第二交换机,读取当前的队列长度、当前ecn的kmin和kmax值。
136.1101b:第二交换机根据当前的队列长度及ecn的阈值范围识别网络拥塞状态。
137.示例性地,网络拥塞状态包括但不限于ecn正常状态、ecn失效状态和拥塞通知包cnp失效状态。
138.在示例性实施例中,根据当前的队列长度及ecn的阈值范围识别网络拥塞状态,包括但不限于如下三种识别结果:
139.识别结果一:响应于当前的队列长度在参考范围内,则网络拥塞状态为ecn正常状态。
140.其中,本技术实施例不对参考范围进行限定,可基于经验设置,也可基于应用场景进行调整。例如,参考范围基于ecn阈值范围确定。以将0与1.5倍的最大值kmax之间的范围作为参考范围为例,如果当前的队列长度在0-1.5kmax的参考范围内,则网络拥塞状态为ecn正常状态。
141.识别结果二:响应于当前的队列长度大于参考范围的最大值,且未补充cnp报文,则网络拥塞状态为ecn失效状态。
142.例如,仍以0与1.5倍的最大值kmax之间的区域作为参考范围为例,参考范围的最大值为1.5kmax,如果当前的队列长度大于1.5kmax,且未补充cnp报文,则网络拥塞状态为ecn失效状态。针对识别结果是网络拥塞状态为ecn失效状态的情况,第二交换机可补充cnp报文。例如,在第二交换机侧记录第二交换机的出端口的拥塞程度和收到的cnp报文时间,根据第二交换机的出端口的拥塞程度来确定是否补充cnp报文。补充cnp报文的方式参见上述图5的相关描述,此处不再赘述。
143.识别结果三:响应于当前的队列长度大于参考范围的最大值,且已补充cnp报文,则网络拥塞状态为cnp失效状态。
144.例如,仍以0与1.5倍的最大值kmax之间的范围作为参考范围为例,参考范围的最大值为1.5kmax,如果当前的队列长度大于1.5kmax,且已补充cnp报文,则网络拥塞状态为cnp失效状态。
145.综上,以如图12所示的应用场景为例,交换机l4发生拥塞,读取当前的队列长度、当前ecn的kmin和kmax值后,如果当前的队列长度在kmin-kmax的参考范围附近,例如参考区域为[0,1.5*kmax],则交换机l4识别当前网络拥塞状态为ecn正常状态。如果队列长度远大于1.5kmax,例如大于3*kmax,且未补充cnp报文,则交换机l4识别当前网络拥塞状态为ecn失效状态,打开智能补充cnp报文功能。如果队列长度还是远大于1.5kmax,例如大于3*kmax,则交换机l4识别当前网络拥塞状态为cnp失效状态。
[0146]
1102,第二交换机响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发送目标信令报文,目标信令报文携带流量来源信息,目标信令报文用于指示第一交换机进行流量控制。
[0147]
在示例性实施例中,目标信令报文包括第一信令报文或第二信令报文,响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发送目标信令报文,包括但不限于如下两种发送情况。
[0148]
发送情况一:响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度大于第一阈值,向第一交换机发送第一信令报文,第一信令报文用于指示第一交换机发送第一流量控制信息,该第一流量控制信息用于指示流量来源信息对应的网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0149]
针对发送情况一,第一阈值的大小可基于经验设置,也可基于应用场景设置,还可在实施方法过程中进行调整。当前的队列长度大于第一阈值,说明拥塞情况较为严重,需要启动流量控制。例如,通过第一信令报文来指示第一交换机进行第一类流量控制,即指示第一交换机发送第一流量控制信息。其中,第一信令报文可是任意格式的报文,能够指示第一交换机进行第一类流量控制即可。
[0150]
示例性地,向第一交换机发送第一信令报文之前,还包括:获取第一cnp报文,将第一cnp报文的帧头中的指定字段的值设为第一特征值,将第一cnp报文作为第一信令报文。
[0151]
以cnp报文的格式如表2所示为例,表2中的第一行为各个字段的比特数,第二行为各个字段的名称,第三行为各个字段的值。该cnp报文的帧头包括8比特的操作码(pocode)字段、1比特的请求事件(solicited event,se)字段、1比特的迁移请求(migreq,m)字段、2比特的填充计数(pad count)字段、4比特的头版本(head version)字段、16比特的分区键(partition key,p_key)字段、8比特的保留(reserved)字段、24比特的目的队列对(destqp)字段、1比特的确认请求(ack request)字段、7比特的保留字段以及24比特的数据包序列号(packet sequence number,psn)字段。
[0152]
表2
[0153][0154]
在本技术实施例中,将cnp报文的第2个保留字段即7比特的保留字段的值设为第一特征值。例如,在表2所示的cnp报文的帧头基础上,将cnp报文的帧头中的7比特的保留字段的值设为第一特征值,以该第一特征值为1,用0000001表示为例,该cnp报文的帧头如表3所示。
[0155]
表3
[0156][0157]
发送情况二:响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度小于第二阈值,向第一交换机发送第二信令报文,第二信令报文用于指示第一交换机发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,第二阈值小于第一阈值。
[0158]
针对发送情况二,第二阈值的大小可基于经验设置,也可基于应用场景设置,还可在实施方法过程中进行调整。第二阈值小于第一阈值,当前的队列长度小于第二阈值,说明拥塞情况得到缓解,需要启动另一类流量控制。例如,通过第二信令报文来指示第一交换机进行第二类流量控制。其中,第二信令报文可是任意格式的报文,能够指示第一交换机进行第二类流量控制即可。
[0159]
示例性地,向第一交换机发送第二信令报文之前,还包括:获取第二cnp报文,将第二cnp报文的帧头中的指定字段的值设为第二特征值,将第二cnp报文作为第二信令报文。
[0160]
仍以上面表2所示的cnp报文的帧头的格式为例,将cnp报文的帧头中的7比特的保留字段的值设为第二特征值,以该第二特征值为2,用0000010表示为例,该cnp报文的帧头如表4所示。
[0161]
表4
[0162][0163]
仍以图12所示的应用场景为例,当交换机l4识别当前的网络拥塞状态为目标网络拥塞状态时,则比较当前的队列长度与给定门限第一阈值thh和第二阈值thl。如果当前的队列长度大于thh,则交换机l4构造第一信令报文发往第一交换机。例如,使用cnp报文作为信令报文,在cnp报文的帧头的reserved字段填入特征值1。如果当前的队列长度小于thl,则交换机l4构造第二信令报文发往第一交换机。例如,使用cnp报文作为信令报文,在cnp报文的帧头的reserved字段填入特征值2。cnp报文的帧头中reserved字段为保留字段,默认为全0。本技术实施例利用该保留字段构造第一、第二信令报文,通告第一交换机做不同动作,即采用不同的流量控制方式。
[0164]
在示例性实施例中,目标网络拥塞状态包括ecn失效状态或cnp失效状态;其中,ecn失效状态是指第二交换机当前的队列长度大于参考范围的最大值,且未补充cnp报文的状态;cnp失效状态是指第二交换机当前的队列长度大于参考区域的最大值,且已补充cnp报文的状态。
[0165]
1103,第一交换机接收第二交换机在目标网络拥塞状态发送的目标信令报文,目标信令报文携带流量来源信息。
[0166]
在示例性实施例中,针对1102中第二交换机发送目标信令报文的两种情况,第一交换机接收第二交换机在目标网络拥塞状态发送的目标信令报文,包括但不限于如下两种接收情况。
[0167]
接收情况一:接收第二交换机在目标网络拥塞状态发送的第一信令报文,第一信令报文用于指示第一交换机发送第一流量控制信息,进行第一类流量控制。
[0168]
示例性地,接收第二交换机在目标网络拥塞状态发送的第一信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第一cnp报文,第一cnp报文的帧头中的指定字段的值为第一特征值,第一特征值用于指示发送第一流量控制信息。
[0169]
接收情况二:接收第二交换机在目标网络拥塞状态发送的第二信令报文,第二信令报文用于指示第一交换机发送第二流量控制信息,进行第二类流量控制。
[0170]
示例性地,接收第二交换机在目标网络拥塞状态发送的第二信令报文,包括:接收第二交换机在目标网络拥塞状态发送的第二拥塞通知包cnp报文,第二cnp报文的帧头中的指定字段的值为第二特征值,第二特征值用于指示发送第二流量控制信息。
[0171]
1104,第一交换机根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,目标流量控制信息用于指示进行流量控制。
[0172]
在示例性实施例中,第一交换机根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,包括但不限于如下两种情况。
[0173]
情况一:根据目标信令报文向流量来源信息对应的网络设备发送第一流量控制信息,第一流量控制信息用于指示网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0174]
示例性地,根据目标信令报文向流量来源信息对应的网络设备发送第一流量控制信息,包括:根据目标信令报文构造第一pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;向流量来源信息对应的网络设备发送第一pfc报文。
[0175]
情况二:根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0176]
示例性地,根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,包括:根据目标信令报文构造第二基于优先级的流量控制pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;向流量来源信息对应的网络设备发送第二pfc报文。
[0177]
pfc是ieee数据中心桥接(data center bridge,dcb)协议族中的技术,是流量控制的增强版。本技术实施例提供的方法在识别网络拥塞状态为cnp失效状态后,触发第一交换机向流量来源信息对应的网络设备发送对应的pfc报文,以进行流量控制。
[0178]
例如,如表3所示,如果第一交换机接收到的目标信令报文的reserved字段为00000001,则表示第一交换机接收到的目标信令报文为第一信令报文,第一交换机需要给对应的网络设备发送第一pfc报文。示例性地,该第一pfc报文包括但不限于为xoff的pfc报文。如果第一交换机接收到的目标信令报文的reserved字段为00000010,则表示第一交换机接收到的目标信令报文为第二信令报文,第一交换机需要给对应的网络设备发送第二pfc报文。示例性地,该第二pfc报文包括但不限于为xon的pfc报文。
[0179]
xon/xoff是一种在计算机和其它设备之间控制数据流的软件数据流通信协议。其中,x代表发射器。xon/xoff常指为“软件流控制”。典型地,接收器将发送一个xoff字符,当它不能接收任何更多的数据时(例如,它可能需要时间来处理一些事情),当它能够再次接收更多的数据时,将发送一个xon字符给发射器。在本技术实施例中,将xon/xoff的pfc报文作为流量控制报文,实现基于优先级的流量控制。示例性地,pfc报文的格式如表5所示。
[0180]
表5
[0181][0182]
仍以图12所示的应用场景为例,中间交换机接收目标信令报文并解析,如果通告对象不是中间交换机自身,则不作特殊操作,将目标信令报文继续转发。
[0183]
例如,交换机l1收到目标信令报文,从帧头中提取reserved字段并解析,发现是特征值1,则构造如表5所示格式的pfc报文发送给对应的网络设备,例如源服务器。之后,可将该目标信令报文丢弃。其中,pfc报文的time[n]字段为65535,用于指示在65535所示时间内暂停发送目标队列n的数据包。
[0184]
又例如,第一交换机l2收到目标信令报文,从帧头中提取reserved字段并解析,发现是特征值2,则构造表5所示格式的pfc报文给对应的网络设备,例如源服务器。之后,将该目标信令报文丢弃。其中,pfc报文的time[n]字段为0,用于指示继续发送目标队列n的数据包。
[0185]
需要说明的是,由于pfc是基于优先级的流量控制报文,priority_enable_vector字段e[n]指示优先级为n的队列的time值是否有效。以网络设备具有n个优先级的队列为例,如果需要网络设备暂停发送所有队列的数据包,则目标队列包括n个队列,则e[1]至e[n]的值均为非0,将time的值按照暂停时间进行设置。如果需要网络设备暂停发送部分队列的数据包,以目标队列包括1个队列为例,则目标队列是哪个优先级的队列,哪个优先级队列所对应的e[n]的值为非0,将time的值按照暂停时间进行设置。
[0186]
除了通过上述方式由第一交换机向网络设备发送目标流量控制信息来指示网络设备暂停或继续发送目标队列的数据包的方式外,第一交换机也可以不指定目标队列,只是通过目标流量控制信息指示网络设备暂停或继续发送数据包,由网络设备来确定暂停或发送哪个队列的数据包。
[0187]
另外,本技术实施例上述过程仅以构造pfc报文来携带目标流量控制信息的方式为例进行说明。除了pfc报文之外,还可以采用pause报文实现,本技术实施例不对携带目标
流量控制信息的报文的类型进行限定。
[0188]
pause报文是一种用于控制mac数据流量的报文。当对端数据量过大,将无法及时处理数据时,会向数据上游mac(在本技术实施例中是流量来源对应的网络设备)发送puase报文,通知上游mac在一段时间内停止发送数据,停止时间记录在pause报文的pause_timing字段。也就是说,该记录有停止时间的pause_timing字段用于携带目标流量控制信息。当上游mac接收到对端的有效pause报文时,会开始计时,并会停止发送数据,防止对端无法及时处理数据,导致对端fifo溢出或者数据丢失。若计时结束,并且没有收到新的pause报文,将重新发送数据。若计时没有结束,且新收到的pause报文pause_timing字段为全0,则表示可以重新发送数据,此时停止计时,重新开始发送数据。
[0189]
在示例性实施例中,第一交换机根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,包括:根据目标信令报文携带的流量来源信息确定流量来源端口;通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息。
[0190]
示例性地,通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息,包括:通过流量来源端口向流量来源信息对应的网络设备发送第三流量控制信息,该第三流量控制信息用于指示暂停发送流量来源端口所对应的队列的数据包。该种情况下,通过第三流量控制信息来控制暂停发送该流量来源端口所对应的所有队列的数据包,实现了端口级控制。本技术实施例不对第三流量控制信息的发送方式进行限定,例如,向流量来源信息对应的网络设备发送pause报文,通过pause报文来携带第三流量控制信息,以指示该流量来源端口所对应的队列的数据包均暂停发送。例如,将pause报文的pause_timing字段的值设为非0,以用来携带第三流量控制信息,用于指示在该字段所表示的时间内暂停发送数据包。
[0191]
示例性地,通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息,包括:通过流量来源端口向流量来源信息对应的网络设备发送第四流量控制信息,该第四流量控制信息用于指示继续发送所述流量来源端口所对应的队列的数据包。该种情况下,通过第四流量控制信息来控制继续发送该流量来源端口所对应的所有队列的数据包,实现了端口级控制。本技术实施例不对第四流量控制信息的发送方式进行限定,例如,向流量来源信息对应的网络设备发送pause报文,通过pause报文来携带第四流量控制信息,以指示该流量来源端口所对应的队列的数据包均继续发送。例如,将pause报文的pause_timing字段的值设为0,以用来携带第四流量控制信息,用于指示继续发送数据包。
[0192]
以第一交换机与流量来源信息对应的网络设备之间的交互过程为例,如图11所示,该网络拥塞的控制方法包括如下几个过程。
[0193]
1105,网络设备接收第一交换机发送的目标流量控制信息,目标流量控制信息用于指示进行流量控制,目标流量控制信息是第一交换机接收到第二交换机在目标网络拥塞状态发送的目标信令报文之后发送的。
[0194]
在示例性实施例中,接收第一交换机发送的目标流量控制信息,包括但不限于如下两种情况。
[0195]
情况一:接收第一交换机发送的第一流量控制信息,第一流量控制信息用于指示暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0196]
示例性地接收第一交换机发送的第一流量控制信息包括:接收第一交换机发送的
第一pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息。
[0197]
情况二:接收第一交换机发送的第二流量控制信息,第二流量控制信息用于指示继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0198]
示例性地,接收第一交换机发送的第二流量控制信息,包括:接收第一交换机发送的第二pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息。
[0199]
1106,网络设备根据目标流量控制信息进行流量控制。
[0200]
在示例性实施例中,根据目标流量控制信息进行流量控制,包括但不限于如下两种控制方式。
[0201]
控制方式一:根据第一流量控制信息暂停发送目标队列的数据包。
[0202]
示例性地,根据第一流量控制信息暂停发送目标队列的数据包,包括:根据第一pfc报文的时间字段的值确定暂停发送数据包的时间长度,在时间长度内暂停发送目标队列的数据包。
[0203]
控制方式二:根据第二流量控制信息继续发送目标队列的数据包。
[0204]
示例性地,根据第二流量控制信息继续发送目标队列的数据包,包括:根据第二pfc报文的时间字段的值继续发送目标队列的数据包。
[0205]
采用本技术实施例提供的方法进行网络拥塞的控制,针对cnp失效状态,将本技术实施例提供的方法与补充cnp报文的相关技术进行对比,得到的测试结果如表6所示。
[0206]
表6
[0207][0208]
从表6所示的cnp失效场景下的测试结果可以看出,本技术实施例提供的方法在端口堆积和业务时延均得到了数量级的优化,且对吞吐几乎无影响。
[0209]
本技术实施例提供的方法,通过识别网络拥塞状态,当处于cnp失效状态时,通过信令报文指示第一交换机进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网。不仅解决了cnp失效的问题,还解决了大规模高并发场景下dcqcn控速失效的问题。
[0210]
本技术实施例提供了一种网络拥塞的控制装置,该装置用于执行图11所示的网络拥塞的控制方法中第一交换机所执行的功能。参见图13,该装置包括:
[0211]
接收模块1301,用于接收第二交换机在目标网络拥塞状态发送的目标信令报文,目标信令报文携带流量来源信息;
[0212]
发送模块1302,用于根据目标信令报文向流量来源信息对应的网络设备发送目标流量控制信息,目标流量控制信息用于指示进行流量控制。
[0213]
在示例性实施例中,发送模块1302,用于根据目标信令报文向流量来源信息对应
的网络设备发送第一流量控制信息,第一流量控制信息用于指示网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0214]
在示例性实施例中,发送模块1302,用于根据目标信令报文构造第一基于优先级的流量控制pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;向流量来源信息对应的网络设备发送第一pfc报文。
[0215]
在示例性实施例中,接收模块1301,用于接收第二交换机在目标网络拥塞状态发送的第一信令报文,第一信令报文用于指示发送第一流量控制信息。
[0216]
在示例性实施例中,接收模块1301,用于接收第二交换机在目标网络拥塞状态发送的第一拥塞通知包cnp报文,第一cnp报文的帧头中的指定字段的值为第一特征值,第一特征值用于指示发送第一流量控制信息。
[0217]
在示例性实施例中,发送模块1302,用于根据目标信令报文向流量来源信息对应的网络设备发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,目标队列为网络设备的一个或多个队列。
[0218]
在示例性实施例中,发送模块1302,用于根据目标信令报文构造第二基于优先级的流量控制pfc报文,第二pfc报文的时间字段的值为第二值,第二值用于指示第二流量控制信息;向流量来源信息对应的网络设备发送第二pfc报文。
[0219]
在示例性实施例中,接收模块1301,用于接收第二交换机在目标网络拥塞状态发送的第二信令报文,第二信令报文用于指示发送第二流量控制信息。
[0220]
在示例性实施例中,接收模块1301,用于接收第二交换机在目标网络拥塞状态发送的第二拥塞通知包cnp报文,第二cnp报文的帧头中的指定字段的值为第二特征值,第二特征值用于指示发送第二流量控制信息。
[0221]
在示例性实施例中,发送模块1302,用于根据目标信令报文携带的流量来源信息确定流量来源端口;通过流量来源端口向流量来源信息对应的网络设备发送目标流量控制信息。
[0222]
在示例性实施例中,发送模块1302,用于通过流量来源端口向流量来源信息对应的网络设备发送第三流量控制信息,第三流量控制信息用于指示暂停发送流量来源端口所对应的队列的数据包。
[0223]
在示例性实施例中,发送模块1302,用于通过流量来源端口向流量来源信息对应的网络设备发送第四流量控制信息,第四流量控制信息用于指示继续发送流量来源端口所对应的队列的数据包。
[0224]
本技术实施例提供的装置,接收到第二交换机在目标网络拥塞状态发送的目标信令报文后,通过向目标信令报文中携带的流量来源信息所对应的网络设备发送目标流量控制信息,以指示进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网,解决了大规模高并发场景下dcqcn控速失效的问题。
[0225]
本技术实施例提供了一种网络拥塞的控制装置,该装置用于执行图11所示的网络拥塞的控制方法中第二交换机所执行的功能。参见图14,该装置包括:
[0226]
识别模块1401,用于识别网络拥塞状态;
[0227]
发送模块1402,用于响应于网络拥塞状态为目标网络拥塞状态,向第一交换机发
送目标信令报文,目标信令报文携带流量来源信息,目标信令报文用于指示第一交换机进行流量控制。
[0228]
在示例性实施例中,目标信令报文包括第一信令报文或第二信令报文,发送模块1402,用于响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度大于第一阈值,向第一交换机发送第一信令报文,第一信令报文用于指示第一交换机发送第一流量控制信息,第一流量控制信息用于指示流量来源信息对应的网络设备暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;或者,
[0229]
响应于网络拥塞状态为目标网络拥塞状态,且当前的队列长度小于第二阈值,向第一交换机发送第二信令报文,第二信令报文用于指示第一交换机发送第二流量控制信息,第二流量控制信息用于指示网络设备继续发送目标队列的数据包,第二阈值小于第一阈值。
[0230]
在示例性实施例中,该装置还包括:
[0231]
获取模块,用于获取第一cnp报文,将第一cnp报文的帧头中的指定字段的值设为第一特征值,将第一cnp报文作为第一信令报文;
[0232]
或者,获取模块,用于获取第二cnp报文,将第二cnp报文的帧头中的指定字段的值设为第二特征值,将第二cnp报文作为第二信令报文。
[0233]
在示例性实施例中,识别模块1401,用于读取当前的队列长度及显式拥塞通知ecn阈值范围,ecn阈值范围用于指示添加ecn标识的概率,ecn标识用于指示网络发生拥塞;根据当前的队列长度及ecn阈值范围识别网络拥塞状态。
[0234]
本技术实施例提供的装置,通过识别网络拥塞状态,在目标网络拥塞状态,通过目标信令报文指示第一交换机进行流量控制,从而抑制拥塞侧的队列积压,保证业务低时延,且不影响业务的吞吐量,能够支持大规模roce组网,解决大规模高并发场景下dcqcn控速失效的问题。
[0235]
本技术实施例提供了一种网络拥塞的控制装置,该装置用于执行图11所示的网络拥塞的控制方法中网络设备所执行的功能。参见图15,该装置包括:
[0236]
接收模块1501,用于接收第一交换机发送的目标流量控制信息,目标流量控制信息用于指示进行流量控制,所示目标流量控制信息是第一交换机接收到第二交换机在目标网络拥塞状态发送的目标信令报文之后发送的;
[0237]
控制模块1502,用于根据目标流量控制信息进行流量控制。
[0238]
在示例性实施例中,接收模块1501,用于接收第一交换机发送的第一流量控制信息,第一流量控制信息用于指示暂停发送目标队列的数据包,目标队列为网络设备的一个或多个队列;
[0239]
控制模块1502,用于根据第一流量控制信息暂停发送目标队列的数据包。
[0240]
在示例性实施例中,接收模块1501,用于接收第一交换机发送的第一pfc报文,第一pfc报文的时间字段的值为第一值,第一值用于指示第一流量控制信息;
[0241]
控制模块1502,用于根据第一pfc报文的时间字段的值确定暂停发送数据包的时间长度,在时间长度内暂停发送目标队列的数据包。
[0242]
在示例性实施例中,接收模块1501,用于接收第一交换机发送的第二流量控制信息,第二流量控制信息用于指示继续发送目标队列的数据包,目标队列为网络设备的一个
memory,缩写:rom)和随机存取存储器(英文:random access memory,缩写:ram)。其中,rom包括基本输入/输出系统(英文:basic input/output system,缩写:bios)或嵌入式系统;ram包括应用程序和操作系统。当需要运行网络拥塞的控制设备1600时,通过固化在rom中的bios或者嵌入式系统中的bootloader引导系统进行启动,引导网络拥塞的控制设备1600进入正常运行状态。在网络拥塞的控制设备1600进入正常运行状态后,运行在ram中的应用程序和操作系统,从而,完成方法实施例中涉及网络拥塞的控制设备1600的处理过程。
[0255]
可以理解的是,图16仅仅示出了网络拥塞的控制设备1600的简化设计。在实际应用中,网络拥塞的控制设备1600可以包含任意数量的接口,处理器或者存储器。
[0256]
应理解的是,上述处理器可以是中央处理器(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processing,dsp)、专用集成电路(applicationspecific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。值得说明的是,处理器可以是支持进阶精简指令集机器(advanced risc machines,arm)架构的处理器。
[0257]
进一步地,在一种可选的实施例中,上述存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。存储器还可以包括非易失性随机存取存储器。例如,存储器还可以存储设备类型的信息。
[0258]
该存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用。例如,静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic random access memory,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data date sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
[0259]
还提供了一种计算机可读存储介质,存储介质中存储有至少一条指令,指令由处理器加载并执行以实现如上任一所述的网络拥塞的控制方法。
[0260]
本技术提供了一种计算机程序,当计算机程序被计算机执行时,可以使得处理器或计算机执行上述方法实施例中对应的各个步骤和/或流程。
[0261]
提供了一种芯片,包括处理器,用于从存储器中调用并运行所述存储器中存储的指令,使得安装有所述芯片的通信设备执行上述各方面中的方法。
[0262]
提供另一种芯片,包括:输入接口、输出接口、处理器和存储器,所述输入接口、输出接口、所述处理器以及所述存储器之间通过内部连接通路相连,所述处理器用于执行所述存储器中的代码,当所述代码被执行时,所述处理器用于执行上述各方面中的方法。
[0263]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序
产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本技术所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk)等。
[0264]
本技术中术语“第一”、“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对执行顺序进行限定。还应理解,尽管描述中使用术语第一、第二等来描述各种元素,但这些元素不应受术语的限制。这些术语只是用于将一元素与另一元素区别分开。
[0265]
以上所述的具体实施方式,对本技术的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本技术的具体实施方式而已,并不用于限定本技术的保护范围,凡在本技术的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献