本發(fā)明涉及通信技術領域,具體涉及一種分布式數(shù)通設備的MAC地址學習方法。
背景技術:
MAC地址(物理地址、硬件地址)是通信設備間進行報文轉(zhuǎn)發(fā)的重要依據(jù),報文通過查詢設備中MAC地址表中的MAC地址與端口的對應關系,得到報文轉(zhuǎn)發(fā)過程中所需的發(fā)送端口信息。
隨著網(wǎng)絡數(shù)據(jù)傳輸速度的不斷提升,單塊業(yè)務盤的通信設備已經(jīng)難以處理爆發(fā)式的數(shù)據(jù)流量,因此,分布式數(shù)通設備被設計出,以用來處理單塊業(yè)務盤難以完成的線速轉(zhuǎn)發(fā)。分布式數(shù)通設備由多塊業(yè)務盤組成,每一塊業(yè)務盤上均會承載部分業(yè)務。
在分布式數(shù)通設備中,例如業(yè)務流量從業(yè)務盤A的端口1進入,需從業(yè)務盤B的端口2轉(zhuǎn)發(fā)出去,只要當業(yè)務盤B端口2的MAC地址被業(yè)務盤A學習,業(yè)務盤B端口2的MAC地址以報文的形式同步到業(yè)務盤A的MAC地址表中,被業(yè)務盤A所學習,業(yè)務流量在業(yè)務盤A上根據(jù)業(yè)報文的目的MAC地址是業(yè)務盤B端口2的,業(yè)務流量才會被轉(zhuǎn)發(fā)到業(yè)務盤B端口2上。
目前由于業(yè)務盤間傳輸報文能力和處理報文能力的限制,無法保證分布式數(shù)通設備中各個業(yè)務盤間含有MAC地址的報文傳輸均成功,且當報文丟棄事件發(fā)生時,報文所含有的MAC地址信息丟失,進而導致業(yè)務流量廣播洪泛,發(fā)生不可預知的通訊故障。
技術實現(xiàn)要素:
針對現(xiàn)有技術中存在的缺陷,本發(fā)明的目的在于提供一種分布式數(shù)通設備的MAC地址學習方法,確保每個業(yè)務盤均學習其它業(yè)務盤的MAC地址,提高系統(tǒng)穩(wěn)定性。
為達到以上目的,本發(fā)明采取的技術方案是,包括:
S1:學習了自身端口的MAC地址的業(yè)務盤,向所有其它業(yè)務盤發(fā)送同步報文,所述同步報文包括業(yè)務盤自身學習的MAC地址,以及該MAC地址在業(yè)務盤自身硬件表中的表索引值,每個業(yè)務盤的同步報文均對應有一表索引值;
S2:業(yè)務盤接收其它業(yè)務盤發(fā)送的同步報文,并學習同步報文中MAC地址,同時存儲同步報文中的表索引值至自身的同步MAC地址索引表中;
S3:各業(yè)務盤周期性發(fā)送申明報文至其它業(yè)務盤,所述申明報文為業(yè)務盤自身端口的MAC地址在自身硬件表中的表索引值;
S4:業(yè)務盤接收其它業(yè)務盤發(fā)送的申明報文,并在自身的同步MAC地址索引表中,判斷是否存在所接收的申明報文中含有的表索引值,若存在,則結束,若不存在,則發(fā)送同步請求報文至發(fā)起該申請報文的業(yè)務盤,所述同步請求報文為業(yè)務盤相較于接收的申明報文所缺少的表索引值的信息;
S5、接收同步請求報文的業(yè)務盤,將同步請求報文中表索引值對應的同步報文發(fā)送至發(fā)起該同步請求報文的業(yè)務盤。
在上述技術方案的基礎上,所述硬件表為MAC地址與對應端口間的映射關系表,所述表索引值用以表示MAC地址在硬件表中的位置。
在上述技術方案的基礎上,每個業(yè)務盤均包括一硬件表和一同步MAC地址索引表,且每個業(yè)務盤的硬件表用以存儲自身端口的MAC地址與對應端口間的映射關系,以及其它業(yè)務盤的端口MAC地址與對應端口間的映射關系,每個業(yè)務盤的同步MAC地址索引表用以存儲所接收到的同步報文中的表索引值。
在上述技術方案的基礎上,所述同步報文具體包括:發(fā)起同步報文的業(yè)務盤所學習的MAC地址以及該MAC地址對應端口、該MAC地址在發(fā)起同步報文的業(yè)務盤硬件表中的表索引值和發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號。
在上述技術方案的基礎上,所述S2中接收到同步報文的業(yè)務盤具體執(zhí)行步驟為:
S201:解析同步報文,得到發(fā)起同步報文的業(yè)務盤所學習的MAC地址以及該MAC地址對應端口、該MAC地址在發(fā)起同步報文的業(yè)務盤硬件表中的表索引值和發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號;
S202:將同步報文中的MAC地址與MAC地址對應端口間的映射關系寫入業(yè)務盤的硬件表中;
S203:以同步報文中的表索引值和槽位號作為一個二元組,并將所述二元組作為平衡二叉樹節(jié)點的關鍵字,然后以同步報文中的MAC地址在接收同步報文的業(yè)務盤硬件表中的表索引值作為平衡二叉樹節(jié)點的內(nèi)容,將關鍵字與內(nèi)容構成的二叉樹節(jié)點插入平衡二叉樹中保存,每個業(yè)務盤均含有一平衡二叉樹。
在上述技術方案的基礎上,所述S3中發(fā)送申明報文的業(yè)務盤的具體執(zhí)行步驟為:
S301:業(yè)務盤周期性構造申明報文,所述申明報文包括業(yè)務盤自身端口的MAC地址在自身硬件表中的表索引值;
S302:在申明報文中添加業(yè)務盤自身在整個分布式數(shù)通設備中的槽位號,然后發(fā)送申明報文至所有其它業(yè)務盤。
在上述技術方案的基礎上,所述申明報文中,業(yè)務盤自身端口的MAC地址在自身硬件表中的表索引值以bit位圖的方式保存。
在上述技術方案的基礎上,所述S4中接收到同步報文的業(yè)務盤具體執(zhí)行步驟為:
S401:解析申明報文,得到發(fā)起申明報文的業(yè)務盤自身所有端口的MAC地址在發(fā)起申明報文的業(yè)務盤硬件表中的表索引值,以及發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號;
S402:以解析申明報文得到的表索引值和槽位號組合為二元組,并以該二元組為關鍵字,在業(yè)務盤自身的平衡二叉樹中搜索是否存在對應的節(jié)點,若存在,則結束,若不存在,則說明業(yè)務盤缺少當前二元組中的表索引值;
S403:向發(fā)起申明報文的業(yè)務盤發(fā)送同步請求報文,所述同步請求報文包括發(fā)起同步請求報文的業(yè)務盤相較于接收的申明報文所缺少的表索引值,以及發(fā)起同步請求報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號。
在上述技術方案的基礎上,所述S5中接收了同步請求報文的業(yè)務盤的具體執(zhí)行步驟為:
S501:解析接收的同步請求報文,得到發(fā)起同步請求報文的業(yè)務盤所缺少的表索引值,以及發(fā)起同步請求報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號;
S502:根據(jù)發(fā)起同步請求報文的業(yè)務盤缺少的表索引值,將相應表索引值對應的同步報文發(fā)送至發(fā)起同步請求報文的業(yè)務盤。
與現(xiàn)有技術相比,本發(fā)明一種分布式數(shù)通設備的MAC地址學習方法的優(yōu)點在于:各個業(yè)務盤通過向其它業(yè)務盤發(fā)送申明報文的方式,檢驗其它業(yè)務盤是否同步學習了發(fā)起申明報文的業(yè)務盤中的MAC地址,若檢驗到其它業(yè)務盤缺少發(fā)起申明報文的業(yè)務盤中的MAC地址,則再次向缺失MAC地址的業(yè)務盤發(fā)送相應的同步報文,確保每個業(yè)務盤均同步學習到其它業(yè)務盤端口的MAC地址,使得分布式數(shù)通設備中任一業(yè)務盤丟失同步報文后,能夠自動進行丟失MAC地址的同步學習恢復,保證分布式數(shù)通設備系統(tǒng)的穩(wěn)定性。
附圖說明
圖1為本發(fā)明一種分布式數(shù)通設備的MAC地址學習方法的流程圖。
具體實施方式
以下結合附圖本發(fā)明作進一步詳細說明。
參見圖1所示,本發(fā)明提供一種分布式數(shù)通設備的MAC地址學習方法,用于對分布式數(shù)通設備中的多個業(yè)務盤進行MAC地址學習同步,確保各個業(yè)務盤間的MAC地址同步學習傳輸?shù)某晒?。本發(fā)明具體包括以下步驟:
S1:學習了自身端口的MAC地址的業(yè)務盤,向所有其它業(yè)務盤發(fā)送同步報文,所述同步報文包括業(yè)務盤自身學習的MAC地址,以及該MAC地址在業(yè)務盤自身硬件表中的表索引值,每個業(yè)務盤的同步報文均對應有一表索引值。硬件表為MAC地址與對應端口間的映射關系表,表索引值用以表示MAC地址在硬件表中的位置,每個業(yè)務盤均包括一硬件表和一同步MAC地址索引表,且每個業(yè)務盤的硬件表用以存儲自身端口的MAC地址與對應端口間的映射關系,以及其它業(yè)務盤的端口MAC地址與對應端口間的映射關系,每個業(yè)務盤的同步MAC地址索引表用以存儲所接收到的同步報文中的表索引值。每個MAC地址均對應一端口。學習了自身端口的MAC地址的業(yè)務盤會在業(yè)務盤自身的硬件表中寫入學習的MAC地址與對應端口間的映射關系。
對于同步報文,具體包括:發(fā)起同步報文的業(yè)務盤所學習的MAC地址以及該MAC地址對應端口、該MAC地址在發(fā)起同步報文的業(yè)務盤硬件表中的表索引值和發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號。
S2:業(yè)務盤接收其它業(yè)務盤發(fā)送的同步報文,并學習同步報文中MAC地址,同時存儲同步報文中的表索引值至自身的同步MAC地址索引表中。對于接收到同步報文的業(yè)務盤,具體執(zhí)行以下步驟:
S201:解析同步報文,得到發(fā)起同步報文的業(yè)務盤所學習的MAC地址以及該MAC地址對應端口、該MAC地址在發(fā)起同步報文的業(yè)務盤硬件表中的表索引值和發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號;
S202:將同步報文中的MAC地址與MAC地址對應端口間的映射關系寫入接收同步報文的業(yè)務盤的硬件表中;
S203:以同步報文中的表索引值和槽位號作為一個二元組,并將所述二元組作為平衡二叉樹節(jié)點的關鍵字,然后以同步報文中的MAC地址在接收同步報文的業(yè)務盤硬件表中的表索引值,作為平衡二叉樹節(jié)點的內(nèi)容,將關鍵字與內(nèi)容構成的二叉樹節(jié)點插入平衡二叉樹中保存,每個業(yè)務盤均含有一平衡二叉樹,平衡二叉樹位于業(yè)務盤的同步MAC地址索引表中,平衡二叉樹的作用是業(yè)務盤用以保存接收的同步報文中的MAC地址。
S3:各業(yè)務盤周期性發(fā)送申明報文至其它業(yè)務盤,所述申明報文為業(yè)務盤自身端口的MAC地址在自身硬件表中的表索引值,業(yè)務盤發(fā)送申明報文的周期間隔時間可自定義;發(fā)送申明報文的業(yè)務盤的具體執(zhí)行步驟為:
S301:業(yè)務盤周期性構造申明報文,所述申明報文以bit位圖的方式保存業(yè)務盤自身端口的MAC地址在自身硬件表中的表索引值,若業(yè)務盤自身的端口為多個,則以bit位圖的方式保存業(yè)務盤自身所有端口的MAC地址在自身硬件表中的表索引值,例如,若表索引值x需要保存,則按照低位到高位的順序,將bit位圖中的第x個bit置1,不存在的則為0。
S302:在申明報文中添加業(yè)務盤自身在整個分布式數(shù)通設備中的槽位號,然后發(fā)送申明報文至所有其它業(yè)務盤。
S4:業(yè)務盤接收其它業(yè)務盤發(fā)送的申明報文,并在自身的同步MAC地址索引表中,判斷是否存在所接收的申明報文中含有的表索引值,若存在,則結束,若不存在,則發(fā)送同步請求報文至發(fā)起該申請報文的業(yè)務盤,所述同步請求報文為業(yè)務盤相較于接收的申明報文所缺少的表索引值的信息;接收到同步報文的業(yè)務盤具體執(zhí)行步驟為:
S401:解析申明報文,得到發(fā)起申明報文的業(yè)務盤自身所有端口的MAC地址在發(fā)起申明報文的業(yè)務盤硬件表中的表索引值,以及發(fā)起同步報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號,即根據(jù)申明報文的bit位圖,計算得出bit為1的位對應的表索引值,即為發(fā)起申明報文的業(yè)務盤自身端口的MAC地址在發(fā)起申明報文的業(yè)務盤硬件表中的表索引值;
S402:以解析申明報文得到的表索引值和槽位號組合為二元組,并以該二元組為關鍵字,在業(yè)務盤自身的平衡二叉樹中搜索是否存在對應的節(jié)點,若存在,則結束,若不存在,則說明業(yè)務盤缺少當前二元組中的表索引值;
S403:向發(fā)起申明報文的業(yè)務盤發(fā)送同步請求報文,所述同步請求報文包括發(fā)起同步請求報文的業(yè)務盤相較于接收的申明報文所缺少的表索引值,以及發(fā)起同步請求報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號。
S5、接收了同步請求報文的業(yè)務盤,將同步請求報文中表索引值對應的同步報文發(fā)送至發(fā)起該同步請求報文的業(yè)務盤。接收了同步請求報文的業(yè)務盤的具體執(zhí)行步驟為:
S501:解析接收的同步請求報文,得到發(fā)起同步請求報文的業(yè)務盤所缺少的表索引值,以及發(fā)起同步請求報文的業(yè)務盤在整個分布式數(shù)通設備中的槽位號;
S502:根據(jù)發(fā)起同步請求報文的業(yè)務盤缺少的表索引值,將相應表索引值對應的同步報文發(fā)送至發(fā)起同步請求報文的業(yè)務盤。
各個業(yè)務盤通過向其它業(yè)務盤發(fā)送申明報文的方式,檢驗其它業(yè)務盤是否同步學習了發(fā)起申明報文的業(yè)務盤中的MAC地址,若檢驗到其它業(yè)務盤缺少發(fā)起申明報文的業(yè)務盤中的MAC地址,則再次向缺失MAC地址的業(yè)務盤發(fā)送相應的同步報文,確保每個業(yè)務盤均同步學習到其它業(yè)務盤端口的MAC地址,使得分布式數(shù)通設備中任一業(yè)務盤丟失同步報文后,能夠進行自動恢復,保證分布式數(shù)通設備系統(tǒng)的穩(wěn)定性。
本發(fā)明不局限于上述實施方式,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領域?qū)I(yè)技術人員公知的現(xiàn)有技術。