多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技_第1頁(yè)
多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技_第2頁(yè)
多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技_第3頁(yè)
多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技_第4頁(yè)
多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技_第5頁(yè)
已閱讀5頁(yè),還剩47頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技2023/12/28多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技內(nèi)容提要自我介紹技術(shù)背景理論知識(shí)解決方案參考資料2多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技1自我介紹齊戰(zhàn)勝,研發(fā)部,北京分公司,軟件研發(fā)工程師主要做協(xié)議分析、還原。參與的項(xiàng)目有抽查工具、NF-7800、NF-9300、NF-9600等。為了解決NF-7800的千兆抓包問(wèn)題,開(kāi)始研究Linux下高性能抓包的解決方法。3多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技2技術(shù)背景被動(dòng)數(shù)據(jù)捕獲技術(shù)在網(wǎng)絡(luò)安全領(lǐng)域有著極其豐富的應(yīng)用。如IDS(入侵檢測(cè)系統(tǒng))、防火墻以及一些部署在網(wǎng)絡(luò)出口的互聯(lián)網(wǎng)內(nèi)容分析系統(tǒng)等。 隨著網(wǎng)絡(luò)帶寬的增加,網(wǎng)絡(luò)傳輸速率的提高,傳統(tǒng)的數(shù)據(jù)包捕獲技術(shù)越來(lái)越不能滿(mǎn)足要求。本文從Linux/Unix平臺(tái)下的Libpcap網(wǎng)絡(luò)數(shù)據(jù)包捕獲函數(shù)庫(kù)入手,研究Linux/Unix平臺(tái)下高性能的數(shù)據(jù)包捕獲解決方案。4多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3理論知識(shí)Libpcap簡(jiǎn)介 1)Libpcap簡(jiǎn)介 2)Libpcap工作機(jī)制 3)Libpcap抓包性能分析NAPI技術(shù)簡(jiǎn)介 1)NAPI技術(shù)簡(jiǎn)介 2)NAPI工作機(jī)制 3)NAPI的性能分析5多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1Libpcap簡(jiǎn)介 3.1.1Libpcap簡(jiǎn)介 Libpcap是Unix/Linux平臺(tái)下的網(wǎng)絡(luò)數(shù)據(jù)包捕獲的函數(shù)庫(kù)。它是一個(gè)獨(dú)立于系統(tǒng)的用戶(hù)層包捕獲API接口,為底層網(wǎng)絡(luò)監(jiān)聽(tīng)提供了一個(gè)可移植的框架。 應(yīng)用:Sniffer、Wireshark、Snort、Tcpdump等。

6多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.1LibPcap簡(jiǎn)介L(zhǎng)ibPcap特點(diǎn) 1)可從以太網(wǎng)、虛擬接口等一個(gè)或多個(gè)網(wǎng)絡(luò)接口捕獲數(shù)據(jù)包; 2)平臺(tái)無(wú)關(guān)性; 3)具有基于BPF的數(shù)據(jù)包過(guò)濾特性。完善了系統(tǒng)的數(shù)據(jù)包過(guò)濾體系。7多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.2Libpcap工作機(jī)制Libpcap組成 Libpcap主要由兩部分組成:網(wǎng)絡(luò)分接頭(NetworkTap)和數(shù)據(jù)過(guò)濾器(PacketFilter)。 網(wǎng)絡(luò)分接頭從網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序中收集數(shù)據(jù)拷貝,數(shù)據(jù)過(guò)濾器決定是否接受該數(shù)據(jù)包。8多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.2Libpcap工作機(jī)制Libpcap捕包流程 libpcap的包捕獲機(jī)制就是在數(shù)據(jù)鏈路層加一個(gè)旁路處理。當(dāng)一個(gè)數(shù)據(jù)包到達(dá)網(wǎng)絡(luò)接口時(shí),libpcap首先利用已經(jīng)創(chuàng)建的Socket從鏈路層驅(qū)動(dòng)程序中獲得該數(shù)據(jù)包的拷貝,再通過(guò)Tap函數(shù)將數(shù)據(jù)包發(fā)給BPF過(guò)濾器。BPF過(guò)濾器根據(jù)用戶(hù)已經(jīng)定義好的過(guò)濾規(guī)則對(duì)數(shù)據(jù)包進(jìn)行逐一匹配,匹配成功則放入內(nèi)核緩沖區(qū)(一次拷貝),并傳遞給用戶(hù)緩沖區(qū)(又一次拷貝),匹配失敗則直接丟棄。如果沒(méi)有設(shè)置過(guò)濾規(guī)則,所有數(shù)據(jù)包都將放入內(nèi)核緩沖區(qū),并傳遞給用戶(hù)層緩沖區(qū)。9多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.2Libpcap工作機(jī)制程序框架

/*第一步:查找可以捕獲數(shù)據(jù)包的設(shè)備*/ device=pcap_lookupdev(errbuf);

/*第二步:創(chuàng)建捕獲句柄,準(zhǔn)備進(jìn)行捕獲*/ p=pcap_open_live(device,8000,1,500,errbuf);

/*第三步:如果用戶(hù)設(shè)置了過(guò)濾條件,則編譯和安裝過(guò)濾代碼*/ pcap_compile(p,&fcode,filter_string,0,netmask); pcap_setfilter(p,&fcode);

/*第四步:進(jìn)入(死)循環(huán),反復(fù)捕獲數(shù)據(jù)包*/ for(;;) { while((ptr=(char*)(pcap_next(p,&hdr)))==NULL);

/*第五步:對(duì)捕獲的數(shù)據(jù)進(jìn)行類(lèi)型轉(zhuǎn)換,轉(zhuǎn)化成以太數(shù)據(jù)包類(lèi)型*/ eth=(structlibnet_ethernet_hdr*)ptr;

/*第六步:對(duì)以太頭部進(jìn)行分析,判斷所包含的數(shù)據(jù)包類(lèi)型,做進(jìn)一步的處理*/ if(eth->ether_type==ntohs(ETHERTYPE_IP))………… if(eth->ether_type==ntohs(ETHERTYPE_ARP)) ………… }

/*最后一步:關(guān)閉捕獲句柄,一個(gè)簡(jiǎn)單技巧是在程序初始化時(shí)增加信號(hào)處理函數(shù), 以便在程序退出前執(zhí)行本條代碼*/ pcap_close(p);10多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.3Libpcap抓包性能分析11多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.1.4Libpcap抓包性能分析高速?gòu)?fù)雜網(wǎng)絡(luò)環(huán)境下libpcap丟包的原因主要有以下兩個(gè)方面:

1)Cpu處于頻繁中斷狀態(tài),造成接收數(shù)據(jù)包效率低下。 我們可以假想一個(gè)場(chǎng)景,我們使用標(biāo)準(zhǔn)的100M網(wǎng)卡,可能實(shí)際達(dá)到的接收速率為80MBits/s,而此時(shí)數(shù)據(jù)包最大長(zhǎng)度為1500Bytes,則每秒產(chǎn)生的中斷數(shù)目為: 80Mbits/s/(8Bits/Byte*1500Byte)=6667個(gè)中斷/s。 數(shù)據(jù)包最短長(zhǎng)度為46Bytes,則每秒產(chǎn)生的中斷數(shù)目為: 80Mbits/s/(8Bits/Byte*46Byte)=217391個(gè)中斷/s。 每秒6667到217391個(gè)中斷,對(duì)于系統(tǒng)是個(gè)很大的壓力。

2)數(shù)據(jù)包被多次拷貝,浪費(fèi)了大量時(shí)間和資源。從網(wǎng)卡驅(qū)動(dòng)到內(nèi)核,再?gòu)膬?nèi)核到用戶(hù)空間。

12多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2NAPI技術(shù)簡(jiǎn)介 3.2.1NAPI技術(shù)簡(jiǎn)介 NAPI(NewAPI)是Linux上采用的一種提高網(wǎng)絡(luò)處理效率的技術(shù),它的核心概念就是不采用中斷的方式讀取數(shù)據(jù),而代之以首先采用中斷喚醒數(shù)據(jù)接收的服務(wù)程序,然后POLL的方法來(lái)輪詢(xún)數(shù)據(jù)。13多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2.2NAPI的工作機(jī)制 經(jīng)過(guò)分析,發(fā)現(xiàn)在復(fù)雜網(wǎng)絡(luò)環(huán)境中,丟包率上升的原因是在捕包過(guò)程中,CPU一直處于接收中斷狀態(tài),而沒(méi)有把時(shí)間用于處理數(shù)據(jù)包的過(guò)程中來(lái),也就是進(jìn)入了系統(tǒng)中斷活鎖狀態(tài)。 利用NAPI技術(shù)的設(shè)備輪詢(xún)機(jī)制可以成功解決這個(gè)問(wèn)題,NAPI機(jī)制的具體特點(diǎn)如下: (1)當(dāng)網(wǎng)卡接收到一個(gè)數(shù)據(jù)包,便產(chǎn)生一個(gè)中斷信號(hào)給系統(tǒng); (2)系統(tǒng)進(jìn)行如下操作: 關(guān)閉網(wǎng)卡中斷(只是屏蔽了中斷信號(hào),網(wǎng)卡仍然可以接收數(shù)據(jù)包到緩沖隊(duì)列); 激活輪詢(xún)進(jìn)程,對(duì)該網(wǎng)卡進(jìn)行輪詢(xún)(處理緩沖隊(duì)列); 打開(kāi)網(wǎng)卡中斷(解除屏蔽中斷信號(hào))。14多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2.2NAPI的工作機(jī)制15多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2.2NAPI的工作機(jī)制使用NAPI的先決條件 1)網(wǎng)卡設(shè)備有DMA(DirectMemoryAccess)硬件,要支持DMA的環(huán)形輸入隊(duì)列(也就是ring_dma)。 2)在發(fā)送/接收數(shù)據(jù)包產(chǎn)生中斷的時(shí)候有能力關(guān)斷NIC中斷的事件處理,并且在關(guān)斷NIC以后,并不影響數(shù)據(jù)包接收到網(wǎng)絡(luò)設(shè)備的環(huán)形緩沖區(qū)(以下簡(jiǎn)稱(chēng)rx-ring)處理隊(duì)列中。 3)有防止NIC隊(duì)列中排隊(duì)的數(shù)據(jù)包沖突的能力。16多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2.3NAPI的性能分析優(yōu)點(diǎn) NAPI技術(shù)的使用減少了中斷的數(shù)目,讓整個(gè)操作系統(tǒng)不必花費(fèi)太多的時(shí)間在中斷現(xiàn)場(chǎng)的保護(hù)和恢復(fù)上,以便把贏得的時(shí)間用來(lái)在我網(wǎng)絡(luò)層上的處理數(shù)據(jù)的傳輸,確實(shí)大幅度增強(qiáng)了數(shù)據(jù)包捕獲能力和系統(tǒng)響應(yīng)速度。17多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技3.2.3NAPI的性能分析缺點(diǎn) NAPI存在一些比較嚴(yán)重的缺陷: 1)對(duì)于上層的應(yīng)用程序而言,系統(tǒng)不能在每個(gè)數(shù)據(jù)包接收到的時(shí)候都可以及時(shí)地去處理它,而且隨著傳輸速度增加,累計(jì)的數(shù)據(jù)包將會(huì)耗費(fèi)大量的內(nèi)存,經(jīng)過(guò)實(shí)驗(yàn)表明在Linux平臺(tái)上這個(gè)問(wèn)題會(huì)比在FreeBSD上要嚴(yán)重一些; 2)另外一個(gè)問(wèn)題是對(duì)于大的數(shù)據(jù)包處理比較困難,原因是大的數(shù)據(jù)包傳送到網(wǎng)絡(luò)層上的時(shí)候耗費(fèi)的時(shí)間比短數(shù)據(jù)包長(zhǎng)很多(即使是采用DMA方式),所以正如前面所說(shuō)的那樣,NAPI技術(shù)適用于對(duì)高速率的短長(zhǎng)度數(shù)據(jù)包的處理。18多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4解決方案PF_RING解決方案PF_RING的TNAPI的改進(jìn)方案PF_RING的DNA的改進(jìn)方案PF_RING的安裝使用19多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1PF_RING解決方案 4.1.1PF_RING簡(jiǎn)介 PF_RING是Luca研究出來(lái)的基于Linux內(nèi)核級(jí)的高效數(shù)據(jù)包捕獲技術(shù)。PF_RING可以把從一個(gè)網(wǎng)絡(luò)接口抓到的數(shù)據(jù)包分發(fā)到多個(gè)cpu核心或者線程中,以提高數(shù)據(jù)包處理能力。20多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2PF_RING工作機(jī)制 在大數(shù)據(jù)包的網(wǎng)絡(luò)環(huán)境下,設(shè)備輪詢(xún)機(jī)制表現(xiàn)出了較高的捕包能力,但是在小包大流量的網(wǎng)絡(luò)環(huán)境下,設(shè)備輪詢(xún)機(jī)制雖然比Libpcap的表現(xiàn)好了很多,但依然難以達(dá)到讓人滿(mǎn)意的程度。 經(jīng)過(guò)進(jìn)一步分析,在數(shù)據(jù)包捕獲的過(guò)程中,CPU的多數(shù)時(shí)間都被用在把網(wǎng)卡接收到的數(shù)據(jù)包經(jīng)過(guò)內(nèi)核的數(shù)據(jù)結(jié)構(gòu)隊(duì)列發(fā)送到用戶(hù)空間的過(guò)程中。也就是說(shuō)是從網(wǎng)卡到內(nèi)核,再?gòu)膬?nèi)核到用戶(hù)空間,這兩個(gè)步驟,花去了大量CPU時(shí)間,而沒(méi)有其他時(shí)間用來(lái)進(jìn)行數(shù)據(jù)包的進(jìn)一步處理。 PF_RING技術(shù)解決了這個(gè)問(wèn)題。21多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.2PF_RING工作機(jī)制PF_RING的邏輯結(jié)構(gòu)如下圖所示: PF_RING基本原理是將網(wǎng)卡接收的數(shù)據(jù)包存儲(chǔ)在一個(gè)環(huán)狀緩存,這也是為什么叫RING的原因,這個(gè)環(huán)狀緩存有兩個(gè)接口,一個(gè)供網(wǎng)卡向其中寫(xiě)數(shù)據(jù)包,另一個(gè)為應(yīng)用層程序提供讀取數(shù)據(jù)包的接口,讀取數(shù)據(jù)包的接口通過(guò)mmap函數(shù)(將一個(gè)文件或其它對(duì)象映射進(jìn)內(nèi)存)實(shí)現(xiàn)的。22多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2PF_RING工作機(jī)制PF_RING優(yōu)點(diǎn) 1)減少了內(nèi)存拷貝次數(shù)。 2)可以把收到的數(shù)據(jù)包分發(fā)到多個(gè)環(huán)形緩沖區(qū),供多線程應(yīng)用程序讀取。23多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2PF_RING工作機(jī)制 3)支持集群功能。

PF-RING可以通過(guò)集群和平衡機(jī)制增加包捕獲程序的性能。這些機(jī)制允許應(yīng)用程序只處理一部分?jǐn)?shù)據(jù)包,將其余數(shù)據(jù)包傳送給其它集群。24多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.3PF_RING工作模式PF_RING有3中工作模式: pf_ring有三種透明模式(transparent_mode)。為0時(shí)走的是Linux標(biāo)準(zhǔn)的NAPI包處理流程; 為1時(shí),包既走Linux標(biāo)準(zhǔn)包處理流程,也copy給pf_ring一份; 為2時(shí),驅(qū)動(dòng)只將包拷貝給pf_ring,內(nèi)核則不會(huì)接收到這些包,1和2模式需要pf_ring特殊的網(wǎng)卡驅(qū)動(dòng)的支持。25多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.3PF_RING工作模式模式026多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.3PF_RING工作模式模式1和模式227多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.4PF_RING性能分析I3虛擬4核3.3GHz、RH6.0系統(tǒng)、e1000e網(wǎng)卡28多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.4PF_RING性能分析I3虛擬4核3.3GHz、RH6.0系統(tǒng)、e1000e網(wǎng)卡29多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.4PF_RING性能分析雙核1.86GHz、UbuntuServer9.10、e1000網(wǎng)卡30多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.4PF_RING性能分析雙核1.86GHz、UbuntuServer9.10、igb網(wǎng)卡31多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.4PF_RING性能分析雙核1.86GHz和Xeon2.5GHz、ixgbe萬(wàn)兆網(wǎng)卡32多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.5PF_RING的不足之處 目前大部分網(wǎng)卡都支持MSI-X技術(shù),可以把傳入的RX隊(duì)列分成幾個(gè)RX隊(duì)列,每個(gè)隊(duì)列對(duì)應(yīng)一個(gè)CPU的核心。RSS技術(shù)可以通過(guò)per-flow實(shí)現(xiàn)各個(gè)RX隊(duì)列間的負(fù)載均衡。這樣的好處是可以充分利用cpu的多核優(yōu)勢(shì),提高對(duì)數(shù)據(jù)包的處理速度。但是目前的PF_RING不能充分發(fā)揮這個(gè)優(yōu)勢(shì)。原因分析如下:33多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.5PF_RING的不足之處驅(qū)動(dòng)程序仍然需要依次輪詢(xún)RXQueue,而不能同時(shí)訪問(wèn)所有的RXQueue。操作系統(tǒng)需要把這些RX隊(duì)列河流到一個(gè)接口供應(yīng)用程序讀取。當(dāng)需要處理超大流量數(shù)據(jù)的時(shí)候,多核CPU的單核占用率很高,多核性能不能充分發(fā)揮。34多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.1.6PF_RING支持的網(wǎng)絡(luò)列表Broadcom系列Intel系列 1)e1000 2)e1000e 3)igb 4)ixgbe35多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2PF_RING的TNAPI的改進(jìn)方案36多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2.1PF_RING的TNAPI的優(yōu)勢(shì)TNAPI優(yōu)勢(shì) 1)可以把流量分發(fā)到不同的核上,具有更好的擴(kuò)展性。 2)能夠同時(shí)第從每個(gè)RX隊(duì)列輪詢(xún)數(shù)據(jù)從而提高數(shù)據(jù)包讀取性能。 3)通過(guò)PF_RING,可以實(shí)現(xiàn)用戶(hù)態(tài)的每一個(gè)線程對(duì)應(yīng)一個(gè)RX隊(duì)列,避免使用信號(hào)量。 PF_RINGTNAPI大概是PF_RINGNAPI的2倍。在Core2Duo1.86GHz下可以跑出2.8Mpps(2G流量)的成績(jī)。37多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.2.3PF_RING的TNAPI支持的網(wǎng)卡列表千兆 Intel82576芯片電口網(wǎng)卡有:E1G42ET、E1G44ET2、E1G44ET。 Intel82580芯片電口網(wǎng)卡有:E1G44HT。 Intel82575芯片電口網(wǎng)卡有:E1G44AT2。萬(wàn)兆 Intel82599芯片電口網(wǎng)卡:E10G42BT。 Intel82598芯片電口網(wǎng)卡:EXPX9501AT、E10G41AT2、EXPX9502CX4。38多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.3PF_RING的DNA的改進(jìn)方案4.3.1DNA簡(jiǎn)介 PF_RINGDNA(DirectNICAccess)通過(guò)把網(wǎng)卡內(nèi)存和寄存器直接映射到用戶(hù)空間,這樣就可以不通過(guò)NAPI,直接利用NICNPU(NetworkProcessUnit)從網(wǎng)卡拷貝數(shù)據(jù)包到DMA的環(huán)形緩沖區(qū)。這樣會(huì)降低cpu的利用率。缺點(diǎn)是一次只能有一個(gè)應(yīng)用程序可以打開(kāi)DMA的環(huán)形緩沖區(qū),不過(guò)現(xiàn)在的網(wǎng)卡都支持多RX/TX隊(duì)列,因此可以通過(guò)啟動(dòng)多個(gè)應(yīng)用程序,每個(gè)應(yīng)用程序?qū)?yīng)一個(gè)RX/TX隊(duì)列的方法來(lái)解決。39多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.3.2DNA的工作機(jī)制40多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.3.2DNA的性能分析 DNA模式下,直接利用網(wǎng)卡處理單元進(jìn)行數(shù)據(jù)包的拷貝,降低了CPU的占用率。Luca開(kāi)發(fā)了LibzeroDNA程序框架,即使在超大流量下,CPU的利用率也非常低。 由于DNA模式下,不再使用NAPIPoll,所以PF_RING的數(shù)據(jù)包過(guò)濾功能就不支持了,目前可以使用硬件層的數(shù)據(jù)包過(guò)濾,但只有intel的82599網(wǎng)卡支持。41多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.3.3PF_RING的DNA支持的網(wǎng)卡列表Intel系列 1)e1000 2)e1000e 3)igb 4)ixgbe42多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用下載地址 最新版本5.4.5,下載網(wǎng)址/projects/ntop/files/PF_RING/。43多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用目錄結(jié)構(gòu)

Drivers/ Drivers/Broadcom/ Drivers/Intel/ Drivers/myricom/ Kernel/

內(nèi)核有關(guān)的補(bǔ)丁 Userland/

用戶(hù)空間代碼 Userland/lib用戶(hù)空間庫(kù)用于控制PF_RING Userland/libpcap-xxx-ringPF_RING支持的Libpcap增強(qiáng)庫(kù) Userland/examples/包計(jì)數(shù)應(yīng)用(使用它作為測(cè)試使用)44多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用編譯內(nèi)核

解壓縮PF_RING安裝包,進(jìn)入到Kernel目錄下編譯和安裝內(nèi)核補(bǔ)丁。 #tar-zxfPF_RING-5.4.5.tar.gz #cdPF_RING-5.4.5/kernel #make #sudomakeinstall

內(nèi)核安裝需要root用戶(hù)權(quán)限 insmod<PF_RINGPATH>/kernel/pf_ring.ko[transparent_mode=0|1|2] [min_num_slots=x][enable_tx_capture=1|0][enable_ip_defrag=1|0][quick_mode=1|0]45多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用編譯用戶(hù)空間PF_RING庫(kù) 進(jìn)入到用戶(hù)空間庫(kù)userland/lib下,編譯和安裝。

#cd../userland/lib。 #./configure #make #sodumakeinstall #rpm-qalibpcap

查看安裝的libpcap,如果有l(wèi)ibpcap則強(qiáng)制卸載 #rpm-elibpcap--nodefs

#cd../libpcap #./configure #make #sudomakeinstall46多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用 進(jìn)入到userland/examples目錄編譯例子程序。 #cd<PF_RINGPATH>/userland/examples #make #./pfcount-ieth0

捕獲eth0網(wǎng)口的數(shù)據(jù)報(bào)文47多核CPU下基于PFRING和設(shè)備輪詢(xún)機(jī)制的高性能包捕獲技4.4PF_RING安裝使用編譯網(wǎng)卡驅(qū)動(dòng)

編譯網(wǎng)卡驅(qū)動(dòng)之前,需要把

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論