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