CN111698155A - 一种stp协议报文分布式处理方法、系统及相关设备 - Google Patents
一种stp协议报文分布式处理方法、系统及相关设备 Download PDFInfo
- Publication number
- CN111698155A CN111698155A CN202010554552.2A CN202010554552A CN111698155A CN 111698155 A CN111698155 A CN 111698155A CN 202010554552 A CN202010554552 A CN 202010554552A CN 111698155 A CN111698155 A CN 111698155A
- Authority
- CN
- China
- Prior art keywords
- bridge
- host device
- port
- host
- stp protocol
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/18—Loop-free operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供了一种STP协议报文分布式处理方法、系统及相关设备,用于提高堆叠系统中交换机设备CPU资源利用率,提高网络收敛速度。本发明实施例方法包括:对接收的数据包进行过滤,筛选出STP协议报文;各个所述非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;各个所述非主机设备将各自的处理结果发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
Description
技术领域
本发明涉及网络路由技术领域,尤其涉及一种STP协议报文分布式处理方法、系统及相关设备。
背景技术
交换机堆叠,是指将一台以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的端,多台交换机经过堆叠形成一个堆叠单元。
目前的交换机堆叠系统中,对于STP协议(Spanning Tree Protocol,生成树协议)报文的处理是集中式的,即把报文全部送到主机处理,由主机完成全局的角色计算和各个端口的角色和状态计算并把对应的状态机同步到备机。
由于主机设备的CPU资源有限,而堆叠系统可以接入多达10台设备,堆叠系统的STP协议报文都送到主机上处理,主机设备的CPU运算就会遇到瓶颈,造成网络无法收敛或收敛速度慢,影响交换机业务的稳定性。
发明内容
本发明实施例提供了一种STP协议报文分布式处理方法、系统及相关设备,用于提高堆叠系统中交换机设备CPU资源利用率,提高网络收敛速度。
本发明实施例第一方面提供了一种STP协议报文分布式处理方法,应用于交换机堆叠系统中的非主机设备,可包括:
对接收的数据包进行过滤,筛选出STP协议报文;
各个所述非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
各个所述非主机设备将各自的处理结果发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
可选的,作为一种可能的实施方式,本发明实施例中的STP协议报文分布式处理方法中,当所述STP协议报文中包含外部设备的网桥ID时,所述各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,可包括:
比较所述外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用所述外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
将本地存储的网桥ID发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的所述本地存储的网桥ID确定网络中的根网桥。
可选的,作为一种可能的实施方式,本发明实施例中的STP协议报文分布式处理方法中,当所述STP协议报文中包含网桥协议数据单元BPDU时,所述各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,还可包括:
解析所述BPDU得到配置参数,所述配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
根据所述配置参数确定非主机设备的预估端口角色;
将所述非主机设备的预估端口角色发送给所述主机设备,以使得所述主机设备根据所有非主机设备的预估端口角色确定所述交换机堆叠系统中各个交换机设备的端口角色。
可选的,作为一种可能的实施方式,本发明实施例中的STP协议报文分布式处理方法,还可以包括:
当非主机设备的端口状态发生变化时,向所述主机设备发送通知消息,以使得所述主机设备确认所述交换机堆叠系统中的设备端口状态的一致性;
当接收所述主机设备发送的确认消息时,并更新所述非主机设备的端口状态。
可选的,作为一种可能的实施方式,本发明实施例中的STP协议报文分布式处理方法中,所述交换机堆叠系统中还包括备用主机设备,所述备用主机设备中同步保存所述主机设备中的数据。
本发明实施例第二方面提供了一种STP协议报文分布式处理系统,其特征在于,应用于交换机堆叠系统中的非主机设备,所述STP协议报文分布式处理系统包括:
筛选模块,用于对接收的数据包进行过滤,筛选出STP协议报文;
处理模块,采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
第一发送模块,用于将处理结果发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
可选的,作为一种可能的实施方式,当所述STP协议报文中包含外部设备的网桥ID时,所述处理模块可以包括:
比较单元,用于比较所述外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用所述外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
第一发送单元,用于将本地存储的网桥ID发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的所述本地存储的网桥ID确定网络中的根网桥。
可选的,作为一种可能的实施方式,当所述STP协议报文中包含网桥协议数据单元BPDU时,所述处理模块还可以包括:
解析单元,用于解析所述BPDU得到配置参数,所述配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
确定单元,用于根据所述配置参数确定非主机设备的预估端口角色;
第二发送单元,用于将所述非主机设备的预估端口角色发送给所述主机设备,以使得所述主机设备根据所有非主机设备的预估端口角色确定所述交换机堆叠系统中各个交换机设备的端口角色。
可选的,作为一种可能的实施方式,本申请实施例中的STP协议报文分布式处理系统,还可以包括:
第二发送模块,用于当非主机设备的端口状态发生变化时,向所述主机设备发送通知消息,以使得所述主机设备确认所述交换机堆叠系统中的设备端口状态的一致性;
更新模块,当接收所述主机设备发送的确认消息时,并更新所述非主机设备的端口状态。
本发明实施例第三方面提供了一种交换机设备,所述交换机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面及第一方面中任意一种可能的实施方式中的步骤。
本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面及第一方面中任意一种可能的实施方式中的步骤。
从以上技术方案可以看出,本发明实施例具有以下优点:
本申请实施例中,交换机堆叠系统中的非主机设备,可以对接收的数据包进行过滤,筛选出STP协议报文。各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,并发送给交换机堆叠系统中的主机设备,使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。相对于相关技术,本申请实施例中的交换机堆叠系统中的非主机设备可以分别使用自身的数据处理资源处理各自接收到的STP协议报文,实现了STP协议报文分布式处理,提高了交换机堆叠系统中的数据处理资源使用率,分布式处理大大节省了STP协议报文处理的时间,可以尽快消除网络拓扑中的环形环路,提高网络收敛速度。
附图说明
图1为本发明实施例中一种STP协议报文分布式处理方法的一个实施例示意图;
图2为本发明实施例中一种STP协议报文分布式处理方法的另一个实施例示意图;
图3为本发明实施例中一个具体应用实施例中非主机设备端口相关技术中的PortRole Selection状态机实现流程的示意图;
图4为本发明实施例中一个具体应用实施例中非主机设备端口改进的Port RoleSelection状态机实现流程的示意图;
图5为本发明实施例中一个具体应用实施例中非主机设备端口相关技术中的PortRole Transition状态机实现流程的示意图;
图6为本发明实施例中一个具体应用实施例中非主机设备端口改进的Port RoleTransition状态机实现流程的示意图;
图7为本发明实施例中一种STP协议报文分布式处理系统的一个实施例示意图;
图8为本发明实施例中一种交换机设备的一个实施例示意图。
具体实施方式
本发明实施例提供了一种STP协议报文分布式处理方法、系统及相关设备,用于提高堆叠系统中交换机设备CPU资源利用率,提高网络收敛速度。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
STP协议(Spanning Tree Protocol,生成树协议)工作原理:任意一交换机中如果到达根网桥有两条或者两条以上的链路,生成树协议都根据算法仅仅保留一条,把其他切断,从而保证任意两个交换机之间只有一条单一的活动链路。
相关技术的堆叠系统中,STP协议只是在主机设备上运行,那么仅仅只是用了单一主机设备的CPU资源,其他非主机设备的CPU资源得不到充分利用。有鉴于此,本申请提出了采用分布式STP的处理方法,用于提高堆叠系统中交换机设备CPU资源利用率,提高网络收敛速度。
为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种STP协议报文分布式处理方法的一个实施例可包括:
101、对接收的数据包进行过滤,筛选出STP协议报文;
堆叠系统中包含主机设备及非主机设备,本申请中的STP协议报文分布式处理方法应用于交换机堆叠系统中的非主机设备。当非主机设备接收到数据包之后,可以对接收的数据包进行过滤,筛选出STP协议报文。
示例性的,可以采用访问控制列表(ACL)技术对接收的数据包进行过滤,筛选出STP协议报文。
102、各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
为了提高交换机设备CPU资源利用率,本申请中可以在交换机堆叠系统中的非主机设备上配置STP协议处理功能。在筛选出STP协议报文之后,交换机堆叠系统中的各个非主机设备可以分别采用自身的数据处理资源,按照相关技术中的STP协议对应的逻辑规则,处理筛选出的STP协议报文生成对应的处理结果。
103、各个非主机设备将各自的处理结果发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
STP协议在消除网络中的环形拓扑结构的过程中,需要结合全网络的交换机的配置参数及路由状态信息。各个非主机设备对接收到的部分网络的交换机的配置参数及路由状态信息进行处理之后,可以将处理结果都发送给交换机堆叠系统中的主机设备,主机设备可以获得全网络的交换机的配置参数及路由状态信息。主机设备采用STP协议中的数据处理逻辑,综合所有非主机设备的处理结果及自身接收到的STP协议报文的处理结果,可以确定根网桥、各个网桥的端口角色及端口状态,进而消除网络中的环形拓扑结构,形成树形网络拓扑结构。
本申请实施例中,交换机堆叠系统中的非主机设备,可以对接收的数据包进行过滤,筛选出STP协议报文。各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,并发送给交换机堆叠系统中的主机设备,使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。相对于相关技术,本申请实施例中的交换机堆叠系统中的非主机设备可以分别使用自身的数据处理资源处理各自接收到的STP协议报文,实现了STP协议报文分布式处理,提高了交换机堆叠系统中的数据处理资源使用率,分布式处理大大节省了STP协议报文处理的时间,可以尽快消除网络拓扑中的环形环路,提高网络收敛速度。
为了便于理解,下面将STP协议报文分布式处理方法中的STP协议报文处理过程进行详细描述。请参阅图2,本发明实施例中的一种STP协议报文分布式处理方法的另一个实施例可包括:
201、对接收的数据包进行过滤,筛选出STP协议报文;
本实施例中的步骤201中描述的内容与图1所示实施例中的步骤101中描述的内容类似,具体请参阅步骤101,此处不做赘述。
202、当STP协议报文中包含外部设备的网桥ID时,比较外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
STP协议在消除环形环路之前,需要根据网桥ID(Identity document,身份标识符),在所有网桥中确定网桥ID值最小的网桥作为根网桥。为此,当非主机设备筛选出的STP协议报文中包含外部设备的网桥ID时,比较外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID。
其中,网桥ID由16位的桥优先级(Bridge priority)和48位的MAC地址构成,网桥ID值也由桥优先级及MAC(Media Access Control Address,网卡硬件地址)地址确定,桥优先级数值越小网桥ID值越优先,如果桥优先级相同,MAC地址越小则网桥ID值越小。
基于上述步骤,非主机设备可以预先筛选出已知外部网桥设备中网桥ID值最小的网桥,无需主机设备解析所有STP协议报文,无需比较所有外部网桥设备中网桥ID值,节约了主机设备的数据处理资源。
203、将本地存储的网桥ID发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的本地存储的网桥ID确定网络中的根网桥;
在进行预筛选之后,非主机设备可以将本地存储的网桥ID发送给交换机堆叠系统中的主机设备,主机设备根据所有非主机设备的本地存储的网桥ID及主机设备自身接收到的STP协议报文,综合确定网桥ID值最小的网桥作为的根网桥。
示例性的,假设端口1、端口2在主机设备上,端口3、端口4在从机设备1上,端口5、端口6在从机设备2上。端口3或端口5收到BPDU(Bridge Protocol Data Unit,网桥协议数据单元),会将BPDU与本设备的其他的端口配置BPDU比较,得出本设备的最优BPDU并发送给主机设备。端口1收到一个配置BPDU,会提取其中的网桥ID并与端口1存储的网桥ID进行比较,如果收到BPDU中的网桥ID更小,则更新此端口存储的网桥ID,并把收到的网桥ID与端口2、端口3、端口4、端口5、端口6的网桥ID进行比较,选出堆叠设备最小网桥ID值。当堆叠设备与堆叠系统之外的其他外部设备的最小BID(Bridge Identity document,网桥ID)都一致时,根桥即选举完成。
204、当STP协议报文中包含网桥协议数据单元BPDU时,解析BPDU得到配置参数,根据配置参数确定非主机设备的预估端口角色;
在确定根网桥之后,STP协议需要进一步确定各个网桥的端口角色,即确定根端口、各个网段的指定端口以及堵塞端口。
STP协议中各个网桥的端口角色需要根据网桥协议数据单元BPDU(BridgeProtocol Data Unit)中的配置参数进行确定。具体的配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID。
当非主机设备筛选出的STP协议报文中包含BPDU时,非主机设备可以解析该BPDU得到配置参数,根据配置参数确定非主机设备的预估端口角色。
具体的,STP协议中每个交换机有且只有一个根端口(根桥没有,根桥全部是指定端口),选择根端口的原则是:到根网桥最低成本、最低发送网桥ID、最低端口ID。到根网桥最低成本是指,选择网桥设备中到根网桥的累计根路径开销最小的端口为根端口;最低发送网桥ID是指,如果同一个设备中的多个端口累计根路径开销相同,则选择根路径中发送网桥ID值最小的根路径对应的端口为根端口;最低端口ID是指,如果同一个设备中的多个端口累计根路径开销相同,根路径中发送网桥ID相同,则选择端口ID值最小的端口作为根端口。
STP协议中每个网段有一个指定端口,选择指定端口的原则是:确定向根网桥发送数据最低成本、最低发送网桥ID、最低端口ID。即,选择网段中向根网桥发送数据的累计根路径开销最小的端口为指定端口;如果同一个网段中的多个端口累计根路径开销相同,则选择端口所在的网桥ID最小的端口为指定端口;如果同一网段中的多个端口累计根路径开销相同,发送方的网桥ID相同,则选择端口ID值最小的端口作为指定端口。
在确定各个网桥的中的根端口以及网段中的指定端口之后,其余端口可以作为堵塞端口。
基于上述步骤,非主机设备可以预先计算自身的预估端口角色,相对于相关技术,无需主机设备解析所有BPDU数据包,无需处理比较所有BPDU中配置参数值,节约了主机设备的数据处理资源。
205、将非主机设备的预估端口角色发送给主机设备,以使得主机设备根据所有非主机设备的预估端口角色确定交换机堆叠系统中各个交换机设备的端口角色。
非主机设备可以将预估端口角色发送给主机设备,使得主机设备可以根据所有非主机设备的预估端口角色确定交换机堆叠系统中各个交换机设备的端口角色。
示例性的,假设从机设备的2/1端口与主机设备的1/1端口都与根网桥连接,从机设备计算自身的2/1端口的预设端口角色是根端口之后,向主机设备发送该预设端口角色消息,主机设备收到消息后发现自己的1/1端口也是根端口,接下来主机设备就比较1/1和2/1的累计根路径开销,假设1/1端口的累计根路径开销为100,2/1的累计根路径开销为200,根据最小累计根路径开销原则,主机设备的1/1端口成为根端口,所以从机设备的2/1端口将不能作为根端口。
可以理解的是,上述步骤203可以单独实施,确定根网桥之后可以按照相关技术中的堆叠系统中的方案确定各个网桥的端口角色,也可以根据上述步骤204至205确定各个网桥的端口角色,具体实施方式,此处不做限定。
实际应用中,非主机设备确定自身预设端口角色,或网络拓扑发生改变导致非主机设备的端口角色发生改变时,都会引起非主机设备的端口状态发生变化。非主机设备的端口状态发生变化时,需要交换机堆叠系统中的设备端口状态的一致性,保障交换机堆叠系统中不能出现多个根端口,同一个网段不能出现多个指定端口。
为此,本申请实施例中,当非主机设备的端口状态发生变化时,非主机设备可以向主机设备发送通知消息,以使得主机设备确认交换机堆叠系统中的设备端口状态的一致性;当接收主机设备发送的确认消息时,并更新非主机设备的端口状态。
为了保障主机设备故障时,可以实现零丢包切换。可选的,作为一种可能的实施方式,本申请实施例中交换机堆叠系统中还包括备用主机设备,该备用主机设备中同步保存主机设备中的数据。
为了便于理解,请参阅图3至图6,下面将结合具体应用实施例对本申请中的STP协议报文分布式处理方法进行描述。具体包括如下步骤:
一、stp协议报文处理
通过ACL筛选STP协议报文,并送到每个堆叠设备自己的CPU,无需送到主机的CPU处理。
二、根选举过程
以选举根根桥为例,说明如下:
1、假设端口1、端口2在主机设备上,端口3、端口4在备设备上,端口5、端口6在从设备上。
2、端口3或端口5收到BPDU,会提取其中的BID并与端口1存储的BID进行比较,得出本设备的最优BID并发送给主机设备。
3、主机设备再将备或从设备发送过来的BID与存储的主机设备、从设备的BPDU比较选出本堆叠系统的最优BID。例如,端口1收到一个配置BPDU,会提取其中的BID并与端口1存储的BID进行比较,如果收到BPDU更优,则更新此端口的BID,并把收到的BID与端口2、端口3、端口4、端口5、端口6的BID进行比较,选出最优的BID作为本桥的配置BPDU中BID。
4、当堆叠设备与堆叠系统之外的其他外部设备的最优BID都一致时,根桥即选举完成。
三、状态机修改,确定端口角色和状态
确定根网桥之后,端口收到BPDU报文后先BPDU优先级比较,根据BPDU优先级比较更小更优的原则,依次比较累计根路径开销、发送方网桥ID、发送方网桥端口ID,通过以上元素,确定当前网桥的预设端口角色、状态。网桥最终的端口角色的计算需要放到主机设备上完成,端口角色和端口状态也需要同步其他设备和其他端口的角色和状态,非主机设备状态机需要主机设备的确认才能进入下一个状态。对于跨越多个设备的聚合口,其状态由主机设备负责计算。
所有的状态机都是基于端口来运行的,但是端口的状态迁移需要考虑交换机堆叠系统中的设备端口状态的一致性,因此需要对相关技术中的状态机做修改。
示例性的,以下状态机:Port Role Selection(端口角色选择)、Port RoleTransitions(端口角色转换)需要做适当修改。当这两个状态机需要调用全局方法或者需要全局数据的时候,如果全局数据还没准备好,则需要先迫使状态机进入一个未决状态,处于未决状态的状态机会通知主设备当前设备需要进入下一个状态,主设备则等待所有设备都准备就绪后再回一个相应的ACK(Acknowledge characte,表示发来的数据已确认接收无误),当前设备收到ACK开始进入下一个状态。此时状态机阻塞在等待状态,等待其他设备的数据同步过来。具体的全局变量可以包括但不限于BEGIN:表示是否需要重新开始计算;MstConfigId:Mst域配置id;BridgeIdentifier:唯一网桥标识;CistBridgeIdentifier:Cist唯一网桥标识;CistBridgeTimes:Cist网桥时间;cistRootPortId:cist根桥id;cistRootPriority:cist根优先级;cistRootTimes:cist定时器参数;MstiBridgeIdentifier:Msti唯一网桥标识;MstiBridgeTimes:Msti网桥时间;mstiRootPortId:msti根桥id;mstiRootPriority:msti根优先级;mstiRootTimes:msti定时器参数。
如图3与图4所示,图3所示为相关技术中非主机设备端口的Port Role Selection状态机,实现流程如下:
1.prs状态机进入INIT_BRIDGE状态;
2.无条件进入RECEIVE状态。
图4所示为改进的Port Role Selection状态机,实现流程如下:
1.prs状态机进入INIT_BRIDGE状态;
2.设置PENDING=TRUE;
3.发送通知给主设备请求进入RECEIVE状态;
4.主设备应答ACK,允许进入RECEIVE状态;
5.进入RECEIVE状态,设置PENDING=FALSE。
如图5与图6所示,图5所示为非主机设备端口相关技术的Port Role Transition状态机,实现流程如下:
1.prt状态机进入INIT_PORT状态;
2.无条件进入BLOCK_PORT状态;
3.!learning&&!forwarding为真时进入BLOCK_PORT状态;
4.(rbWhile!=2*HelloTime)&&(role==BackupPort)为真时进入BACKUP_PORT在状态,设置rbWhile=2*HelloTime并进入BLOCK_PORT状态;
5.(fdWhile!=FwdDelay)||sync||reRoot||!synced为真时重新进入BLOCKED_PORT状态。
图6所示为改进的Port Role Transition状态机,实现流程如下:
1.prt状态机进入INIT_PORT状态;
2.无条件进入BLOCK_PORT状态;
3.!learning&&!forwarding为真时进入未决状态,请求主设备允许状态切换,设置PENDING=TRUE;
4.主设备应答ACK,允许切换,prt状态机进入BLOCKED_PORT状态;
5.(rbWhile!=2*HelloTime)&&(role==BackupPort)为真时进入BACKUP_PORT在状态,设置rbWhile=2*HelloTime未决状态,请求主设备允许状态切换;
6.主设备应答ACK,允许切换,prt状态机进入BLOCKED_PORT状态;
7.(fdWhile!=FwdDelay)||sync||reRoot||!synced为真时重新进入BLOCKED_PORT状态。
所有的非主设备在进入未决状态后都会设置PENDING=TRUE并且等待主机的ACK消息,此时有两种情况:
1.主机消息回复超时,此时只能继续等待或回退到上一个状态;
2.成功收到主机的ACK消息,设置PENDING=FALSE,继续走后面的状态流程;最后Port State Transition状态机再根据Port Role Selection的状态设置端口对应的Disable/Learn/Forward状态,最后完成STP的整个协商过程。
本申请采用未决状态与主机确认机制来保证所有设备的状态机的状态都是一致的和可预测的,避免各个设备之间的状态竞争和状态不同步,各个设备之间状态竞争和状态不同步可能导致STP反复收敛或无法收敛。
请参阅图7,本申请实施例还提供了一种STP协议报文分布式处理系统,其特征在于,应用于交换机堆叠系统中的非主机设备,STP协议报文分布式处理系统包括:
筛选模块701,用于对接收的数据包进行过滤,筛选出STP协议报文;
处理模块702,采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
第一发送模块703,用于将处理结果发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
可选的,作为一种可能的实施方式,当STP协议报文中包含外部设备的网桥ID时,处理模块可以包括:
比较单元,用于比较外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
第一发送单元,用于将本地存储的网桥ID发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的本地存储的网桥ID确定网络中的根网桥。
可选的,作为一种可能的实施方式,当STP协议报文中包含网桥协议数据单元BPDU时,处理模块还可以包括:
解析单元,用于解析BPDU得到配置参数,配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
确定单元,用于根据配置参数确定非主机设备的预估端口角色;
第二发送单元,用于将非主机设备的预估端口角色发送给主机设备,以使得主机设备根据所有非主机设备的预估端口角色确定交换机堆叠系统中各个交换机设备的端口角色。
可选的,作为一种可能的实施方式,本申请实施例中的STP协议报文分布式处理系统,还可以包括:
第二发送模块,用于当非主机设备的端口状态发生变化时,向主机设备发送通知消息,以使得主机设备确认交换机堆叠系统中的设备端口状态的一致性;
更新模块,当接收主机设备发送的确认消息时,并更新非主机设备的端口状态。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
上面从模块化功能实体的角度对本发明实施例中的网图表编辑器进行了描述,请参阅图8,下面从硬件处理的角度对本发明实施例中的交换机设备进行描述:
该交换机设备1可以包括存储器11、处理器12和输入输出总线13。处理器11执行计算机程序时实现上述图1所示的STP协议报文分布式处理方法实施例中的步骤,例如图1所示的步骤101至103。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。
本发明的一些实施例中,处理器具体用于实现如下步骤:
对接收的数据包进行过滤,筛选出STP协议报文;
各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
各个非主机设备将各自的处理结果发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
当STP协议报文中包含外部设备的网桥ID时,可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
比较外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
将本地存储的网桥ID发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的本地存储的网桥ID确定网络中的根网桥。
当STP协议报文中包含网桥协议数据单元BPDU时,可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
解析BPDU得到配置参数,配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
根据配置参数确定非主机设备的预估端口角色;
将非主机设备的预估端口角色发送给主机设备,以使得主机设备根据所有非主机设备的预估端口角色确定交换机堆叠系统中各个交换机设备的端口角色。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
当非主机设备的端口状态发生变化时,向主机设备发送通知消息,以使得主机设备确认交换机堆叠系统中的设备端口状态的一致性;
当接收主机设备发送的确认消息时,并更新非主机设备的端口状态。
其中,存储器11至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是交换机设备1的内部存储单元,例如该交换机设备1的硬盘。存储器11在另一些实施例中也可以是交换机设备1的外部存储设备,例如交换机设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括交换机设备1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于交换机设备1的应用软件及各类数据,例如计算机程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行计算机程序01等。
该输入输出总线13可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。
进一步地,交换机设备还可以包括有线或无线网络接口14,网络接口14可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该交换机设备1与其他电子设备之间建立通信连接。
可选地,该交换机设备1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的,用户接口还可以包括标准的有线接口、无线接口。可选的,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在交换机设备1中处理的信息以及用于显示可视化的用户界面。
图8仅示出了具有组件11-14以及计算机程序01的交换机设备1,本领域技术人员可以理解的是,图8示出的结构并不构成对交换机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
本发明还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:
对接收的数据包进行过滤,筛选出STP协议报文;
各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
各个非主机设备将各自的处理结果发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
当STP协议报文中包含外部设备的网桥ID时,可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
比较外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
将本地存储的网桥ID发送给交换机堆叠系统中的主机设备,以使得主机设备根据所有非主机设备的本地存储的网桥ID确定网络中的根网桥。
当STP协议报文中包含网桥协议数据单元BPDU时,可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
解析BPDU得到配置参数,配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
根据配置参数确定非主机设备的预估端口角色;
将非主机设备的预估端口角色发送给主机设备,以使得主机设备根据所有非主机设备的预估端口角色确定交换机堆叠系统中各个交换机设备的端口角色。
可选的,作为一种可能的实施方式,处理器还可以用于实现如下步骤:
当非主机设备的端口状态发生变化时,向主机设备发送通知消息,以使得主机设备确认交换机堆叠系统中的设备端口状态的一致性;
当接收主机设备发送的确认消息时,并更新非主机设备的端口状态。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对相关技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种STP协议报文分布式处理方法,其特征在于,应用于交换机堆叠系统中的非主机设备,包括:
对接收的数据包进行过滤,筛选出STP协议报文;
各个所述非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
各个所述非主机设备将各自的处理结果发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
2.根据权利要求1所述的方法,其特征在于,当所述STP协议报文中包含外部设备的网桥ID时,所述各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,包括:
比较所述外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用所述外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
将本地存储的网桥ID发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的所述本地存储的网桥ID确定网络中的根网桥。
3.根据权利要求2所述的方法,其特征在于,当所述STP协议报文中包含网桥协议数据单元BPDU时,所述各个非主机设备采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果,还包括:
解析所述BPDU得到配置参数,所述配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
根据所述配置参数确定非主机设备的预估端口角色;
将所述非主机设备的预估端口角色发送给所述主机设备,以使得所述主机设备根据所有非主机设备的预估端口角色确定所述交换机堆叠系统中各个交换机设备的端口角色。
4.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
当非主机设备的端口状态发生变化时,向所述主机设备发送通知消息,以使得所述主机设备确认所述交换机堆叠系统中的设备端口状态的一致性;
当接收所述主机设备发送的确认消息时,并更新所述非主机设备的端口状态。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述交换机堆叠系统中还包括备用主机设备,所述备用主机设备中同步保存所述主机设备中的数据。
6.一种STP协议报文分布式处理系统,其特征在于,应用于交换机堆叠系统中的非主机设备,所述STP协议报文分布式处理系统包括:
筛选模块,用于对接收的数据包进行过滤,筛选出STP协议报文;
处理模块,采用自身的数据处理资源,按照STP协议处理筛选出的STP协议报文生成对应的处理结果;
第一发送模块,用于将处理结果发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的处理结果消除网络中的环形拓扑结构。
7.根据权利要求6所述的系统,其特征在于,当所述STP协议报文中包含外部设备的网桥ID时,所述处理模块包括:
比较单元,用于比较所述外部设备的网桥ID值是否小于本地存储的网桥ID,若小于,则采用所述外部设备的网桥ID替换本地存储的网桥ID,若大于,则不改变本地存储的网桥ID;
第一发送单元,用于将本地存储的网桥ID发送给所述交换机堆叠系统中的主机设备,以使得所述主机设备根据所有非主机设备的所述本地存储的网桥ID确定网络中的根网桥。
8.根据权利要求7所述的系统,其特征在于,当所述STP协议报文中包含网桥协议数据单元BPDU时,所述处理模块还包括:
解析单元,用于解析所述BPDU得到配置参数,所述配置参数包括累计根路径开销、发送方网桥ID、发送方网桥端口ID;
确定单元,用于根据所述配置参数确定非主机设备的预估端口角色;
第二发送单元,用于将所述非主机设备的预估端口角色发送给所述主机设备,以使得所述主机设备根据所有非主机设备的预估端口角色确定所述交换机堆叠系统中各个交换机设备的端口角色。
9.一种交换机设备,其特征在于,所述交换机设备包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1至4中任意一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如权利要求1至4中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010554552.2A CN111698155B (zh) | 2020-06-17 | 2020-06-17 | 一种stp协议报文分布式处理方法、系统及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010554552.2A CN111698155B (zh) | 2020-06-17 | 2020-06-17 | 一种stp协议报文分布式处理方法、系统及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111698155A true CN111698155A (zh) | 2020-09-22 |
CN111698155B CN111698155B (zh) | 2022-10-04 |
Family
ID=72481783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010554552.2A Active CN111698155B (zh) | 2020-06-17 | 2020-06-17 | 一种stp协议报文分布式处理方法、系统及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111698155B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713608A (zh) * | 2004-06-25 | 2005-12-28 | 杭州华为三康技术有限公司 | 快速生成树协议在多cpu环境下的分布式实现方法 |
WO2010009639A1 (zh) * | 2008-07-25 | 2010-01-28 | 华为技术有限公司 | 堆叠交换机分离和复合的方法及系统 |
CN104283811A (zh) * | 2013-07-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN111064778A (zh) * | 2019-12-09 | 2020-04-24 | 盛科网络(苏州)有限公司 | 基于stp的数据处理方法及系统 |
-
2020
- 2020-06-17 CN CN202010554552.2A patent/CN111698155B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1713608A (zh) * | 2004-06-25 | 2005-12-28 | 杭州华为三康技术有限公司 | 快速生成树协议在多cpu环境下的分布式实现方法 |
WO2010009639A1 (zh) * | 2008-07-25 | 2010-01-28 | 华为技术有限公司 | 堆叠交换机分离和复合的方法及系统 |
CN104283811A (zh) * | 2013-07-09 | 2015-01-14 | 杭州华三通信技术有限公司 | 报文转发方法和装置 |
CN111064778A (zh) * | 2019-12-09 | 2020-04-24 | 盛科网络(苏州)有限公司 | 基于stp的数据处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111698155B (zh) | 2022-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3316555B1 (en) | Mac address synchronization method, device and system | |
CN103201982A (zh) | 利用安全端口组来管理mac移动 | |
WO2012075204A1 (en) | Systems and methods for recovery from network changes | |
CN104184756A (zh) | 一种数据同步方法、装置及系统 | |
CN101989953A (zh) | 双向转发检测报文的发送方法及设备 | |
CN106797370B (zh) | 一种sas系统及sas系统的遍历方法、装置 | |
CN104158642A (zh) | 一种为软件定义网络控制器提供备份的方法及系统 | |
CN103631652A (zh) | 虚拟机迁移的实现方法及系统 | |
CN104580472A (zh) | 流表项处理方法以及装置 | |
CN111327524A (zh) | 流量转发方法、系统、sdn控制器及计算机可读存储介质 | |
CN104427012B (zh) | 端口协商方法和设备 | |
CN106911597A (zh) | 一种跨板转发方法和装置 | |
CN107566143B (zh) | 一种纵向堆叠发现方法和装置 | |
CN105763462A (zh) | 一种处理堆叠分裂的方法及交换机 | |
CN111585797A (zh) | 以太网链路切换方法、装置、设备及计算机可读存储介质 | |
Biswas et al. | A timer based leader election algorithm | |
CN111371608A (zh) | 一种部署sfc业务链的方法、装置和介质 | |
CN111698155B (zh) | 一种stp协议报文分布式处理方法、系统及相关设备 | |
CN111327527A (zh) | 流量转发方法、系统、sdn控制器及计算机可读存储介质 | |
CN109618021A (zh) | 修改ip地址的方法和刀箱 | |
CN103200092B (zh) | 一种基于虚拟网络设备的路由进程管理方法和设备 | |
CN116095145B (zh) | 一种vpc集群的数据控制方法和系统 | |
CN105338127A (zh) | 媒体接入控制mac地址表更新方法、交换机及系统 | |
CN110958165B (zh) | 网络接口建立及管理方法和装置 | |
CN105812160B (zh) | 一种无缝冗余网络模式自适应方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |