- 論壇徽章:
- 0
|
本帖最后由 panghaoyu 于 2013-10-29 09:30 編輯
一個好的包捕獲系統(tǒng)應該盡可能少的丟包,實時捕獲流經(jīng)系統(tǒng)的所有數(shù)據(jù)包,而且應該較少地占用 CPU 資源,使得系統(tǒng)擁有更多的時間來對數(shù)據(jù)包內容的進行處理。在包捕獲硬件方面,當前市場上有很多千兆以太網(wǎng)報文處理網(wǎng)卡,如 Endace 公司生產(chǎn)的 DAG 網(wǎng)卡、Liberouter 及SCAMPI 項目開發(fā)的 COMBO 網(wǎng)卡等。由于基于硬件的捕包方式價格比較昂貴,而且系統(tǒng)缺乏一定的靈活性,難以適應當今瞬息萬變的網(wǎng)絡發(fā)展現(xiàn)狀與具體的流量分析需求。
在包捕獲軟件方面,設計了很多優(yōu)秀的包捕獲函數(shù)庫如Libpcap、nCap、DMA-Ring 和 PF_RING 等。Libpcap 是一個優(yōu)秀的數(shù)據(jù)包捕獲函數(shù)庫,由網(wǎng)卡驅動、操作系統(tǒng)內核協(xié)議棧以及套接字接口三個部分組成,由于消耗了較高的 CPU 資源、引入了較高的包傳輸延時等問題,效率較低。為了提高包捕獲的效率,很多研究人員已經(jīng)做了大量的工作,包括從操作系統(tǒng)和應用軟件兩個方面進行優(yōu)化。
在操作系統(tǒng)方面:由于很多網(wǎng)絡應用都有實時性的要求,增加了一些實時的內核來提高網(wǎng)絡的實時性;為了避免頻繁的中斷造成的中斷活鎖現(xiàn)象,Linux 內核中引入了一些新的 API 函數(shù),簡稱NAPI(NewAPI),通過在重負載的情況下采用輪詢的方式來提高包捕獲系統(tǒng)的性能。在應用軟件方面:一種方式是減少內存拷貝次數(shù),Libpcap-mmap、nCap、DMA-RING 和 PF_RING都采用了這種方式;第二種方式是減少系統(tǒng)調用的次數(shù)。綜合分析以上包捕獲技術,發(fā)現(xiàn)以上沒有任何一種包捕獲接口的速度能達到千兆線速的處理目標,即使它們的設計目標是這樣;第二,都是基于單核的系統(tǒng)來進行設計,沒有考慮到發(fā)揮多核平臺和多收發(fā)隊列網(wǎng)卡的優(yōu)勢來增加系統(tǒng)的吞吐量
-------------------------------
我沒有太多這方面的的開發(fā)經(jīng)驗,只是了解一點。
我希望借助 endace dag 卡(Endace Dag 4.3 GE Dual Port PCI-X traffic capture card)或者(Endace DAG 3.52 Network Monitoring Card)或者 (Endace DAG 3.51 Network Monitoring Card)
或者借助 PF_RING 的方式,實現(xiàn)抓取一個千兆端口的數(shù)據(jù),(峰值 有數(shù)百M),我只需要過濾出 用戶請求HTTP的 URL即可,我想知道怎么編寫并部署
服務器主機(插卡的那臺機器)上的抓包分析程序,還有,endace dag 卡的驅動老版本的去哪兒找啊
求各位前輩指點。謝謝大家了 |
|