防死锁方法及网络设备与流程
本技术涉及数据通信,具体而言,涉及一种防死锁方法及网络设备。
背景技术:
1、在传统的roce(rdma over converged ethernet,基于融合以太网的远程直接内存访问)无损以太网络场景中,包括发送端、接收端和至少一个网络设备(如交换机),网络设备用于将发送端和接收端进行网络连接,发送端发出的报文通过网络设备发送到接收端。为了实现rdma(remote direct memory access,远程直接内存访问)的高吞吐、低延迟传输,必须保证网络在拥塞时不发生丢包,所以需要同时部署端到端的拥塞控制机制以及逐跳的流量控制机制。ecn(explicit congestion notification,显式拥塞通知)和pfc(priority flow control,基于优先级的流量控制)是传统roce 无损网络中两种核心的协同控制手段。ecn工作在端到端层面:当硬件队列缓存占用达到配置的ecn阈值后视为拥塞发生,网络设备会对超过ecn阈值的报文进行ecn标记,接收端收到已标记报文后生成cnp(congestion notification packet,拥塞通知报文)回传给发送端,发送端在收到cnp报文之后会降低发送的流量带宽,实现降速。pfc工作在逐跳层面:当队列缓存占用达到pfc阈值时,网络设备会对该优先级直接向上一跳设备发送反压帧,暂停对应优先级的流量发送,直到缓存占用缓解。
2、在实际网络中,网络链路延迟和流量模型是时刻变化的。不同应用场景下,从触发ecn标记到发送端实际降速的响应周期长短不同,如果ecn和pfc之间的阈值间隔不能随链路条件动态调整,就可能出现无法充分利用芯片缓存,从而导致反复触发pfc直至pfc死锁的问题。
3、针对上述问题,现有技术通常采用以下方案:
4、现有技术方案一:在传统的无损以太网络场景中,ecn和pfc都是独立配置静态阈值。如图1所示,通常的做法是为发送队列先配置一个静态ecn阈值(例如,队列缓存的20%),再配置一个静态pfc阈值(例如,队列缓存的60%),之后流量进入网络设备,队列缓存开始增长,发送端持续发送报文,当队列缓存达到ecn阈值时,触发对待转发报文进行ecn标记,接收端收到已标记报文后生成cnp报文回传发送端。此时,理想状态是发送端收到cnp报文后立即开始降速,队列缓存得以排空,拥塞解除,但由于时间滞后性(从触发ecn标记到发送端收到cnp报文并降速之间存在延迟),在发送端降速生效之前,发送端仍在持续发送报文,导致网络设备占用的队列缓存继续增长,当队列缓存达到pfc阈值时,触发pfc反压,正常情况下pfc反压生效,发送端停止发送,拥塞解除,队列排空,而在多链路场景下,多条链路同时触发pfc反压,可能导致死锁,进而引发网络吞吐量下降甚至业务中断。
5、也就是,这种静态配置方式忽略了ecn响应链路中的时间滞后性。从网络设备触发ecn标记开始,到接收端收到已标记报文并回传cnp报文,再到发送端实现降速后,中间这段时间内,发送端一直在发送报文,流量会持续发往接收端。如果pfc阈值配置的不合理,可能造成流量频繁触发pfc,如果多条链路都触发pfc,就容易造成典型的pfc死锁,导致网络吞吐量急剧下降甚至业务中断。
6、现有技术方案二:通过卷积神经网络等机器学习方法对实际流量进行仿真建模从而实现动态修改ecn与pfc的配置值,以减少触发pfc,降低死锁风险。但是,该方案依赖神经网络模型进行流量预测和参数调整,市面上常见的网络设备均只有简单的cpu,性能较差,无法满足神经网络。满足以上需求,需要高性能gpu或专用ai加速芯片等额外硬件支持,实用性较差,性价比低,无法在普通网络设备上广泛部署。
7、在一般roce无损网络中,ecn与pfc之间的静态阈值配置因忽略时间滞后性而易导致pfc死锁,而基于机器学习的动态调整方案又对硬件要求过高而缺乏实用性与性价比。因此,如何在不依赖高算力硬件的前提下,使pfc阈值能够根据实际链路延迟动态自适应调整,从而有效避免pfc死锁,是本领域需要解决的问题。
技术实现思路
1、本技术实施例的目的在于提供一种防死锁方法及网络设备,用以改善上述问题。
2、为了实现上述目的,本技术实施例采用的技术方案如下:
3、第一方面,本技术实施例提供了一种防死锁方法,应用于网络设备,所述网络设备包括处理器和交换芯片,所述方法包括:
4、所述交换芯片的入端口接收待转发报文,确定所述待转发报文支持显式拥塞通知ecn,为所述待转发报文分配预设类型标识符;
5、所述交换芯片在检测到所述待转发报文对应的出端口发生拥塞时,触发对所述待转发报文进行ecn标记,确定所述待转发报文为已标记报文后,将所述待转发报文转发至接收端,同时上送所述处理器;
6、所述处理器记录上送时间戳为所述待转发报文对应优先级的拥塞发生时刻;
7、所述交换芯片识别所述接收端返回的对应的拥塞通知报文cnp报文,将所述cnp报文转发至发送端,同时上送所述处理器;
8、所述处理器记录上送时间戳为所述优先级的cnp报文到达时刻;
9、所述交换芯片在检测到所述出端口拥塞解除时,触发上报缓存事件至所述处理器;
10、所述处理器记录上报时间戳为所述优先级的发送端降速时刻;
11、所述处理器根据所述拥塞发生时刻、所述cnp报文到达时刻和所述发送端降速时刻,计算所述优先级从触发ecn标记到所述发送端完成降速期间所需的缓存容量,并基于所述缓存容量配置所述交换芯片中所述入端口的所述优先级的基于优先级的流量控制pfc阈值。
12、可选地,所述确定所述待转发报文为已标记报文,包括:
13、所述交换芯片在所述出端口识别所述待转发报文中包括拥塞标记且所述待转发报文携带有所述预设类型标识符,将所述待转发报文确定为已标记报文。
14、可选地,所述交换芯片识别所述接收端返回的拥塞通知报文cnp报文,包括:
15、所述交换芯片在出端口通过用户自定义字段的偏移位置解析所述接收端返回的报文的有效载荷,若所述有效载荷的基本传输头中操作码字段的值为设定值,则将该返回的报文确定为所述cnp报文。
16、可选地,在所述处理器记录上送时间戳为所述待转发报文对应优先级的拥塞发生时刻之后,所述方法还包括:
17、所述处理器基于所述待转发报文的源ip地址、目的ip地址、入端口标识、出端口标识和所述优先级,生成唯一索引,并将所述唯一索引与所述拥塞发生时刻关联存储。
18、可选地,在所述处理器记录上送时间戳为所述优先级的cnp报文到达时刻之后,所述方法还包括:
19、所述处理器解析所述cnp报文的源ip地址、目的ip地址、入端口标识、出端口标识和优先级;
20、所述处理器基于所述cnp报文的源ip地址、所述目的ip地址、所述入端口标识、所述出端口标识和优先级,匹配预先存储的所述唯一索引,并将所述cnp报文到达时刻与所述唯一索引关联。
21、可选地,所述处理器根据所述拥塞发生时刻、所述cnp报文到达时刻和所述发送端降速时刻,计算所述优先级从触发ecn标记到所述发送端完成降速期间所需的缓存容量,包括:
22、计算所述cnp报文到达时刻与所述拥塞发生时刻的差值,得到所述优先级从触发ecn标记到收到所述cnp报文的拥塞通知时延;
23、计算所述发送端降速时刻与所述cnp报文到达时刻的差值,得到所述优先级从收到所述cnp报文到所述发送端完成降速的拥塞收敛时延;
24、计算所述拥塞通知时延与所述拥塞收敛时延之和,得到所述优先级从触发ecn标记到所述发送端完成降速的总时延;
25、计算所述总时延和预先获取的所述入端口的速率的乘积,得到所述缓存容量。
26、可选地,所述cnp报文到达时刻为多个;
27、所述计算所述cnp报文到达时刻与所述拥塞发生时刻的差值,得到所述优先级从触发ecn标记到收到所述cnp报文的拥塞通知时延的步骤,包括:
28、计算所述cnp报文到达时刻与每个所述拥塞发生时刻的差值,并取所有所述差值中的最大值作为所述拥塞通知时延;
29、所述计算所述发送端降速时刻与所述cnp报文到达时刻的差值,得到所述优先级从收到所述cnp报文到所述发送端完成降速的拥塞收敛时延的步骤,包括:
30、计算所述发送端降速时刻与每个所述cnp报文到达时刻的差值,并取所有所述差值中的最大值作为所述拥塞收敛时延。
31、可选地,所述pfc阈值包括pfc恢复门限值和pfc暂停门限值;
32、所述处理器基于所述缓存容量配置所述入端口的所述优先级的基于优先级的流量控制pfc阈值,包括:
33、所述处理器将所述缓存容量配置为所述入端口的所述优先级的所述pfc暂停门限值;
34、所述处理器将所述pfc暂停门限值与预设滞后量的差值,配置为所述入端口的所述优先级的pfc恢复门限值。
35、第二方面,本技术实施例提供了一种网络设备,所述网络设备包括处理器和交换芯片;
36、所述交换芯片,用于在入端口接收待转发报文并确定所述待转发报文支持显式拥塞通知ecn时,为所述待转发报文分配预设类型标识符;
37、所述交换芯片,还用于在检测到所述待转发报文对应的出端口发生拥塞时,触发对所述待转发报文进行ecn标记,确定所述待转发报文为已标记报文后,将所述待转发报文转发至接收端,同时上送所述处理器;
38、所述处理器,用于记录上送时间戳为所述待转发报文对应优先级的拥塞发生时刻;
39、所述交换芯片,还用于识别所述接收端返回的对应的拥塞通知报文cnp报文,将所述cnp报文转发至发送端,同时上送所述处理器;
40、所述处理器,还用于记录上送时间戳为所述优先级的cnp报文到达时刻;
41、所述交换芯片,还用于在检测到所述出端口拥塞解除时,触发上报缓存事件至所述处理器;
42、所述处理器,还用于记录上报时间戳为所述优先级的发送端降速时刻;
43、所述处理器,还用于根据所述拥塞发生时刻、所述cnp报文到达时刻和所述发送端降速时刻,计算所述优先级从触发ecn标记到所述发送端完成降速期间所需的缓存容量,并基于所述缓存容量配置所述交换芯片中所述入端口的所述优先级的基于优先级的流量控制pfc阈值。
44、可选地,所述处理器具体用于:计算所述cnp报文到达时刻与所述拥塞发生时刻的差值,得到所述优先级从触发ecn标记到收到所述cnp报文的拥塞通知时延;计算所述发送端降速时刻与所述cnp报文到达时刻的差值,得到所述优先级从收到所述cnp报文到所述发送端完成降速的拥塞收敛时延;计算所述拥塞通知时延与所述拥塞收敛时延之和,得到所述优先级从触发ecn标记到所述发送端完成降速的总时延;计算所述总时延和预先获取的所述入端口的速率的乘积,得到所述缓存容量。
45、相对现有技术,本技术实施例提供的一种防死锁方法及网络设备,首先,交换芯片的入端口接收待转发报文,确定待转发报文支持ecn时为其分配预设类型标识符,同时在检测到待转发报文对应的出端口发生拥塞时,触发对待转发报文进行ecn标记时,并在确定待转发报文为已标记报文后,将待转发报文转发至接收端,同时上送处理器,处理器记录上送时间戳为待转发报文对应优先级的拥塞发生时刻,然后,网络设备在识别到接收端返回的cnp报文时,将cnp报文转发至发送端,同时上送处理器,处理器记录上送时间戳为该优先级的cnp报文到达时刻,之后,交换芯片在检测到出端口拥塞解除时,触发上报缓存事件至处理器,处理器记录上报时间戳为该优先级的发送端降速时刻,最后,处理器根据同一优先级的拥塞发生时刻、cnp报文到达时刻和发送端降速时刻,计算该优先级从触发ecn标记到发送端完成降速期间所需的缓存容量,并基于该缓存容量配置交换芯片中入端口的该优先级的pfc阈值,从而能够在不依赖高算力硬件的前提下,根据实际链路延迟动态自适应调整pfc阈值,有效避免pfc死锁。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com