999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Intel DPDK的高性能數(shù)據(jù)流處理技術(shù)的實(shí)現(xiàn)

2022-08-23 05:04:00北京電子科技職業(yè)學(xué)院牟曉玲張萍董大波
關(guān)鍵詞:系統(tǒng)

北京電子科技職業(yè)學(xué)院 牟曉玲 張萍 董大波

在網(wǎng)絡(luò)監(jiān)控與管理領(lǐng)域,防火墻、上網(wǎng)行為管理、IDS、IPS等產(chǎn)品都需要對(duì)數(shù)據(jù)包進(jìn)行采集和分析。本文在深入研究Intel DPDK技術(shù)的基礎(chǔ)之上,利用DPDK設(shè)計(jì)了一套具有普適性的高性能數(shù)據(jù)流處理系統(tǒng),使用TCPReplay對(duì)該系統(tǒng)進(jìn)行測(cè)試,驗(yàn)證了在高速率高并發(fā)的網(wǎng)絡(luò)環(huán)境中,該系統(tǒng)能高效抓取數(shù)據(jù)包并維護(hù)通用數(shù)據(jù)流表,最后將其成功的應(yīng)用在了上網(wǎng)行為管理系統(tǒng)和上網(wǎng)行為審計(jì)系統(tǒng)中。

1 傳統(tǒng)Linux捕包方式

傳統(tǒng)Linux捕包的方法主要有三種:(1)Libpcap,利用數(shù)據(jù)鏈路層捕包接口PF_PACKET的捕包程序庫。該接口為通用的網(wǎng)絡(luò)應(yīng)用程序設(shè)計(jì),接口簡(jiǎn)單且和底層網(wǎng)卡驅(qū)動(dòng)無關(guān),但是效率不高。(2)PF_RING,開源的捕包接口,其原理是在內(nèi)核開辟環(huán)形緩沖區(qū),通過在內(nèi)核隊(duì)列注冊(cè)HOOK函數(shù)獲取數(shù)據(jù)包并放入環(huán)形緩沖區(qū),這個(gè)環(huán)形緩沖區(qū)數(shù)據(jù)包只進(jìn)行了一次內(nèi)存拷貝,比通用的方法PF_PACKET效率高很多。(3)零Copy機(jī)制,這種機(jī)制下,網(wǎng)卡的數(shù)據(jù)包直接拷貝到用戶空間,而且是零系統(tǒng)調(diào)用。這種機(jī)制的包捕獲效率高,但是需要修改網(wǎng)卡驅(qū)動(dòng),和硬件相關(guān)。

基于傳統(tǒng)Linux捕包在高速網(wǎng)絡(luò)下的問題,本文基于DPDK平臺(tái)進(jìn)行數(shù)據(jù)包捕獲和會(huì)話流管理。

2 Intel DPDK技術(shù)原理

Intel DPDK全稱Intel Data Plane Development Kit,是Intel提供的數(shù)據(jù)平面開發(fā)工具集,它專注于網(wǎng)絡(luò)應(yīng)用中數(shù)據(jù)包的高性能處理。具體體現(xiàn)在DPDK應(yīng)用程序繞過了Linux內(nèi)核協(xié)議棧對(duì)數(shù)據(jù)包的處理過程,從而大幅提升了數(shù)據(jù)包收發(fā)處理的速率。DPDK架構(gòu)一共由五個(gè)組件構(gòu)成:環(huán)境適應(yīng)層EAL(Environment Abstraction Layer):提供了一套API,主要用于系統(tǒng)的初始化; 緩沖區(qū)管理(Buffer Management ): 提供了一套API,用于獲取內(nèi)存和創(chuàng)建緩沖池;環(huán)管理(Ring Functions):針對(duì)入列和出列操作提供了無鎖的實(shí)現(xiàn),支持大批量操作以減少開銷;流分類(Packet Flow Classification)和輪詢模式驅(qū)動(dòng)程序(NIC Poll Mode Library)。

鑒于這種架構(gòu),基于DPDK的用戶態(tài)軟件崩潰,不會(huì)影響系統(tǒng)的穩(wěn)定性。同時(shí)避免了內(nèi)核態(tài)和用戶態(tài)的報(bào)文拷貝,減少了操作系統(tǒng)的內(nèi)核開銷,從而實(shí)現(xiàn)了加速;研究表明,DPDK可以將數(shù)據(jù)包處理性能最多提高十倍。

3 高性能數(shù)據(jù)流表技術(shù)

3.1 基于DPDK的數(shù)據(jù)包采集技術(shù)

在高速率高并發(fā)的網(wǎng)絡(luò)環(huán)境中,采用基于DPDK的高速數(shù)據(jù)包捕獲技術(shù)進(jìn)行數(shù)據(jù)包抓取。捕包模塊同時(shí)從不同的網(wǎng)卡抓包,為了提高處理效率,每個(gè)網(wǎng)卡均有相應(yīng)的抓包線程,同時(shí)可以根據(jù)配置文件中的配置規(guī)則進(jìn)行條件抓包,所有的抓包線程將所抓取的數(shù)據(jù)包存儲(chǔ)在一個(gè)共享緩沖區(qū)中。具體的抓包過程如下:

(1)使用函數(shù)rte_eal_init對(duì)DPDK應(yīng)用程序進(jìn)行環(huán)境抽象層(EAL層)初始化工作。包括獲取系統(tǒng)可用的CPU數(shù)量、查詢可用的PCI網(wǎng)卡設(shè)備、建立日志文件等。

(2)使用函數(shù)init_port對(duì)端口進(jìn)行初始化配置,查看和配置對(duì)應(yīng)端口的狀態(tài)。

(3)使用函數(shù)init_mbuf_pools對(duì)DPDK的mbuf和pool隊(duì)列進(jìn)行初始化。

(4)利用死循環(huán),持續(xù)從網(wǎng)卡抓包。在循環(huán)中,使用rte_eth_rx_burst函數(shù)從端口接收數(shù)據(jù)包。

(5)根據(jù)配置文件中的配置規(guī)則對(duì)每一個(gè)數(shù)據(jù)包進(jìn)行初步處理,需要進(jìn)一步分析的數(shù)據(jù)包將其存儲(chǔ)到一個(gè)共享內(nèi)存緩沖區(qū)中。

通過上述處理,數(shù)據(jù)包采集模塊將所有發(fā)送到該網(wǎng)卡的網(wǎng)絡(luò)數(shù)據(jù)包抓取并保存在一塊共享內(nèi)存區(qū)中,實(shí)現(xiàn)了數(shù)據(jù)包的采集工作,抓包線程如圖1所示。

圖1 基于DPDK的抓包處理過程Fig.1 Packet capturing process based on DPDK

3.2 基于哈希算法的會(huì)話流存儲(chǔ)技術(shù)

在高速率高并發(fā)的萬兆網(wǎng)絡(luò)中,存儲(chǔ)和查找會(huì)話流是進(jìn)行數(shù)據(jù)分析的基礎(chǔ)和關(guān)鍵步驟。哈希表是一種以鍵-值(key-index) 存儲(chǔ)數(shù)據(jù)的高效數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),能夠根據(jù)鍵值快速定位,從而提高插入數(shù)據(jù)和查詢數(shù)據(jù)的效率。采用高效的哈希算法可以解決萬兆網(wǎng)絡(luò)中數(shù)據(jù)流的存儲(chǔ)問題。哈希算法由3部分組成:數(shù)據(jù)存儲(chǔ)方式、沖突解決方式和哈希函數(shù)。

在高性能數(shù)據(jù)流表的設(shè)計(jì)中,采用改進(jìn)的經(jīng)典哈希算法,將數(shù)據(jù)存放在一張大小固定的哈希表中,該哈希表為一個(gè)二維數(shù)組conntrack_ssn_hash[SSN_HASH_BUCKET_SIZE][SSN_HASH_BUCKET_DEPTH],其中一維下標(biāo)用來表示Key值,二維下標(biāo)用以解決哈希沖突。該算法在存儲(chǔ)上有一定的上限,可能造成數(shù)據(jù)丟棄。因此在實(shí)際應(yīng)用中,可以綜合內(nèi)存大小和效率要求,設(shè)置合適的SSN_HASH_BUCKET_DEPTH。

均勻性是衡量哈希函數(shù)性能的重要指標(biāo)。研究證明,移位運(yùn)算和異或運(yùn)算能夠保證哈希結(jié)果具有較好的均勻性。在高性能數(shù)據(jù)流表的實(shí)現(xiàn)中,我們采用基于位運(yùn)算和異或運(yùn)算的哈希函數(shù),根據(jù)會(huì)話流中的5元組<源 ip 目的 ip 源 port 目的 port 協(xié)議 >進(jìn)行哈希運(yùn)算,具體運(yùn)算過程如圖2所示。

3.3 會(huì)話流老化技術(shù)

高速率高并發(fā)的萬兆網(wǎng)絡(luò)中,基于對(duì)內(nèi)存和效率的考慮,需要定期對(duì)會(huì)話流進(jìn)行老化處理。TCP流在收到FIN包后,會(huì)話流結(jié)束。UDP流的結(jié)束沒有明顯特征,需要自己設(shè)定老化時(shí)間。為了提高老化處理效率,將統(tǒng)計(jì)老化會(huì)話流及處理老化會(huì)話流分開處理。分別設(shè)置統(tǒng)計(jì)定時(shí)器和老化定時(shí)器。在會(huì)話流老化技術(shù)中,定時(shí)器和老化統(tǒng)計(jì)時(shí)鐘的設(shè)置是關(guān)鍵,需要綜合考慮系統(tǒng)數(shù)據(jù)分析周期、系統(tǒng)內(nèi)存大小和數(shù)據(jù)分析處理精度。

4 高性能數(shù)據(jù)流表的實(shí)現(xiàn)

高性能數(shù)據(jù)流表的實(shí)現(xiàn)主要由兩部分組成:數(shù)據(jù)包采集模塊和會(huì)話流存儲(chǔ)模塊。處理架構(gòu)如圖3所示。數(shù)據(jù)包采集模塊,主要根據(jù)配置文件中的抓包規(guī)則進(jìn)行數(shù)據(jù)包采集,并將采集的數(shù)據(jù)包存入一塊包共享內(nèi)存中。會(huì)話流存儲(chǔ)模塊,該模塊啟動(dòng)后,開辟一塊流共享內(nèi)存區(qū)域,之后生成兩個(gè)處理線程,一個(gè)線程負(fù)責(zé)讀取包共享內(nèi)存中的Packet進(jìn)行包處理。另外一個(gè)線程負(fù)責(zé)會(huì)話流老化,兩個(gè)線程共同維護(hù)會(huì)話流,為后續(xù)的數(shù)據(jù)處理提供支撐。

圖3 高性能數(shù)據(jù)流表處理架構(gòu)Fig.3 Architecture of high performance data flow table processing

5 實(shí)驗(yàn)分析

搭建實(shí)驗(yàn)平臺(tái),實(shí)驗(yàn)的網(wǎng)絡(luò)拓?fù)鋱D如圖4所示。一臺(tái)TCPReplay發(fā)包測(cè)試機(jī)、一臺(tái)H3C交換機(jī)、一臺(tái)普通PC、一臺(tái)基于DPDK的高性能數(shù)據(jù)流處理系統(tǒng)。

圖4 實(shí)驗(yàn)平臺(tái)網(wǎng)絡(luò)拓?fù)鋱DFig.4 Topology of experimental platform

實(shí)驗(yàn)將Field Test和Lab Test相結(jié)合,采用Tcpreplay進(jìn)行發(fā)包測(cè)試,先在Field Test場(chǎng)景下將真實(shí)流量捕獲,存為PCAP文件,然后將PCAP文件作為L(zhǎng)ab Test的背景流量,在其上指定發(fā)包速率、發(fā)包次數(shù),對(duì)設(shè)備進(jìn)行測(cè)試。

本實(shí)驗(yàn)用于測(cè)試的PCAP文件從真實(shí)的萬兆網(wǎng)絡(luò)環(huán)境中捕獲,時(shí)長(zhǎng)為5min,大小為247GB。將該P(yáng)CAP文件使用tcpreplay -i eth1 -t /ft1.pcap進(jìn)行全速發(fā)包,對(duì)高性能數(shù)據(jù)流處理系統(tǒng)進(jìn)行流量統(tǒng)計(jì)。通過統(tǒng)計(jì)實(shí)際捕獲到的流量總量為247GB,可以看出,基于DPDK的高性能數(shù)據(jù)流處理系統(tǒng)在高速率高并發(fā)的網(wǎng)絡(luò)環(huán)境中能高效的抓取數(shù)據(jù)包并維護(hù)數(shù)據(jù)流表。

6 結(jié)語

本文主要對(duì)DPDK的技術(shù)原理進(jìn)行了分析并將其應(yīng)用在數(shù)據(jù)包采集上,同時(shí)對(duì)基于DPDK采集的數(shù)據(jù)包進(jìn)行數(shù)據(jù)流表的維護(hù),采用基于哈希算法的會(huì)話流存儲(chǔ)技術(shù)和基于定時(shí)器的會(huì)話流老化技術(shù),并成功將其應(yīng)用在上網(wǎng)行為管理系統(tǒng)和上網(wǎng)行為審計(jì)系統(tǒng)中,作為高性能數(shù)據(jù)流表,后續(xù)還將繼續(xù)研究并實(shí)現(xiàn)將其應(yīng)用在防火墻、IPS、IDS設(shè)備中。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動(dòng)化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應(yīng)用
主站蜘蛛池模板: 欧美成一级| 亚洲第一极品精品无码| 一级一级一片免费| 中国黄色一级视频| 色偷偷av男人的天堂不卡| 成人在线亚洲| 久久精品国产国语对白| 国产黑丝视频在线观看| 国产日本欧美在线观看| 国产sm重味一区二区三区| 国产成人综合久久| 久久99精品久久久久久不卡| 国产凹凸一区在线观看视频| 欧美色视频在线| 欧美中文字幕一区二区三区| 国产欧美日韩视频一区二区三区| 综合久久久久久久综合网 | 亚洲三级视频在线观看| 操国产美女| 91丝袜乱伦| 国产chinese男男gay视频网| 伊人久综合| 国产精品亚洲欧美日韩久久| 久久久久人妻一区精品色奶水 | 在线免费看黄的网站| www.精品国产| 国产成人一区| 欧美国产菊爆免费观看 | 91精品伊人久久大香线蕉| 国产h视频在线观看视频| 久久精品无码中文字幕| 高清欧美性猛交XXXX黑人猛交 | 亚洲综合在线网| 亚洲精品第1页| 97国产在线观看| 激情成人综合网| 亚洲午夜国产精品无卡| 国产探花在线视频| 九九久久精品免费观看| 国产内射在线观看| 日本中文字幕久久网站| 国产免费黄| 国产日产欧美精品| 国产老女人精品免费视频| 亚洲系列无码专区偷窥无码| 国产在线观看精品| 尤物在线观看乱码| 国精品91人妻无码一区二区三区| 99人体免费视频| 亚洲美女一区二区三区| 99热这里只有精品免费国产| 日韩黄色大片免费看| 永久免费AⅤ无码网站在线观看| 3344在线观看无码| 亚洲视频三级| 国产在线高清一级毛片| 色婷婷色丁香| 88av在线看| 欧美中文字幕无线码视频| 成年人视频一区二区| 亚洲成人播放| 婷婷六月在线| 久久性视频| 欧美国产成人在线| 亚洲国产在一区二区三区| 毛片网站在线看| 国产亚洲精| 久草国产在线观看| 波多野结衣一区二区三区四区| 无码中文字幕加勒比高清| 美女国内精品自产拍在线播放| 国产精品免费入口视频| 亚洲乱强伦| 国产福利一区二区在线观看| 亚洲国产精品日韩专区AV| 自慰高潮喷白浆在线观看| 免费A级毛片无码无遮挡| 麻豆精品在线播放| 免费Aⅴ片在线观看蜜芽Tⅴ| 亚洲无线国产观看| 好吊色妇女免费视频免费| 色网站在线免费观看|