專利名稱:一種降低交換機中央處理器使用率的方法的裝置的制作方法
技術領域:
本發(fā)明涉及數(shù)據(jù)交換領域,尤其一種降低交換機中央處理器使用率的方 法的裝置。
背景技術:
現(xiàn)今網(wǎng)絡發(fā)展速度驚人,網(wǎng)絡的穩(wěn)定性問題也表現(xiàn)的尤為突出。對于承 載著各種網(wǎng)絡業(yè)務的網(wǎng)絡設備(包括路由器、交換機等)來說,保護自身中
央處理器(Central Processing Unit, CPU)不被攻擊、對外正常提供業(yè)務就 顯得尤為重要。
網(wǎng)絡中惡意攻擊的行為很多,最常見的方式就是利用網(wǎng)絡病毒。這些網(wǎng) 絡病毒大多針對個人電腦,但有個別在破壞個人電腦的同時也在擾亂著網(wǎng)絡。
網(wǎng)絡設備都有 一 個標識自己的硬件地址,即MAC ( Media Access Control,介質(zhì)訪問控制)地址。MAC地址由6個字節(jié)的數(shù)字構成,用于唯 一地標識一個網(wǎng)絡設備。交換機在進行報文交換時,需要進行MAC地址學 習,即需要知道攜帶源MAC地址的報文是從哪個端口傳進來的。那么當接 收到目的MAC地址為上述源MAC地址的報文時,就將該報文從這個端口 發(fā)送出去。
交換機對報文進行二層轉(zhuǎn)發(fā)時,需要查找轉(zhuǎn)發(fā)表,該轉(zhuǎn)發(fā)表中保存著 MAC地址與VLAN ( Virtual Local Area Network,虛擬局i或網(wǎng))的對應關系。 該表中的表項是交換機通過學習得到的,學習的過程就是當攜帶源MAC 地址的報文到達交換機之后,交換機在本地轉(zhuǎn)發(fā)表中查找是否存在該源 MAC地址對應的表項,如果沒有就需要進行學習,有些交換機中的交換芯 片支持芯片自學習,而有些則不支持。對于不支持自學習的交換芯片就需要說明書第2/5頁
對上述報文進行復制后發(fā)送到交換機的CPU中,由CPU中的軟件進行學習 后,再把該源MAC地址對應的表項寫入到硬件中。若此后再接收到攜帶該 源MAC地址的報文時,由于轉(zhuǎn)發(fā)表中已存在該源MAC地址對應的表項, 因此就不會再將該報文上送到該交換機的CPU中。
當交換機接收到一條流量非常大的數(shù)據(jù)流時,如果在轉(zhuǎn)發(fā)表中沒有查找 到該數(shù)據(jù)流所攜帶的源MAC地址時,則交換芯片會將成千上萬的數(shù)據(jù)包發(fā) 送到CPU,由CPU交給協(xié)議棧去學習MAC地址,這將導致CPU的瞬間使 用率居高不下,很容易影響到網(wǎng)絡業(yè)務,進而引發(fā)惡性循環(huán)。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題提供一種降低交換機中央處理器使用率的方 法的裝置,以克服現(xiàn)有技術中存在的大量攜帶MAC地址的重復報文沖擊 CPU的問題。
為解決上述問題,本發(fā)明提供了一種降低交換機中央處理器(CPU)使 用率的方法,包括
當收到攜帶源介質(zhì)訪問控制(MAC)地址的報文時,交換機若在轉(zhuǎn)發(fā) 表中沒有查找到該源MAC地址對應的表項,則在本地查找是否已保存過該 源MAC地址;如果沒有,則保存該源MAC地址并將該報文上送到CPU進 行MAC地址學習;如果保存過,則丟棄該報文。
進一步地,上述方法還可具有以下特征
所述交換機上預設有本地保存的MAC地址的最多條數(shù)N,其中,N為 正整數(shù);當所述交換機通過在本地查找判斷出沒有保存過所述源MAC地址 后,保存該源MAC地址是指所述交換機判斷本地已保存的MAC地址的 條數(shù)是否已達到N條,若已達到,則刪除最早保存的那條MAC地址并保存 所述源MAC地址;否則,直接保存所述源MAC地址。
進一步地,上述方法還可包括
當收到表示要在轉(zhuǎn)發(fā)表中刪除一 MAC地址對應表項的刪除命令時,所 述交換機根據(jù)該刪除命令中攜帶的所述MAC地址,判斷本地是否保存有該MAC地址;如有,則將本地保存的該MAC地址刪除,并在所述轉(zhuǎn)發(fā)表中 刪除該MAC地址對應的表項;否則,直接在所述轉(zhuǎn)發(fā)表中將該MAC地址 對應的表項刪除。
本發(fā)明還提供了一種降低交換機中央處理器(CPU)使用率的裝置,包 括交換芯片和CPU;
所述交換芯片用于在收到攜帶源介質(zhì)訪問控制(MAC)地址的報文時, 若在轉(zhuǎn)發(fā)表中沒有查找到該源MAC地址對應的表項,則在本地查找是否已 保存過該源MAC地址;如沒有查找到,則還用于保存該源MAC地址并將 該報文上送到所述CPU;如果保存過,則還用于丟棄該報文;
所述CPU用于根據(jù)接收到的4艮文進行MAC地址學習。
進一步地,上述裝置還可具有以下特征
所述交換芯片上預設有本地保存的MAC地址的最多條數(shù)N,其中,N 為正整數(shù);
所述交換芯片用于在本地沒有查找到所述源MAC地址后,保存該源 MAC地址是指所述交換芯片用于判斷本地已保存的MAC地址的條數(shù)是 否已達到N條,若已達到,則還用于刪除最早保存的那條MAC地址并保存 所述源MAC地址;否則,還用于保存所述源MAC地址。
進一步地,上述裝置還可具有以下特征
所述交換芯片還用于在收到表示要在轉(zhuǎn)發(fā)表中刪除一 MAC地址對應表 項的刪除命令時,根據(jù)該刪除命令中攜帶的所述MAC地址,判斷本地是否 保存有該MAC地址;如有,則還用于將本地保存的該MAC地址刪除,并 在所述轉(zhuǎn)發(fā)表中刪除該MAC地址對應的表項;否則,用于在所述轉(zhuǎn)發(fā)表中 將該MAC地址對應的表項刪除。
采用本發(fā)明后,可以有效地防止同一時刻大量重復的報文沖擊CPU去 學習MAC地址,有效的降低了 CPU使用率,避免了 CPU瞬間使用率過高 的情況產(chǎn)生。
圖1為本發(fā)明實施例中降低交換機CPU使用率的方法流程圖; 圖2為本發(fā)明實施例中刪除MAC地址對應表項的方法流程圖。
具體實施例方式
下面將結(jié)合附圖及實施例對本發(fā)明的技術方案進行更詳細的說明。
如圖1所示,本發(fā)明所述方法的基本構思是當收到攜帶源MAC地址 的報文時,交換機若在轉(zhuǎn)發(fā)表中沒有查找到該源MAC地址對應的表項,則 在本地查找是否已保存過該源MAC地址;如果沒有,則保存該源MAC地 址并將該報文上送到CPU進行MAC地址學習;如果保存過,則丟棄該沖艮文。
為了保證每次進行本地查找MAC地址時需要比較的次數(shù)不至于過多, 可在交換機上預設本地保存的MAC地址的條數(shù)最多為N條;當交換機通過 在本地查找判斷出沒有保存過該源MAC地址后,還保存該源MAC地址是 指交換機判斷本地已保存的MAC地址的條數(shù)是否已達到N條,若已達到, 則刪除最早保存的那條MAC地址并保存上述源MAC地址;否則,直接保 存上述源MAC地址。其中,N為正整^t,其取值可以zf旦不限于等于10。
如圖2所示,當收到表示要在轉(zhuǎn)發(fā)表中刪除某MAC地址對應表項的刪 除命令時,交換機根據(jù)該刪除命令中攜帶的MAC地址,判斷本地是否保存 有該MAC地址;如有,則將本地保存的該MAC地址刪除,并在轉(zhuǎn)發(fā)表中 刪除對應表項;否則,直接在轉(zhuǎn)發(fā)表中將對應表項刪除。
需要說明的是,上述方法不僅僅限于MAC地址學習,任何需要報文上 送才能工作的協(xié)議,都需要對多余的重復報文進行丟棄,以降低CPU的使 用率,只是每種協(xié)議需要判斷的關鍵字不一樣。
此外,本發(fā)明所述降低交換機CPU使用率的裝置,包括交換芯片和 CPU;交換芯片用于在收到攜帶源MAC地址的報文時,若在轉(zhuǎn)發(fā)表中沒有查 找到該源MAC地址對應的表項,則在本地查找是否已保存過該源MAC地 址;如沒有查找到,則還用于保存該源MAC地址并將該報文上送到上述 CPU;如果保存過,則還用于丟棄該報文;
CPU用于根據(jù)接收到的報文進行MAC地址學習。
另外,交換芯片上還可以預設有本地保存的MAC地址的最多條數(shù)N, 其中,N為正整數(shù);
交換芯片用于在本地沒有查找到上述源MAC地址后,保存該源MAC
條,若已達到,則還用于刪除最早保存的那條MAC地址并保存上述源MAC 地址;否則,還用于保存上述源MAC地址。
另外,交換芯片還可用于在收到表示要在轉(zhuǎn)發(fā)表中刪除一 MAC地址對 應表項的刪除命令時,根據(jù)該刪除命令中攜帶的MAC地址,判斷本地是否 保存有該MAC地址;如有,則還用于將本地保存的該MAC地址刪除,并 在轉(zhuǎn)發(fā)表中刪除該MAC地址對應的表項;否則,用于在轉(zhuǎn)發(fā)表中將該MAC 地址對應的表項刪除。
當然,本發(fā)明還可有其他多種實施例,在不背離本發(fā)明精神及其實質(zhì)的 形,但這些相應的改變和變形都應屬于本發(fā)明所附的權利要求的保護范圍。
權利要求
1、一種降低交換機中央處理器(CPU)使用率的方法,其特征在于,當收到攜帶源介質(zhì)訪問控制(MAC)地址的報文時,交換機若在轉(zhuǎn)發(fā)表中沒有查找到該源MAC地址對應的表項,則在本地查找是否已保存過該源MAC地址;如果沒有,則保存該源MAC地址并將該報文上送到CPU進行MAC地址學習;如果保存過,則丟棄該報文。
2、 如權利要求1所述的方法,其特征在于,所述交換機上預設有本地保存的MAC地址的最多條數(shù)N,其中,N為 正整數(shù);當所述交換機通過在本地查找判斷出沒有保存過所述源MAC地址 后,保存該源MAC地址是指所述交換機判斷本地已保存的MAC地址的 條數(shù)是否已達到N條,若已達到,則刪除最早保存的那條MAC地址并保存 所述源MAC地址;否則,直接保存所述源MAC地址。
3、 如權利要求1或2所述的方法,其特征在于,還包括當收到表示要在轉(zhuǎn)發(fā)表中刪除一 MAC地址對應表項的刪除命令時,所 述交換機根據(jù)該刪除命令中攜帶的所述MAC地址,判斷本地是否保存有該 MAC地址;如有,則將本地保存的該MAC地址刪除,并在所述轉(zhuǎn)發(fā)表中 刪除該MAC地址對應的表項;否則,直接在所述轉(zhuǎn)發(fā)表中將該MAC地址 對應的表項刪除。
4、 一種降低交換機中央處理器(CPU)使用率的裝置,其特征在于, 包括交換芯片和CPU;所述交換芯片用于在收到攜帶源介質(zhì)訪問控制(MAC)地址的報文時, 若在轉(zhuǎn)發(fā)表中沒有查找到該源MAC地址對應的表項,則在本地查找是否已 保存過該源MAC地址;如沒有查找到,則還用于保存該源MAC地址并將 該報文上送到所述CPU;如果保存過,則還用于丟棄該報文;所述CPU用于根據(jù)接收到的報文進行MAC地址學習。
5、 如權利要求4所述的裝置,其特征在于,所述交換芯片上預設有本地保存的MAC地址的最多條數(shù)N,其中,N 為正整數(shù);所述交換芯片用于在本地沒有查找到所述源MAC地址后,保存該源 MAC地址是指所述交換芯片用于判斷本地已保存的MAC地址的條數(shù)是 否已達到N條,若已達到,則還用于刪除最早保存的那條MAC地址并保存 所述源MAC地址;否則,還用于保存所述源MAC地址。
6、 如權利要求4或5所述的裝置,其特征在于,所述交換芯片還用于在收到表示要在轉(zhuǎn)發(fā)表中刪除一 MAC地址對應表 項的刪除命令時,根據(jù)該刪除命令中攜帶的所述MAC地址,判斷本地是否 保存有該MAC地址;如有,則還用于將本地保存的該MAC地址刪除,并 在所述轉(zhuǎn)發(fā)表中刪除該MAC地址對應的表項;否則,用于在所述轉(zhuǎn)發(fā)表中 將該MAC地址對應的表項刪除。
全文摘要
一種降低交換機中央處理器(CPU)使用率的方法及裝置,所述裝置包括交換芯片和CPU;所述方法包括當收到攜帶源介質(zhì)訪問控制(MAC)地址的報文時,交換機若在轉(zhuǎn)發(fā)表中沒有查找到該源MAC地址對應的表項,則在本地查找是否已保存過該源MAC地址;如果沒有,則保存該源MAC地址并將該報文上送到CPU進行MAC地址學習;如果保存過,則丟棄該報文。采用本發(fā)明后,可以有效地防止同一時刻大量重復的報文沖擊CPU去學習MAC地址,有效的降低了CPU使用率,避免了CPU瞬間使用率過高的情況產(chǎn)生。
文檔編號H04L29/06GK101645904SQ20091017037
公開日2010年2月10日 申請日期2009年9月9日 優(yōu)先權日2009年9月9日
發(fā)明者貝 苗, 峰 高 申請人:中興通訊股份有限公司