一种三层端口状态的检测方法和装置的制作方法

文档序号:7554611阅读:181来源:国知局
专利名称:一种三层端口状态的检测方法和装置的制作方法
技术领域
本发明涉及网络技术领域,尤其涉及一种三层端口状态的检测方法和装置。
背景技术
三层端口指的是配置了 IP地址后的虚拟局域网(Virtual Local Area Network,VLAN)端口,其中三层端口的状态指的是逻辑上的Up (连接)或Down (非连接)状态。只有当状态为Up的时候,三层端口才会收发报文;否则三层端口不会收发报文。三层端口包含一个或多个二层物理端口,这些二层物理端口的连接状态最终决定该三层端口的状态,即只要有一个二层物理端口处于Up状态,该三层端口的状态就为Up状态;当该三层端口下的所有二层物理端口都处于Down状态,该三层端口的状态才为Down状态。对于Super vlan (又称为VLAN聚合)接口,由于其没有直接包含二层物理端口,而是包含多个sub-vlan,因此需要通过其下的所有sub-vlan的二层物理端口的状态来判断其状态,具体的判断方法同上。现有技术中,检测三层端口状态的实现的方式一般为:周期性的轮询三层端口下的每个二层物理端口的状态,只要有一个二层物理端口处于Up状态,就去查看当前三层端口的状态,如果为Down,则转为Up ;如果为Up,则维持三层端口的状态不变。当轮询到所有的二层物理端口都处于Down状态时,再去查看当前三层端口的状态,如果为Up,则转为Down ;如果为Down,则维持三层端口的状态不变。在实际的应用中,由于二层物理端口经常会在短时间内状态发生变化,因此采用这种周期性的轮询方式来检测三层端口的状态,往往不能根据二层物理端口的状态变化而及时检测到三层端口的状态变化,因此及时性比较差。针对上述这 种缺陷,目前的处理策略一般是通过缩短轮询时间来检测端口状态,以检测三层端口的状态。而这种方式往往又会加大系统的运行负担。

发明内容
本发明实施例提供一种三层端口状态的检测方法和装置,用以解决现有技术中检测三层端口的状态的及时性较差的问题。本发明实施例采用以下技术方案:一种三层端口状态的检测方法,包括:接收由端口硬件中断而产生的第一中断消息;根据预设的端口状态震荡标识,判断是否屏蔽接收到的所述第一中断消息;在判断结果为是且在规定的时间长度内没有接收到与第一中断消息携带有相同的端口标识的第二中断消息,或者在判断结果为否时,根据所述第一中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中,确定与所述第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量;根据所述第一中断消息中包含的端口状态标识,对确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息;根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及所述更新后的端口连接数量信息,确定三层端口的状态。一种三层端口状态的检测装置,包括:接收单元,用于接收由端口硬件中断而产生的第一中断消息;判断单元,用于根据预设的端口状态震荡标识,判断是否屏蔽接收单元接收到的所述第一中断消息;端口连接数量信息确定单元,用于在判断单元的判断结果为是且在规定的时间长度内没有接收到与第一中断消息携带有相同的端口标识的第二中断消息,或者在判断单元的判断结果为否时,根据所述第一 中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中,确定与所述第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量;更新单元,用于根据所述第一中断消息中包含的端口状态标识,对端口连接数量信息确定单元确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息;状态确定单元,用于根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及更新单元更新后的端口连接数量信息,确定三层端口的状态。本发明实施例的有益效果如下:本发明实施例中,根据接收到的由端口硬件中断而产生的第一中断消息中携带的端口标识和端口状态标识,对预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系进行更新,并根据更新后的对应关系来确定出三层端口的当前状态,而不需要轮询所有端口的状态才能确定三层端口的状态,因此保证了可以根据端口的状态变化而及时检测到三层端口的状态变化,有较好的及时性,同时也避免了现有技术中通过缩短轮询时间来检测三层端口的状态对系统带来的运行负担。


图1为为本发明实施例一提供的一种三层端口状态的检测方法的主要流程图;图2为本发明实施例二提供的在实际应用中预先存储对应关系的流程图;图3为本发明实施例二提供的一种三层端口状态的检测方法的具体流程图;图4为本发明实施例二提供的根据接收到的第一中断消息确定三层端口的状态的流程示意图;图5为本发明实施例三提供的一种三层端口状态的检测装置的结构示意图。
具体实施例方式为了解决现有技术中检测三层端口的状态的及时性较差的问题,本发明实施例提供一种三层端口状态的检测方法和装置。通过本发明提供的方案,可以根据接收到的由端口硬件中断而产生的第一中断消息中携带的端口标识和端口状态标识,对预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系进行更新,并根据更新后的对应关系来确定出三层端口的当前状态,而不需要轮询所有端口的状态才能确定三层端口的状态,因此保证了可以根据端口的状态变化而及时检测到三层端口的状态变化,有较好的及时性,同时也避免了现有技术中通过缩短轮询时间来检测三层端口的状态对系统带来的运行负担。下面结合各个附图对本发明实施例技术方案的主要实现原理具体实施方式
及其对应能够达到的有益效果进行详细的阐述。实施例一:如图1所示,为本发明实施例一提供的一种三层端口状态的检测方法的主要流程图,该方法包括以下步骤:步骤11,接收由端口硬件中断而产生的第一中断消息;其中,端口硬件中断为针对某端口的插拔线操作而触发的硬件中断,产生的该第一中断消息中携带有状态发生变化的端口的端口标识和端口状态标识。

步骤12,根据预设的端口状态震荡标识,判断是否屏蔽接收到的第一中断消息;当判断结果为是时,执行步骤13 ;在判断结果为否时,执行步骤15。步骤13,判断在规定的时间长度内是否接收到与第一中断消息携带有相同的端口标识的第二中断消息;在判断结果为是时,执行步骤14 ;在判断结果为否时,执行步骤15 ;步骤14,屏蔽接收到的第二中断消息。流程结束。该步骤中,当判断出在规定的时间长度内接收到与第一中断消息携带有相同的端口标识的第二中断消息时,说明在规定的时间长度内该端口的状态连续发生两次变化,也就是相当于该端口的状态在该时间长度内没有发生改变,其所属的三层端口的状态也没有因此发生改变。步骤15,根据第一中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中确定与接收到的第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量;其中,指定状态既可以为Up状态,也可以为Down状态。步骤16,根据接收到的第一中断消息中包含的端口状态标识,对确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息;步骤17,根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及更新后的端口连接数量信息,确定三层端口的状态。流程结束。可选的,在预先存储有端口连接数量信息和三层端口的状态的对应关系时,该步骤中确定三层端口的状态之后,还可以包括:对更新后的端口连接数量信息所对应的三层端口的状态进行更新。其中,该预先存储的对应关系可以根据下述步骤获得:当vlan配置了 IP地址之后,首先检测此三层端口所分别包含的端口的状态;然后,根据检测出的各端口的状态,确定与此三层端口分别对应的端口连接数量信息以及三层端口的状态;最后,对应存储此三层端口所分别包含的端口的端口标识、确定出与此三层端口分别对应的端口连接数量以及三层端口的状态。其中,上述利用端口硬件中断的方式来获取三层端口的状态的方法可能会因为硬件受到外围环境的影响,而导致产生的中断消息丢失。所以为了提高获取三层端口状态的可靠性,本发明实施例还可以进一步利用轮询的方式来获取三层端口状态,具体的,可以为通过依次向预先存储的上述对应关系中包含的各端口标识所分别表示的端口发送状态查询消息,对各端口标识所分别表示的端口的状态进行轮询,并根据轮询得到的各端口的状态对预先存储的上述对应关系进行更新。可选的,轮询的间隔时间可以设置为5秒,以降低对系统和总线的压力。如果在轮询的过程中,上述存储的对应关系中有新的对应关系加入,则该存储的对应关系会被暂时锁定,等到轮询结束后才执行加入的操作。本发明实施例通过上述方案,根据接收到的由端口硬件中断而产生的第一中断消息中携带的端口标识和端口状态标识,对预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系进行更新,并根据更新后的对应关系来确定出三层端口的当前状态,而不需要轮询所有端口的状态才能确定三层端口的状态,因此保证了可以根据端口的状态变化而及时检测到三层端口的状态变化,有较好的及时性,同时也避免了现有技术中通过缩短轮询时间来检测三层端口的状态而对系统带来的运行负担,并降低了总线负担。实施例二:本发明实施例在端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于Up状态的端口的数量的前提下进行实现。如图2所示,为本发明实施例二提供的在实际应用中预先存储对应关系的流程图。其中,可以预先设置:vlan_id为不同三层端口所分别包含的端口的端口标识;link_counter为端口连接数量信 息;state表示三层端口的状态;off_f lag为端口状态震荡标识,当off_flag为I时,表示需要屏蔽接收到的第一中断消息;当off_flag为0时,表示不需要屏蔽接收到的第一中断消息。预先存储对应关系可以具体包括:当Vlan配置了 IP地址之后,检测此三层端口所分别包含的端口的状态,当端口状态为Up时,与该端口所对应的link_counter增加1,当端口状态为Down时,与该端口所对应的link_counter不变。当所有端口的状态检测完毕后,判断此三层端口的link_counter是否大于0,若大于0,则该三层端口的状态为Up ;若等于0,则该三层端口的状态为Down。上述得到的对应关系可以但不限于以状态表的形式进行存储。在上述应用场景下,本发明实施例二提供的一种三层端口状态的检测方法如图3所示,该方法具体包括:步骤31,接收由端口硬件中断而产生的第一中断消息;其中,该第一中断消息中携带有状态发生变化的端口的端口标识和端口状态标识。步骤32,判断预设的off_flag的值,当判断出off_fIag=I时,执行步骤33 ;当判断出off_f Iag=O时,执行步骤35。其中,off_flag的值可以根据用户需求自行设定。步骤33,判断在规定的时间长度内是否接收到与第一中断消息携带有相同的端口标识的第二中断消息;在判断结果为是时,执行步骤34 ;在判断结果为否时,执行步骤35 ;其中,规定的时间长度应该小于系统要求环网的倒换时间,本发明实施例中可以默认为10ms。步骤34,屏蔽接收到的第二中断消息。流程结束。步骤35,根据接收到的第一中断消息确定三层端口的状态。可以具体包括:根据第一中断消息中包含的端口标识,从上述状态表中确定与该端口标识相对应的link_Counter,再根据第一中断消息中包含的端口状态标识,对确定出的link_counter进行更新,得到更新后的link_counter,最后根据预先规定的link_counter与三层端口的状态的对应关系,以及更新后的link_counter,确定三层端口的状态。如图4所示,为根据接收到的第一中断消息确定三层端口的状态的流程示意图,具体包括:当判断出第一中断消息中包含的端口状态标识表示的状态为Up时,将确定出的与该第一中断消息中包含的端口标识相对应的link_counter加I ;然后判断该更新后的link_counter的大小,当link_counter等于I时,与该link_counter对应的三层端口的状态变为Up ;当link_counter大于I时,与该link_counter对应的三层端口的状态不变;当判断出第一中断消息中包含的端口状态标识表示的状态为Down时,将确定出的与该第一中断消息中包含的端口标识相对应的link_counter减I ;然后判断该更新后的link_counter的大小,当link_counter等于0时,与该link_counter对应的三层端口的状态变为Down ;当link_counter大于0时,与该link_counter对应的三层端口的状态不变。进一步的,当端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于Down状态的端口的数量时,与三层端口相对应的link_counter的值等于该三层端口所包含的端口的总个数时,该三层端口的状态才为Down,否则该三层端口的状态就为Up。具体的实现过程与上述实施例二的实现过程相类似,在此不再赘述。本发明实施例通过上述方案,根据接收到的由端口硬件中断而产生的第一中断消息中携带的端口标识和端口状态标识,对预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系进行更新,并根据更新后的对应关系来确定出三层端口的当前状态,而不需要轮询所有端口的状态才能确定三层端口的状态,因此保证了可以根据端口的状态变化而及时检测到三层端口的状态变化,有较好的及时性,同时也避免了现有技术中通过缩短轮询时间来检测三层端口的状态而对系统带来的运行负担,并降低了总线负担。实施例三:基于上述的三层端口状态的检测方法,本发明实施例三提供了一种三层端口状态的检测装置,如图5所示,具体包括以下功能模块:接收单元51,用于接收由端口硬件中断而产生的第一中断消息;判断单元52,用于根据预设的端口状态震荡标识,判断是否屏蔽接收单元51接收到的第一中断消息;端口连接数量信息确定单元53,用于在判断单元52的判断结果为是且在规定的时间长度内没有接收到与第一 中断消息携带有相同的端口标识的第二中断消息,或者在判断单元52的判断结果为否时,根据第一中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中,确定与第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量;更新单元54,用于根据第一中断消息中包含的端口状态标识,对端口连接数量信息确定单元53确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息;状态确定单元55,用于根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及更新单元54更新后的端口连接数量信息,确定三层端口的状态。可选的,该装置还可以包括:屏蔽单元56,用于在判断单元52的判断结果为是且在规定的时间长度内接收到所述第二中断消息时,屏蔽接收到的第二中断消息。可选的,在预先存储的对应关系中还包括端口连接数量信息和三层端口的状态的对应关系时,该装置还可以包括:状态更新单元57,用于对更新后的端口连接数量信息所对应的三层端口的状态进行更新。

可选的,该装置还可以包括:检测单元58,用于在接收单元51接收由端口硬件中断而产生的第一中断消息之前,检测各三层端口所分别包含的端口的状态;对应关系确定单元59,用于根据检测单元58检测出的各端口的状态,确定与各三层端口分别对应的端口连接数量信息以及三层端口的状态;对应关系存储单元510,用于对应存储对应关系确定单元59确定出的各三层端口所分别包含的端口的端口标识、与各三层端口分别对应的端口连接数量以及三层端口的状态。可选的,该装置还可以包括:轮询单元511,用于通过向对应关系存储单元510预先存储的对应关系中包含的端口标识所表示的端口发送状态查询消息进行轮询;对应关系更新单元512,用于根据轮询单元511轮询得到的各端口的状态对对应关系存储单元510预先存储的对应关系进行更新。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包 含这些改动和变型在内。
权利要求
1.一种三层端口状态的检测方法,其特征在于,包括: 接收由端口硬件中断而产生的第一中断消息; 根据预设的端口状态震荡标识,判断是否屏蔽接收到的所述第一中断消息; 在判断结果为是且在规定的时间长度内没有接收到与第一中断消息携带有相同的端口标识的第二中断消息,或者在判断结果为否时,根据所述第一中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中,确定与所述第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量; 根据所述第一中断消息中包含的端口状态标识,对确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息; 根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及所述更新后的端口连接数量信息,确定三层端口的状态。
2.如权利要求1所述的方法,其特征在于,所述方法还包括: 在判断结果为是且在规定的时间长度内接收到所述第二中断消息时,屏蔽接收到的第二中断消息。
3.如权利要求1所述的方法,其特征在于,在预先存储有端口连接数量信息和三层端口的状态的对应关系时,在确定三层端口的状态之后,所述方法还包括: 对更新后的端口连接数量信息所对应的三层端口的状态进行更新。
4.如权利要求3所述的方法,其特征在于,接收由端口硬件中断而产生的第一中断消息之前,所述方法还包括: 检测各三层端口所分别包含的端口的状态;并 根据检测出的各端口的状态,确定与各三层端口分别对应的端口连接数量信息以及三层端口的状态; 对应存储各三层端口所分别包含的端口的端口标识、确定出的与各三层端口分别对应的端口连接数量以及三层端口的状态。
5.如权利要求1所述的方法,其特征在于,确定三层端口的状态之后,所述方法还包括: 通过依次向预先存储的所述对应关系中包含的各端口标识所分别表示的端口发送状态查询消息,对所述各端口标识所分别表示的端口的状态进行轮询;并 根据轮询得到的各端口的状态对预先存储的所述对应关系进行更新。
6.一种三层端口状态的检测装置,其特征在于,包括: 接收单元,用于接收由端口硬件中断而产生的第一中断消息; 判断单元,用于根据预设的 端口状态震荡标识,判断是否屏蔽接收单元接收到的所述第一中断消息; 端口连接数量信息确定单元,用于在判断单元的判断结果为是且在规定的时间长度内没有接收到与第一中断消息携带有相同的端口标识的第二中断消息,或者在判断单元的判断结果为否时,根据所述第一中断消息中包含的端口标识,从预先存储的不同三层端口所分别包含的端口的端口标识和端口连接数量信息的对应关系中,确定与所述第一中断消息中包含的端口标识相对应的端口连接数量信息;其中,端口连接数量信息为:与该端口连接数量信息对应的各端口的标识所分别指示的端口中处于指定状态的端口的数量; 更新单元,用于根据所述第一中断消息中包含的端口状态标识,对端口连接数量信息确定单元确定出的端口连接数量信息进行更新,得到更新后的端口连接数量信息; 状态确定单元,用于根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及更新单元更新后的端口连接数量信息,确定三层端口的状态。
7.如权利要求6所述的装置,其特征在于,所述装置还包括: 屏蔽单元,用于在判断单元的判断结果为是且在规定的时间长度内接收到所述第二中断消息时,屏蔽接收到的第二中断消息。
8.如权利要求6所述的装置,其特征在于,在预先存储有端口连接数量信息和三层端口的状态的对应关系时,所述装置还包括: 状态更新单元,用于对更新后的端口连接数量信息所对应的三层端口的状态进行更新。
9.如权利要求8所述的装置,其特征在于,所述装置还包括: 检测单元,用于在接收单元接收由端口硬件中断而产生的第一中断消息之前,检测各三层端口所分别包含的端口的状态; 对应关系确定单元, 用于根据检测单元检测出的各端口的状态,确定与各三层端口分别对应的端口连接数量信息以及三层端口的状态; 对应关系存储单元,用于对应存储对应关系确定单元确定出的各三层端口所分别包含的端口的端口标识、与各三层端口分别对应的端口连接数量以及三层端口的状态。
10.如权利要求6所述的装置,其特征在于,所述装置还包括: 轮询单元,用于通过依次向预先存储的所述对应关系中包含的各端口标识所分别表示的端口发送状态查询消息,对所述各端口标识所分别表示的端口的状态进行轮询; 对应关系更新单元,用于根据轮询单元轮询得到的各端口的状态对预先存储的所述对应关系进行更新。
全文摘要
本发明公开了一种三层端口状态的检测方法和装置,用以解决现有技术中检测三层端口的状态的及时性较差的问题。该方法包括接收由端口硬件中断而产生的第一中断消息;根据预设的端口状态震荡标识,判断是否屏蔽接收到的第一中断消息;在判断结果为是且在规定的时间长度内没有接收到与第一中断消息携带有相同的端口标识的第二中断消息,或者在判断结果为否时,根据第一中断消息中包含的端口标识确定与其相对应的端口连接数量信息;根据第一中断消息中包含的端口状态标识,对确定出的端口连接数量信息进行更新;根据预先规定的端口连接数量信息与三层端口的状态的对应关系,以及更新后的端口连接数量信息,确定三层端口的状态。
文档编号H04L12/26GK103220187SQ201310114339
公开日2013年7月24日 申请日期2013年4月3日 优先权日2013年4月3日
发明者何英军 申请人:北京东土科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1