CN103607351B - 一种芯片转发表项生成方法及设备 - Google Patents
一种芯片转发表项生成方法及设备 Download PDFInfo
- Publication number
- CN103607351B CN103607351B CN201310535972.6A CN201310535972A CN103607351B CN 103607351 B CN103607351 B CN 103607351B CN 201310535972 A CN201310535972 A CN 201310535972A CN 103607351 B CN103607351 B CN 103607351B
- Authority
- CN
- China
- Prior art keywords
- forwarding
- chip
- message
- hop count
- table item
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种芯片转发表项生成方法及设备,该方法包括:成员设备通过所述堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文;当堆叠系统中的成员设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于自身的芯片ID时,成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该转发表学习报文通过自身的其它堆叠口转发。在本发明中,降低了CPU开销,提高了芯片转发表项的生成效率。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种芯片转发表项生成方法及设备。
背景技术
以太网交换机堆叠技术,可以将多台交换机互联在一起,形成分布式交换架构,并作为一个逻辑交换实体运行。
从管理和配置的角度看,一个分布式交换架构可以看作一台交换设备;从性能的角度看,分布式交换架构中的每台交换机都能针对其端口上的第二层、第三层流量通信业务制定本地转发决策。
支持堆叠的多台交换设备可以互相连接起来形成一个“联合设备”,我们将这台“联合设备”称为一个Stacking(堆叠),而将组成Stacking的每个设备称为一个Slot。多个Slot组成Stacking后,无论在管理还是在使用上,就成为一个整体。也就是说,用户可以将这多台设备看成单一设备进行管理和使用。这样既可以通过增加设备来扩展端口数量和交换能力,同时也通过多个Slot之间相互备份增加了整个Stacking的可靠性。
如图1所示,为现有技术中的一种环形堆叠系统的架构示意图,其中,该环形堆叠系统共包括9台设备,分别为Slot01、Slot02、…、Slot09。堆叠系统中每台设备均设置有两组外部堆叠口,分别为P1和P2。相邻两台设备P1和P2相连,组成环形堆叠。例如,Slot01的P1和Slot02的P2相连,Slot的P2和Slot09的P1相连。
堆叠系统内部报文根据芯片转发表进行转发。当一个单播报文进入堆叠系统后(例如从Slot03进入),Slot03可以根据该目的MAC地址查询MAC转发表项以确定目的端口(包括目的端口所在芯片及位于对应芯片上的端口索引)。当目的端口所在芯片为本芯片时,直接从对应的端口发送报文,当目的端口所在芯片不是本芯片时,则查找芯片转发表,根据芯片转发表,选择对应的堆叠口发送单播报文。到达其他堆叠成员时,同样处理,直到找到目的芯片,从目的端口发送报文。
以图1所示场景为例,假设Slot01的芯片ID为0,Slot2的芯片ID为1,…,Slot09的芯片ID为8,Slot01通过堆叠口1与Slot02连接,并通过堆叠口2与Slot09连接,则Slot01中的芯片转发表可以如表1所示:
目的芯片ID | 转发堆叠口 |
0 | NULL |
1 | 1 |
2 | 1 |
… | … |
7 | 2 |
8 | 2 |
根据该芯片转发表,当确定报文的目的端口所在芯片的ID(即目的芯片ID)为8时,则将该报文通过堆叠口2转发。
现有技术中,芯片转发表的生成,需要堆叠管理系统通过报文完成拓扑发现,进而根据拓扑发现数据,按照最短路径方法,计算到达各成员的转发堆叠口,然后,将目的芯片ID与转发堆叠口的对应关系记录到芯片转发表中,并下发到转发芯片,即硬件的芯片转发表的生成依赖于软件的拓扑发现,复杂度高,实时性差。
发明内容
本发明提供了一种芯片转发表项生成方法及设备,以提高芯片转发表项的生成效率。
为了达到以上目的,本发明提供了一种芯片转发表项生成方法,应用于包括多个成员设备的堆叠系统,该方法包括:
堆叠系统中的成员设备通过堆叠口发送以自身的芯片标识ID作为源芯片ID的转发表学习报文;
当堆叠系统中的成员设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于自身的芯片ID时,所述成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该转发表学习报文通过自身的其它堆叠口转发,其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系。
优选地,所述成员设备根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,具体包括:
所述成员设备根据该转发表学习报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,所述成员设备根据该源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数小于该芯片转发表项中记录的转发跳数,所述成员设备将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该转发表学习报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数大于该芯片转发表项中记录的转发跳数,所述成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
优选地,所述成员设备根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,还包括:
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数等于该芯片转发表项中记录的转发跳数,所述成员设备判断接收到该转发表学习报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则所述成员设备将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口;
若判断为相同,则所述成员设备保持该芯片转发表项中的堆叠口不变。
优选地,该方法还包括:
当堆叠系统中的成员设备从非堆叠口接收到普通数据报文,且根据该普通数据报文中的目的芯片ID确定该普通数据报文的目的芯片不是所述成员设备自身的芯片时,所述成员设备以自身的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
当所述成员设备从堆叠口接收到普通数据报文时,所述成员设备通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
优选地,所述成员设备根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项,具体包括:
所述成员设备根据该普通数据报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,所述成员设备根据该源芯片ID、该普通数据报文在堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数小于该芯片转发表项中记录的转发跳数,所述成员设备将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该普通数据报文在堆叠系统内的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数大于该芯片转发表项中记录的转发跳数,所述成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
优选地,所述成员设备根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项,还包括:
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在所述堆叠系统内的转发跳数等于该芯片转发表项中记录的转发跳数,所述成员设备判断接收到该普通数据报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则所述成员设备将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口;
若判断为相同,则所述成员设备保持该芯片转发表项中的堆叠口不变。
优选地,所述成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发表学习报文中携带生存时间TTL或源芯片跳数;
所述TTL或源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文被发送或被转发的次数增加而递减或递增;
所述成员设备根据所述转发表学习报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数的转发跳数。
优选地,所述成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发学习报文中携带TTL或源芯片跳数;当成员设备从非堆叠口接收到普通数据报文,并通过堆叠口转发该普通数据报文时,在所述普通数据报文中携带所述TTL或所述源芯片跳数;
所述TTL或所述源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数增加而递减或递增;
所述成员设备根据所述转发表学习报文和所述普通数据报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数和所述普通数据报文在堆叠系统内的转发跳数。
本发明还提供一种芯片转发表项生成设备,作为成员设备应用于包括多个成员设备的堆叠系统,该芯片转发表项生成设备包括:
报文转发模块,用于通过所述堆叠口发送以自身的芯片标识ID作为源芯片ID的转发表学习报文;当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,将该转发表学习报文通过其他堆叠口转发;
表项维护模块,用于当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项;其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系。
优选地,所述表项维护模块具体用于,
根据该转发表学习报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该转发表学习报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
优选地,所述表项维护模块还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该转发表学习报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
优选地,所述报文转发模块还用于,当所述芯片转发表项生成设备从非堆叠口接收到普通数据报文,且根据该普通数据报文中的目的芯片ID确定该普通数据报文的目的芯片不是所述芯片转发表项生成设备的芯片时,以所述芯片转发表项生成设备的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
所述表项维护模块还用于,当所述芯片转发表项生成设备从堆叠口接收到普通数据报文时,通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
优选地,所述表项维护模块具体用于,
根据该普通数据报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该普通数据报文在堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该普通数据报文在堆叠系统内的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
优选地,所述表项维护模块还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在所述堆叠系统内的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该普通数据报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
优选地,所述报文转发模块还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发表学习报文中携带生存时间TTL或源芯片跳数;其中,所述TTL或源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文被发送或被转发的次数增加而递减或递增;
所述表项维护模块具体用于,根据所述转发表学习报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数的转发跳数。
优选地,所述报文转发模块还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发学习报文中携带TTL或源芯片跳数;当成员设备从非堆叠口接收到普通数据报文,并通过堆叠口转发该普通数据报文时,在所述普通数据报文中携带所述TTL或所述源芯片跳数;其中,所述TTL或所述源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数增加而递减或递增;
所述表项维护模块具体用于,根据所述转发表学习报文和所述普通数据报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数和所述普通数据报文在堆叠系统内的转发跳数。
本发明上述实施例中,通过成员设备之间发送以自身的芯片ID为源ID的转发表学习报文,其他成员设备接收到该转发表学习报文后,通过硬件自动学习该转发表学习报文中携带的源芯片ID、转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系,芯片转发表项的生成不依赖软件的堆叠拓扑发现,不必进行基于拓扑的芯片转发表项的计算,降低了CPU开销,提高了芯片转发表项的生成效率。
附图说明
图1为现有技术中的一种环形堆叠系统的架构示意图;
图2为本发明实施例提供的一种芯片转发表项生成方法的流程示意图;
图3为本发明实施例提供的一种报文转发方法的流程示意图;
图4为本发明实施例提供的一种芯片转发表项生成设备的结构示意图。
具体实施方式
针对上述现有技术中的问题,本发明实施例提供了一种芯片转发表项生成的技术方案,可以应用于包括多个成员设备的堆叠系统。在该技术方案中,堆叠系统中的成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文;当堆叠系统中的成员设备接收到其他成员设备发送的转发表学习报文时,且该转发表学习报文中的源芯片ID不属于自身的芯片ID时,该成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该转发表学习报文通过自身的其它堆叠口转发。其中,该芯片转发表项中记录有源芯片ID、转发跳数,以及堆叠口的对应关系。
在本发明实施例中,通过成员设备之间发送以自身的芯片ID为源ID的转发表学习报文,其他成员设备接收到该转发表学习报文后,通过硬件自动学习该转发表学习报文中携带的源芯片ID、转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系,芯片转发表项的生成不依赖软件的堆叠拓扑发现,不必进行基于拓扑的芯片转发表项的计算,降低了CPU开销,提高了芯片转发表项的生成效率。
下面将结合本发明的实施例中的附图,对本发明的实施例中的技术方案进行清楚、完整的描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明的实施例保护的范围。
如图2所示,为本发明实施例提供的一种芯片转发表项生成方法的流程示意图,可以包括以下步骤:
步骤201、堆叠系统中的成员设备通过该堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文。其中,为便于描述,将转发表学习报文统称为第一报文。
具体的,在本发明实施例中,为了实现芯片转发表项的硬件学习,堆叠系统中的成员设备可以通过该堆叠口发送以自身的芯片ID作为源芯片ID的第一报文,以使接收到该第一报文的其他成员设备通过硬件自动学习该第一报文中的源芯片ID和接收到该第一报文的堆叠口的对应关系。
其中,成员设备可以在堆叠口UP后,开始周期性地(如每20ms)发送该第一报文。
步骤202、当堆叠系统中的成员设备接收到其他成员设备发送的第一报文,且该第一报文中的源芯片ID不属于自身的芯片ID时,该成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID,该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该第一报文通过自身的其它堆叠口转发。其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系。
其中,在本发明实施例中,第一报文仅通过堆叠口转发,且该第一报文中可以配置一个专用的源ID(该专用的源ID不同于第一报文中源芯片ID,该专用的源ID用于表明该第一报文不需要被过滤,即环形堆叠系统中,在拓扑结构上距离第一报文的生成设备最远的成员设备接收到该第一报文时,不需要对该第一报文进行阻断),堆叠系统中的其它成员设备接收到该第一报文时,不对携带有该专用的源ID的第一报文进行过滤,而只有当该第一报文的生成设备接收到该第一报文时,才对该第一报文进行阻断,将该第一报文丢弃,从而保证环形堆叠系统中的每个成员均能收到由同一个生成设备发送的两份第一报文,并根据该第一报文的转发跳数维护芯片转发表,从而保证根据该芯片转发表进行报文转发时,转发路径为最优路径。
具体的,在本发明实施例中,当堆叠系统中的成员设备接收到其他成员设备通过堆叠口发送的第一报文时,该成员设备可以判断该第一报文中的源芯片ID是否属于自身的芯片ID。
当该第一报文中的源芯片ID属于自身的芯片ID时,该成员设备可以直接将该第一报文丢弃或不对该第一报文进行处理。
当该第一报文中的源芯片ID不属于自身的芯片ID时,该成员设备根据该源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,该成员设备根据该源芯片ID、该第一报文的转发跳数,以及接收到该第一报文的堆叠口生成对应该源芯片ID的芯片转发表项(该芯片转发表项记录有该源芯片ID、该第一报文的转发跳数,以及接收到该第一报文的堆叠口的对应关系);
若查询到记录有该源芯片ID的芯片转发表项,且该第一报文的转发跳数小于该芯片转发表项中记录的转发跳数,则该成员设备将该芯片转发表项中的堆叠口更新为接收到该第一报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该第一报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该第一报文的转发跳数大于该芯片转发表项中记录的转发跳数,则该成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
进一步地,当成员设备根据第一报文中的源芯片ID查询到记录有该芯片ID的芯片转发表项,且该第一报文的转发跳数等于该芯片转发表项中的转发跳数,则该成员设备可以进一步判断接收到该第一报文的堆叠口与该芯片转发表项中的堆叠口是否相同。
若判断为相同,则该成员设备可以保持该芯片转发表项中的堆叠口不变。
若判断为不同,则该成员设备可以将该芯片转发表项中的堆叠口更新为接收到该第一报文的堆叠口。
需要注意的是,当第一报文中的转发跳数等于该芯片转发表项中的芯片跳数,且接收到该第一报文的堆叠口与该芯片转发表项中的堆叠口不同时,还可以将接收到该第一报文的堆叠口添加到该芯片转发表项中,并分别为该芯片转发表项中的堆叠口、以及接收到该第一报文的堆叠口设置不同的转发优先级。其中,当成员设备根据芯片转发表项转发报文时,优先从转发优先级更高的堆叠口转发。
例如,可以将该接收到的第一报文的堆叠口(第一堆叠口)的转发优先级设置为第一优先级,将该芯片转发表项中的堆叠口(第二堆叠口)的转发优先级设置为第二优先级(第一优先级高于第二优先级,即第一堆叠口优先转发),当成员设备需要根据该芯片转发表项转发报文时,优先从第一堆叠口转发。同理,也可以将第二堆叠口的转发优先级设置为第一优先级,第一堆叠口的转发优先级设置为第二优先级(即第二堆叠口优先转发),当成员设备需要根据该芯片转发表项转发报文时,优先从第二堆叠口转发。
其中,第一报文的转发跳数用于表明当前成员设备(当前接收到第一报文的成员设备)与第一报文的生成设备(生成该第一报文的成员设备)之间的跳数;可以通过在第一报文中携带TTL(Time To Live,生存时间)或源芯片跳数的方式,使成员设备学习第一报文的转发跳数。
具体的,在本发明实施例中,成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的第一报文时,可以在该第一报文中携带TTL或源芯片跳数。该TTL或源芯片跳数的初始值为预设值,且TTL随着第一报文被发送或转发的次数的增加而递减,或,源芯片跳数随着第一报文被发送或转发的次数增加而递减或递增。
例如,TTL的初始值可以为32,第一报文每被发送或转发一次,则TTL的值减一(也可以是减二、或其他数值,下同);或,源芯片跳数的初始值可以为32,第一报文每被发送或转发一次,则源芯片跳数就减一;或,源芯片跳数的初始值可以为0,第一报文每被发送或转发一次,则源芯片跳数就加一。
相应地,成员设备接收到堆叠系统中的其他成员设备发送第一报文时,可以根据该第一报文中携带的TTL或源芯片跳数确定该第一报文的转发跳数。
其中,若第一报文中携带有TTL,且TTL随第一报文被发送或转发的次数的增加而递减,则当成员设备接收到第一报文时,可以通过将TTL初始值减去第一报文当前携带的TTL的值的方式学习第一报文的转发跳数;
若第一报文中携带有源芯片跳数,且源芯片跳数第一报文被发送或转发的次数的增加而递减,则当成员设备接收到第一报文时,可以通过将源芯片跳数的初始值减去第一报文当前携带的源芯片跳数的值的方式学习第一报文的转发跳数;
若第一报文中携带有源芯片跳数,且源芯片跳数第一报文被发送或转发的次数的增加而递增,则当成员设备接收到第一报文时,可以通过将第一报文当前携带的源芯片跳数的值减去源芯片跳数的初始值的方式学习第一报文的转发跳数。
例如,假设TTL的初始值为32,第一报文每被发送或转发一次,TTL的值减一,则当成员设备接收到的第一报文中的TTL的值为29时,则可以确定该第一报文的转发跳数为3。
进一步地,在本发明实施例中,除了可以根据上述第一报文(转发表学习报文)维护芯片转发表项之外,还可以根据堆叠系统内转发的普通数据报文维护对应的芯片转发表项。
具体的,当堆叠系统中的成员设备从非堆叠口接收到普通数据报文时,若该成员设备根据该普通数据报文的目的芯片ID,确定该普通数据报文的目的芯片为自身的芯片,则该成员设备将该普通数据报文通过对应的目的端口转发。
若该成员设备根据该普通数据报文的目的芯片ID,确定该普通数据报文的目的芯片不是自身的芯片,则该成员设备可以以自身的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
当成员设备从堆叠口接收到普通数据报文时,该成员设备通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。其中,为便于描述,下面将普通数据报文统称为第二报文。
如图3所示,为本发明实施例提供的一种报文转发方法的流程示意图,可以包括以下步骤:
步骤301、当堆叠系统中的成员设备从非堆叠口接收到第二报文时,该成员设备确定该第二报文的目的芯片以及目的端口。
步骤302、该成员设备判断目的芯片是否为自身的芯片;若判断为是,则转至步骤303;否则,转至步骤304。
步骤303、该成员设备通过该目的端口转发该第二报文。
步骤304、该成员设备根据该目的芯片的芯片ID查找芯片转发表项,并以自身的芯片ID作为该第二报文的源芯片ID,将该第二报文从查询到的芯片转发表项中的堆叠口转发。
步骤305、当成员设备从堆叠口接收到普通数据报文时,该成员设备通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
具体的,在本发明实施例中,当堆叠系统中的成员设备从非堆叠口接收到第二报文时,该成员设备可以根据该第二报文的目的芯片ID确定该第二报文的目的芯片,并判断该目的芯片是否为自身的芯片。
若第二报文的目的芯片为该成员设备自身的芯片,该成员设备直接通过该第二报文中的目的端口转发该第二报文;
若第二报文的目的芯片不是该成员设备自身的芯片,该成员设备根据该目的芯片的芯片ID查找芯片转发表项,以查询匹配的芯片转发表项(即记录有该目的芯片的芯片ID的芯片转发表项),并以自身的芯片ID作为该第二报文的源芯片ID,通过该匹配的芯片转发表项中的堆叠口转发。
成员设备从堆叠口接收到其它成员设备转发的第二报文后,一方面可以根据该第二报文中的目的芯片的芯片ID以及目的端口信息对该第二报文进行转发,另一方面,还可以根据该第二报文中的源芯片ID、该第二报文的转发跳数,以及接收到该第二报文的堆叠口的对应关系维护相应的芯片转发表项。
具体的,成员设备接收到该第二报文后,可以根据该第二报文中的源芯片ID查询自身的芯片转发表;当未查询到记录该源芯片ID对应的芯片转发表,则根据该源芯片ID与接收到该第二报文的堆叠口的对应关系生成对应的芯片转发表项。
当根据第二报文中的源芯片ID查询到记录有该源芯片ID的芯片转发表项时,进一步比较该第二报文中的转发跳数与该芯片转发表项中的转发跳数。
若该第二报文的转发跳数大于该芯片转发表项中的转发跳数,则该成员设备将该芯片转发表项中的转发跳数更新为该第二报文的转发跳数;
若该第二报文的转发跳数小于该芯片转发表项中的转发跳数,该成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
进一步地,当成员设备根据第二报文中携带的源芯片ID查询到记录有该芯片ID的芯片转发表项,且该第二报文的转发跳数等于该芯片转发表项中的转发跳数,则该成员设备可以进一步判断接收到该第二报文的堆叠口与该芯片转发表项中的堆叠口是否相同。
若判断为相同,则该成员设备可以保持该芯片转发表项中的堆叠口不变。
若判断为不同,则该成员设备可以将该芯片转发表项中的堆叠口更新为接收到该第二报文的堆叠口;或,将接收到该第二报文的堆叠口添加到该芯片转发表项中,并分别为该芯片转发表项中的堆叠口、以及接收到该第二报文的堆叠口设置不同的转发优先级。
其中,第二报文在堆叠系统内的转发跳数用于表明从非堆叠口接收到该第二报文的成员设备与当前接收到该第二报文的成员设备之间的跳数;可以通过在第二报文中携带TTL或源芯片跳数的方式,使成员设备学习第二报文的转发跳数。
具体的,在本发明实施例中,当成员设备从非堆叠口接收到第二报文,并通过堆叠口转发该第二报文时,可以在该第二报文中携带TTL或源芯片跳数。该第二报文中的TTL或源芯片跳数的初始值,以及TTL或源芯片跳数的值随第二报文被转发次数的变化原则与第一报文中的TTL或源芯片跳数的初始值,以及TTL或源芯片跳数的值随第二报文被转发次数的变化原则相同。
例如,若第一报文中TTL的初始值为32,且第一报文每被发送或转发一次,TTL的值减一,则第二报文中TTL的初始值也为32,且第二报文每被转发一次,TTL的值就减一。
相应地,当成员设备从堆叠口接收到第二报文时,可以根据该第二报文中的TTL或源芯片跳数确定该第二报文在堆叠系统内的转发跳数。其中,成员设备根据第二报文中的TTL或源芯片跳数确定该第二报文在堆叠系统内的转发跳数的处理方式,与成员设备根据第一报文中的TTL或源芯片跳数确定第一报文的转发跳数的处理方式相同,在此不再赘述。
需要注意的是,在本发明实施例中,成员设备的芯片转发表中的各芯片转发表项还可以设置active(激活)/Inactive(非激活)状态,并设置对应的老化周期。对于任一active状态的芯片转发表项,在一个老化周期内的随机时刻,将其值为Inactive状态,此后,若该成员设备在一个老化周期内未从该芯片转发表项中的堆叠口接收到芯片ID与该芯片转发表项中的芯片ID相同的报文(第一报文或/和第二报文),则删除该芯片转发表项。
通过以上描述可以看出,在本发明实施例中,堆叠系统中的成员设备通过该堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文;当堆叠系统中的成员设备接收到其他成员设备发送的转发表学习报文时,且该转发表学习报文中的源芯片ID不属于自身的芯片ID时,该成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该转发表学习报文通过自身的堆叠口转发,降低了CPU开销,提高了芯片转发表项的生成效率。
基于相同的技术构思,本发明实施例还提供了一种芯片转发表项生成设备,可以作为成员设备应用于上述方法实施例。
如图4所示,为本发明实施例提供的一种芯片转发表项生成设备的结构示意图,该芯片转发表项生成设备可以作为成员设备应用于包括多个成员设备的堆叠系统中,该芯片转发表项生成设备可以包括:
报文转发模块41,用于通过所述堆叠口发送以自身的芯片标识ID作为源芯片ID的转发表学习报文;当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,将该转发表学习报文通过其他堆叠口转发;
表项维护模块42,用于当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项;其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系。
其中,所述表项维护模块42具体用于,
根据该转发表学习报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该转发表学习报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
其中,所述表项维护模块42还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该转发表学习报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
其中,所述报文转发模块41还用于,当所述芯片转发表项生成设备从非堆叠口接收到普通数据报文,且根据该普通数据报文中的目的芯片ID确定该普通数据报文的目的芯片不是所述芯片转发表项生成设备的芯片时,以所述芯片转发表项生成设备的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
所述表项维护模块42还用于,当所述芯片转发表项生成设备从堆叠口接收到普通数据报文时,通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
其中,所述表项维护模块42具体用于,
根据该普通数据报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该普通数据报文在堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该普通数据报文在堆叠系统内的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
其中,所述表项维护模块42还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在所述堆叠系统内的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该普通数据报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
其中,所述报文转发模块41还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发表学习报文中携带生存时间TTL或源芯片跳数;其中,所述TTL或源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文被发送或被转发的次数增加而递减或递增;
所述表项维护模块42具体用于,根据所述转发表学习报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数的转发跳数。
其中,所述报文转发模块41还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发学习报文中携带TTL或源芯片跳数;当成员设备从非堆叠口接收到普通数据报文,并通过堆叠口转发该普通数据报文时,在所述普通数据报文中携带生存时间TTL或源芯片跳数;其中,所述TTL或所述源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数增加而递减或递增;
所述表项维护模块42具体用于,根据所述转发表学习报文和所述普通数据报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数和所述普通数据报文在堆叠系统内的转发跳数。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台终端设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (16)
1.一种芯片转发表项生成方法,应用于包括多个成员设备的堆叠系统,其特征在于,该方法包括:
堆叠系统中的成员设备通过堆叠口发送以自身的芯片标识ID作为源芯片ID的转发表学习报文;
当堆叠系统中的成员设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于自身的芯片ID时,所述成员设备通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,并将该转发表学习报文通过自身的其它堆叠口转发,其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系;
其中,转发表学习报文中配置有专用的源ID,该专用的源ID用于表明转发表学习报文不需要被过滤。
2.如权利要求1所述的方法,其特征在于,所述成员设备根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,具体包括:
所述成员设备根据该转发表学习报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,所述成员设备根据该源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数小于该芯片转发表项中记录的转发跳数,所述成员设备将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该转发表学习报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数大于该芯片转发表项中记录的转发跳数,所述成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
3.如权利要求2所述的方法,其特征在于,所述成员设备根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项,还包括:
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数等于该芯片转发表项中记录的转发跳数,所述成员设备判断接收到该转发表学习报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则所述成员设备将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口;
若判断为相同,则所述成员设备保持该芯片转发表项中的堆叠口不变。
4.如权利要求1所述的方法,其特征在于,该方法还包括:
当堆叠系统中的成员设备从非堆叠口接收到普通数据报文,且根据该普通数据报文中的目的芯片ID确定该普通数据报文的目的芯片不是所述成员设备自身的芯片时,所述成员设备以自身的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
当所述成员设备从堆叠口接收到普通数据报文时,所述成员设备通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
5.如权利要求4所述的方法,其特征在于,所述成员设备根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项,具体包括:
所述成员设备根据该普通数据报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,所述成员设备根据该源芯片ID、该普通数据报文在堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数小于该芯片转发表项中记录的转发跳数,所述成员设备将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该普通数据报文在堆叠系统内的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数大于该芯片转发表项中记录的转发跳数,所述成员设备保持该芯片转发表项中的堆叠口和转发跳数不变。
6.如权利要求5所述的方法,其特征在于,所述成员设备根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项,还包括:
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在所述堆叠系统内的转发跳数等于该芯片转发表项中记录的转发跳数,所述成员设备判断接收到该普通数据报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则所述成员设备将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口;
若判断为相同,则所述成员设备保持该芯片转发表项中的堆叠口不变。
7.如权利要求1所述的方法,其特征在于,所述成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发表学习报文中携带生存时间TTL或源芯片跳数;
所述TTL或源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文被发送或被转发的次数增加而递减或递增;
所述成员设备根据所述转发表学习报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数。
8.如权利要求6所述的方法,其特征在于,所述成员设备通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发学习报文中携带TTL或源芯片跳数;当成员设备从非堆叠口接收到普通数据报文,并通过堆叠口转发该普通数据报文时,在所述普通数据报文中携带所述TTL或所述源芯片跳数;
所述TTL或所述源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数增加而递减或递增;
所述成员设备根据所述转发表学习报文和所述普通数据报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数和所述普通数据报文在堆叠系统内的转发跳数。
9.一种芯片转发表项生成设备,作为成员设备应用于包括多个成员设备的堆叠系统,其特征在于,该芯片转发表项生成设备包括:
报文转发模块,用于通过所述堆叠口发送以自身的芯片标识ID作为源芯片ID的转发表学习报文,当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,将该转发表学习报文通过其他堆叠口转发;
表项维护模块,用于当所述芯片转发表项生成设备接收到其他成员设备发送的转发表学习报文,且该转发表学习报文中的源芯片ID不属于所述芯片转发表项生成设备的芯片ID时,通过硬件学习该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数、以及接收到该转发表学习报文的堆叠口的对应关系,根据该转发表学习报文中的源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口的对应关系维护对应的芯片转发表项;其中,芯片转发表项记录有源芯片ID、转发跳数,以及堆叠口的对应关系;
其中,转发表学习报文中配置有专用的源ID,该专用的源ID用于表明转发表学习报文不需要被过滤。
10.如权利要求9所述的设备,其特征在于,所述表项维护模块具体用于,
根据该转发表学习报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该转发表学习报文的转发跳数,以及接收到该转发表学习报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该转发表学习报文的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
11.如权利要求10所述的设备,其特征在于,所述表项维护模块还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该转发表学习报文的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该转发表学习报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该转发表学习报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
12.如权利要求9所述的设备,其特征在于,
所述报文转发模块还用于,当所述芯片转发表项生成设备从非堆叠口接收到普通数据报文,且根据该普通数据报文中的目的芯片ID确定该普通数据报文的目的芯片不是所述芯片转发表项生成设备的芯片时,以所述芯片转发表项生成设备的芯片ID作为该普通数据报文的源芯片ID,并根据芯片转发表项将该普通数据报文通过相应的堆叠口转发;
所述表项维护模块还用于,当所述芯片转发表项生成设备从堆叠口接收到普通数据报文时,通过硬件学习该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系,并根据该普通数据报文中的源芯片ID、该普通数据报文在所述堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口的对应关系维护对应的芯片转发表项。
13.如权利要求12所述的设备,其特征在于,所述表项维护模块具体用于,
根据该普通数据报文中的源芯片ID查询芯片转发表项;
若未查询到记录有该源芯片ID的芯片转发表项,根据该源芯片ID、该普通数据报文在堆叠系统内的转发跳数,以及接收到该普通数据报文的堆叠口生成对应该源芯片ID的芯片转发表项;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数小于该芯片转发表项中记录的转发跳数,将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口,并将该芯片转发表项中的转发跳数更新为该普通数据报文在堆叠系统内的转发跳数;
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在堆叠系统内的转发跳数大于该芯片转发表项中记录的转发跳数,保持该芯片转发表项中的堆叠口和转发跳数不变。
14.如权利要求13所述的设备,其特征在于,所述表项维护模块还用于,
若查询到记录有该源芯片ID的芯片转发表项,且该普通数据报文在所述堆叠系统内的转发跳数等于该芯片转发表项中记录的转发跳数,判断接收到该普通数据报文的堆叠口与该芯片转发表项中的堆叠口是否相同;
若判断为不同,则将该芯片转发表项中的堆叠口更新为接收到该普通数据报文的堆叠口;
若判断为相同,则保持该芯片转发表项中的堆叠口不变。
15.如权利要求9所述的设备,其特征在于,
所述报文转发模块还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发表学习报文中携带生存时间TTL或源芯片跳数;其中,所述TTL或源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文被发送或被转发的次数增加而递减或递增;
所述表项维护模块具体用于,根据所述转发表学习报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数的转发跳数。
16.如权利要求14所述的设备,其特征在于,
所述报文转发模块还用于,通过堆叠口发送以自身的芯片ID作为源芯片ID的转发表学习报文时,在所述转发学习报文中携带TTL或源芯片跳数;当成员设备从非堆叠口接收到普通数据报文,并通过堆叠口转发该普通数据报文时,在所述普通数据报文中携带所述TTL或所述源芯片跳数;其中,所述TTL或所述源芯片跳数的初始值为预设值,所述TTL随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数的增加而递减,或,所述源芯片跳数随着所述转发表学习报文和普通数据报文在堆叠系统内被发送或被转发的次数增加而递减或递增;
所述表项维护模块具体用于,根据所述转发表学习报文和所述普通数据报文中携带的TTL或源芯片跳数学习所述转发表学习报文的转发跳数和所述普通数据报文在堆叠系统内的转发跳数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310535972.6A CN103607351B (zh) | 2013-10-31 | 2013-10-31 | 一种芯片转发表项生成方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310535972.6A CN103607351B (zh) | 2013-10-31 | 2013-10-31 | 一种芯片转发表项生成方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103607351A CN103607351A (zh) | 2014-02-26 |
CN103607351B true CN103607351B (zh) | 2017-08-22 |
Family
ID=50125551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310535972.6A Active CN103607351B (zh) | 2013-10-31 | 2013-10-31 | 一种芯片转发表项生成方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103607351B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104639671B (zh) * | 2015-02-11 | 2018-03-20 | 新华三技术有限公司 | 堆叠中的mac地址学习控制方法和设备 |
CN106161288B (zh) | 2015-04-17 | 2019-08-16 | 新华三技术有限公司 | 实现多台设备堆叠的方法和设备 |
CN107171960B (zh) * | 2017-06-28 | 2020-03-24 | 华信塞姆(成都)科技有限公司 | 一种分布式动态二层转发表的维护方法 |
CN109428819B (zh) * | 2017-08-28 | 2022-01-11 | 阿里巴巴集团控股有限公司 | 传输数据的方法、网络组件、设备和计算机存储介质 |
CN107547372B (zh) * | 2017-08-30 | 2020-09-08 | 新华三技术有限公司 | 一种源过滤实现方法及装置 |
CN108777662B (zh) * | 2018-06-20 | 2021-05-18 | 迈普通信技术股份有限公司 | 表项管理方法及装置 |
CN113839875B (zh) * | 2021-10-26 | 2022-12-23 | 浪潮思科网络科技有限公司 | 一种堆叠系统中mac地址的同步方法、装置、设备及介质 |
CN114268596A (zh) * | 2021-12-23 | 2022-04-01 | 苏州盛科通信股份有限公司 | 基于交换芯片的堆叠系统破环保护的方法及应用 |
CN114244920B (zh) * | 2021-12-29 | 2024-02-09 | 苏州盛科通信股份有限公司 | 一种新老芯片堆叠头兼容方法及系统、芯片 |
CN114024902B (zh) * | 2022-01-05 | 2022-04-08 | 紫光恒越技术有限公司 | 堆叠报文的转发方法、装置、电子设备及可读存储介质 |
CN115190004A (zh) * | 2022-06-22 | 2022-10-14 | 杭州云合智网技术有限公司 | 主备明确的网络保护方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018180A (zh) * | 2007-03-12 | 2007-08-15 | 中兴通讯股份有限公司 | 一种堆叠系统内部转发表的实现方法 |
CN101345708A (zh) * | 2008-08-25 | 2009-01-14 | 杭州华三通信技术有限公司 | 一种生成转发表的方法和装置 |
CN103166874A (zh) * | 2013-03-25 | 2013-06-19 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
-
2013
- 2013-10-31 CN CN201310535972.6A patent/CN103607351B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101018180A (zh) * | 2007-03-12 | 2007-08-15 | 中兴通讯股份有限公司 | 一种堆叠系统内部转发表的实现方法 |
CN101345708A (zh) * | 2008-08-25 | 2009-01-14 | 杭州华三通信技术有限公司 | 一种生成转发表的方法和装置 |
CN103166874A (zh) * | 2013-03-25 | 2013-06-19 | 杭州华三通信技术有限公司 | 一种报文转发方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103607351A (zh) | 2014-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103607351B (zh) | 一种芯片转发表项生成方法及设备 | |
CN100596107C (zh) | 报文转发方法以及自治系统边界路由器 | |
CN103581252B (zh) | 支持内容网络中订阅内容的方法、设备及系统 | |
CN102904975B (zh) | 报文处理的方法和相关装置 | |
CN102395144B (zh) | 无线接入点升级方法、系统及设备 | |
CN101141304B (zh) | Acl规则的管理方法和设备 | |
CN102307136A (zh) | 报文处理方法及其装置 | |
CN103929368A (zh) | 多业务单元负载均衡方法及装置 | |
CN102347905A (zh) | 一种网络设备及其转发信息更新方法 | |
CN105814922A (zh) | 地址标识分配方法和相关设备及系统 | |
CN101325554A (zh) | 一种路由创建方法、转发芯片及三层交换机 | |
CN101616094A (zh) | 报文转发路径的获取方法和设备 | |
CN104348735A (zh) | 堆叠系统中的报文转发方法及装置 | |
EP3240245A1 (en) | Method and device for multicasting and forwarding multiple protocol label switching intermediate node, and node | |
CN110178410A (zh) | 一种通信路径确定方法及网络设备 | |
CN101364949B (zh) | 一种分布式网络系统的报文流重定向处理方法 | |
US20190296924A1 (en) | Forwarding multicast data packet | |
CN104488237A (zh) | 一种报文处理的方法、报文设备和系统 | |
CN104579981A (zh) | 一种组播数据报文转发方法及设备 | |
CN103457854B (zh) | 一种报文转发方法及设备 | |
CN107547535A (zh) | 防攻击的mac地址学习方法、装置和网络设备 | |
CN101997772A (zh) | 流量控制方法、装置、系统及网络设备 | |
CN101808037A (zh) | 交换网中流量管理的方法和装置 | |
CN103457862B (zh) | 一种软件纵向堆叠系统中三层组播实现方法和设备 | |
CN108092896A (zh) | 堆叠系统和聚合组建立装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Applicant before: Huasan Communication Technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |