网络死锁状态检测方法及装置与流程

文档序号:12131766阅读:318来源:国知局
网络死锁状态检测方法及装置与流程

本发明涉及计算机网络技术领域,尤其涉及一种网络死锁状态检测方法及装置。



背景技术:

IEEE802.3中流量控制协议规定,当网络交换机的当前端口的报文缓存量达到某一设定的阈值时,所述当前端口会发送Pause阻塞帧至上游端口,以通知所述上游端口暂停报文的发送,待所述当前端口的报文缓存量被释放至某一设定的阈值时,所述当前端口会发送Pause转发帧至所述上游端口,以通知所述上游端口开始发送报文,通过上述过程的重复,能够防止由于所述当前端口的缓存资源的消耗而导致的报文丢失。

但是,当网络发生网络拓扑的改变时可能出现短暂的报文转发环路,对于由多个网络交换机形成的报文转发环路来说,上述流量控制协议的参与会使得所述报文转发环路进入死锁状态而无法转发报文,从而使得整个网络进入死锁状态。

例如,如图1所示,为网络交换机A和网络交换机B形成的报文转发环路,所述网络交换机A包括端口1和端口3,所述网络交换机B包括端口2和端口4,相应地,所述报文转发环路为端口1→端口2→端口4→端口3→端口1。在所述报文转发环路中,当端口2的报文缓存量达到发送Pause阻塞帧的阈值时,端口2向端口1发送Pause阻塞帧以通知端口A停止发送报文,而端口1无法发送报文又会导致端口3的报文缓存量无法释放,当端口3的报文缓存量达到发送Pause阻塞帧的阈值时,端口3向端口4发送Pause阻塞帧以通知端口4停止发送报文,而端口4无法发送报文又会导致端口2的报文缓存量无法释放,从而导致端口1的持续阻塞。这样网络交换机A和网络交换机B形成的报文转发环路进入死锁状态而无法转发报文。

针对现有技术中存在的网络死锁现象,通常采用网络死锁状态的人工检测方法:人工监测网络交换机的各个端口上设置的计数器,所述计数器用于对其所在端口接收到的Pause阻塞帧的个数进行计数,当人工监测到所在端口接收到的Pause阻塞帧的个数达到设定的阈值时认为网络进入死锁状态,然后通过所在端口的网络交换机上报网络进入死锁状态给处理器,以便于所述处理器进行死锁状态的解决,从而恢复报文的正常转发。

在实现本发明的过程中,发明人发现现有技术中至少存在如下技术问题:

现有技术中的网络死锁状态的检测方法,需要人工干预,从而使得检测的灵敏度不高,严重影响系统的安全性和可靠性。



技术实现要素:

本发明提供的网络死锁状态检测方法及装置,能够准确灵敏地自动检测网络的死锁现象,从而可以提高系统的安全性和可靠性。

第一方面,本发明提供一种网络死锁状态检测方法,其中,网络设备的每个端口设置有计时器,包括:

根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;

若所述当前端口的计时器被触发,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;

当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。

可选地,所述端口阻塞状态表包含各个端口的状态信息,所述状态信息包括阻塞状态和非阻塞状态。

可选地,所述根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发包括:

当所述端口阻塞状态表中显示所述当前端口状态由非阻塞状态变为阻塞状态时,所述当前端口的计时器被触发并开始计时;

当所述端口阻塞状态表中显示所述当前端口状态由阻塞状态变为非阻塞状态时,所述当前端口的计时器关闭并对所述计时器进行清零。

可选地,当所述当前端口的阻塞时间不大于设置的阈值,且所述当前端口的计时器一直处于触发状态时,所述当前端口的计时器继续进行计时。

第二方面,本发明提供一种网络死锁状态检测装置,其中,网络设备的每个端口设置有计时器,包括:

第一判断单元,用于根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;

第二判断单元,用于当所述当前端口的计时器被触发时,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;

确认单元,用于当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。

可选地,所述第一处理单元中所述端口阻塞状态表包含各个端口的状态信息,所述状态信息包括阻塞状态和非阻塞状态。

可选地,所述第一判断单元包括:

触发模块,用于当所述端口阻塞状态表中显示所述当前端口状态由非阻塞状态变为阻塞状态时,所述当前端口的计时器触发并开始计时;

清零模块,用于当所述端口阻塞状态表中显示所述当前交换机端口状态由阻塞状态变为非阻塞状态时,所述当前端口的计时器关闭并对所述计时器进行清零。

可选地,所述装置还包括:

当所述当前端口的阻塞时间不大于预设的阈值,且所述当前端口的计时器一直处于触发状态时,所述当前端口的计时器继续进行计时。

本发明实施例提供的网络死锁状态检测方法及装置,根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;若所述当前端口的计时器被触发,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。与现有技术相比,能够准确灵敏地自动检测网络的死锁现象,从而可以提高系统的安全性和可靠性。

附图说明

图1为网络交换机A和网络交换机B形成的报文转发环路;

图2为本发明一实施例网络死锁状态检测方法的流程图;

图3为图1交换机A中端口1死锁状态检测的工作流程图;

图4为本发明一实施例网络死锁状态检测装置的结构示意图;

图5为图4中第一判断单元11的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供一种网络死锁状态检测方法,如图2所示,所述方法包括:

S11、根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;

可选地,所述端口阻塞状态表包含各个端口的状态信息,所述状态信息包括阻塞状态和非阻塞状态。

可选地,所述根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发包括:

当所述端口阻塞状态表中显示所述当前端口状态由非阻塞状态变为阻塞状态时,所述当前端口的计时器被触发并开始计时;

具体地,当所述当前端口计时器被触发后,存在于所述网络设备内部的扫描时钟开始扫描所述当前端口计时器,所述扫描时钟每扫描所述当前端口计时器一次,所述当前端口计时器时间值增加一个扫描时钟周期;

当所述端口阻塞状态表中显示所述当前端口状态由阻塞状态变为非阻塞状态时,所述当前端口的计时器关闭并对所述计时器进行清零。

具体地,当所述当前端口计时器关闭时,所述扫描时钟扫描到所述当前端口计时器时,所述计时器一直保持为零的状态。

S12、若所述当前端口的计时器被触发,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;

具体地,所述当前端口的计时器用于对所述当前端口堵塞时间进行统计;

S13、当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。

具体地,当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态,同时将当前端口ID给上报CPU,所述CPU接收到所述当前端口ID后,根据所述当前端口ID查找并关闭所述当前端口的Pause信号通道,待所述当前端口不再产生网络死锁后,所述CPU打开所述当前端口的Pause信号通道。

可选地,当所述当前端口的阻塞时间不大于设置的阈值,且所述当前端口的计时器一直处于触发状态时,所述当前端口的计时器继续进行计时。

具体地,当所述当前端口计时器值不大于预设阈值,且所述当前端口的计时器一直处于触发状态,以及所述扫描时钟扫描至所述当前端口计时器时,所述当前交换机端口计时器值增加一个时钟周期,且所述扫描时钟继续进行下一端口扫描;

例如:如图3所示,为图1交换机A中端口1死锁状态检测的工作流程图。

端口1接收到Pause信号后,所述端口1对应的阻塞状态表中信息由1变为0,表示所述端口1的状态由非阻塞状态变为阻塞状态;

所述端口1对应的计时器被触发并开始计时,以所述扫描时钟周期为10ns为例,所述扫描时钟每扫描一次端口1,所述端口1对应的计时器值增加10ns,当所述端口1计时器值达到设置阈值时,确认检测到死锁现象并上报给CPU。

本发明实施例提供的网络死锁状态检测方法,根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;若所述当前端口的计时器被触发,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。与现有技术相比,能够准确灵敏地自动检测网络的死锁现象,从而可以提高系统的安全性和可靠性。

本发明实施例还提供一种网络死锁状态检测装置,如图4所示,所述装置包括:

第一判断单元11,用于根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;

可选地,所述第一处理单元中所述端口阻塞状态表包含各个端口的状态信息,所述状态信息包括阻塞状态和非阻塞状态。

第二判断单元12,用于当所述当前端口的计时器被触发时,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;

确认单元13,用于当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。

本发明实施例提供的网络死锁状态检测装置,根据所述网络设备内部的端口阻塞状态表判断当前端口的计时器是否被触发;若所述当前端口的计时器被触发,判断所述当前端口的计时器所统计的所述当前端口的阻塞时间是否大于设置的阈值;当所述当前端口的阻塞时间大于设置的阈值时,确认网络进入死锁状态。与现有技术相比,能够准确灵敏地自动检测网络的死锁现象,从而可以提高系统的安全性和可靠性。

可选地,如图5所述,所述第一判断单元11还包括:

触发模块111,用于当所述端口阻塞状态表中显示所述当前端口状态由非阻塞状态变为阻塞状态时,所述当前端口的计时器被触发并开始计时;

清零模块112,用于当所述端口阻塞状态表中显示所述当前交换机端口状态由阻塞状态变为非阻塞状态时,所述当前端口的计时器关闭并对所述计时器进行清零。

可选地,所述装置还包括:

当所述当前端口的阻塞时间不大于预设的阈值,且所述当前端口的计时器一直处于触发状态时,所述当前端口的计时器继续进行计时。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

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