买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种MSTP的计算方法及装置_杭州迪普科技股份有限公司_201510833898.5 

申请/专利权人:杭州迪普科技股份有限公司

申请日:2015-11-25

公开(公告)日:2019-09-06

公开(公告)号:CN105939272B

主分类号:H04L12/751(20130101)

分类号:H04L12/751(20130101);H04L12/753(20130101)

优先权:

专利状态码:有效-授权

法律状态:2019.09.06#授权;2017.03.08#著录事项变更;2016.10.19#实质审查的生效;2016.09.14#公开

摘要:本申请提供一种MSTP的计算方法及装置,所述方法应用于网络设备上,针对当前遍历的每一个实例,所述方法包括:确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例对应的接口;对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态。应用本申请实施例,通过实例接口链表实现接口的角色和状态计算,降低了网络设备的资源占用率,提高了MSTP的计算效率。

主权项:1.一种多实例生成树协议MSTP的计算方法,其特征在于,所述方法应用于网络设备上,针对当前遍历的每一个实例,所述方法包括:确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例包含的接口;对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态;其中,建立所述实例接口链表的过程,包括:获取所述实例对应的第一虚拟局域网VLAN;针对每个接口,获取所述接口对应的第二VLAN;判断所述第一VLAN与所述第二VLAN是否有相同的VLAN;若有相同的VLAN,则将所述接口加入到所述实例对应的实例接口链表中。

全文数据:一种MSTP的计算方法及装置技术领域本申请涉及网络通信技术领域,尤其涉及一种MSTP的计算方法及装置。背景技术MSTPMulti-ServiceTransferPlatform,多实例生成树协议解决了RSTPRapidSpanningTreeProtocol,快速生成树协议在计算网络拓扑时没有考虑VLANVirtualLocalAreaNetwork,虚拟局域网分割的问题,将多个VLAN映射到一个实例上,每个实例独立计算接口的角色和状态。但是MSTP在解决上述问题的同时,也带来了计算的复杂性。相关技术中,网络设备在计算每个实例对应的接口的角色和状态时,需要遍历所有接口,通过接口与每个实例的对应关系表总接口链表,判断当前遍历接口是否属于该实例,若属于,则计算当前遍历接口在该实例中的角色和状态。假设网络设备上配置有m个实例,n个接口,那么计算每个实例对应的接口的角色和状态,需要遍历m×n遍,并且每遍历一次还需要判断当前遍历接口是否属于该实例。因此,为了进行MSTP的计算,需要占用大量的网络设备资源。发明内容有鉴于此,本申请提供一种MSTP的计算方法及装置,以解决现有MSTP的计算需要占用大量的网络设备资源的问题。根据本申请实施例的第一方面,提供一种MSTP的计算方法,所述方法应用于网络设备上,所述方法包括:确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例对应的接口;对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态。根据本申请实施例的第二方面,提供一种MSTP的计算装置,所述装置应用于网络设备上,所述装置包括:获取单元,用于确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例对应的接口;计算单元,用于对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态。应用本申请实施例,当网络设备在遍历每个实例计算接口的角色和状态时,只要确定了所述实例对应的实例接口链表,通过所述实例接口链表就可以获取到所述实例对应的接口,并对获取到的接口进行角色计算,利用计算得到的角色确定接口的状态,而不需要在所述实例下遍历所有接口,并判断该接口是否属于所述实例。因此降低了网络设备的资源占用率,提高了MSTP的计算效率。附图说明图1为本申请根据一示例性实施例示出的一种MSTP的计算方法实施例流程图;图2为本申请根据一示例性实施例示出的一种MSTP的计算装置所在设备的硬件结构图;图3为本申请根据一示例性实施例示出的一种MSTP的计算装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。参见图1所示,为本申请根据一示例性实施例示出的一种MSTP的计算方法实施例流程图,该实施例应用于网络设备上,所述网络设备为运行MSTP协议的网络设备,针对当前遍历的每一个实例,包括以下步骤:步骤S101:确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口。在确定所述实例对应的实例接口链表之前,网络设备预先为每个实例建立实例接口链表,针对每一个实例,首先获取所述实例对应的第一VLAN;针对每个接口,获取所述接口对应的第二VLAN;判断所述第一VLAN与所述第二VLAN是否有相同的VLAN,若有相同的VLAN,则将所述接口加入到所述实例对应的实例接口链表中。其中,所述实例对应的第一VLAN可以通过该实例的VLAN映射位图获取到,并且所述第一VLAN包含至少一个VLAN,假设该实例为实例1,如表1所示,为实例1的VLAN映射位图示例表。所述接口对应的第二VLAN可以通过该接口的VLAN映射位图获取到,并且所述第二VLAN包含至少一个VLAN,假设该接口为接口1,如表2所示为,接口1的VLAN映射位图示例表。实例1VLAN1VLAN2VLAN3VLAN4表1接口1VLAN2VLAN5VLAN6表2判断所述第一VLAN与所述第二VLAN是否有相同的VLAN,可以通过将所述第一VLAN中的每个VLAN与第二VLAN中的每个VLAN进行比较,如表1和表2所述,实例1对应的每个VLAN分别与接口1对应的每个VLAN进行比较,最终得到实例1与接口1有相同的VLAN2,因此可以将接口1加入实例1中,其他接口同样按照上述过程进行处理,最终得到实例1的实例接口链表,如表3所示,为实例1的实例接口链表示例表。实例1接口1接口3接口9接口17表3当每个实例对应的实例接口链表建立完成之后,在步骤S101的过程中,针对当前遍历的每一个实例,网络设备从所有实例对应的实例接口链表中确定所述实例对应的实例接口链表,即所述实例对应的单独一个实例接口链表,并从所述实例接口链表中获取所述实例对应的接口。假设确定实例1对应的实例接口链表如表3所述,可以从实例1的实例接口链表中获取到接口1、接口3、接口9、接口17,然后可以对这些接口进行角色和状态的计算。需要说明的是,也可以将每个实例对应的接口添加在一张总实例接口链表中,如表4所示,为总实例接口链表示例表。通过实例可以查找到其对应的所有接口,进而对查找到的接口进行角色和状态的计算。实例1接口1接口3接口9接口17实例2接口3接口4接口5实例3接口8接口9接口34接口65表4步骤S102:对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态。在MSTP的计算中,接口的角色可以有Root根、Designated指定、Master主、Alternate备份、Backup备份等,其中,接口的角色为Alternate是Root和Master的备份,接口的角色为Backup是Designated的备份。涉及到的接口的状态,根据接口是否学习MACMediumAccessControl,媒体访问控制地址和是否转发报文,可以将接口的状态分为三种状态,分别为Forwarding转发状态学习MAC地址,转发报文、Learning学习状态学习MAC地址、不转发报文、Blocking阻塞状态不学习MAC地址、不转发报文,同一接口在不同的实例中的角色和状态可以不同。如表5所示,为接口的角色和状态对应关系示例表“√”表示该接口的角色可以具有该状态,“-”表示该接口的角色不能具有该状态。表5网络设备对获取到的接口进行角色计算,并根据计算得到的角色确定接口的状态。通过表5可以得到,当接口的角色为Alternate或Backup时,接口的状态为Blocking状态,当接口的角色为Root或Master或Designated时,可以通过状态迁移确定接口的状态,例如,假设在实例1中,计算得到的接口1的角色为Designated,接口1的状态初始为Blocking状态,接口1向对端网络设备发送一个报文,若对端网络设备向接口1返回响应报文,则接口1的状态可以确定为Forwarding状态;若对端网络设备没有向接口1返回响应报文,则接口1的状态确定为Learning状态。综上所述,网络设备在计算每个实例的接口的角色和状态时,不需要遍历所有接口,也不需要判断该接口是否属于所述实例,假设网络设备上配置有m个实例,n个接口,那么计算每个实例对应的接口的角色和状态,只需要通过实例接口链表便可获取到当前遍历实例对应的所有接口。而现有计算每个实例对应的接口的角色和状态,需要遍历m×n遍,经过对比可得,本申请提出的技术方案降低了网络设备的资源占用率,提高了MSTP的计算效率。需要说明的是,网络设备上的接口是否属于某个实例是通过所述接口对应的VLAN来决定的,如果改变接口对应的VLAN,则相应的实例接口链表中的接口也需要做相应的变化,因此需要对实例接口链表进行维护,下面针对实例接口链表的维护分两种情况进行描述:第一种情况:当在第一接口中加入一个新VLAN时,网络设备获取所述新VLAN对应的实例;判断所述新VLAN对应的实例对应的实例接口链表中是否存在所述第一接口,若存在,则结束当前处理流程;若不存在,则将所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中。如表6所示,为接口2的VLAN映射位图示例表,假设在接口2中加入VLAN4,则接口2的VLAN映射位图变为表7所示,可得接口2对应的第二VLAN为VLAN4、VLAN7、VLAN8、VLAN10,通过每个实例的VLAN映射位图可以获取到VLAN4对应的实例1,通过实例1的VLAN映射位图表1获取到实例1对应的第一VLAN为VLAN1、VLAN2、VLAN3、VLAN4,将实例1对应的每个VLAN分别与接口2对应的每个VLAN进行比较,最终得到相同的VLAN4,因此可以将接口2加入到实例1的实例接口链表中,则实例1的实例接口链表由表3变为表8所示。接口2VLAN7VLAN8VLAN10表6接口2VLAN4VLAN7VLAN8VLAN10表7实例1接口1接口3接口9接口17接口2表8当所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中时,所述实例接口链表中记录的所述实例对应的接口发生变化,需要重新计算所述实例对应接口的角色和状态,并且重新只计算所述实例对应的所有接口的角色,并利用计算得到的角色确定接口的状态,而不需要重新计算网络设备上其他实例对应接口的角色和状态,可以避免引起网络不稳定的问题。计算接口的角色和状态的过程见上述所述,在此不再赘述。第二种情况:当从第二接口对应的所有VLAN中删除一个已有VLAN时,获取所述已有VLAN对应的实例;判断所述已有VLAN对应的实例对应的第一VLAN与所述第二接口对应的删除已有VLAN的第二VLAN是否有相同的VLAN,若有相同的VLAN,则结束当前处理流程;若没有相同的VLAN,则将所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除。假设从接口1对应的所有VLAN中删除已有VLAN2,则接口1的VLAN映射位图由表2变为表9所示,通过每个实例的VLAN映射位图可以获取到VLAN2对应的实例1,通过实例1的VLAN映射位图表1获取到实例1对应的第一VLAN为VLAN1、VLAN2、VLAN3、VLAN4,通过接口1的VLAN映射位图表9获取接口1对应的第二VLAN为VLAN5、VLAN6,将实例1对应的每个VLAN分别与接口1对应的每个VLAN进行比较,最终没有得到相同的VLAN,将接口1从实例1的实例接口链表中删除,实例1的实例接口链表由表8变为表10所示。接口1VLAN5VLAN6表9实例1接口3接口9接口17接口2表10当所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除时,所述实例接口链表记录的所述实例对应的接口发生变化,需要重新计算所述实例对应接口的角色和状态,并且重新只计算所述实例对应的所有接口的角色,并利用计算得到的角色确定接口的状态,而不需要重新计算网络设备上其他实例对应接口的角色和状态,避免引起网络不稳定的问题。计算接口的角色和状态的过程如上述所述,在此不再赘述。由上述实施例所述,当网络设备在遍历每个实例计算接口的角色和状态时,只要确定了所述实例对应的实例接口链表,通过所述实例接口链表就可以获取到所述实例对应的接口,并对获取到的接口进行角色计算,利用计算得到的角色确定接口的状态,而不需要在所述实例下遍历所有接口,并判断该接口是否属于所述实例。因此降低了网络设备的资源占用率,提高了MSTP的计算效率。与前述MSTP的计算方法的实施例相对应,本申请还提供了MSTP的计算装置的实施例。本申请MSTP的计算装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请MSTP的计算装置所在设备的一种硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。参见图3所示,为本申请根据一示例性实施例示出的一种MSTP的计算装置的实施例结构图,该实施例应用于网络设备上,针对当前遍历的每一个实例,所述装置包括:获取单元310、计算单元320。其中,获取单元310,用于确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例对应的接口;计算单元320,用于对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态。在一个可选的实现方式中,所述装置还包括图3中未示出:建立链表单元,用于在获取单元确定所述实例对应的实例接口链表之前,建立实例接口链表;所述建立链表单元包括图3中未示出:第一获取子单元,用于获取所述实例对应的第一虚拟局域网VLAN;第二获取子单元,用于针对每个接口,获取所述接口对应的第二VLAN;第一判断子单元,用于判断所述第一VLAN与所述第二VLAN是否有相同的VLAN;第一加入接口子单元,用于若有相同的VLAN,则将所述接口加入到所述实例对应的实例接口链表中。在另一个可选的实现方式中,所述建立链表单元,还包括图3中未示出:第三获取子单元,用于当在第一接口中加入一个新VLAN时,获取所述新VLAN对应的实例;第二判断子单元,用于判断所述新VLAN对应的实例对应的实例接口链表中是否存在所述第一接口;第二加入接口子单元,用于若不存在,则将所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中。在另一个可选的实现方式中,所述建立链表单元,还包括图3中未示出:第四获取子单元,用于当从第二接口对应的第二VLAN中删除一个已有VLAN时,获取所述已有VLAN对应的实例;第三判断子单元,用于判断所述已有VLAN对应的实例对应的第一VLAN与所述第二接口对应的删除已有VLAN的第二VLAN是否有相同的VLAN;删除接口子单元,用于若没有相同的VLAN,则将所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除。在另一个可选的实现方式中,所述装置还包括图3中未示出:第一重新计算单元,用于当所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中时,重新只计算所述新VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态;第二重新计算单元,用于当所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除时,重新只计算所述已有VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例所述,当网络设备在遍历每个实例计算接口的角色和状态时,只要确定了所述实例对应的实例接口链表,通过所述实例接口链表就可以获取到所述实例对应的接口,并对获取到的接口进行角色计算,利用计算得到的角色确定接口的状态,而不需要在所述实例下遍历所有接口,并判断该接口是否属于所述实例。因此降低了网络设备的资源占用率,提高了MSTP的计算效率。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

权利要求:1.一种多实例生成树协议MSTP的计算方法,其特征在于,所述方法应用于网络设备上,针对当前遍历的每一个实例,所述方法包括:确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例包含的接口;对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态;其中,建立所述实例接口链表的过程,包括:获取所述实例对应的第一虚拟局域网VLAN;针对每个接口,获取所述接口对应的第二VLAN;判断所述第一VLAN与所述第二VLAN是否有相同的VLAN;若有相同的VLAN,则将所述接口加入到所述实例对应的实例接口链表中。2.根据权利要求1所述的方法,其特征在于,所述建立实例接口链表的过程,还包括:当在第一接口中加入一个新VLAN时,获取所述新VLAN对应的实例;判断所述新VLAN对应的实例对应的实例接口链表中是否存在所述第一接口;若不存在,则将所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中。3.根据权利要求2所述的方法,其特征在于,所述建立实例接口链表的过程,还包括:当从第二接口对应的第二VLAN中删除一个已有VLAN时,获取所述已有VLAN对应的实例;判断所述已有VLAN对应的实例对应的第一VLAN与所述第二接口对应的删除已有VLAN的第二VLAN是否有相同的VLAN;若没有相同的VLAN,则将所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:当所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中时,重新只计算所述新VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态;当所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除时,重新只计算所述已有VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态。5.一种多实例生成树协议MSTP的计算装置,其特征在于,所述装置应用于网络设备上,针对当前遍历的每一个实例,所述装置包括:获取单元,用于确定所述实例对应的实例接口链表,并从所述实例接口链表中获取所述实例对应的接口;其中,所述实例接口链表中记录有所述实例包含的接口;计算单元,用于对获取到的接口进行角色计算,并利用计算得到的角色确定接口的状态;所述装置还包括:建立链表单元,用于在获取单元确定所述实例对应的实例接口链表之前,建立实例接口链表;所述建立链表单元包括:第一获取子单元,用于获取所述实例对应的第一虚拟局域网VLAN;第二获取子单元,用于针对每个接口,获取所述接口对应的第二VLAN;第一判断子单元,用于判断所述第一VLAN与所述第二VLAN是否有相同的VLAN;第一加入接口子单元,用于若有相同的VLAN,则将所述接口加入到所述实例对应的实例接口链表中。6.根据权利要求5所述的装置,其特征在于,所述建立链表单元,还包括:第三获取子单元,用于当在第一接口中加入一个新VLAN时,获取所述新VLAN对应的实例;第二判断子单元,用于判断所述新VLAN对应的实例对应的实例接口链表中是否存在所述第一接口;第二加入接口子单元,用于若不存在,则将所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中。7.根据权利要求6所述的装置,其特征在于,所述建立链表单元,还包括:第四获取子单元,用于当从第二接口对应的第二VLAN中删除一个已有VLAN时,获取所述已有VLAN对应的实例;第三判断子单元,用于判断所述已有VLAN对应的实例对应的第一VLAN与所述第二接口对应的删除已有VLAN的第二VLAN是否有相同的VLAN;删除接口子单元,用于若没有相同的VLAN,则将所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除。8.根据权利要求7所述的装置,其特征在于,所述装置还包括:第一重新计算单元,用于当所述第一接口加入到所述新VLAN对应的实例对应的实例接口链表中时,重新只计算所述新VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态;第二重新计算单元,用于当所述第二接口从所述已有VLAN对应的实例对应的实例接口链表中删除时,重新只计算所述已有VLAN对应的实例中的所有接口的角色,并利用计算得到的角色重新确定接口的状态。

百度查询: 杭州迪普科技股份有限公司 一种MSTP的计算方法及装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。