[發(fā)明專利]一種提高防火墻芯片硬件加速性能的方法有效
| 申請?zhí)枺?/td> | 200710098397.2 | 申請日: | 2007-04-25 |
| 公開(公告)號: | CN101296222A | 公開(公告)日: | 2008-10-29 |
| 發(fā)明(設計)人: | 王萬亭;曾濤 | 申請(專利權)人: | 北京天融信網(wǎng)絡安全技術有限公司 |
| 主分類號: | H04L29/06 | 分類號: | H04L29/06;H04L12/56;H04L9/00;H04L29/02;H04L12/24 |
| 代理公司: | 信息產(chǎn)業(yè)部電子專利中心 | 代理人: | 梁軍 |
| 地址: | 100085北京市*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 提高 防火墻 芯片 硬件加速 性能 方法 | ||
技術領域
本發(fā)明屬于網(wǎng)絡技術領域,涉及網(wǎng)絡安全和組網(wǎng)技術,具體涉及一種在網(wǎng)絡大流量情況下使防火墻芯片高效率轉(zhuǎn)發(fā)數(shù)據(jù)包,同時提高連接表項的查找命中率的方法。
背景技術
隨著網(wǎng)絡技術的不斷發(fā)展,人們對網(wǎng)絡的響應速度、數(shù)據(jù)包吞吐量和網(wǎng)絡安全的要求越來越高,需要延遲小、流量大的安全防火墻。這就需要芯片來實現(xiàn)硬件加速提高放防火墻的生能。目前,以太網(wǎng)絡(Ethernet)上絕大部分數(shù)據(jù)包都是傳輸控制協(xié)議包(TCP包)和用戶數(shù)據(jù)報協(xié)議包(UDP包)。這些數(shù)據(jù)包是按照連接來分組的,同一組TCP包或UDP包具有相司數(shù)據(jù)包5元組,即源IP、目的IP、源端口、目的端口、協(xié)議號。因此,CPU需要對這樣的數(shù)據(jù)包組頭一個或幾個數(shù)據(jù)包進行分析和規(guī)則匹配,得到該數(shù)據(jù)包組的匹配結果,建立一個連接規(guī)則。之后的同一組的其他數(shù)據(jù)包只需按照前面的連接規(guī)則處理就可以了,因此這些數(shù)據(jù)包在防火墻芯片內(nèi)部就可以實現(xiàn)丟棄或轉(zhuǎn)發(fā),不必上送到CPU處理。這就要求防火墻芯片對通過的數(shù)據(jù)包能夠快速的查找到相應得連接規(guī)則,并根據(jù)連接規(guī)則對數(shù)據(jù)包進行必要的修改和轉(zhuǎn)發(fā)。
目前,在防火墻加速芯片實現(xiàn)訪問連接表的方法如下:
首先,對于未建立連接規(guī)則的TCP包和UDP包,防火墻芯片找不到連接規(guī)則,因此會將這些數(shù)據(jù)包上送到CPU,CPU對這樣的數(shù)據(jù)包進行分析和規(guī)則匹配,得到該數(shù)據(jù)包組的匹配結果,然后建立一個用于匹配該組數(shù)據(jù)包的連接規(guī)則。然后,CPU將這個數(shù)據(jù)包回送到防火墻芯片中,回送前CPU也可以對數(shù)據(jù)包進行修改,所述修改是指一般防火墻轉(zhuǎn)發(fā)數(shù)據(jù)包對數(shù)據(jù)包作相應的修改,比如修改數(shù)據(jù)包的目的MAC地址、源MAC地址、端口號、首部校驗和、生存時間等。同時將新建立的連接規(guī)則寫入到防火墻芯片內(nèi)的連接表中。防火墻芯片按照CPU的控制指令將數(shù)據(jù)轉(zhuǎn)發(fā)出去。
對于之后通過防火墻芯片的這組數(shù)據(jù)包的其他后續(xù)數(shù)據(jù)包,防火墻芯片根據(jù)數(shù)據(jù)包的5元組采用HASH算法找到相對應的連接規(guī)則,然后根據(jù)連接規(guī)則修改數(shù)據(jù)包并找到轉(zhuǎn)發(fā)的網(wǎng)絡出口,直接轉(zhuǎn)發(fā)該數(shù)據(jù)包,不再上送到CPU處理。
在Ethernet網(wǎng)絡中,防火墻需要同時保存大量的連接規(guī)則,例如,對于一個吞吐量為2.5G的防火墻,同時保持連接的連接規(guī)則通常有150萬左右。每個連接表項大約占64字節(jié),因此存儲連接規(guī)則表的存儲器應該有128M字節(jié)以上。但是,由于成本和技術的限制,防火墻芯片內(nèi)部無法集成容量很大的存儲器。目前已知的防火墻產(chǎn)品中,在防火墻加速芯片內(nèi)部的連接表只有256K字節(jié),只能建立2千連接表項。
由于系統(tǒng)的并發(fā)連接數(shù)遠遠大于連接表的容量,因此大部分連接規(guī)則會被覆蓋而查找不到。因此,網(wǎng)絡中絕大部分TCP包和UDP包被迫上送CPU,由CPU來處理,即使這些數(shù)據(jù)包的連接曾經(jīng)建立起來,但很快被覆蓋而丟失。這樣,防火墻芯片能夠直接轉(zhuǎn)發(fā)的數(shù)據(jù)包很少,不能實現(xiàn)硬件加速的目的,大部分數(shù)據(jù)包都要送到CPU處理,造成防火墻的性能急劇下降甚至癱瘓。
發(fā)明內(nèi)容
本發(fā)明的目的在于解決現(xiàn)有的防火墻芯片訪問連接表存在的上述缺陷,提出一種在網(wǎng)絡大流量情況下使防火墻芯片高效率轉(zhuǎn)發(fā)數(shù)據(jù)包,同時減少防火墻芯片內(nèi)部存儲器開銷,提高連接表項的查找命中率的方法。
為實現(xiàn)上述目的,本發(fā)明提出的方法如下:
首先,在防火墻芯片外部配置一個外置存儲器,在該存儲器中分別為連接索引表和連接表分出一塊區(qū)域,并將連接索引表和連接表的基地址存放到防火墻芯片和CPU中。在CPU內(nèi)存中建立連接索引表和連接表的鏡像,該鏡像和防火墻芯片外置存儲器中的連接索引表和連接表保持同步。
然后,通過下述步驟訪問連接索引表和連接表:
第一步,對于通過的以太網(wǎng)數(shù)據(jù)包,防火墻芯片從數(shù)據(jù)包中提取源IP、目的IP、源端口、目的端口、協(xié)議號5元組信息;
第二步,根據(jù)數(shù)據(jù)包的5元組信息進行HASH運算;
第三步,以HASH運算結果為偏移地址,加上連接索引表基地址查找防火墻芯片外置存儲器中的連接索引表;如果找到的連接索引表項內(nèi)容為0,表示該數(shù)據(jù)包沒有相應的連接表,則將數(shù)據(jù)包上送到CPU處理,由CPU對其進行分析和規(guī)則匹配后新建一個連接;否則,根據(jù)連接索引表項內(nèi)容和連接表基地址去查找連接表;
第四步,找到連接表項后,將表項的64字節(jié)讀回,然后將連接表項的源IP、目的IP、源端口、目的端口、協(xié)議號與數(shù)據(jù)包的5元組相比較,如果相符則轉(zhuǎn)到第六步執(zhí)行,否則執(zhí)行第五步;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京天融信網(wǎng)絡安全技術有限公司,未經(jīng)北京天融信網(wǎng)絡安全技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200710098397.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:餐盤分發(fā)手推車
- 下一篇:回轉(zhuǎn)爐燃燒器





