发明内容
本发明提供一种MAC地址表更新方法、交换机及系统,用以解决现有技术中存在的在环网切换场景下,环网中的主交换机的MAC地址表的更新耗时较长,更新效率较低的缺陷。
本发明提供的具体技术方案如下:
第一方面,提供一种媒体接入控制MAC地址表更新方法,应用于环网中,该环网包括一个主交换机和至少一个传输交换机,包括:
检测到所述环网发生切换时,确定由所述环网提供接入服务的终端;
确定所述终端的挂接交换机;
当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;
其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机;
所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。
结合第一方面,在第一种可能的实现方式中,在检测到所述环网发生切换之前,还包括:
确定所述主交换机中对应所述终端的从端口;
其中,所述从端口为所述主交换机中与所述主端口属于同一虚拟局域网VLAN,且与所述挂接交换机之间的路径在所述环网发生切换前未交互所述终端的报文的端口。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,确定所述主交换机中对应所述终端的从端口,具体包括:
确定所述终端的挂接交换机;
若所述挂接交换机为传输交换机,将所述挂接交换机与所述主交换机之间的非转发路径对应的所述主交换机的端口作为对应所述终端的从端口;
其中,所述非转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前未交互所述终端的报文的路径。
结合第一方面,或者第一方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,确定所述终端的挂接交换机,具体包括:
以所述主交换机为起始点以及终止点,依次获取所述环网上的每一个交换机的MAC地址,生成第一链路表;
确定所述终端与所述主交换机之间的传输链路,其中,所述传输链路是指所述终端与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的链路;
以所述主交换机为起始点,所述终端为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表;
将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较,得到所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址;
确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
结合第一方面的第三种可能的实现方式,在第四种可能的实现方式中,将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较,具体包括:
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较;或者
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,依次与所述第一链路表中的MAC地址比较。
结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机,具体包括:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定所述主交换机为所述终端的挂接交换机。
结合第一方面的第四种可能的实现方式,在第六种可能的实现方式中,确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机,具体包括:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,则确定按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
结合第一方面的第四种可能的实现方式,在第七种可能的实现方式中,确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机,具体包括:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
第二方面,提供一种交换机,应用于环网中,所述交换机为所述环网中的主交换机,该环网包括所述主交换机和至少一个传输交换机,包括:
确定单元,用于检测到所述环网发生切换时,确定由所述环网提供接入服务的终端,并确定所述终端的挂接交换机,其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机;
更新单元,用于当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;
其中,所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。
结合第二方面,在第一种可能的实现方式中,所述确定单元还用于:
确定所述主交换机中对应所述终端的从端口;其中,所述从端口为所述主交换机中与所述主端口属于同一虚拟局域网VLAN,且与所述挂接交换机之间的路径在所述环网发生切换前未交互所述终端的报文的端口。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述确定单元在确定所述主交换机中对应所述终端的从端口时,具体用于:
确定所述终端的挂接交换机;
若所述挂接交换机为传输交换机,将所述挂接交换机与所述主交换机之间的非转发路径对应的所述主交换机的端口作为对应所述终端的从端口;
其中,所述非转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前未交互所述终端的报文的路径。
结合第二方面,或者第二方面的第一至第二种可能的实现方式,在第三种可能的实现方式中,所述确定单元具体用于:
以所述主交换机为起始点以及终止点,依次获取所述环网上的每一个交换机的MAC地址,生成第一链路表;
确定所述终端与所述主交换机之间的传输链路,其中,所述传输链路是指所述终端与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的链路;
以所述主交换机为起始点,所述终端为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表;
将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较,得到所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址;
确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
结合第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述确定单元将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较时,具体哟用于:
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较;或者
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,依次与所述第一链路表中的MAC地址比较。
结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述确定单元确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定所述主交换机为所述终端的挂接交换机。
结合第二方面的第四种可能的实现方式,在第六种可能的实现方式中,所述确定单元确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,则确定按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
结合第二方面的第四种可能的实现方式,在第七种可能的实现方式中,所述确定单元确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
第三方面,提供一种媒体接入控制MAC地址表更新系统,包括如第二方面或者第二方面的第一至第七种可能的实现方式所述的主交换机和至少一个传输交换机。
本发明有益效果如下:
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决现有技术中环网中的主交换机在更新MAC地址表时存在的耗时较长、效率较低的问题,本发明中,提出一种MAC地址表更新方法,应用于环网中,该环网包括一个主交换机和至少一个传输交换机,该方法中:主交换机检测到所述环网发生切换时,确定由所述环网提供接入服务的终端,所述主交换机确定所述终端的挂接交换机,当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,所述主交换机更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;其中,所述挂接交换机为与所述终端所属的接入交换机相连的交换机;所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。在该方案中,主交换机检测到环网发生切换时,主交换机不需要更新MAC地址表中包括所有终端的MAC地址表项,而是先判断终端所属的转发路径中的每两个相邻的交换机之间的链路中是否存在发生故障的链路,所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径,若存在发生故障的链路时,才更新MAC地址表中包括所述终端的MAC地址的表项,因此,减少了需要更新的MAC地址表项的数量,减少了更新MAC地址表所需要的时间,提高了更新MAC地址表的效率。
下面结合说明书附图对本发明优选的实施方式进行详细说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的各实施例及实施例中的特征可以相互组合。
参阅图2所示,本发明中,MAC地址表更新的流程如下:
步骤200:主交换机检测到环网发生切换时,确定由所述环网提供接入服务的终端。
步骤210:所述主交换机确定所述终端的挂接交换机,其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机。
步骤220:当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,所述主交换机更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。
如图1A中所示,终端1、终端2、终端3所属的转发路径均为路径1,主交换机(S1)检测到环网发生切换时,若路径1中包括的S1和S2之间的链路1、S2和S3之间的链路2、S3和S4之间的链路3中有发生故障的链路时,才更新MAC地址表中包括终端1的MAC地址的表项、包括终端2的MAC地址的表项,及包括终端3的MAC地址的表项,若链路1、链路2和链路3均没有故障就不需要更新MAC地址表中包括终端1的MAC地址的表项、包括终端2的MAC地址的表项,及包括终端3的MAC地址的表项,因此,提高了MAC地址表的更新效率。
本发明中,所述主交换机在检测到所述环网发生切换之前,还包括如下操作:
所述主交换机确定所述主交换机中对应所述终端的从端口;
其中,所述从端口为所述主交换机中与所述主端口属于同一VLAN、所连接的挂接交换机属于所述环网,且与所述挂接交换机之间的路径在所述环网发生切换前未交互所述终端的报文的端口。
本发明中,所述主交换机确定所述主交换机中对应所述终端的从端口的方式有多种,可选的,可以采用如下方式:
所述主交换机确定所述终端的挂接交换机;
若所述挂接交换机为传输交换机,所述主交换机将所述挂接交换机与所述主交换机之间的非转发路径对应的所述主交换机的端口作为对应所述终端的从端口;
所述非转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前未交互所述终端的报文的路径。
例如,如图1A所示,终端1接入主交换机(S1)的路径有两条:路径1和路径2,其中,由于路径1包括的链路(链路1、链路2和链路3)中不存在发生故障的链路,因此,路径1为终端1的转发路径,由于路径2包括的链路(链路4、链路5和链路6)中存在发生故障的链路:链路4,因此,路径2为终端1的非转发路径。
本发明中,挂接交换机是指环网中与终端所属的接入交换机相连的交换机,如图1A中所示的S4为终端1、终端2和终端3的挂接交换机。
上述实施例中终端所属的接入交换机直接相连的交换机为传输交换机,在实际应用中,接入交换机也可能直接与主交换机相连,在这种情况下,不需要判断该终端所属的转发路径中的每两个相邻的交换机之间的链路中是否存在发生故障的链路,而是删除MAC地址表中包括该终端的MAC地址的表项。
本发明中,所述主交换机确定所述终端的挂接交换机的方式有多种,可选的,可以采用如下方式:
所述主交换机以主交换机为起始点以及终止点,依次获取所述环网上的每一个交换机的MAC地址,生成第一链路表;
所述主交换机确定所述终端与所述主交换机之间的传输链路,其中,所述传输链路是指所述终端与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的链路;
所述主交换机以所述主交换机为起始点,所述终端为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表;
所述主交换机将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址,得到所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址;
所述主交换机确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
例如:根据如图1A中所示的环网生成的第一链路表如表1所示,根据图1A中所示的传输链路生成的第二链路表如表2所示
表1 第一链路表
表2 第二链路表
本发明中,将所述第二链路表中的MAC地址从起始点开始,依次与第一链路表中的MAC地址比较的方式有多种,可选的,可以采用如下方式:
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较。
例如:表2中的MAC1与表1中的MAC1比较、表2中的MAC2与表1中的MAC2比较、表2中的MAC3与表1中的MAC3比较、表2中的MAC4与表1中的MAC4比较、表2中的MAC6与表1中的MAC5比较、表2中的MAC7与表1中的MAC1比较。
或者,将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,依次与所述第一链路表中的MAC地址比较。
例如:表2中的MAC1与表1中的MAC1比较、表2中的MAC2与表1中的MAC5比较、表2中的MAC3与表1中的MAC4比较、表2中的MAC4与表1中的MAC3比较、表2中的MAC6与表1中的MAC2比较、表2中的MAC7与表1中的MAC1比较。
由于第二链路表与第一链路表比较时,按照第一链路表的从起始点至终止点的顺序,与按照第一链路表的从终止点至起始点的顺序,得到的第二链路表中首次出现的与第一链路表中的MAC地址不同的MAC地址是不同的,因此,本发明中,确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机的方式有多种,例如:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定所述主交换机为所述终端的挂接交换机。
例如:根据图1A中所示的终端4和主交换机(S1)生成第三链路表,如表3所示,第一链路表如表1所示,第二链路表如表2所示,将所述第三链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,或者按照起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较,得到的所述第三链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第三链路表中的第二个MAC地址,所以,确定终端4的挂接交换机为主交换机(S1)。
表3 第三链路表
设备 |
S1(起始点) |
终端4(终止点) |
MAC地址 |
MAC1 |
MAC8 |
或者,若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序进比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,则确定按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
例如:第一链路表如表1所示,第二链路表如表2所示,所述第二链路表与所述第一链路表比较时,按照所述第一链路表中的从起始点至终止点的顺序比较,所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第五个MAC地址,按照所述第一链路表中的从终止点至起始的顺序比较,所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为第二链路表中的第二个MAC地址,此时,确定按照所述第一链路表中的从起始点至终止点的顺序比较,所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址,即第二链路表中的第五个MAC地址对应的交换机为所述终端1的挂接交换机。
又或者,若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
例如:根据图1A中所示的环网生成第四链路表,第四链路表如表4所示,第二链路表如表2所示,所述第二链路表与所述第四链路表比较时,将所述第二链路表中的MAC地址从起始点开始,按照所述第四链路表中的从起始点至终止点的顺序比较,所述第二链路表中首次出现的与所述第四链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址;将所述第二链路表中的MAC地址从起始点开始,按照所述第四链路表中的从终止点至起始点的顺序比较,所述第二链路表中首次出现的与第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的从起始点开始的第五个MAC地址(MAC6),此时,确定按照所述第四链路表中的从终止点至起始点的顺序比较,所述第二链路表中首次出现的与所述第四链路表中的MAC地址不同的MAC地址,即所述第二链路表中的第五个MAC地址(MAC6)对应的交换机为所述终端的挂接交换机。
表4 第四链路表
本发明中,更新MAC地址表中包括所述终端的MAC地址的表项的方式有多种,可选的,可以采用如下方式:
将MAC地址表中包括所述终端的MAC地址的表项更新为,包括所述终端的MAC地址与确定出的从端口的表项。
为了更好地理解本发明,以下给出具体应用场景,针对MAC地址表更新的过程,作出进一步详细描述,如图3所示:
如图1A中所示环网包括一个主交换机(S1)和5个传输交换机(S2、S3、S4、S5、S6),所述环网提供接入服务的终端有3个,由于3个终端都通过同一接入交换机与主交换机相连,因此,该主交换机中与3个终端的对应的从端口是相同的,因此,下面确定各个终端对应的从端口时,以确定终端1对应的从端口为例。
步骤300:主交换机以所述主交换机为起始点、终止点,依次获取环网上的6个交换机的MAC地址,生成第一链路表。
该第一链路表如表1所示。
步骤310:所述主交换机确定所述终端1与所述主交换机之间的传输链路,并以所述主交换机为起始点,所述终端1为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表。
该第二链路表如表2所示。
步骤320:所述主交换机将所述第二链路表中的MAC地址从起始点开始,依次按照所述第一链路表中从起始点至终止点的顺序,与所述第一链路表中的MAC地址比较,确定所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为第五个MAC地址,即MAC6。
步骤330:所述主交换机将所述第二链路表中的MAC地址从起始点开始,依次按照所述第一链路表中从终止点至起始点的顺序,与所述第一链路表中的MAC地址比较,确定所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为第二个MAC地址,即MAC2。
步骤340:所述主交换机确定所述第二链路表中与MAC6相邻的前一个MAC地址MAC4对应的交换机S4为所述终端1的挂接交换机。
步骤350:所述挂接交换机为传输交换机,所述主交换机将所述挂接交换机与所述主交换机之间的非转发路径(即路径2)对应的所述主交换机的端口B作为对应所述终端1的从端口。
步骤360:所述主交换机检测到所述环网发生切换时,确定由所述环网提供接入服务的终端1、终端2、终端3,确定所述终端1、所述终端2、所述终端3的挂接交换机S4。
步骤370:当所述挂接交换机为传输交换机时,所述主交换机判断所述终端1、所述终端2、所述终端3所属的转发路径(路径1)中的每两个相邻的交换机之间的链路中是否存在发生故障的链路,若是,执行步骤380,否则,不执行任何操作。
步骤380:所述主交换机将MAC地址表中包括所述终端1的MAC地址的表项更新为包括所述终端1的MAC地址和确定出的从端口的表项、包括所述终端2的MAC地址的表项更新为包括所述终端2的MAC地址和确定出的从端口的表项、包括所述终端3的MAC地址的表项更新为包括所述终端3的MAC地址和确定出的从端口的表项。
基于上述技术方案,参阅图4所示,本发明提供一种交换机的功能结构示意图,应用于环网中,该交换机为所述环网中的主交换机。该环网包括图4所示的主交换机和至少一个传输交换机,该主交换机包括确定单元40、更新单元41,其中:
确定单元40,用于检测到所述环网发生切换时,确定由所述环网提供接入服务的终端,并确定所述终端的挂接交换机,其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机;
更新单元41,用于当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;
其中,所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。
本发明中,进一步的,确定单元40还用于:
确定所述主交换机中对应所述终端的从端口;其中,所述从端口为所述主交换机中与所述主端口属于同一虚拟局域网VLAN,且与所述挂接交换机之间的路径在所述环网发生切换前未交互所述终端的报文的端口。
本发明中,可选的,确定单元40在确定主交换机中对应终端的从端口时,具体用于:
确定所述终端的挂接交换机;
若所述挂接交换机为传输交换机,将所述挂接交换机与所述主交换机之间的非转发路径对应的所述主交换机的端口作为对应所述终端的从端口;
其中,所述非转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前未交互所述终端的报文的路径。
本发明中,可选的,确定单元40具体用于:
以所述主交换机为起始点以及终止点,依次获取所述环网上的每一个交换机的MAC地址,生成第一链路表;
确定所述终端与所述主交换机之间的传输链路,其中,所述传输链路是指所述终端与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的链路;
以所述主交换机为起始点,所述终端为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表;
将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较,得到所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址;
确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
本发明中,可选的,确定单元40将第二链路表中的MAC地址从起始点开始,依次与第一链路表中的MAC地址比较时,具体用于:
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较;或者
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,依次与所述第一链路表中的MAC地址比较。
本发明中,可选的,确定单元40确定第二链路表中与得到的MAC地址相邻的前一个MAC地址对应的交换机为终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定所述主交换机为所述终端的挂接交换机。
本发明中,可选的,确定单元40确定第二链路表中与得到的MAC地址相邻的前一个MAC地址对应的交换机为终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,则确定按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
本发明中,可选的,确定单元40确定第二链路表中与得到的MAC地址相邻的前一个MAC地址对应的交换机为终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
如图5所示,为本发明提供的交换机的实体装置图,所述交换机包括至少一个处理器501,通信总线502,存储器503以及至少一个通信接口504。
其中,通信总线502用于实现上述组件之间的连接并通信,通信接口504用于与外部设备连接并通信。
其中,存储器503用于存储需要执行的程序代码,当处理器501执行存储器503中的程序代码时,实现如下功能:
检测到所述环网发生切换时,确定由所述环网提供接入服务的终端,并确定所述终端的挂接交换机,其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机;
当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口;
其中,所述转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的路径。
进一步的,本发明中,所述处理器501还用于:
确定所述主交换机中对应所述终端的从端口;其中,所述从端口为所述主交换机中与所述主端口属于同一虚拟局域网VLAN,且与所述挂接交换机之间的路径在所述环网发生切换前未交互所述终端的报文的端口。
本发明中,可选的,所述处理器501在确定所述主交换机中对应所述终端的从端口时,具体用于:
确定所述终端的挂接交换机;
若所述挂接交换机为传输交换机,将所述挂接交换机与所述主交换机之间的非转发路径对应的所述主交换机的端口作为对应所述终端的从端口;
其中,所述非转发路径是指所述挂接交换机与所述主交换机在检测到所述环网发生切换前未交互所述终端的报文的路径。
本发明中,可选的,所述处理器501具体用于:
以所述主交换机为起始点以及终止点,依次获取所述环网上的每一个交换机的MAC地址,生成第一链路表;
确定所述终端与所述主交换机之间的传输链路,其中,所述传输链路是指所述终端与所述主交换机在检测到所述环网发生切换前交互所述终端的报文的链路;
以所述主交换机为起始点,所述终端为终止点,依次获取所述传输链路中的所有设备的MAC地址,生成第二链路表;
将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较,得到所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址;
确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
本发明中,可选的,所述处理器501将所述第二链路表中的MAC地址从起始点开始,依次与所述第一链路表中的MAC地址比较时,具体用于:
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从起始点至终止点的顺序,依次与所述第一链路表中的MAC地址比较;或者
将所述第二链路表中的MAC地址从起始点开始,按照所述第一链路表中从终止点至起始点的顺序,依次与所述第一链路表中的MAC地址比较。
本发明中,可选的,所述处理器501确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定所述主交换机为所述终端的挂接交换机。
本发明中,可选的,所述处理器501确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,则确定按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
本发明中,可选的,所述处理器501确定所述第二链路表中与所述得到的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机时,具体用于:
若按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址之后的任意一MAC地址,且按照所述第一链路表中从终止点至起始点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址为所述第二链路表中的第二个MAC地址,则确定按照所述第一链路表中从起始点至终止点的顺序比较,得到的所述第二链路表中首次出现的与所述第一链路表中的MAC地址不同的MAC地址相邻的前一个MAC地址对应的交换机为所述终端的挂接交换机。
如图6所示,本发明提供一种MAC地址表更新系统,包括如图4或者图5所示的主交换机和至少一个传输交换机。
综上所述,本发明中,环网中的主交换机检测到环网发生切换时,确定由所述环网提供接入服务的终端,确定所述终端的挂接交换机,当所述终端的挂接交换机为传输交换机,且所述终端所属的转发路径中的每两个相邻的交换机之间的链路中存在发生故障的链路时,更新MAC地址表中包括所述终端的MAC地址的表项,所述表项包括所述终端的MAC地址和与所述MAC地址对应的主端口,所述主端口为所述主交换机中在所述环网发生切换前用于转发所述终端的报文的端口,其中,所述挂接交换机为所述环网中与所述终端所属的接入交换机相连的交换机;所述转发路径是指所述挂接交换机与所述主交换机在检测到环网发生切换前交互所述终端的报文的路径,在该方案中,检测到环网发生切换时,主交换机不是先与由所述环网提供接入服务的所有终端交换报文,学习每个终端的MAC地址与转发该终端的报文的端口,而是先判断终端所属的转发路径中的每两个相邻的交换机之间的链路中是否存在发生故障的链路,其中,所述转发路径是指所述挂接交换机与所述主交换机在检测到环网发生切换前交互所述终端的报文的路径,若存在发生故障的链路时,才更新MAC地址表中包括所述终端的MAC地址表项,因此,减少了需要更新的MAC地址表项的数量,减少了更新MAC地址表所需要的时间,提高了更新MAC地址表的效率。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。