幸娟+張曉峰+高海源

摘 要:網絡數據處理技術中對于數據流的重組是后續數據還原應用的基礎,本文不同于一般采用硬件網卡收包策略,選用Tilera多核板卡平臺的高速收包引擎,重構libnids中流重組結構,對接Tilera多核板卡mpipe收包引擎,實現高速網絡數據包流重組。
關鍵詞:網絡數據包;libnids;Tilera;數據流重組
中圖分類號:TP393.08 文獻標識碼:A 文章編號:1671-2064(2017)09-0020-01
目前網絡安全越來越受到人們的關注,在網絡安全審計系統中網絡數據包流捕捉重組是后續數據還原安全審計的基礎,隨著互聯網的普及,大數據時代到來,對網絡數據包的高速處理提出了要求,Tilera多核板卡不但具有多核并行處理的高性能,還帶有高速捕獲數據包引擎,解決了以往采用libpcap等從網卡中收包瓶頸,同時重構libnids數據流重組源碼結構,對接Tilera的mpipe收包引擎接口,實現網絡數據流的高速捕獲重組功能。
1 Tilera多核板卡高速收包引擎mPIPE
通常網絡收包接口采用libpcap、pf_ring等開源庫來實現從網卡中將網絡數據包進行多次拷貝到用戶空間來實現收包環節,雖然pf_ring也推出了零拷貝技術,但是Tilera多核板卡的高速收包引擎mPIPE不但具備直接從硬件層面獲取數據包,無中間環節,而且具備眾核并行處理的高速性能,能達到對數據包的高速捕獲。mPIPE收包引擎工作原理如下圖1。
工作原理包括以下6個步驟:
(1)包收集存入iPkt Buffer;
(2)Packet分類,產生包描述符;
(3)負載均衡根據哈希流ID選擇工作tile;
(4)包數據寫入被選擇的內存池;
(5)寫描述符到ring;
(6)通知工作tile有一個有效的新包。
其中mPIPE還具有可選的負載均衡模式、用戶可設PacketBuffer內存大小、封裝的peek和get收包接口、用戶C語言可編程應用、一個mPIPE線速性能達到40Gbps等特性。
2 重構libnids數據流重組源碼結構
Libnids是用于網絡數據包處理的開源庫,其中數據流重組功能可以用來與mPIPE引擎接口進行對接,由于libnids原處理結構是結合libpcap的網絡收包接口,為了能對接mPIPE接口,將libnids中收包銜接代碼部分進行修改,增加對接函數代碼塊nids_next_special_mpipe。同時將libnids中不需要使用的其他功能進行刪除屏蔽,簡化代碼結構,根據需要增加原流結構體中的用戶字段。處理流程圖如下圖2。
3 結語
本文將Tilera多核板卡硬件平臺的mPIPE引擎高速收包與重構的libnids的數據流重組功能結合,實現網絡數據流的高速捕獲重組功能,提高網絡數據包的處理性能,為大數據量網絡處理方案奠定了強有力的基礎。
參考文獻
[1]劉文濤.網絡安全開發包詳解[M].北京:電子工業出版社,2005.
[2]KOZIEROK.TCP/IP指南.北京:人民郵電出版社,2008.
[3]吳勛,劉嘉勇.網絡數據包的郵件還原技術研究[J].通訊技術,2011(04):124-126.