摘 要:基于Cavium公司OCTEON Cn5650芯片設(shè)計與實現(xiàn)一種高精度網(wǎng)絡(luò)報文處理系統(tǒng)。由OCTEON的硬件收發(fā)引擎Packet輸入和Packet輸出來保證線速收發(fā)報文性能,在simple executive環(huán)境下滿足TCP連接20萬/秒和HTTP連接10萬/秒的要求。實驗結(jié)果表明,報文處理系統(tǒng)能夠接收網(wǎng)絡(luò)上的數(shù)據(jù)報文,并根據(jù)指定的內(nèi)容對網(wǎng)絡(luò)數(shù)據(jù)報文進行分析和存儲;根據(jù)需要可以實現(xiàn)標準協(xié)議如HTTP、FTP、SMTP、POP3等網(wǎng)絡(luò)報文客戶端及服務(wù)器端模擬以及流量模擬;將自定義的網(wǎng)絡(luò)報文或接收到的網(wǎng)絡(luò)報文發(fā)回到網(wǎng)絡(luò)中。
關(guān)鍵詞:多核處理器;Cn5650;線速收發(fā);嵌入式
中圖分類號:TP393.08
隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,實現(xiàn)2~7層網(wǎng)絡(luò)數(shù)據(jù)報文的發(fā)生和接收,用于提供基礎(chǔ)的數(shù)據(jù)報文,以支撐測試系統(tǒng)實現(xiàn)多種形式的Gbps級別以上的網(wǎng)絡(luò)測試工具成為了必然。目前工業(yè)上常用的網(wǎng)絡(luò)報文高速發(fā)生器包括Ixia和Smartbits等,但由于其價格非常昂貴,且不能記錄網(wǎng)絡(luò)數(shù)據(jù)報文,難以模擬真實的網(wǎng)絡(luò)環(huán)境,應(yīng)用范圍經(jīng)常受到限制。針對網(wǎng)絡(luò)報文的高數(shù)據(jù)量、突發(fā)性和實時處理的特點,以通用處理器為核心的網(wǎng)絡(luò)報文處理系統(tǒng)雖然具有處理器主頻高、運算簡單、開發(fā)門檻低等特點,但是沒有專門的網(wǎng)絡(luò)處理加速硬件使得網(wǎng)絡(luò)報文的實時性處理上沒有保證。以FPGA為核心的網(wǎng)絡(luò)報文處理系統(tǒng)具有網(wǎng)絡(luò)處理加速硬件,以及對簡單任務(wù)的快速重復執(zhí)行的特點,但是FPGA系統(tǒng)存在開發(fā)難度最大,且自定義網(wǎng)絡(luò)報文靈活性不足的缺點。因此,以O(shè)CTEON多核處理器為核心的系統(tǒng)存在開發(fā)難度適中、基于網(wǎng)絡(luò)處理加速硬件易于實現(xiàn)網(wǎng)絡(luò)報文實時性處理等優(yōu)點成為當前網(wǎng)絡(luò)協(xié)議處理系統(tǒng)研究和設(shè)計的熱點。
文獻[1]在Linux平臺下基于OCTEON多核處理器設(shè)計與實現(xiàn)了高精度流回放系統(tǒng),以回放的時間戳為基礎(chǔ),實現(xiàn)高度并行并且高精度的網(wǎng)絡(luò)報文處理系統(tǒng)。文獻[2]基于OCTEON多核的高速處理,并結(jié)合了IPV6網(wǎng)絡(luò)中入侵的新特點,將協(xié)議分析技術(shù)和基于流的檢測技術(shù)在OCTEON多核間分配執(zhí)行,實現(xiàn)了流處理及協(xié)議分析模塊與控制模塊的高速聯(lián)動。文獻[3]基于OCTEON的硬件平臺,設(shè)計并實現(xiàn)了一種基于專用多核的千兆入侵防御系統(tǒng),該系統(tǒng)包含了入侵防御中的數(shù)據(jù)包預(yù)處理、檢測以及響應(yīng)全部組件。
本文以高性能OCTEON多核處理器芯片為核心,設(shè)計與實現(xiàn)了高精度網(wǎng)絡(luò)報文處理系統(tǒng)。一方面,接收網(wǎng)絡(luò)上的數(shù)據(jù)報文,并根據(jù)指定的內(nèi)容(如固定IP地址、指定網(wǎng)段、協(xié)議類型等)對網(wǎng)絡(luò)數(shù)據(jù)報文進行分析和存儲;另一方面,根據(jù)需要可以實現(xiàn)標準協(xié)議如HTTP、FTP、SMTP、POP3等網(wǎng)絡(luò)報文客戶端及服務(wù)器端模擬以及流量模擬;最后,可以將自定義的網(wǎng)絡(luò)報文或接收到的網(wǎng)絡(luò)報文在發(fā)送回網(wǎng)絡(luò)中去。
1 硬件系統(tǒng)總體設(shè)計
1.1 OCTEON多核處理器概述
OCTEON CN56XX芯片硬件結(jié)構(gòu)如圖1所示紅色框部分,有12個處理器核,集成了專門定制的MIPS64指令集[4],具有高可編程性、可擴展性,單核頻率達到800MHz,最高每秒可處理3千萬個包。該處理器同時支持數(shù)據(jù)面與控制面;支持自啟動功能;提供加密、CRC校驗以及包排序等高可靠性功能;具有硬件包處理加速功能;具有硬件單元處理任務(wù)的隊列、調(diào)度、排序和同步功能;具有硬件進行TCP加速、校驗功能;具有完全一致內(nèi)存系統(tǒng)。
OCTEON Cn5650處理器[5]對外接口包括PCIe,SGMII等高速串行總線,以及DDR2等高速內(nèi)存接口(具備2VLP Mini DIMM插槽,最高支持雙DDR2通道的16GB內(nèi)存,支持ECC特性,保證數(shù)據(jù)高可靠性。擁有高效的IO性能,640位的內(nèi)部帶寬,高達9GHz的總計算性能,以及多個有針對性的硬件加速部件。Cn5650有兩個網(wǎng)絡(luò)接口單元,實現(xiàn)了8個SGMII/1000BASE-X接口,使用其中的QLM3可以擴展四個千兆以太網(wǎng)接口。
1.2 高精度網(wǎng)絡(luò)報文處理多功能卡設(shè)計
高精度網(wǎng)絡(luò)報文處理多功能卡的結(jié)構(gòu)如圖1所示,其核心是12核800MHz多核處理器Cn5650,負責發(fā)送報文調(diào)度,接收報文分析處理,以及TCP/HTTP等上層協(xié)議的處理;內(nèi)嵌四口千兆以太網(wǎng)PHY 88E1145芯片,對外提供4個RJ45千兆以太網(wǎng)口;具備2VLP Mini DIMM插槽,采用2根DDR2的1GB內(nèi)存;配有16MB flash,實現(xiàn)固件程序的加電自啟動;通過PCIex4總線,與主處理器板通訊,下發(fā)配置信息、文件內(nèi)容,上傳運行結(jié)果;通過ATX 4針12V電源接頭和PCIe提供的3.3V實現(xiàn)電源輸入。
多功能卡以太網(wǎng)PHY芯片采用Marvell Alaska 88E1145四口PHY芯片。每一個PHY通道支持100BASE-TX、1000BASE-T以及10BASE-T的全雙工和半雙工的全部物理層功能。88E1145可以直接通過SGMII總線與MAC/Switch連接。通過處理器專用的SMI控制單元通過MDIO接口來管理PHY。
圖1 多功能卡結(jié)構(gòu)圖
2~3層需要提供線速收發(fā)報文,可以由OCTEON的硬件收發(fā)引擎Packet輸入和Packet輸出來保證。其中Packet輸入引擎可以實現(xiàn)線速收包,Packet輸出引擎性能可以達到25Mpps。
OCTEON 4~7層在simple executive環(huán)境下TCP新建連接數(shù)可以達到120萬/秒。考慮到其理想性能,實際應(yīng)該低于這個數(shù)值,但是滿足TCP連接20萬/秒和HTTP連接10萬/秒時可以保證的。而且,通過硬件預(yù)處理2~4層報文,可以由報文保序單元調(diào)度多個CPU核,來實對數(shù)據(jù)流做并發(fā)處理從而加速TCP性能。
2 系統(tǒng)嵌入式軟件設(shè)計
多功能卡上的2~3層嵌入式測試程序由控制模塊、發(fā)包調(diào)度模塊、收包分析統(tǒng)計三部分組成,實現(xiàn)對2~3層測試的報文線速收發(fā)、報文統(tǒng)計。Send Schedule利用PKO硬件單位做線速發(fā)包處理,同時根據(jù)GUI的配置,對發(fā)送報文作實時調(diào)度;Receive Analyze在PIP的處理結(jié)果基礎(chǔ)上,進一步完成測試所需要的統(tǒng)計等處理結(jié)果;Control Core負責與主機通信,完成數(shù)據(jù)上報和命令執(zhí)行等工作。
多功能卡上的4~7層嵌入式測試程序主要是運行于多核處理器上的Linux操作系統(tǒng),針對OCTEON優(yōu)化的高性能TCP/IP協(xié)議棧,HTTP、FTP等業(yè)務(wù)協(xié)議軟件。負責完成TCP業(yè)務(wù)的客戶端、服務(wù)器端流量的產(chǎn)生、統(tǒng)計;HTTP業(yè)務(wù)的客戶端、服務(wù)器端流量的產(chǎn)生、統(tǒng)計等。
底層驅(qū)動程序為用戶提供訪問系統(tǒng)硬件支持,同時為上層軟件提供運行平臺。提供協(xié)議發(fā)生卡初始化接口,可以分別控制每個通道發(fā)送和接收數(shù)據(jù)鏈路的打開和關(guān)閉;提供四路2~3層通信功能;八路4~7層通信功能,其中四路發(fā)送和四路接收;2~3層每路通道可實現(xiàn)數(shù)據(jù)包1Gbps線速流量發(fā)生與接收,支持RFC2544測試;4~7層每路通道可實現(xiàn)TCP協(xié)議、HTTP協(xié)議報文發(fā)生與接收。
3 實驗結(jié)果及分析
3.1 高精度網(wǎng)絡(luò)報文處理系統(tǒng)功能測試
高精度網(wǎng)絡(luò)報文處理系統(tǒng)由X86架構(gòu)的處理器主板和2個2~7層多功能卡組成,其中系統(tǒng)核心的多功能卡如圖2所示:
圖2 多功能板卡示意圖
系統(tǒng)實現(xiàn)了2~3層網(wǎng)絡(luò)的吞吐率、時延、丟包率和背靠背等基準測試;4~7層網(wǎng)絡(luò)的最大并發(fā)連接數(shù)、每秒新建連接數(shù)等基準測試。實現(xiàn)標準協(xié)議,如HTTP、FTP、SMTP、POP3等協(xié)議的客戶端及服務(wù)器端模擬以及流量模擬。該工作模式采用網(wǎng)絡(luò)協(xié)議發(fā)生設(shè)備4~7層測試板卡實現(xiàn),可設(shè)置客戶端訪問參數(shù)和服務(wù)器端響應(yīng)參數(shù),模擬多用戶和多會話??捎糜谳o助訓練中模擬實際業(yè)務(wù)環(huán)境下的通信,或者用于綜合分析。
3.2 線速收發(fā)包性能測試
為了驗證本系統(tǒng)的64Bytes及以上報文大小線速收的能力,進行了性能測試,測試拓撲如圖3所示。
檢測規(guī)則測試設(shè)備采用IXIA 400T測試儀,配合協(xié)議分析軟件Wireshark 1.4.4。多功能卡的4個網(wǎng)口分別與IXIA四個網(wǎng)口對發(fā)報文,對報文大小64、128、256、512、1024、1280、1518字節(jié)做雙向線速收發(fā)包測試。
圖3 網(wǎng)絡(luò)拓撲示意圖
圖4 多功能卡測試結(jié)果
圖5 IXIA測試結(jié)果
參與測試的網(wǎng)口均達到線速收發(fā)包,測試停止后多功能卡的Send pkts等于IXIA的Valid Frames Received,IXIA的Frames Send等于功能卡的Recv Pkts。
3.3 最大新建連接速率測試
為了驗證本系統(tǒng)的最大新建連接速率,測試拓撲如圖6所示。
圖6 自環(huán)拓撲示意圖
實驗結(jié)果如圖7所示,表明新建HTTP連接大大超過了每秒10萬個連接數(shù)。實際結(jié)果表明可以達到TCP連接20萬/秒和HTTP連接10萬/秒。
圖7 最大新建連接速率結(jié)果示意圖
4 結(jié)束語
基于Cavium公司OCTEON Cn5650芯片設(shè)計與實現(xiàn)一種高精度網(wǎng)絡(luò)報文處理系統(tǒng)。接收網(wǎng)絡(luò)上的數(shù)據(jù)報文,并根據(jù)指定的內(nèi)容(如固定IP地址、指定網(wǎng)段、協(xié)議類型等)對網(wǎng)絡(luò)數(shù)據(jù)報文進行分析和存儲;根據(jù)需要可以實現(xiàn)標準協(xié)議如HTTP、FTP、SMTP、POP3等網(wǎng)絡(luò)報文客戶端及服務(wù)器端模擬以及流量模擬;將自定義的網(wǎng)絡(luò)報文或接收到的網(wǎng)絡(luò)報文在發(fā)送回網(wǎng)絡(luò)中去。尤其是,具有和專業(yè)IXIA等測試儀相同的測試精度,以及較高的新建連接能力,可以很好模擬真實的網(wǎng)絡(luò)環(huán)境,用以支撐Gbps級別的高精度網(wǎng)絡(luò)測試分系統(tǒng)的實現(xiàn)。
參考文獻:
[1]陳江,陸建德.基于OCTEON芯片的高精度流回放系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機與現(xiàn)代化,2010(06):133-136.
[2]楊吉喆,王玲玲,陸建德.基于OCTEON多核網(wǎng)絡(luò)處理器的IPV6聯(lián)動IPS研究與設(shè)計[J].微電子學與計算機,2011(12):79-83.
[3]李清,馮瀚,林偉.基于OCTEON的千兆入侵防御系統(tǒng)[J].計算機安全,2010(04):21-23.
[4]Cavium Networks.Packet Flow Chapter[M].America Mountain View:Cavium Networks,2009.
[5]Cavium Networks.CN56XX Hardware Reference Manual[M].America Mountain View:Cavium Networks,2009.
作者簡介:黃海清,高級工程師,中國人民解放軍95899部隊,主要研究方向:網(wǎng)絡(luò)安全及嵌入式設(shè)計;孟慶磊,高級工程師,博士研究生,主要研究方向:計算機多媒體技術(shù)及其嵌入式實現(xiàn)。
作者單位:中國人民解放軍95899部隊,北京 100085;中國航天二院706所,北京 100854