亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

Mac地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備的制作方法

文檔序號:7978947閱讀:267來源:國知局
Mac地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備的制作方法
【專利摘要】本發(fā)明公開了一種MAC地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備,其中,該方法包括:接收報文;根據(jù)報文的屬性信息判斷是否依據(jù)報文進行MAC地址的學習,其中,屬性信息包括以下之一:單播、組播、廣播。通過運用本發(fā)明,解決了只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了MAC地址學習的問題。本發(fā)明MAC地址的學習控制方法可根據(jù)屬性信息的不同因需要進行控制,可以避免網(wǎng)絡(luò)中存在大量廣播或組播報文對于系統(tǒng)MAC地址容量的沖擊,使系統(tǒng)在容量有限的情況下學習有用的MAC地址,提升了系統(tǒng)性能。
【專利說明】MAC地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種媒體訪問控制(Media AccessControl,簡稱為MAC)地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的發(fā)展,IP網(wǎng)絡(luò)已經(jīng)成為人們?nèi)粘I钪斜夭豢缮俚耐ㄐ殴ぞ?,而在網(wǎng)絡(luò)數(shù)據(jù)的轉(zhuǎn)發(fā)過程中,MAC地址學習功能是各個網(wǎng)絡(luò)設(shè)備必須的功能,各個網(wǎng)絡(luò)設(shè)備需要根據(jù)學習到的MAC地址信息進行報文的轉(zhuǎn)發(fā)。
[0003]但是在現(xiàn)實網(wǎng)絡(luò)環(huán)境中會存在大量的廣播報文和組播報文,這些報文中有很多都是雜包,然而,網(wǎng)絡(luò)設(shè)備其實并不需要關(guān)心雜包的MAC地址信息,在目前的地址學習方案中,網(wǎng)絡(luò)設(shè)備都學習了這些報文的MAC地址信息,這些MAC地址信息占用了網(wǎng)絡(luò)設(shè)備有限的地址容量,造成了資源的浪費。
[0004]相關(guān)技術(shù)中,大部分網(wǎng)絡(luò)設(shè)備使用的方式都是通過MAC地址限制來控制的,對于網(wǎng)絡(luò)設(shè)備某個端口有很多雜包的時候,選擇限制該端口的MAC地址學習數(shù)量,這種方式雖然能夠保證網(wǎng)絡(luò)設(shè)備總的地址容量不被占滿,但是卻限制了該端口正常報文的MAC地址學習。
[0005]上述轉(zhuǎn)發(fā)設(shè)備在報文轉(zhuǎn)發(fā)的過程中,只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了 MAC地址學習。由于方式單一,進一步導(dǎo)致了轉(zhuǎn)發(fā)設(shè)備在在系統(tǒng)轉(zhuǎn)發(fā)地址數(shù)量有限的情況下無法學習正常報文的MAC地址。

【發(fā)明內(nèi)容】

[0006]本發(fā)明提供了一種MAC地址學習的控制方法及轉(zhuǎn)發(fā)設(shè)備,以至少解決轉(zhuǎn)發(fā)設(shè)備在報文轉(zhuǎn)發(fā)的過程中,只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了MAC地址學習的問題。
[0007]根據(jù)本發(fā)明的一個方面,提供了一種MAC地址學習的控制方法,包括:接收報文;根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習,其中,所述屬性信息包括以下之一:單播、組播、廣播。
[0008]優(yōu)選地,在所述報文的屬性信息為組播或者廣播的情況下,不依據(jù)所述報文進行MAC地址的學習;和/或,在所述報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
[0009]優(yōu)選地,在所述報文的屬性信息為單播的情況下,依據(jù)所述報文進行MAC地址的學習。
[0010]優(yōu)選地,所述報文的屬性信息為單播的情況下依據(jù)所述報文進行MAC地址的學習包括:當MAC地址轉(zhuǎn)發(fā)表中不存在所述報文對應(yīng)的轉(zhuǎn)發(fā)條目時,在所述轉(zhuǎn)發(fā)表中建立所述轉(zhuǎn)發(fā)條目,并將所述報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為非使用狀態(tài);當MAC地址轉(zhuǎn)發(fā)表中存在所述報文對應(yīng)的轉(zhuǎn)發(fā)條目時,轉(zhuǎn)發(fā)所述報文,并將所述報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為使用狀態(tài);其中,所述使用狀態(tài)與所述非使用狀態(tài)用于指示所述轉(zhuǎn)發(fā)條目的使用情況。
[0011]優(yōu)選地,在已經(jīng)學習到的MAC地址的數(shù)量達到上限的情況下,將通過屬性信息是多播或廣播的報文所學到MAC地址替換為通過屬性信息是單播報文所學到的MAC地址。
[0012]優(yōu)選地,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習包括:在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習;根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習還包括:在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于所述第二閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
[0013]優(yōu)選地,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習還包括:在檢測到當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的使用情況選擇修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目;當已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值時,停止修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目的操作。
[0014]優(yōu)選地,根據(jù)所述報文的使用情況選擇修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目包括:將非使用狀態(tài)的轉(zhuǎn)發(fā)條目刪除,將使用狀態(tài)的轉(zhuǎn)發(fā)條目修改為非使用狀態(tài)。
[0015]根據(jù)本發(fā)明的另一方面,提供了一種轉(zhuǎn)發(fā)設(shè)備,包括:接收模塊,用于接收報文;第一判斷模塊,用于根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習,其中,所述屬性信息包括以下之一:單播、組播、廣播。
[0016]優(yōu)選地,所述轉(zhuǎn)發(fā)設(shè)備還包括:第一處理模塊,用于在所述報文的屬性信息為組播或者廣播的情況下,不依據(jù)所述報文進行MAC地址的學習;第二處理模塊,用于在所述報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
[0017]優(yōu)選地,所述轉(zhuǎn)發(fā)設(shè)備還包括:第三處理模塊,用于在所述報文的屬性信息為單播的情況下,依據(jù)所述報文進行MAC地址的學習。
[0018]優(yōu)選地,所述轉(zhuǎn)發(fā)設(shè)備還包括:第二判斷模塊,用于判斷當前已經(jīng)學習到的MAC地址的數(shù)量是否大于第二閾值;第一執(zhí)行模塊,用于在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習;第二執(zhí)行模塊,用于在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于所述第二閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
[0019]本發(fā)明通過報文的屬性信息的不同來判斷是否對報文進行學習,實現(xiàn)了在不同的場景下,根據(jù)報文不同的屬性信息對MAC地址的學習進行控制,解決了只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了 MAC地址學習的問題。通過本發(fā)明提供的MAC地址的學習控制方法,可根據(jù)屬性信息的不同因需要進行控制,進一步,還可以避免網(wǎng)絡(luò)中存在大量廣播或組播報文對于系統(tǒng)MAC地址容量的沖擊,使系統(tǒng)在容量有限的情況下學習有用的MAC地址,提升了系統(tǒng)性能。
【專利附圖】

【附圖說明】
[0020]此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中:
[0021]圖1是根據(jù)本發(fā)明實施例的MAC地址學習的控制方法的流程圖;
[0022]圖2是根據(jù)本發(fā)明實施例一的MAC地址學習的控制方法的流程圖;
[0023]圖3是根據(jù)本發(fā)明實施例二的MAC地址學習的控制方法的流程圖;
[0024]圖4是根據(jù)本發(fā)明實施例二的控制方法定時查詢的流程圖;
[0025]圖5是根據(jù)本發(fā)明實施例轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)框圖一;
[0026]圖6是根據(jù)本發(fā)明實施例轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)框圖二 ;
[0027]圖7是根據(jù)本發(fā)明實施例轉(zhuǎn)發(fā)設(shè)備的結(jié)構(gòu)框圖三。
【具體實施方式】
[0028]下文中將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。
[0029]基于相關(guān)技術(shù)中,轉(zhuǎn)發(fā)設(shè)備在報文轉(zhuǎn)發(fā)的過程中,只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了 MAC地址學習,本發(fā)明實施例提供了一種MAC地址學習的控制方法,該控制方法的流程包括圖1所示的步驟S102至步驟S104:
[0030]步驟S102,接收報文;
[0031]步驟S104,根據(jù)報文的屬性信息判斷是否依據(jù)報文進行MAC地址的學習,其中,屬性信息包括以下之一:單播、組播、廣播。
[0032]本發(fā)明實施例通過報文的屬性信息的不同來判斷是否對報文進行學習,實現(xiàn)了在不同的場景下,根據(jù)報文不同的屬性信息對MAC地址的學習進行控制,解決了只通過固定方式控制MAC地址的學習,MAC地址學習方式單一,限制了 MAC地址學習的問題。通過本發(fā)明提供的MAC地址的學習控制方法,可根據(jù)屬性信息的不同因需要進行控制,進一步,還可以避免網(wǎng)絡(luò)中存在大量廣播或組播報文對于系統(tǒng)MAC地址容量的沖擊,使系統(tǒng)在容量有限的情況下學習有用的MAC地址,提升了系統(tǒng)性能。
[0033]在報文的屬性信息為組播或者廣播的情況下,不依據(jù)報文進行MAC地址的學習;或者,在報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)報文進行MAC地址的學習。實施的過程中,可以在系統(tǒng)中設(shè)定一個第一閾值,例如安全閾值,則當系統(tǒng)已經(jīng)學習到的MAC地址的數(shù)量小于安全閾值時,系統(tǒng)處于安全工作的狀態(tài),無需對其實施控制學習。如果系統(tǒng)不想學習任何組播或廣播,則可以在不依據(jù)報文進行MAC地址的學習。
[0034]系統(tǒng)還可以在報文的屬性信息為單播的情況下,依據(jù)報文進行MAC地址的學習。單播和組播(或廣播)的學習過程不沖突,當然,也可以是在系統(tǒng)中只對單播進行限制。
[0035]在實施的過程中,從報文中可以獲取的信息有源MAC地址信息、端口信息和目的MAC地址信息。依據(jù)報文進行MAC地址的學習時,可以是根據(jù)源MAC地址信息、端口信息和目的MAC地址信息的一種或多種對其進行學習,例如,在組播的情況下,第一閾值為系統(tǒng)設(shè)定的安全閾值時,可以依據(jù)報文的源MAC地址信息和端口信息對組播信息進行報文的學習。當然,對于組播的學習,還可以是無論系統(tǒng)容量是否有剩余或是否設(shè)定閾值,都不依據(jù)報文的任何信息對其進行學習。
[0036]報文的屬性信息為單播且依據(jù)報文進行MAC地址的學習的情況下,當MAC地址轉(zhuǎn)發(fā)表中不存在報文對應(yīng)的轉(zhuǎn)發(fā)條目時,在轉(zhuǎn)發(fā)表中建立轉(zhuǎn)發(fā)條目,并將報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為非使用狀態(tài)。
[0037]在實施的過程中,當轉(zhuǎn)發(fā)表中不存在與從報文中獲取的源MAC地址信息和端口信息相對應(yīng)的轉(zhuǎn)發(fā)條目時,則在轉(zhuǎn)發(fā)表中創(chuàng)建該轉(zhuǎn)發(fā)條目,并將該轉(zhuǎn)發(fā)條目的使用情況設(shè)置為非使用狀態(tài),然后根據(jù)獲取的目的MAC地址信息查找該轉(zhuǎn)發(fā)表的轉(zhuǎn)發(fā)條目,判斷是否能夠查找到,如果找到,則轉(zhuǎn)發(fā)報文,并將其使用情況由非使用狀態(tài)修改為使用狀態(tài),其中,上述使用狀態(tài)與非使用狀態(tài)用于指示轉(zhuǎn)發(fā)條目的使用情況,該使用情況的設(shè)置是用于后續(xù)清理轉(zhuǎn)發(fā)表中已經(jīng)學習到的MAC地址的數(shù)量而使用。
[0038]當MAC地址轉(zhuǎn)發(fā)表中存在報文對應(yīng)的轉(zhuǎn)發(fā)條目時,即轉(zhuǎn)發(fā)表中可以查找到目的MAC地址信息對應(yīng)的轉(zhuǎn)發(fā)條目時,則直接轉(zhuǎn)發(fā)報文,并將報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為使用狀態(tài),該過程是建立轉(zhuǎn)發(fā)條目之后的步驟;當在轉(zhuǎn)發(fā)表中的轉(zhuǎn)發(fā)條目下查找不到目的MAC地址信息時,則直接轉(zhuǎn)發(fā)報文,非使用狀態(tài)不做改變。上述使用情況的調(diào)整,為后續(xù)清理轉(zhuǎn)發(fā)表的容量做了鋪墊。
[0039]在已經(jīng)學習到的MAC地址的數(shù)量達到上限的情況下,即系統(tǒng)已沒有多余的容量來進一步學習MAC地址時,將通過屬性信息是多播或廣播的報文所學到MAC地址替換為通過屬性信息是單播報文所學到的MAC地址。在替換的過程中,可以是系統(tǒng)從開始進行輪詢查找,將查找到的第一個通過屬性信息是多播或廣播的報文所學到MAC地址進行替換,也可以是將查找時間最近的通過屬性信息是多播或廣播的報文所學到MAC地址進行替換,還可以對系統(tǒng)進行自定義查找,此處對替換的過程不再進行贅述。以上述替換的方式進行控制,可以快速學習想要學習的MAC地址,使系統(tǒng)的使用效率更高,MAC地址的學習更加靈活。
[0040]在根據(jù)報文的屬性信息判斷是否依據(jù)報文進行MAC地址的學習之前,還可以包括進一步的判斷步驟,也就是在什么情況下開始執(zhí)行上述的控制過程。作為對上述控制過程進一步優(yōu)化,可以對系統(tǒng)設(shè)定一個第二閾值,此時,可以將當前已經(jīng)學習到的MAC地址的數(shù)量與第二閾值的大小進行判斷,即判斷當前已經(jīng)學習到的MAC地址的數(shù)量是否大于第二閾值。在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)報文的屬性信息判斷是否依據(jù)報文進行媒體接入控制MAC地址的學習;在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于第二閾值的情況下,依據(jù)報文進行MAC地址的學習。上述過程體現(xiàn)了系統(tǒng)對MAC地址的精細化控制。
[0041]在上述實施的過程中,在檢測到當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)報文的使用情況選擇修改或刪除依據(jù)報文進行MAC地址學習的轉(zhuǎn)發(fā)條目。修改或刪除的操作可以是將非使用狀態(tài)的轉(zhuǎn)發(fā)條目刪除,將使用狀態(tài)的轉(zhuǎn)發(fā)條目修改為非使用狀態(tài),待下一次輪詢的時候再次檢測使用狀態(tài)與非使用狀態(tài)的轉(zhuǎn)發(fā)條目的使用情況是否有改變,無改變則執(zhí)行上述操作。該過程是一個循環(huán)的過程,系統(tǒng)不斷的調(diào)整當前已經(jīng)學習到的MAC地址的數(shù)量。為了節(jié)約資源,防止系統(tǒng)在無需控制的情況下仍繼續(xù)開啟控制工作,則設(shè)定一個第一閾值,則當已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值時,可以停止修改或刪除依據(jù)報文進行MAC地址學習的轉(zhuǎn)發(fā)條目的操作。
優(yōu)選實施例
[0042]本發(fā)明實施例提供了一種MAC地址學習的控制方法,MAC地址學習控制主要是要能夠識別出系統(tǒng)不需要學習的MAC地址,在地址容量有限的時候控制這些MAC地址的學習,以避免這些MAC地址占用了系統(tǒng)有限的MAC地址容量資源。
[0043]為了實現(xiàn)上述功能,本發(fā)明需要記錄如下關(guān)鍵信息:
[0044]1、MAC地址轉(zhuǎn)發(fā)表,該表主要記錄如下幾個信息:(1)MAC地址信息,數(shù)據(jù)報文的源MAC地址信息;(2)端口信息,數(shù)據(jù)報文進入系統(tǒng)的端口信息;(3)地址使用信息,記錄該MAC地址信息是否有報文轉(zhuǎn)發(fā)使用。
[0045]2、MAC地址標記信息,記錄該MAC地址對應(yīng)報文的屬性,標記該MAC對應(yīng)的報文是廣播(組播)報文還是單播報文。該信息可以是在開啟控制后才開始進行記錄,也可以是沒有控制過程,只要系統(tǒng)開始工作便進行記錄。
[0046]3、最大MAC地址容量,系統(tǒng)能夠允許學習的最大MAC地址的數(shù)量。
[0047]4、當前MAC地址容量,系統(tǒng)當前已經(jīng)學習到的MAC地址的數(shù)量。
[0048]5、告警MAC地址容量,系統(tǒng)告警的MAC地址數(shù)量,當系統(tǒng)當前MAC地址數(shù)量到達這個數(shù)量時就需要對MAC地址學習進行控制。
[0049]6、安全MAC地址容量,系統(tǒng)安全的MAC地址數(shù)量,當系統(tǒng)當前MAC地址數(shù)量小于這個數(shù)量時不需要對MAC地址學習進行控制。
[0050]上述信息中,MAC地址轉(zhuǎn)發(fā)表、MAC地址標記信息和當前MAC地址容量是系統(tǒng)在運行過程中動態(tài)生成的;最大MAC地址容量是由系統(tǒng)決定的;告警MAC地址容量和安全地址容量是根據(jù)系統(tǒng)運行環(huán)境進行設(shè)置的,一般來說,安全MAC地址容量小于告警MAC地址容量。在不需要多重設(shè)置的情況下,也可以只設(shè)置一個告警MAC地址容量,不設(shè)置安全MAC地
址容量,
[0051]系統(tǒng)在報文轉(zhuǎn)發(fā)時,需要記錄報文的源MAC地址信息和端口信息,并根據(jù)報文的目的MAC地址信息查找相應(yīng)的轉(zhuǎn)發(fā)表,找到轉(zhuǎn)發(fā)的端口,從而完成報文的轉(zhuǎn)發(fā)。本發(fā)明除記錄報文的源MAC地址信息、端口信息外,還根據(jù)報文的目的MAC地址信息判斷出報文是廣播(組播)/單播屬性來限制廣播(組播)報文的源MAC地址學習,并根據(jù)報文的目的MAC記錄轉(zhuǎn)發(fā)表中各個條目的使用信息,盡快老化非使用的轉(zhuǎn)發(fā)條目從而達到對MAC地址學習的控制。
[0052]實例一
[0053]如圖2所示,本實施例包括步驟S202至步驟S224:
[0054]步驟S202,獲取報文信息,即系統(tǒng)獲取報文的入端口信息、源MAC地址信息、目的MAC地址信息,并根據(jù)目的MAC地址判斷出MAC地址標記信息是廣播(組播)屬性還是單播屬性。
[0055]步驟S204,根據(jù)端口信息和源MAC地址信息查找MAC地址轉(zhuǎn)發(fā)表,判斷是否存在與其相對應(yīng)的轉(zhuǎn)發(fā)條目。如果能夠查找到與其對應(yīng)的轉(zhuǎn)發(fā)條目,則進入步驟S206,否則,進入步驟S208。
[0056]步驟S206,更新對應(yīng)源MAC和端口信息的MAC地址轉(zhuǎn)發(fā)表條目,進入步驟S220。在該步驟執(zhí)行的過程中,更新的可以是老化時間,也可以是轉(zhuǎn)發(fā)條目的使用情況,或者兩者都更新。
[0057]步驟S208,判斷當前MAC地址容量是否大于等于告警MAC地址容量。如果是,則執(zhí)行步驟S210,否則進入步驟S218。[0058]步驟S210,判斷系統(tǒng)是否啟用了 MAC地址定時查詢功能,如果沒有啟用進入步驟S212,否則進入步驟S214。
[0059]步驟S212,系統(tǒng)啟用定時查詢功能。該功能通過不斷的查詢MAC地址轉(zhuǎn)發(fā)表,將目前不使用的MAC地址轉(zhuǎn)發(fā)條目盡快老化,避免這些地址占用了有限的MAC地址容量資源。
[0060]系統(tǒng)在轉(zhuǎn)發(fā)報文時,會根據(jù)MAC地址轉(zhuǎn)發(fā)表查找到對應(yīng)的端口信息進行報文的轉(zhuǎn)發(fā),在轉(zhuǎn)發(fā)的同時將會對該MAC地址轉(zhuǎn)發(fā)條目的地址使用信息進行更新,在地址查詢功能啟用后,將會定時查詢MAC地址轉(zhuǎn)發(fā)表中的各個條目的使用信息,如果發(fā)現(xiàn)有不使用的MAC地址轉(zhuǎn)發(fā)條目時會立即刪除,否則繼續(xù)查詢其他MAC地址轉(zhuǎn)發(fā)條目,直到當前MAC地址容量小于安全MAC地址容量。
[0061]步驟S214,判斷當前MAC地址標記信息是否為單播,如果是進入步驟S216,否則進入步驟S220。
[0062]步驟S216,判斷當前MAC地址容量是否小于最大MAC地址容量,如果是進入步驟S218,否則進入步驟S220。
[0063]步驟S218,根據(jù)獲取到的報文的源MAC地址信息,入端口信息,在MAC地址表中創(chuàng)建新的MAC地址條目,并將該MAC地址條目的使用信息置為非使用狀態(tài),更新當前MAC地址容量。
[0064]步驟S220,根據(jù)獲取到的報文的目的MAC地址信息,查找MAC地址轉(zhuǎn)發(fā)表,判斷是否可以查找到。如果查是,則進入步驟S222,否則進入步驟S224。
[0065]步驟S222,將查找到對應(yīng)的MAC地址轉(zhuǎn)發(fā)條目的使用信息置為使用狀態(tài)。
[0066]步驟S224,系統(tǒng)將報文進行轉(zhuǎn)發(fā),結(jié)束流程。
[0067]為了在系統(tǒng)允許的情況下,能夠盡量多的學習轉(zhuǎn)發(fā)報文的MAC地址信息,當系統(tǒng)當前MAC地址容量小于安全MAC地址容量時,將會關(guān)閉系統(tǒng)的定時查詢功能并且對于系統(tǒng)的MAC地址學習不會進行控制。
[0068]與現(xiàn)有技術(shù)相比,本實施例采用的MAC地址學習的控制方法,能夠根據(jù)系統(tǒng)的運行狀態(tài),自動調(diào)整MAC地址學習功能,不僅能夠簡單有效的控制網(wǎng)絡(luò)上大量雜包對于系統(tǒng)MAC地址容量的沖擊,而且能夠在系統(tǒng)允許的情況下,使得系統(tǒng)能夠盡量多的學習到所有的MAC地址信息。
[0069]實例二
[0070]如圖3所示,為控制MAC地址學習方法的流程圖,該方法包括步驟S302至步驟S326:
[0071]步驟S302,獲取報文信息,主要是獲取報文的入端口信息,報文的源MAC地址信息和報文的目的MAC地址信息,并根據(jù)目的MAC地址判斷出MAC地址標記信息是廣播(組播)屬性還是單播屬性。
[0072]步驟S304,根據(jù)獲取到的源MAC地址信息和入端口信息查找對應(yīng)的MAC地址轉(zhuǎn)發(fā)表,判斷是否可以查找到。如果能夠查找到,說明已經(jīng)創(chuàng)建,進入步驟S306,否則進入步驟S308。
[0073]步驟S306,更新MAC地址轉(zhuǎn)發(fā)表對應(yīng)條目的老化時間,進入步驟S320。
[0074]步驟S308,判斷當前MAC地址容量是否大于等于告警MAC地址容量。如果是,說明需要對MAC地址容量進行控制,則執(zhí)行步驟S310,否則進入步驟S318。[0075]步驟S310,判斷系統(tǒng)是否啟用了定時查詢功能。如果是,則進入步驟S314,否則進入步驟S312。
[0076]步驟S312,啟用定時查詢功能,以盡快刪除非使用狀態(tài)的MAC地址條目,進入步驟S314。
[0077]步驟S314,根據(jù)報文目的MAC地址信息判斷報文是否為單播報文。如果是,則進入步驟S316,否則進入步驟S320。
[0078]步驟S316,判斷系統(tǒng)當前MAC地址容量是否小于系統(tǒng)最大MAC地址容量。如果是,進入步驟S318,否則進入步驟S320。
[0079]步驟S318,在MAC地址轉(zhuǎn)發(fā)表中新增MAC地址轉(zhuǎn)發(fā)條目,記錄報文的源MAC地址信息和入端口信息,并將地址使用信息設(shè)置為未使用狀態(tài)。
[0080]步驟S320,根據(jù)報文的目的MAC地址信息查找MAC地址轉(zhuǎn)發(fā)表,如果查找到,則進入步驟S322,否則進入步驟S324。
[0081]步驟S322,更新MAC地址轉(zhuǎn)發(fā)表條目中的使用信息(使用情況),將地址使用信息設(shè)置為使用狀態(tài)。
[0082]步驟S324,根據(jù)報文的目的MAC地址信息轉(zhuǎn)發(fā)報文。
[0083]如果查找到對應(yīng)的端口信息就將報文轉(zhuǎn)發(fā)到對應(yīng)的端口,否則將對報文在各個端口中進行洪范。
[0084]步驟S326,結(jié)束MAC地址控制流程。
[0085]圖4描述了上述控制過程中定時查詢功能執(zhí)行的流程,該流程包括步驟S402至步驟 S416:
[0086]步驟S402,通過MAC地址轉(zhuǎn)發(fā)表循環(huán)獲取所有MAC地址轉(zhuǎn)發(fā)條目的使用信息。
[0087]步驟S404,判斷MAC地址轉(zhuǎn)發(fā)條目的使用信息是否處于使用狀態(tài)。如果是,進入步驟S406,否則進入步驟S408。
[0088]步驟S406,將MAC地址轉(zhuǎn)發(fā)條目對應(yīng)的使用信息置為非使用狀態(tài)。
[0089]在該步驟執(zhí)行的過程中,如果沒有報文轉(zhuǎn)發(fā)用到該條目,則使用信息會一直處于非使用狀態(tài);當有報文轉(zhuǎn)發(fā)用到該條目時,則會將使用信息置為使用狀態(tài),然后進入步驟S402,重新查詢下一條地址轉(zhuǎn)發(fā)條目。
[0090]步驟S408,刪除對應(yīng)的MAC地址轉(zhuǎn)發(fā)條目。
[0091]步驟S410,更新當前MAC地址容量。
[0092]步驟S412,判斷當前MAC地址容量是否小于安全MAC地址容量。如果是,說明系統(tǒng)目前地址容量比較充足,不需要對MAC地址學習進行控制,進入步驟S414,否則進入步驟S402,繼續(xù)進行查找。
[0093]步驟S414,停止定時查詢功能。
[0094]步驟S416,結(jié)束定時查詢流程。
[0095]本發(fā)明實施例還提供了一種轉(zhuǎn)發(fā)設(shè)備,可以用于實現(xiàn)本發(fā)明上述實施例提供的控制方法,以及轉(zhuǎn)發(fā)上述報文,其結(jié)構(gòu)如圖5所示,包括:接收模塊10,用于接收報文;第一判斷模塊20,與接收模塊10耦合,用于根據(jù)報文的屬性信息判斷是否依據(jù)報文進行MAC地址的學習,其中,屬性信息包括以下之一:單播、組播、廣播。
[0096]圖6是對上述轉(zhuǎn)發(fā)設(shè)備的優(yōu)化,在如圖6所示的轉(zhuǎn)發(fā)設(shè)備中,該設(shè)備還可包括一個整體的處理結(jié)構(gòu),與第一判斷模塊20耦合,在判斷屬性信息后如何進行后續(xù)的處理,則處理機構(gòu)結(jié)構(gòu)包括:第一處理模塊30,用于在報文的屬性信息為組播或者廣播的情況下,不依據(jù)報文進行MAC地址的學習;第二處理模塊40,用于在報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)報文進行MAC地址的學習;第三處理模塊50,用于在報文的屬性信息為單播的情況下,依據(jù)報文進行MAC地址的學習。
[0097]當根據(jù)報文的屬性信息判斷依據(jù)報文進行MAC地址的學習的時候,則第二處理模塊40與第三處理模塊50工作。對于屬性信息是單播的報文,則在任何情況下都依據(jù)報文進行MAC地址的學習。
[0098]對于屬性信息是組播(或廣播)的報文,判斷已經(jīng)學習到的MAC地址的數(shù)量是否小于第一閾值,在小于的情況下,則依據(jù)報文進行MAC地址的學習,如果不小于,則不學習,這只是一種學習的方式,
[0099]當然,在需要學習的MAC的數(shù)量較大或用戶不需要學習組播(或廣播)等情況下,也可以不進行判斷,即第一處理模塊30工作,此時,只要是組播(或廣播)就只轉(zhuǎn)發(fā)報文而不學習。這也就是不依據(jù)報文進行MAC地址學習的情況。
[0100]上述轉(zhuǎn)發(fā)設(shè)備還可以包括:第二判斷模塊60、第一執(zhí)行模塊70和第二執(zhí)行模塊80,加入了上述模塊的轉(zhuǎn)發(fā)設(shè)備可以如圖7所示,其中,第二判斷模塊60,用于判斷當前已經(jīng)學習到的MAC地址的數(shù)量是否大于第二閾值;第一執(zhí)行模塊70,用于在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)報文的屬性信息判斷是否依據(jù)報文進行媒體接入控制MAC地址的學習;第二執(zhí)行模塊80,用于在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于第二閾值的情況下,依據(jù)報文進行MAC地址的學習。
[0101]圖7所示的轉(zhuǎn)發(fā)設(shè)備第二判斷模塊60的增加,給第一判斷模塊20的執(zhí)行增加了一個先決條件,即設(shè)定一個第二閾值,并判斷當前已經(jīng)學習到的MAC地址的數(shù)量是否大于第二閾值。在大于第二閾值的情況下,第一執(zhí)行模塊70工作,選擇根據(jù)報文的屬性信息判斷是否依據(jù)報文進行MAC地址的學習方式,隨后第一判斷模塊20再工作,再來根據(jù)屬性信息進行真正的選擇,以及后續(xù)的處理。
[0102]在不大于第二閾值的情況下,第二執(zhí)行模塊80工作,即選擇的是依據(jù)報文進行MAC地址的學習方式,則所有報文都進行學習。
[0103]本實施例提供的轉(zhuǎn)發(fā)設(shè)備還可以用于在檢測到當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)報文的使用情況選擇修改或刪除依據(jù)報文進行MAC地址學習的轉(zhuǎn)發(fā)條目;當已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值時,停止修改或刪除依據(jù)報文進行MAC地址學習的轉(zhuǎn)發(fā)條目的操作。其中,將非使用狀態(tài)的轉(zhuǎn)發(fā)條目刪除,將使用狀態(tài)的轉(zhuǎn)發(fā)條目修改為非使用狀態(tài)。
[0104]優(yōu)選地,所示轉(zhuǎn)發(fā)設(shè)備在已經(jīng)學習到的MAC地址的數(shù)量達到上限的情況下,將通過屬性信息是多播或廣播的報文所學到MAC地址替換為通過屬性信息是單播報文所學到的MAC地址。
[0105]上述轉(zhuǎn)發(fā)設(shè)備的處理結(jié)構(gòu)還可以用于當MAC地址轉(zhuǎn)發(fā)表中不存在報文對應(yīng)的轉(zhuǎn)發(fā)條目時,在轉(zhuǎn)發(fā)表中建立轉(zhuǎn)發(fā)條目,并將報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為非使用狀態(tài);當MAC地址轉(zhuǎn)發(fā)表中存在報文對應(yīng)的轉(zhuǎn)發(fā)條目時,轉(zhuǎn)發(fā)報文,并將報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為使用狀態(tài);其中,使用狀態(tài)與非使用狀態(tài)用于指示轉(zhuǎn)發(fā)條目的使用情況。[0106]從以上的描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果:
[0107]本發(fā)明實施例的MAC地址學習的控制方法通過盡快老化非使用的MAC地址轉(zhuǎn)發(fā)條目,限制廣播(和組播)報文的MAC地址學習,使系統(tǒng)在MAC地址容量充足的情況下,能夠?qū)W習所有報文的MAC地址信息,在MAC地址容量有限的情況下,盡量學習正常轉(zhuǎn)發(fā)報文的MAC地址信息,從而有效的解決了系統(tǒng)MAC地址學習問題。
[0108]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,并且在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0109]以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種媒體接入控制MAC地址學習的控制方法,其特征在于,包括: 接收報文; 根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習,其中,所述屬性信息包括以下之一:單播、組播、廣播。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于, 在所述報文的屬性信息為組播或者廣播的情況下,不依據(jù)所述報文進行MAC地址的學習;和/或, 在所述報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,在所述報文的屬性信息為單播的情況下,依據(jù)所述報文進行MAC地址的學習。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述報文的屬性信息為單播的情況下依據(jù)所述報文進行MAC地址的學習包括: 當MAC地址轉(zhuǎn)發(fā)表中不存在所述報文對應(yīng)的轉(zhuǎn)發(fā)條目時,在所述轉(zhuǎn)發(fā)表中建立所述轉(zhuǎn)發(fā)條目,并將所述報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為非使用狀態(tài); 當MAC地址轉(zhuǎn)發(fā)表中存在所述報文對應(yīng)的轉(zhuǎn)發(fā)條目時,轉(zhuǎn)發(fā)所述報文,并將所述報文對應(yīng)的轉(zhuǎn)發(fā)條目標記為使用 狀態(tài); 其中,所述使用狀態(tài)與所述非使用狀態(tài)用于指示所述轉(zhuǎn)發(fā)條目的使用情況。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于,在已經(jīng)學習到的MAC地址的數(shù)量達到上限的情況下,將通過屬性信息是多播或廣播的報文所學到MAC地址替換為通過屬性信息是單播報文所學到的MAC地址。
6.根據(jù)權(quán)利要求3所述的方法,其特征在于, 根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習包括:在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習; 根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習還包括:在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于所述第二閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習還包括: 在檢測到當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的使用情況選擇修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目; 當已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值時,停止修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目的操作。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,根據(jù)所述報文的使用情況選擇修改或刪除依據(jù)所述報文進行MAC地址學習的轉(zhuǎn)發(fā)條目包括: 將非使用狀態(tài)的轉(zhuǎn)發(fā)條目刪除,將使用狀態(tài)的轉(zhuǎn)發(fā)條目修改為非使用狀態(tài)。
9.一種轉(zhuǎn)發(fā)設(shè)備,其特征在于,包括: 接收模塊,用于接收報文;第一判斷模塊,用于根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行MAC地址的學習,其中,所述屬性信息包括以下之一:單播、組播、廣播。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其特征在于,還包括: 第一處理模塊,用于在所述報文的屬性信息為組播或者廣播的情況下,不依據(jù)所述報文進行MAC地址的學習; 第二處理模塊,用于在所述報文的屬性信息為組播或廣播,并且已經(jīng)學習到的MAC地址的數(shù)量小于第一閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
11.根據(jù)權(quán)利要求9或10所述的設(shè)備,其特征在于,還包括: 第三處理模塊,用于在所述報文的屬性信息為單播的情況下,依據(jù)所述報文進行MAC地址的學習。
12.根據(jù)權(quán)利要求11所述的設(shè)備,其特征在于,還包括: 第二判斷模塊,用于判斷當前已經(jīng)學習到的MAC地址的數(shù)量是否大于第二閾值; 第一執(zhí)行模塊,用于在當前已經(jīng)學習到的MAC地址的數(shù)量大于第二閾值的情況下,根據(jù)所述報文的屬性信息判斷是否依據(jù)所述報文進行媒體接入控制MAC地址的學習; 第二執(zhí)行模塊,用于在當前已經(jīng)學習到的MAC地址的數(shù)量小于或等于所述第二閾值的情況下,依據(jù)所述報文進行MAC地址的學習。
【文檔編號】H04L29/12GK103428091SQ201210150135
【公開日】2013年12月4日 申請日期:2012年5月15日 優(yōu)先權(quán)日:2012年5月15日
【發(fā)明者】許煜芝 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1