專利名稱:用于以太網的數據包處理方法和裝置的制作方法
技術領域:
本發明涉及通信領域,具體而言,涉及一種用于以太網的數據 包處理方法和裝置。
背景技術:
目前,在以太網交4奐才幾4頁i或,ASIC ( Application Specific Integrated Circuits,專用集成電^各)4支術已廣泛運用到以太網交換:才幾 設備中。在二層/三層交換中,ASIC芯片通常采用學習MAC (Media Access Control,々某體訪問控制)地址的方式,然后再同步到交換機 的CPU,這樣MAC地址學習比較快。在二層交換^/U貞域ASIC是 專門用來做數據交換的硬件芯片,而CPU是用來專門做控制的,不 參與數據轉發。ASIC芯片和CPU芯片是兩個不同功能的芯片,在 一個交4奐系統中至少包含一個ASIC芯片和一個CPU芯片。然而,在目前的以太網使用領域,在組網失誤的情況下,可能 導致環路的出現。環路會導致廣播風暴,MAC地址頻繁地在端口間 漂移,造成CPU繁忙,給用戶帶來災難性后果。特別是對于三層交 換機,導致協議斷鏈,所有使用協議的用戶無法正常上網。圖1示出了環^各形成廣播風暴的示意圖,交換機1的A, B端 口和交換才幾2的C, D端口形成環^各,且和用戶端口 E在一個廣4番 域中。當乂人E 口收到 一個廣4番包(Br packet)時,交4奐才幾2會向C , D 口廣播。交換機1上A, B 口會同時收到這個廣播流,發生MAC漂移,而交換機1又會向A, B口廣播出去,這樣一個數據包會在 環路上累積形成廣播風暴,不停地做MAC漂移處理,造成CPU忙。 廣播風暴一旦形成即使是把E 口斷掉也無法停止廣播風暴了 ,只能 通過斷4卓環^各解決問題。為了解決環^各廣播風暴的問題,提出了生成樹協議。生成樹協 議4吏用生成樹算法,在環^各存在的時候,阻斷數據流在端口上的轉 發,/人而避免廣播風暴。但是在實現本發明過程中,發明人發現現有才支術中至少存在如 下問題生成樹協議運算比較復雜,不是很穩定,導致運營商很少 啟用這個協議來避免環路。因此在目前的使用環境中, 一旦發生環 路,則沒有更好的辦法,依然只能通過解除環路來排除廣播風暴對 整個交換機的影響。發明內容本發明旨在提供一種用于以太網的數據包處理方法和裝置,能 夠解決現有技術中以太網組網失誤導致環路造成廣播風暴的問題。根據本發明的一個方面,才是供了 一種用于以太網的數據包處理 方法,包括以下步驟判定發生MAC地址漂移;將漂移的數據包 上送到以太網中的交換:才幾的CPU學習MAC地址;以及交換才幾的 ASIC芯片終止學習MAC地址,終止漂移的凄史據包的繼續轉發。優選的,在第二層判斷是否發生MAC地址漂移。優選的,將漂移的數據包帶上漂移的標志后,上送到交換才幾以 太網中的交換才幾的CPU學習MAC地址。優選的,在將漂移的數據包上送到以太網中的交換機的CPU學習MAC地址時,還包括判斷CPU漂移的隊列是否滿或者上送速 度超過門限;如果是,則設置反壓,禁止ASIC芯片繼續發送漂移 的數據包,并丟棄本數據包;如果不是,則將漂移的數據包放到CPU 漂移的隊列中,等待學習。優選的,在將漂移的數據包上送到以太網中的交換機的CPU學 習MAC地址時,還包括掃描CPU漂移的隊列是否空;如果不是, 則從CPU漂移的隊列中取出漂移的數據包,學習MAC地址,然后 繼續隊列掃描;如果是,則判斷是否設置了反壓;如果未設置反壓, 則結束本次隊列掃描;如果是設置了反壓,則取消反壓設置,并允 許ASIC芯片繼續上送漂移數據包,結束本次隊列掃描。上述的實施例為以太交換機產生環路引起的廣播風暴提供了 一 種可靠的處理方法,顯著地減輕了環路導致的協議斷4連等問題,使 得一個端口發生環路不至于影響到其他端口的用戶。根據本發明的另 一方面,才是供了 一種用于以太網的數據包處理 裝置,包括判斷模塊,用于判定發生MAC地址漂移;上送模塊, 用于將漂移的數據包上送到以太網中的交換機的CPU學習MAC地 址;以及終止才莫塊,用于使ASIC芯片終止學習MAC地址,終止 漂移的數據包的繼續轉發。優選的,上送才莫塊包括標記單元,用于將漂移的數據包帶上漂 移的才示志。優選的,上送才莫塊包括滿判斷單元,用于判斷CPU漂移的隊 列是否滿或者上送速度超過門限;滿處理單元,用于如果是,則設 置反壓,禁止ASIC芯片繼續發送漂移的數據包,并丟棄本數據包; 如果不是,則將漂移的數據包放到CPU漂移的隊列中,等待學習。優選的,上送模塊包括掃描單元,用于判斷CPU漂移的隊列 是否空;空處理單元,用于如果不是,則從CPU漂移的隊列中取出 漂移的凄t據包,學習MAC地址,然后繼續隊列掃描;如果是,則 判斷是否i殳置了反壓;如果未"i殳置反壓,則結束本次隊列掃描;如 果是設置了反壓,則取消反壓設置,并允許ASIC芯片繼續上送漂 移數據包,結束本次隊列掃描。優選的,交換機包括二層和或三層交換才幾。上述的實施例為以太交換機產生環路引起的廣纟番風暴4是供了 一 種可靠的處理裝置,顯著地減輕了環路導致的協議斷^l連等問題,使 得一個端口發生環^各不至于影響到其他端口的用戶。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申 請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并 不構成對本發明的不當限定。在附圖中圖1示出了現有技術中環路引起的廣播風暴的形成;圖2示出了才艮據本發明實施例的用于以太網的數據包處理方法 的流程圖;圖3示出了根據本發明實施例的MAC漂移包轉發處理的流程;圖4示出了才艮據本發明實施例的CPU收到漂移包的處理;圖5示出了才艮據本發明實施例的CPU對漂移包的學習處理;以及的方框圖。
具體實施方式
下面將參考附圖并結合實施例,來詳細i兌明本發明。圖2示出了才艮據本發明實施例的用于以太網的翁:據包處理方法 的流禾呈圖,包4舌以下步艱《步-驟SIO,判定發生MAC i也址漂移;步驟S20,將漂移的數據包上送到以太網中的交換機的CPU學 習MAC地址;以及步驟S30,交換^L的ASIC芯片終止學習MAC地址,終止漂移 的數據包的繼續轉發。該數據包處理方法由于判定發生環路失誤時,終止了 ASIC芯 片學習MAC地址,終止漂移的凄t據包的繼續轉發,所以避免了環 路引起的廣播風暴。從而,顯著地減輕了環路導致的協議斷鏈等問 題,使得一個端口發生環路不至于影響到其他端口的用戶。優選的,在第二層判斷是否發生MAC i也址漂移。優選的,將漂移的數據包帶上漂移的標志后,上送到交換機以 太網中的交換d:幾的CPU學習MAC ;也址。優選的,在步驟S20中還包括判斷CPU漂移的隊列是否滿 或者上送速度超過門限;如果是,則設置反壓,禁止ASIC芯片繼 續發送漂移的數據包,并丟棄本lt據包(即丟棄來自ASIC芯片繼續上報的包);如果不是,則將漂移的數據包放到CPU漂移的隊列 中,等待學習。工'優選的,在步驟S20中還包括掃描CPU漂移的隊列是否 如果不是,則從CPU漂移的隊列中取出漂移的數據包,學習MAC 地址,然后繼續隊列掃描;如果是,則判斷是否設置了反壓;如果 未設置反壓,則結束本次隊列掃描;如果是設置了反壓,則取消反 壓設置,并允許ASIC芯片繼續上送漂移數據包,結束本次隊列掃 描。上述的優選步驟通過限制漂移包上送的速度,對于大量的漂移 數據包存在的情況下進行反壓, 一旦漂移隊列滿,對包采取丟棄處 理,/人而降^f氐對CPU的沖擊。顯然,上述的交換機可以是二層/三層交換機。具體實施,主要在兩個方面 一個是轉發層, 一個是控制層。 步冬聚如下圖3示出了根據本發明實施例的MAC漂移包轉發處理的流程, 包括步駛《302、是否是MAC漂移的包,是繼續下一步處理,否則 進行正常的轉發處理(步驟304);步驟S306、 CPU漂移的隊列是否滿或者上送速度超過門限(即 判斷是否CPU漂移反壓),是的話丟棄這個數據包(步驟S308 ), 結束轉發處理,否則的話繼續下一步;步驟S310、漂移的包上送到CPU,并帶上漂移的標志, <更于 CPU進行MAC學習和控制。圖4示出了根據本發明實施例的CPU收到漂移包的處理,包括 以下步-驟步驟S402、 CPU收到數據包,判斷是否為漂移標志的數據包, 如果是正常數據包,則繼續步驟S404的處理,如果是MAC漂移的 包,貝'J進入^J步駛《S406;步驟S406、判斷是否漂移隊列滿或者速度超過門限;步驟S408,如果是,則設置反壓,禁止ASIC芯片繼續發送漂 移凄t:梧包,并丟棄本包,完成本次收包;步驟S410、如果不是,則將包力文到漂移隊列中,等待學習,完 成本次收包。圖5示出了根據本發明實施例的CPU對漂移包的學習處理。包 4舌以下步吝聚步驟S502,判斷漂移隊列是否為空;步驟S504,如果不是,則從隊列中取出數據包,學習MAC地 址,然后回到步驟S502;步驟S506,如果是,則判斷是否設置了反壓;步艱《S508,如果不是,則結束本次隊列掃描步驟S510,如果是,則取消反壓設置,允許ASIC芯片繼續上 送漂移lt據包,結束本次隊列掃描。上述的實施例在一定程度上避免了環路形成廣播風暴的可能,也降^f氐了環^各導致的大量的MAC地址漂移對CPU造成的壓力,不 至于影響到其他用戶的數據流的轉發。圖6示出了根據本發明實施例的用于以太網的數據包處理裝置 的方才匡圖,包4舌判斷才莫塊10,用于判定發生MAC地址漂移;上送模塊20,用于將漂移的數據包上送到以太網中的交換機的 CPU學習MAC i也址;以及終止模塊30,用于使ASIC芯片終止學習MAC地址,終止漂移的^:據包的繼續轉發。優選的,上送才莫塊20包括標記單元,用于將漂移的數據包帶上 漂移的標志。優選的,上送才莫塊20包括滿判斷單元,用于判斷CPU漂移 的隊列是否滿或者上送速度超過門限;滿處理單元,用于如果是, 則設置反壓,禁止ASIC芯片繼續發送漂移的數據包,并丟棄本漂 移的數據包(即丟棄來自ASIC芯片繼續上才艮的包),并可以終止 CPU的學習(但學習會一直繼續,直到隊列空);如果不是,則將 漂移的數據包放到CPU漂移的隊列中,等待學習。優選的,上送才莫塊20包括掃描單元,用于判斷CPU漂移的 隊列是否空;空處理單元,用于如果不是,則從CPU漂移的隊列中 耳又出漂移的lt據包,學習MAC地址,然后繼續隊列掃描;如果是, 則判斷是否設置了反壓;如果未設置反壓,則結束本次隊列掃描; 如果是設置了反壓,則取消反壓設置,并允許ASIC芯片學習MAC地址,并繼續漂移的數據包的轉發(允許ASIC芯片繼續上送MAC 漂移的lt據包),結束本次隊列掃描。優選的,交換機包括二層和或三層交換機。上述的處理裝置,如果ASIC芯片能支持上述MAC漂移的處 理方法,也可以在ASIC芯片上實現。在本發明的一個實施例中采 用網絡處理器處理,網絡處理器對包的處理可以更為靈活,滿足方 案中的處理。從以上的描述中,可以看出,本發明實現了如下技術效果本發明為以太交換機產生環路引起的廣播風暴提供了 一種可靠 的處理方法和裝置,顯著地減輕了環^各導致的協議斷纟連等問題,使 ;彈一個端口發生環^各不至于影響到其^f也端口的用戶。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或 各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算 裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們 可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,或者將它們分別制作成各個集成 電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模 塊來實現。這樣,本發明不限制于任何特定的石更件和軟件結合。以上所述〗又為本發明的優選實施例而已,并不用于限制本發明, 對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在 本發明的精神和原則之內,所作的任何修改、等同替換、改進等, 均應包含在本發明的保護范圍之內。
權利要求
1.一種用于以太網的數據包處理方法,其特征在于,包括以下步驟判定發生MAC地址漂移;將漂移的數據包上送到所述以太網中的交換機的CPU學習MAC地址;以及所述交換機的ASIC芯片終止學習MAC地址,終止所述漂移的數據包的繼續轉發。
2. 才艮據;K利要求1所述的^:據包處理方法,其特4正在于,在第二 層判斷是否發生MAC地址漂移。
3. 根據權利要求1所述的數據包處理方法,其特征在于,將所述 漂移的數據包帶上漂移的標志后,上送到所述交換a幾以太網中 的交換機的CPU學習MAC地址。
4. 根據權利要求1所述的數據包處理方法,其特征在于,在將漂 移的數據包上送到所述以太網中的交換^^幾的CPU學習MAC 地址時,還包括判斷CPU漂移的隊列是否滿或者上送速度超過門限;如果是,則設置反壓,禁止所述ASIC芯片繼續發送所述 漂移的數據包,并丟棄本數據包;如果不是,則將所述漂移的數據包放到所述CPU漂移的 隊列中,等4寺學習。
5. 根據權利要求4所述的數據包處理方法,其特征在于,在將漂 移的數據包上送到所述以太網中的交換^^幾的CPU學習MAC ;也iiL時,還包4舌掃描CPU漂移的隊列是否空;如果不是,則乂人所述CPU漂移的隊列中取出所述漂移的 凄t悟包,學習MAC;也址,然后繼續隊列掃描;如果是,則判斷是否設置了反壓;如果未"i殳置反壓,則結束本次隊列掃描;如果是設置了反壓,則取消反壓設置,并允許ASIC芯片 繼續上送漂移數據包,結束本次隊列掃描。
6. —種用于以太網的數據包處理裝置,其特征在于,包括判斷模塊,用于判定發生MAC地址漂移;上送模塊,用于將漂移的數據包上送到所述以太網中的交 才灸才幾的CPU學習MAC地址;以及終止模塊,用于使所述交換機的ASIC芯片終止學習MAC 地址,終止所述漂移的數據包的繼續轉發。
7. 根據權利要求6所述的數據包處理裝置,其特征在于,所述上 送^^莫塊包括標記單元,用于將所述漂移的數據包帶上漂移的標志o
8. 根據權利要求6所述的數據包處理裝置,其特征在于,所述上 送才莫塊包括滿判斷單元,用于判斷CPU漂移的隊列是否滿或者上送 速度超過門限;滿處理單元,用于如果是,則i殳置反壓,禁止所述ASIC 芯片繼續發送所述漂移的數據包,并丟棄本數據包;如果不是, 則將所述漂移的數據包放到所述CPU漂移的隊列中,等待學 習。
9. 才艮據權利要求6所述的數據包處理裝置,其特征在于,所述上 送模塊包括掃描單元,用于判斷CPU漂移的隊列是否空;空處理單元,用于如果不是,則從所述CPU漂移的隊列 中取出所述漂移的數據包,學習MAC地址,然后繼續隊列掃 描;如果是,則判斷是否設置了反壓;如果未設置反壓,則結 束本次隊列掃描;如果是設置了反壓,則取消反壓設置,并允 許ASIC芯片繼續上送漂移數據包,結束本次隊列掃描。
10. 根據權利要求6至9任一項所述的數據包處理裝置,其特征在 于,所述交換才幾包括二層和或三層交換:才幾。
全文摘要
本發明提供了一種用于以太網的數據包處理方法和裝置,該方法包括以下步驟判定發生MAC地址漂移;將漂移的數據包上送到以太網中的交換機的CPU學習MAC地址;以及交換機的ASIC芯片終止學習MAC地址,終止漂移的數據包的繼續轉發。本發明為以太交換機產生環路引起的廣播風暴提供了一種可靠的處理方法,顯著地減輕了環路導致的協議斷鏈等問題,使得一個端口發生環路不至于影響到其他端口的用戶。
文檔編號H04L12/56GK101227400SQ20081000684
公開日2008年7月23日 申請日期2008年2月1日 優先權日2008年2月1日
發明者張寶亞 申請人:中興通訊股份有限公司