拥塞流识别方法、装置、设备及计算机可读存储介质与流程

文档序号:35979154发布日期:2023-11-09 22:09阅读:21来源:国知局
拥塞流识别方法、装置、设备及计算机可读存储介质与流程

本技术涉及通信,尤其涉及一种拥塞流识别方法、装置、设备及计算机可读存储介质。


背景技术:

1、随着高性能计算、人工智能、分布式存储等依赖于超低时延数据中心的业务越来越多,使用者对数据中心中各网络设备(也可以称为网络节点或者节点等,如交换机、路由器、网卡等)间的数据传输时延的要求也越来越高。而在实际使用中,因为拥塞而导致的丢包,是影响业务性能的重要原因。

2、为减少因为拥塞而导致的丢包,可以在数据中心中的网络设备间的数据传输过程中引入基于优先级的流控(priority-based flow control,pfc)机制,然而,该机制的引入,通常会导致当前网络设备的入口队列(也可以称为接收队列或者入队列)发生头阻(head-of-line blocking,holb)。为了解决由pfc机制造成的入口队列发生holb,出现了拥塞隔离(congestion isolation,ci)技术,即当前网络设备在入口队列发生holb时,基于流经入口队列对应的出口队列的每条报文流的报文速率是否大于速率阈值,或者,基于出口队列中缓存的每条报文流包括的显式拥塞通知(explicit congestion notification,ecn)报文数量是否大于预设数量,确定一条报文流是否为拥塞流,在确定一条报文流为拥塞流时,将拥塞流隔离到本地的拥塞队列,并生成包括拥塞流的标识的拥塞控制消息,然后将拥塞控制消息发送给发送拥塞流给当前网络设备的上游网络设备,指示上游网络设备将拥塞流隔离到上游网络设备中的拥塞队列。

3、然而,本技术发明人发现,流经出口队列的非拥塞流的报文速率通常也会大于速率阈值,或者,出口队列中缓存的非拥塞流包括的ecn报文数量也可能大于预设数量,该情况下,上述拥塞隔离技术会将非拥塞流误识别为拥塞流,从而将非拥塞流也隔离到拥塞队列,严重影响非拥塞流的吞吐量和时延。


技术实现思路

1、本技术提供一种拥塞流识别方法、装置、设备及计算机可读存储介质,可以准确识别出拥塞流和非拥塞流,有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。

2、第一方面,提供一种拥塞流识别方法,该方法应用于第一网络设备,该方法包括如下步骤:检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲,若检测到第一入口队列拥塞,则检测多个出口队列的状态,多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且每个出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且每个出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互不相同,若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。

3、上述方案中,一个网络设备可以通过主动检测入口队列以及入口队列对应的多个出口队列(指网络设备中用于转发该入口队列接收的报文流的出口队列)的状态(第一状态、第二状态或者空闲),并在检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列时,将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。可以看出,本方案可以准确识别出拥塞流和非拥塞流,大大降低非拥塞流被误识别拥塞流的可能性,因而能够有效解决现有技术存在的会将非拥塞流误识别为拥塞流的问题。

4、在一种可能的实现方式中,具体可以通过如下方式实现检测多个出口队列的状态:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头。

5、在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若检测到拥塞的出口队列的带宽利用率大于利用率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头;若检测到带宽利用率小于或者等于利用率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

6、在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若接收到第一网络设备的下游网络设备发送的基于优先级的流量控制pfc报文的频率小于或者等于频率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,pfc报文为下游网络设备在检测到第二入口队列拥塞时发送,第二入口队列为下游网络设备中用于接收拥塞的出口队列转发的报文流的入口队列;若接收到下游网络设备发送的pfc报文的频率大于频率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

7、在一种可能的实现方式中,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若未接收到第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,第二拥塞控制消息用于指示将第二拥塞流隔离到第一网络设备中的拥塞队列,第二拥塞流属于拥塞的出口队列转发的报文流;若接收到下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

8、在一种可能的实现方式中,第一方面描述的方法还包括如下步骤:生成第一拥塞控制消息,并向上游网络设备发送第一拥塞控制消息,第一拥塞控制消息携带第一拥塞流的标识,第一拥塞控制消息用于指示将第一拥塞流隔离到上游网络设备中的拥塞队列,第一拥塞控制消息还携带多个出口队列的状态;在预设时长后,重新检测第一入口队列和多个出口队列的状态,基于重新检测的第一入口队列和多个出口队列的状态,确定多个出口队列转发的报文流中是否存在至少一条拥塞流,并基于检测结果生成新的第一拥塞控制消息,向上游网络设备发送新的第一拥塞控制消息;

9、其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。

10、可以看出,上述实现方式中,网络设备可以基于重新检测的第一入口队列的状态和多个出口队列的状态,确定网络设备中的拥塞流情况,在拥塞流情况不同时,生成的新的第一拥塞控制消息可以指示上游网络设备进行至少一种或多种拥塞控制操作,具有较强的灵活性。

11、第二方面,提供一种拥塞流识别装置,该装置应用于第一网络设备,装置包括:检测模块,用于检测第一入口队列的状态,第一入口队列的状态为拥塞或空闲;检测模块,还用于若检测到第一入口队列拥塞,则检测多个出口队列的状态,多个出口队列中每个出口队列的状态为空闲、第一状态或者第二状态,第一状态表示每个出口队列拥塞且每个出口队列的拥塞是第一入口队列拥塞的源头,第二状态表示每个出口队列拥塞且每个出口队列的拥塞不是第一入口队列拥塞的源头,多个出口队列用于转发第一入口队列接收的报文流,多个出口队列用于转发的报文流互不相同;处理模块,用于若检测到多个出口队列中存在处于第一状态的出口队列和空闲的出口队列,则将处于第一状态的出口队列转发的报文流确定为第一拥塞流,将空闲的出口队列转发的报文流确定为非拥塞流。

12、在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测多个出口队列的状态:检测多个出口队列是否拥塞,若检测到多个出口队列中存在拥塞的出口队列和空闲的出口队列,则检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头。

13、在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若检测到拥塞的出口队列的带宽利用率大于利用率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头;若检测到带宽利用率小于或者等于利用率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

14、在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若接收到第一网络设备的下游网络设备发送的pfc报文的频率小于或者等于频率阈值,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,pfc报文为下游网络设备在检测到第二入口队列拥塞时发送,第二入口队列为下游网络设备中用于接收拥塞的出口队列转发的报文流的入口队列;若接收到下游网络设备发送的pfc报文的频率大于频率阈值,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

15、在一种可能的实现方式中,检测模块,具体可以通过如下方式实现检测拥塞的出口队列的拥塞是否为第一入口队列拥塞的源头:若未接收到第一网络设备的下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞是第一入口队列拥塞的源头,第二拥塞控制消息用于指示将第二拥塞流隔离到第一网络设备中的拥塞队列,第二拥塞流属于拥塞的出口队列转发的报文流;若接收到下游网络设备发送的第二拥塞控制消息,则确定拥塞的出口队列拥塞不是第一入口队列拥塞的源头。

16、在一种可能的实现方式中,第二方面描述的装置还包括:发送模块,用于生成第一拥塞控制消息,并向上游网络设备发送第一拥塞控制消息,第一拥塞控制消息携带第一拥塞流的标识,第一拥塞控制消息用于指示将第一拥塞流隔离到上游网络设备中的拥塞队列,第一拥塞控制消息还携带多个出口队列的状态;检测模块,还用于在预设时长后,重新检测第一入口队列和多个出口队列的状态;处理模块,还用于基于重新检测的第一入口队列和多个出口队列的状态,确定多个出口队列转发的报文流中是否存在至少一条拥塞流;发送模块,还用于基于检测结果生成新的第一拥塞控制消息,向上游网络设备发送新的第一拥塞控制消息;

17、其中,若确定所述多个出口队列转发的报文流中不存在至少一条拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列;若确定所述多个出口队列转发的报文流中存在至少一条拥塞流,且所述至少一条拥塞流不包括所述第一拥塞流,所述新的第一拥塞控制消息携带所述重新检测的多个出口队列的状态和所述至少一条拥塞流的标识,所述新的第一拥塞控制消息用于指示基于所述重新检测的多个出口队列的状态,停止将所述第一拥塞流隔离到所述上游网络设备中的拥塞队列,并指示将所述至少一条拥塞流隔离到所述上游网络设备中的拥塞队列。

18、第三方面,提供一种网络设备,所述网络设备包括处理器和存储器;所述处理器用于执行所述存储器存储的指令,使得所述网络设备实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。

19、第四方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有指令,所述指令用于实现如上述第一方面或者第一方面的任意可能的实现方式提供的方法。

20、第五方面,提供一种计算机程序产品,包括计算机程序,当所述计算机程序被计算设备读取并执行时,使得所述计算设备执行如上述第一方面或者第一方面的任意可能的实现方式提供的方法。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1