一种分布式数通设备的MAC地址同步方法与流程

文档序号:12494978阅读:211来源:国知局

本发明涉及通信技术领域,具体涉及一种分布式数通设备的MAC地址学习方法。



背景技术:

MAC地址(物理地址、硬件地址)是通信设备间进行报文转发的重要依据,报文通过查询设备中MAC地址表中的MAC地址与端口的对应关系,得到报文转发过程中所需的发送端口信息。

随着网络数据传输速度的不断提升,单块业务盘的通信设备已经难以处理爆发式的数据流量,因此,分布式数通设备被设计出,以用来处理单块业务盘难以完成的线速转发。分布式数通设备由多块业务盘组成,每一块业务盘上均会承载部分业务。

在分布式数通设备中,例如业务流量从业务盘A的端口1进入,需从业务盘B的端口2转发出去,只要当业务盘B端口2的MAC地址被业务盘A学习,业务盘B端口2的MAC地址以报文的形式同步到业务盘A的MAC地址表中,被业务盘A所学习,业务流量在业务盘A上根据业报文的目的MAC地址是业务盘B端口2的,业务流量才会被转发到业务盘B端口2上。

目前由于业务盘间传输报文能力和处理报文能力的限制,无法保证分布式数通设备中各个业务盘间含有MAC地址的报文传输均成功,且当报文丢弃事件发生时,报文所含有的MAC地址信息丢失,进而导致业务流量广播洪泛,发生不可预知的通讯故障。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种分布式数通设备的MAC地址学习方法,确保每个业务盘均学习其它业务盘的MAC地址,提高系统稳定性。

为达到以上目的,本发明采取的技术方案是,包括:

S1:学习了自身端口的MAC地址的业务盘,向所有其它业务盘发送同步报文,所述同步报文包括业务盘自身学习的MAC地址,以及该MAC地址在业务盘自身硬件表中的表索引值,每个业务盘的同步报文均对应有一表索引值;

S2:业务盘接收其它业务盘发送的同步报文,并学习同步报文中MAC地址,同时存储同步报文中的表索引值至自身的同步MAC地址索引表中;

S3:各业务盘周期性发送申明报文至其它业务盘,所述申明报文为业务盘自身端口的MAC地址在自身硬件表中的表索引值;

S4:业务盘接收其它业务盘发送的申明报文,并在自身的同步MAC地址索引表中,判断是否存在所接收的申明报文中含有的表索引值,若存在,则结束,若不存在,则发送同步请求报文至发起该申请报文的业务盘,所述同步请求报文为业务盘相较于接收的申明报文所缺少的表索引值的信息;

S5、接收同步请求报文的业务盘,将同步请求报文中表索引值对应的同步报文发送至发起该同步请求报文的业务盘。

在上述技术方案的基础上,所述硬件表为MAC地址与对应端口间的映射关系表,所述表索引值用以表示MAC地址在硬件表中的位置。

在上述技术方案的基础上,每个业务盘均包括一硬件表和一同步MAC地址索引表,且每个业务盘的硬件表用以存储自身端口的MAC地址与对应端口间的映射关系,以及其它业务盘的端口MAC地址与对应端口间的映射关系,每个业务盘的同步MAC地址索引表用以存储所接收到的同步报文中的表索引值。

在上述技术方案的基础上,所述同步报文具体包括:发起同步报文的业务盘所学习的MAC地址以及该MAC地址对应端口、该MAC地址在发起同步报文的业务盘硬件表中的表索引值和发起同步报文的业务盘在整个分布式数通设备中的槽位号。

在上述技术方案的基础上,所述S2中接收到同步报文的业务盘具体执行步骤为:

S201:解析同步报文,得到发起同步报文的业务盘所学习的MAC地址以及该MAC地址对应端口、该MAC地址在发起同步报文的业务盘硬件表中的表索引值和发起同步报文的业务盘在整个分布式数通设备中的槽位号;

S202:将同步报文中的MAC地址与MAC地址对应端口间的映射关系写入业务盘的硬件表中;

S203:以同步报文中的表索引值和槽位号作为一个二元组,并将所述二元组作为平衡二叉树节点的关键字,然后以同步报文中的MAC地址在接收同步报文的业务盘硬件表中的表索引值作为平衡二叉树节点的内容,将关键字与内容构成的二叉树节点插入平衡二叉树中保存,每个业务盘均含有一平衡二叉树。

在上述技术方案的基础上,所述S3中发送申明报文的业务盘的具体执行步骤为:

S301:业务盘周期性构造申明报文,所述申明报文包括业务盘自身端口的MAC地址在自身硬件表中的表索引值;

S302:在申明报文中添加业务盘自身在整个分布式数通设备中的槽位号,然后发送申明报文至所有其它业务盘。

在上述技术方案的基础上,所述申明报文中,业务盘自身端口的MAC地址在自身硬件表中的表索引值以bit位图的方式保存。

在上述技术方案的基础上,所述S4中接收到同步报文的业务盘具体执行步骤为:

S401:解析申明报文,得到发起申明报文的业务盘自身所有端口的MAC地址在发起申明报文的业务盘硬件表中的表索引值,以及发起同步报文的业务盘在整个分布式数通设备中的槽位号;

S402:以解析申明报文得到的表索引值和槽位号组合为二元组,并以该二元组为关键字,在业务盘自身的平衡二叉树中搜索是否存在对应的节点,若存在,则结束,若不存在,则说明业务盘缺少当前二元组中的表索引值;

S403:向发起申明报文的业务盘发送同步请求报文,所述同步请求报文包括发起同步请求报文的业务盘相较于接收的申明报文所缺少的表索引值,以及发起同步请求报文的业务盘在整个分布式数通设备中的槽位号。

在上述技术方案的基础上,所述S5中接收了同步请求报文的业务盘的具体执行步骤为:

S501:解析接收的同步请求报文,得到发起同步请求报文的业务盘所缺少的表索引值,以及发起同步请求报文的业务盘在整个分布式数通设备中的槽位号;

S502:根据发起同步请求报文的业务盘缺少的表索引值,将相应表索引值对应的同步报文发送至发起同步请求报文的业务盘。

与现有技术相比,本发明一种分布式数通设备的MAC地址学习方法的优点在于:各个业务盘通过向其它业务盘发送申明报文的方式,检验其它业务盘是否同步学习了发起申明报文的业务盘中的MAC地址,若检验到其它业务盘缺少发起申明报文的业务盘中的MAC地址,则再次向缺失MAC地址的业务盘发送相应的同步报文,确保每个业务盘均同步学习到其它业务盘端口的MAC地址,使得分布式数通设备中任一业务盘丢失同步报文后,能够自动进行丢失MAC地址的同步学习恢复,保证分布式数通设备系统的稳定性。

附图说明

图1为本发明一种分布式数通设备的MAC地址学习方法的流程图。

具体实施方式

以下结合附图本发明作进一步详细说明。

参见图1所示,本发明提供一种分布式数通设备的MAC地址学习方法,用于对分布式数通设备中的多个业务盘进行MAC地址学习同步,确保各个业务盘间的MAC地址同步学习传输的成功。本发明具体包括以下步骤:

S1:学习了自身端口的MAC地址的业务盘,向所有其它业务盘发送同步报文,所述同步报文包括业务盘自身学习的MAC地址,以及该MAC地址在业务盘自身硬件表中的表索引值,每个业务盘的同步报文均对应有一表索引值。硬件表为MAC地址与对应端口间的映射关系表,表索引值用以表示MAC地址在硬件表中的位置,每个业务盘均包括一硬件表和一同步MAC地址索引表,且每个业务盘的硬件表用以存储自身端口的MAC地址与对应端口间的映射关系,以及其它业务盘的端口MAC地址与对应端口间的映射关系,每个业务盘的同步MAC地址索引表用以存储所接收到的同步报文中的表索引值。每个MAC地址均对应一端口。学习了自身端口的MAC地址的业务盘会在业务盘自身的硬件表中写入学习的MAC地址与对应端口间的映射关系。

对于同步报文,具体包括:发起同步报文的业务盘所学习的MAC地址以及该MAC地址对应端口、该MAC地址在发起同步报文的业务盘硬件表中的表索引值和发起同步报文的业务盘在整个分布式数通设备中的槽位号。

S2:业务盘接收其它业务盘发送的同步报文,并学习同步报文中MAC地址,同时存储同步报文中的表索引值至自身的同步MAC地址索引表中。对于接收到同步报文的业务盘,具体执行以下步骤:

S201:解析同步报文,得到发起同步报文的业务盘所学习的MAC地址以及该MAC地址对应端口、该MAC地址在发起同步报文的业务盘硬件表中的表索引值和发起同步报文的业务盘在整个分布式数通设备中的槽位号;

S202:将同步报文中的MAC地址与MAC地址对应端口间的映射关系写入接收同步报文的业务盘的硬件表中;

S203:以同步报文中的表索引值和槽位号作为一个二元组,并将所述二元组作为平衡二叉树节点的关键字,然后以同步报文中的MAC地址在接收同步报文的业务盘硬件表中的表索引值,作为平衡二叉树节点的内容,将关键字与内容构成的二叉树节点插入平衡二叉树中保存,每个业务盘均含有一平衡二叉树,平衡二叉树位于业务盘的同步MAC地址索引表中,平衡二叉树的作用是业务盘用以保存接收的同步报文中的MAC地址。

S3:各业务盘周期性发送申明报文至其它业务盘,所述申明报文为业务盘自身端口的MAC地址在自身硬件表中的表索引值,业务盘发送申明报文的周期间隔时间可自定义;发送申明报文的业务盘的具体执行步骤为:

S301:业务盘周期性构造申明报文,所述申明报文以bit位图的方式保存业务盘自身端口的MAC地址在自身硬件表中的表索引值,若业务盘自身的端口为多个,则以bit位图的方式保存业务盘自身所有端口的MAC地址在自身硬件表中的表索引值,例如,若表索引值x需要保存,则按照低位到高位的顺序,将bit位图中的第x个bit置1,不存在的则为0。

S302:在申明报文中添加业务盘自身在整个分布式数通设备中的槽位号,然后发送申明报文至所有其它业务盘。

S4:业务盘接收其它业务盘发送的申明报文,并在自身的同步MAC地址索引表中,判断是否存在所接收的申明报文中含有的表索引值,若存在,则结束,若不存在,则发送同步请求报文至发起该申请报文的业务盘,所述同步请求报文为业务盘相较于接收的申明报文所缺少的表索引值的信息;接收到同步报文的业务盘具体执行步骤为:

S401:解析申明报文,得到发起申明报文的业务盘自身所有端口的MAC地址在发起申明报文的业务盘硬件表中的表索引值,以及发起同步报文的业务盘在整个分布式数通设备中的槽位号,即根据申明报文的bit位图,计算得出bit为1的位对应的表索引值,即为发起申明报文的业务盘自身端口的MAC地址在发起申明报文的业务盘硬件表中的表索引值;

S402:以解析申明报文得到的表索引值和槽位号组合为二元组,并以该二元组为关键字,在业务盘自身的平衡二叉树中搜索是否存在对应的节点,若存在,则结束,若不存在,则说明业务盘缺少当前二元组中的表索引值;

S403:向发起申明报文的业务盘发送同步请求报文,所述同步请求报文包括发起同步请求报文的业务盘相较于接收的申明报文所缺少的表索引值,以及发起同步请求报文的业务盘在整个分布式数通设备中的槽位号。

S5、接收了同步请求报文的业务盘,将同步请求报文中表索引值对应的同步报文发送至发起该同步请求报文的业务盘。接收了同步请求报文的业务盘的具体执行步骤为:

S501:解析接收的同步请求报文,得到发起同步请求报文的业务盘所缺少的表索引值,以及发起同步请求报文的业务盘在整个分布式数通设备中的槽位号;

S502:根据发起同步请求报文的业务盘缺少的表索引值,将相应表索引值对应的同步报文发送至发起同步请求报文的业务盘。

各个业务盘通过向其它业务盘发送申明报文的方式,检验其它业务盘是否同步学习了发起申明报文的业务盘中的MAC地址,若检验到其它业务盘缺少发起申明报文的业务盘中的MAC地址,则再次向缺失MAC地址的业务盘发送相应的同步报文,确保每个业务盘均同步学习到其它业务盘端口的MAC地址,使得分布式数通设备中任一业务盘丢失同步报文后,能够进行自动恢复,保证分布式数通设备系统的稳定性。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1