pfc死锁检测方法及装置
技术领域
1.本技术涉及网络通信领域,具体而言,涉及一种pfc死锁检测方法、装置、电子设备和计算机可读存储介质。
背景技术:
2.目前,大多数网络通常采用优先级流量控制(priority-based flow control,pfc)构建无损以太网,用于保证网络传输过程中不丢包。
3.然而,虽然pfc机制能够通过给不同队列映射不同优先级来实现基于队列的流量控制,但采用pfc机制的网络可能会发生pfc死锁。pfc死锁是指当多个交换机之间因环路等原因同时出现拥塞,各自端口缓存消耗超过阈值,而又相互等待对方释放资源,从而导致在环路中所有交换机上的数据流都永久阻塞的一种网络状态。
4.要解决pfc死锁,首先要确定是否发生pfc死锁,因此,需要通过对网络设备进行pfc死锁检测。现有的pfc死锁检测通常是检测一定时间段内是否持续收到pfc pause帧。然而,pfc pause帧的长时间存在,可能是因为网络中的实时流量较大,并不一定是因为产生了pfc死锁,因此,上述检测方式会存在一定程度的误判。
技术实现要素:
5.本技术实施例的目的在于提供一种pfc死锁检测方法、装置、电子设备和计算机可读存储介质,用以解决现有技术中对pfc死锁检测存在误判的问题,从而提高pfc死锁检测的准确性。
6.第一方面,本技术提供一种pfc死锁检测方法,应用于网络设备,所述网络设备上配置有pfc协议,所述方法包括:判断是否接收到预设次数的pfc pause帧;若是,判断本设备是否与其他网络设备形成环路;若存在二层环路或三层环路,则确定产生pfc死锁。
7.在本技术实施例中,首先判断是否在短时间内多次接收到pfc pause帧,若是,则触发环路检测机制,检测本设备是否与其他网络设备形成环路,若形成环路,则确定产生了pfc死锁。在进行pfc死锁检测时,引入环路检测机制,通过判断是否存环路进而判断是否产生pfc死锁,提高了pfc死锁检测的准确性。
8.在可选的实施方式中,所述判断本设备是否与其他网络设备形成环路,包括:判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若为是,则自当前时刻经过第二预设时长后,在所述第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若在第三预设时长内接收到携带有本设备对应的路由标记的报文,则确定本设备与其他网络设备形成所述三层环路;若在所述第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成所述三层环路。
9.在本技术实施例中,在进行三层环路检测时,通过判断是否接收到携带有路由标记的报文,并在接收到携带有路由标记的报文时延时第二预设时长后,再进行报文标记并发送标记后的报文,避免对已经存在路由标记的报文再次标记而导致原有的路由标记被覆盖,从而影响环路检测性能。
10.在可选的实施方式中,所述方法还包括:在确定本设备与其他网络设备未形成所述三层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
11.在可选的实施方式中,所述判断本设备是否与其他网络设备形成环路,包括:发送二层环路检测报文,所述二层环路检测报文中包括本设备的标识;若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成所述二层环路;若在所述第四预设时长内未接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备未形成所述二层环路。
12.在可选的实施方式中,所述方法还包括:在确定本设备与其他网络设备未形成所述二层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
13.在可选的实施方式中,所述判断是否接收到预设次数的pfc pause帧,包括:判断在首次接收到pfc pause帧之后的连续所述预设次数个预设监控周期内是否均接收到pfc pause帧。
14.在可选的实施方式中,所述判断本设备是否与其他网络设备形成环路,包括:进行二层环路检测,并判断本设备是否与其他网络设备形成二层环路;进行三层环路检测,并判断本设备是否与其他网络设备形成三层环路。
15.在可选的实施方式中,所述方法还包括:若不存在环路,在接下来的与所述预设次数对应的连续多个预设监控周期内暂停发送所述pfc pause帧。
16.第二方面,本技术提供一种pfc死锁检测装置,应用于网络设备,所述网络设备上配置有pfc协议,所述装置包括:判断模块,判断是否接收到预设次数的pfc pause帧;若是,判断本设备是否与其他网络设备形成环路;确定模块,当判断结果为存在二层环路或三层环路时,则确定产生pfc死锁。
17.在可选的实施方式中,所述判断模块具体用于判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若为是,则自当前时刻经过第二预设时长后,在所述第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若在第三预设时长内接收到携带有本设备对应的路由标记的报文,则确定本设备与其他网络设备形成所述三层环路;若在所述第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成所述三层环路。
18.在可选的实施方式中,所述装置还包括:控制模块,用于在判断模块的判断结果为本设备与其他网络设备未形成所述三层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
19.在可选的实施方式中,所述判断模块具体用于发送二层环路检测报文,所述二层环路检测报文中包括本设备的标识;若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成所述二层环路;若在所述第四预设时
长内未接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备未形成所述二层环路。
20.在可选的实施方式中,所述控制模块还用于在判断模块的判断结果为本设备与其他网络设备未形成所述二层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
21.在可选的实施方式中,所述判断模块具体用于判断在首次接收到pfc pause帧之后的连续所述预设次数个预设监控周期内是否均接收到pfc pause帧。
22.在可选的实施方式中,所述判断模块具体用于进行二层环路检测,并判断本设备是否与其他网络设备形成二层环路;进行三层环路检测,并判断本设备是否与其他网络设备形成三层环路。
23.在可选的实施方式中,所述控制模块还用于若不存在环路,在接下来的与所述预设次数对应的连续多个预设监控周期内暂停发送所述pfc pause帧。
24.第三方面,本技术提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如前述实施方式任一项所述的方法。
25.第四方面,本技术提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如前述实施方式任一项所述的方法。
附图说明
26.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
27.图1为本技术实施例提供的一种pfc死锁示意图;
28.图2为本技术实施例提供的一种pfc死锁检测方法的流程图;
29.图3为本技术实施例提供的一种pfc死锁检测装置的结构框图;
30.图4为本技术实施例提供的一种电子设备的结构框图。
31.图标:300-pfc死锁检测装置;301-判断模块;302-确定模块;400-电子设备;401-处理器;402-通信接口;403-存储器;404-总线。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
33.为方便理解本技术,在介绍本技术的方案前,下面将对本技术中所涉及的部分术语或名词进行解释说明:
34.优先级流量控制(priority-based flow control,pfc):pfc机制能够逐跳提供基于优先级的流量控制。在pfc机制下,允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定相应优先级,允许单独暂停和重启其中任意一条虚拟通道,同时允许其它虚拟通道的流量无中断通过。
35.正常情况下,设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当一台交换机的端口出现拥塞并触发pfc水线(xoff水线)时,数据进入的方向(即,下游设备)将发送pfc pause帧反压,上游设备接收到pfc pause帧后停止发送数据,如果其本地端口缓存消耗超过阈值,则继续向上游反压。如此一级级反压,直到网络终端服务器在pause帧中指定的pause time内暂停发送数据,从而消除网络节点因拥塞造成的丢包。通过采用pfc机制,使得某种类型的流量拥塞不会影响其他类型流量的正常转发,从而达到同一链路上不同类型的报文互不影响。
36.pfc死锁:如图1所示,在特殊情况下,例如发生链路故障或设备故障时,bgp路由重新收敛期间可能会出现短暂环路。当4台交换机都达到xoff水线时,会同时向其对应的上游设备发送pfc pause帧。此时,该拓扑中所有的交换机都处于停留状态,由于pfc的反压效应,使得整个网络或部分网络的吞吐量将变为零。
37.本技术实施例提供一种pfc死锁检测方法、装置、电子设备和计算机可读存储介质,用以解决现有技术中对pfc死锁检测存在误判的问题,从而提高pfc死锁检测的准确性。
38.该技术可采用相应的软件、硬件以及软硬结合的方式实现。以下对本技术实施例进行详细介绍。
39.下面将针对本技术所提供的pfc死锁检测方法进行介绍。
40.请参阅图2,图2为本技术实施例提供的一种pfc死锁检测方法的流程图,该pfc死锁检测方法应用于网络设备,该网络设备上配置有pfc协议,该方法可以包括如下步骤:
41.步骤101:判断是否接收到预设次数的pfc pause帧。
42.步骤102:若是,判断本设备是否与其他网络设备形成环路。
43.步骤103:若存在环路,则确定产生pfc死锁。
44.下面将结合示例对上述步骤进行说明。
45.步骤101:判断是否接收到预设次数的pfc pause帧。
46.本技术实施例中,首先判断网络设备是否接收到预设次数的pfc pause帧。若网络设备没有接收到pfc pause帧或是仅接受到几个(小于预设次数)pfc pause帧,根据pfc机制的工作原理可知,可以认为pfc机制处于正常运行状态,整个网络环境中并没有发生pfc死锁。
47.若网络设备在短时间内持续接收到大量(超过预设次数)pfc pause帧,则说明网络环境中可能发生了pfc死锁。
48.作为一种可选的实施方式,上述步骤101可以包括如下内容:
49.判断在首次接收到pfc pause帧之后的与预设次数对应的连续多个预设监控周期内是否均接收到pfc pause帧。
50.具体地,当网络设备的某个端口首次接收到下游设备发送pfc pause帧后,持续监控该端口是否持续接收到pfc pause帧。若在连续预设次数个预设监控周期内均接收到pfc pause帧,则认为网络环境中可能发生了pfc死锁;反之,则认为pfc机制处于正常工作状态,无需进行进一步处理。
51.举例来说,监控周期为10ms,预设次数为3次。在首次接收到下游设备发送pfc pause帧后,该端口在连续的3个监控周期(即接来的3个10ms)中都接收到了pfc pause帧中,则认为网络环境中可能发生了pfc死锁。
52.需要说明的是,监控周期的时长、预设次数的的具体数值可以灵活设置,本技术对此不做限定。
53.作为另一种可选的实施方式,还可以设置一预设时长,若在预设时长内接收到预设次数的pfc pause帧,则认为网络环境中可能发生了pfc死锁。例如,若在5s内,网络设备接收到了10个pfc pause帧,则认为网络环境中可能发生了pfc死锁。
54.步骤102:若是,判断本设备是否与其他网络设备形成环路。
55.本技术实施例中,若网络设备接收到了预设次数的pfc pause帧,则认为网络环境中可能发生了pfc死锁,即网络设备可能与其他网络设备形成了环路,此时,可以进行环路检测。
56.作为一种可选的实施方式,上述步骤102可以包括如下步骤:
57.第一步,进行二层环路检测,并判断本设备是否与其他网络设备形成二层环路。
58.第二步,进行三层环路检测,并判断本设备是否与其他网络设备形成三层环路。
59.需要说明的是,pfc机制是基于端口列队的流量控制,流量可能采用二层转发或是三层转发,对于不同的网络环境来说,流量可能仅基于二层通信协议进行转发(即基于mac地址进行转发),也可能仅基于三层通信协议进行转发(即基于ip地址进行转发),还可能同时基于二层通信协议和三层通信协议进行转发。因此,对于不同的网络环境来说,可以采用二层环路检测、三层环路检测或同时进行二层环路检测和三层环路检测。
60.可以理解,本技术实施例同时进行二层环路检测和三层环路检测。
61.下面分别对二层环路检测和三层环路检测进行介绍。
62.进行二层环路检测可以包括如下步骤:
63.第一步,发送二层环路检测报文,二层环路检测报文中包括本设备的标识。
64.第二步,若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成二层环路;若在第四预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成二层环路。
65.本技术实施例中,在接收到预设次数的pfc pause帧后,网络设备在收到pfc pause帧的端口上启动二层环路检测,发送二层环路检测报文。二层环路检测报文中设置有发送该报文的网络设备的标识,例如该网络设备的mac地址。
66.二层环路检测报文为独立的协议报文,会在网络设备所属的局域网或vlan中不断广播。由于此部分为现有技术,此处不再赘述。
67.在第四预设时长内,发送二层环路检测报文的网络设备若接收到携带有本设备的标识的二层环路检测报文,则说明本设备与其他网络设备形成了二层环路,使得本设备能接收到自身发送的二层环路检测报文。
68.若确定本设备与其他网络设备形成二层环路,则确定网络环境中存在pfc死锁,完成pfc死锁检测。
69.进一步地,在确定网络环境中存在pfc死锁后,将二层环路检测日志发送给系统管理员,以使系统管理员进行干预,解决二层环路问题。二层环路消除后,pfc死锁也会解除,网络环境中的各网络设备可以正常进行流量转发。
70.在第四预设时长内,发送二层环路检测报文的网络设备若没有接收到携带有本设备的标识的二层环路检测报文,则说明本设备没有与其他网络设备形成了二层环路,在接
下来的预设次数个预设监控周期内暂停发送pfc pause帧,需要说明的是,此处的预设次数与步骤101中的预设次数相同。由于本设备在接下来的预设次数个预设监控周期内暂停发送pfc pause帧,根据pfc机制可知,网络环境中的各网络设备可以正常进行流量转发,从而解除pfc死锁。
71.进行三层环路检测可以包括如下步骤:
72.第一步,判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;
73.第二步,若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;
74.若为是,则自当前时刻经过第二预设时长后,在第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;
75.第三步,若在第三预设时长内接收到携带有本设备对应的路由标记的报文,则确定本设备与其他网络设备形成三层环路;若在第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成三层环路。
76.本技术实施例中,由于进行三层通信时,是基于路由进行报文转发,无法类似于二层环路检测一样通过构建一个特殊检测报文实现检测。因此,在进行三层环路检测时,需要对业务数据报文进行标记,发送标记后的业务数据报文,若在此接收到标记后的业务数据报文,则说明本设备与其他网络设备形成三层环路。
77.需要说明的是,pfc机制是基于端口的,网络设备上的同一个端口可能同时属于多个三层网络系统,相应的会对应多个ip地址,任何一个ip地址都可以唯一确定该网络设备的端口,因此,可以选取本网络设备的端口对应的任一一个ip地址作为路由标记。
78.以下对对业务数据报文进行标记进行介绍。
79.在ipv4的报文格式中,存在一个可以编辑的扩展字段,可以将路由标记保存在该扩展字段中,从而实现对ipv4报文进行标记。
80.在ipv6的报文格式中,存在逐跳可选项报头(hop-by-hop options)。转发路径上所有节点都会对逐跳可选项报头进行处理。因此,可以将路由标记保存在逐跳可选项报头中。
81.作为一种可选的实施方式,将逐跳可选项报头中选项类型中动作设置为0,类型字段定义为200,使得网络设备在接收到ipv6报文后,若选项类型中动作设置为0,类型字段定义为200,则确定该逐跳可选项报头中保存的信息为用于进行三层环路检测的路由标记。
82.进一步地,考虑到出现pfc死锁时,可能会有多个网络设备均触发了三层环路检测,即多个网络设备都要对报文进行标记。若一个网络设备接收到别的网络设备发送的标记后的报文后,再次标记会覆盖前一个网络设备标记的内容,从而无法实现环路检测。因此,在对报文进行标记前,需要判断是否接收到携带有路由标记的报文。若没有接收到携带有路由标记的报文,则在当前时刻对多个报文进行标记,并发送标记后的报文。若接收到携带有路由标记的报文,则说明当前网络环境中有其他网络设备在对报文进行标记并发送标记后的报文。为了避免对已经存在路由标记的报文被再次标记,自当前时刻经过第二预设时长后,再对报文进行标记,并发送标记后的报文。
83.需要说明的是,第二预设时长可以为5ms、10ms、20ms等,本技术对此不作限定。
84.作为一种可选的实施方式,在进行报文标记时,对第一预设时长内的多个报文进行标记。本技术实施例中,pfc机制发送了多次pfc pause帧,说明当前网络较为拥堵,发送标记后的报文会占用网络带宽,若对网络设备上的所有报文均进行标记,然后发送标记后的报文,对整个网络环境的性能影响较大。因此,设置第一预设时长,只在第一预设时长内对报文进行标记。第一预设时长可以为10ms,即只对在该10ms内接受到的报文进行标记,减少被标记以及发送的报文数量,从而减少对网络整个网络环境的性能影响。
85.在第三预设时长内,网络设备若接收到携带有本设备对应的路由标记的报文,则说明本设备与其他网络设备形成了三层环路,使得本设备能接收到自身发出去的携带有本设备对应的路由标记的报文。
86.若确定本设备与其他网络设备形成三层环路,则确定网络环境中存在pfc死锁,完成pfc死锁检测。
87.进一步地,在确定网络环境中存在pfc死锁后,将三层环路检测日志发送给系统管理员,以使系统管理员进行干预,解决三层环路问题。三层环路消除后,pfc死锁也会接触,网络环境中的各网络设备可以正常进行流量转发。
88.在第三预设时长内,网络设备若没有接收到携带有本设备对应的路由标记的报文,则说明本设备没有与其他网络设备形成了三层环路,在接下来的预设次数个预设监控周期内暂停发送pfc pause帧,需要说明的是,此处的预设次数可以与步骤101中的预设次数相同。由于本设备在接下来的预设次数个预设监控周期内暂停发送pfc pause帧,根据pfc机制可知,网络环境中的各网络设备可以正常进行流量转发,从而解除pfc死锁。
89.需要说明的是,第三预设时长和第四预设时长可以相等,也可以不相等,本领域技术人员可以根据网络环境中的报文转发速率、时延等因素灵活设置,本技术对此不作限定。
90.综上所述,本技术实施例提供一种pfc死锁检测方法,首先判断是否在短时间内多次接收到pfc pause帧,若是,则触发环路检测机制,检测本设备是否与其他网络设备形成环路,若形成环路,则确定产生了pfc死锁。在pfc死锁检测时,引入环路检测机制,通过判断是否存环路进而判断是否产生pfc死锁,提高了pfc死锁检测的准确性。此外,本技术实施例提供的pfc死锁检测方法应用于网络设备上,当网络环境出现异常时,网络设备可以直接进行pfc死锁检测,无需依赖其他设备进行pfc死锁检测。
91.基于同一发明构思,本技术实施例中还提供一种pfc死锁检测装置。请参阅图3,图3为本技术实施例提供的一种pfc死锁检测装置的结构框图,该pfc死锁检测装置300配置于网络设备,所述网络设备配置有pfc协议,该pfc死锁检测装置300可以包括:
92.判断模块301,判断是否接收到预设次数的pfc pause帧;若是,判断本设备是否与其他网络设备形成环路;
93.确定模块302,当判断结果为存在环路时,则确定产生pfc死锁。
94.在可选的实施方式中,所述判断模块301具体用于判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若为是,则自当前时刻经过第二预设时长后,在所述第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若在第三预设时长内接收到携带有本设备对应的路由标记的报
文,则确定本设备与其他网络设备形成所述三层环路;若在所述第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成所述三层环路。
95.在可选的实施方式中,所述装置还包括:控制模块,用于在判断模块301的判断结果为本设备与其他网络设备未形成所述三层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
96.在可选的实施方式中,所述判断模块301具体用于发送二层环路检测报文,所述二层环路检测报文中包括本设备的标识;若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成所述二层环路;若在所述第四预设时长内未接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备未形成所述二层环路。
97.在可选的实施方式中,所述控制模块还用于在判断模块301的判断结果为本设备与其他网络设备未形成所述二层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。
98.在可选的实施方式中,所述判断模块301具体用于判断在首次接收到pfc pause帧之后的连续所述预设次数个预设监控周期内是否均接收到pfc pause帧。
99.在可选的实施方式中,所述判断模块301具体用于进行二层环路检测,并判断本设备是否与其他网络设备形成二层环路;进行三层环路检测,并判断本设备是否与其他网络设备形成三层环路。
100.请参阅图4,图4为本技术实施例的电子设备400的结构示意图,该电子设备400包括:至少一个处理器401,至少一个通信接口402,至少一个存储器403和至少一个总线404。其中,总线404用于实现这些组件直接的连接通信,通信接口402用于与其他节点设备进行信令或数据的通信,存储器403存储有处理器401可执行的机器可读指令。当电子设备400运行时,处理器401与存储器403之间通过总线404通信,机器可读指令被处理器401调用时执行如上述pfc死锁检测方法。
101.处理器401可以是一种集成电路芯片,具有信号处理能力。上述处理器401可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
102.存储器403可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
103.可以理解,图4所示的结构仅为示意,电子设备400还可包括比图4中所示更多或者更少的组件,或者具有与图4所示不同的配置。图4中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备400可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备400
也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
104.此外,本技术实施例还提供一种计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被计算机运行时,执行如上述实施例中pfc死锁检测方法的步骤。
105.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
106.另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
107.再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
108.需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
109.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
110.以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种pfc死锁检测方法,其特征在于,应用于网络设备,所述网络设备上配置有pfc协议,所述方法包括:判断是否接收到预设次数的pfc pause帧;若是,判断本设备是否与其他网络设备形成环路;若存在二层环路或三层环路,则确定产生pfc死锁。2.根据权利要求1所述的方法,其特征在于,所述判断本设备是否与其他网络设备形成环路,包括:判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若为是,则自当前时刻经过第二预设时长后,在所述第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若在第三预设时长内接收到携带有本设备对应的路由标记的报文,则确定本设备与其他网络设备形成所述三层环路;若在所述第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成所述三层环路。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:在确定本设备与其他网络设备未形成所述三层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。4.根据权利要求1-3任一项所述的方法,其特征在于,所述判断本设备是否与其他网络设备形成环路,包括:发送二层环路检测报文,所述二层环路检测报文中包括本设备的标识;若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成所述二层环路;若在所述第四预设时长内未接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备未形成所述二层环路。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在确定本设备与其他网络设备未形成所述二层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。6.一种pfc死锁检测装置,其特征在于,应用于网络设备,所述网络设备上配置有pfc协议,所述装置包括:判断模块,判断是否接收到预设次数的pfc pause帧;若是,判断本设备是否与其他网络设备形成环路;确定模块,当判断结果为存在二层环路或三层环路时,则确定产生pfc死锁。7.根据权利要求6所述的装置,其特征在于,所述判断模块具体用于:判断是否接收到携带有路由标记的报文,其中,所述路由标记表征网络设备对应的ip地址;若为否,则自当前时刻开始的第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的报文中携带有本设备对应的路由标记;若为是,则自当前时刻经过第二预设时长后,在所述第一预设时长内对待发送报文进行标记,并发送标记后的报文,其中,所述标记后的
报文中携带有本设备对应的路由标记;若在第三预设时长内接收到携带有本设备对应的路由标记的报文,则确定本设备与其他网络设备形成所述三层环路;若在所述第三预设时长内未接收到携带有本设备对应的路由标记的报文,确定本设备与其他网络设备未形成所述三层环路。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:控制模块,用于在判断模块的判断结果为本设备与其他网络设备未形成所述三层环路时,在接下来的所述预设次数个预设监控周期内暂停发送所述pfc pause帧。9.根据权利要求6-8任一项所述的装置,其特征在于,所述判断模块具体用于:发送二层环路检测报文,所述二层环路检测报文中包括本设备的标识;若在第四预设时长内接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备形成所述二层环路;若在所述第四预设时长内未接收到携带有本设备的标识的二层环路检测报文,则确定本设备与其他网络设备未形成所述二层环路。10.一种电子设备,其特征在于,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-5任一项所述的方法。11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机读取并运行时,执行如权利要求1-5任一项所述的方法。
技术总结
本申请提供一种PFC死锁检测方法、装置、电子设备和计算机可读存储介质,所述方法应用于网络设备,所述网络设备上配置有PFC协议,该方法包括:判断是否接收到预设次数的PFC PAUSE帧;若是,判断本设备是否与其他网络设备形成环路;若存在二层环路或三成环路,则确定产生PFC死锁。在进行PFC死锁检测时,引入环路检测机制,通过判断是否存环路进而判断是否产生PFC死锁,提高了PFC死锁检测的准确性。提高了PFC死锁检测的准确性。提高了PFC死锁检测的准确性。
技术研发人员:陈可
受保护的技术使用者:迈普通信技术股份有限公司
技术研发日:2021.11.30
技术公布日:2022/3/8