網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法
【專利摘要】本發(fā)明公開了網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法,具體包括以下步驟:步驟一、在Tilera眾核平臺下配置Mpipe規(guī)則;步驟二、創(chuàng)建n個收包線程,為各個線程綁定一個用于處理數(shù)據(jù)包的CPU核,n個收包線程并行運(yùn)行;步驟三、在每個收包線程中,調(diào)用Mpipe接口接收網(wǎng)絡(luò)數(shù)據(jù)包,當(dāng)CPU核接收到數(shù)據(jù)包,把數(shù)據(jù)包轉(zhuǎn)變?yōu)镻CAP文件格式,根據(jù)數(shù)據(jù)包的序列號獲取數(shù)據(jù)包保存在PCAP文件內(nèi)存的首地址,根據(jù)首地址存取數(shù)據(jù)包;步驟四、在每個收包線程中,當(dāng)CPU核接收到數(shù)據(jù)包,修改數(shù)據(jù)包的描述符,然后調(diào)用Mpipe接口轉(zhuǎn)發(fā)數(shù)據(jù)包;步驟五、在每個收包線程中,判斷是否完成處理(完成處理指不進(jìn)行后續(xù)數(shù)據(jù)包的處理),均完成后,結(jié)束處理,否則,返回步驟三。本發(fā)明大大提高了數(shù)據(jù)包線速捕獲的效率。
【專利說明】網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)數(shù)據(jù)包的線速捕獲,具體是一種基于Tilera (多核處理器)眾核平臺網(wǎng)絡(luò)數(shù)據(jù)包的線速捕獲方法。
【背景技術(shù)】
[0002]傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法是通過CPU的中斷進(jìn)行數(shù)據(jù)包捕獲的方法。由于CPU中斷系統(tǒng)的開銷是昂貴的,而且中斷的頻繁發(fā)生會導(dǎo)致系統(tǒng)處理能力的下降,所以當(dāng)數(shù)據(jù)包到達(dá)的速率過快時,會導(dǎo)致數(shù)據(jù)包的丟失。同時在傳統(tǒng)的網(wǎng)絡(luò)數(shù)據(jù)包捕獲技術(shù)中,由于網(wǎng)絡(luò)數(shù)據(jù)包的傳輸需要多次拷貝,因此它會消耗大量的CPU周期和內(nèi)存資源。
【發(fā)明內(nèi)容】
[0003]本發(fā)明是為了最大程度的提高線速捕獲的數(shù)據(jù)包數(shù)量以及線速捕獲的效率,提出的一種網(wǎng)絡(luò)數(shù)據(jù)包的線速捕獲方法。本發(fā)明通過Tilera眾核平臺下Mpipe (多核可編程智能包引擎)接口實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的接收以及數(shù)據(jù)包的捕獲,同時創(chuàng)建多個線程,為各個線程綁定一個CPU核,并行接收數(shù)據(jù)包,并且進(jìn)行數(shù)據(jù)包的捕獲,大大提高了數(shù)據(jù)包的捕獲效率。
[0004]網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法,具體包括以下步驟:
[0005]步驟一、在Tilera眾核平臺下配置Mpipe規(guī)則;
[0006]步驟二、創(chuàng)建η個收包線程,為各個線程綁定一個用于處理數(shù)據(jù)包的CPU核,η個收包線程并行運(yùn)行;
[0007]步驟三、在每個收包線程中,調(diào)用Mpipe接口接收網(wǎng)絡(luò)數(shù)據(jù)包,當(dāng)CPU核接收到數(shù)據(jù)包,把數(shù)據(jù)包轉(zhuǎn)變?yōu)镻CAP文件格式,根據(jù)數(shù)據(jù)包的序列號獲取數(shù)據(jù)包保存在PCAP文件內(nèi)存的首地址,根據(jù)首地址存取數(shù)據(jù)包;
[0008]步驟四、在每個收包線程中,當(dāng)CPU核接收到數(shù)據(jù)包,修改數(shù)據(jù)包的描述符,然后調(diào)用Mpipe接口轉(zhuǎn)發(fā)數(shù)據(jù)包;
[0009]步驟五、在每個收包線程中,判斷是否完成處理(完成處理指不進(jìn)行后續(xù)數(shù)據(jù)的處理),均完成后,結(jié)束處理,否則,返回步驟三;
[0010]本發(fā)明的優(yōu)點(diǎn)與積極效果在于:
[0011]在Tilera眾核平臺下使用Mpipe接口接收數(shù)據(jù)包,并且為各個線程綁定CPU核,并行處理數(shù)據(jù)包,進(jìn)行數(shù)據(jù)包的線速捕獲,大大提高了數(shù)據(jù)包線速捕獲的效率。
【專利附圖】
【附圖說明】
[0012]圖1是本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法的步驟流程圖;
【具體實(shí)施方式】
[0013]下面將結(jié)合附圖和實(shí)施例對本發(fā)明作進(jìn)一步的詳細(xì)說明。[0014]如圖1所示,本發(fā)明的網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法具體包括以下步驟:
[0015]步驟一、在Tilera眾核處理器平臺下配置Mpipe規(guī)則;
[0016]所述的Tilera眾核處理器平臺具有高性能低能耗的特點(diǎn)。Tilera芯片基于一種新的架構(gòu)設(shè)計(jì),它在一塊芯片上使用RISC (Reduced Instruction Set Computing)內(nèi)核,與傳統(tǒng)的x86芯片完全不同,它的網(wǎng)格設(shè)計(jì)可以進(jìn)行更快的數(shù)據(jù)交換,并且若干并行內(nèi)核在一個多指針的矩陣內(nèi)被組織起來以便接受和傳遞數(shù)據(jù),同時Tilera眾核處理器平臺提供了核間通信非常高的數(shù)據(jù)帶寬,降低了核間通信延時,并通過共享的Cache (高速緩沖存儲器)消除了核間互聯(lián)的性能瓶頸,并降低了芯片功耗,實(shí)現(xiàn)了極低的數(shù)據(jù)延遲和線速流量的小包處理。
[0017]步驟二、創(chuàng)建多個線程,為各個線程綁定一個用于處理數(shù)據(jù)包的CPU核,η個收包線程并行運(yùn)行;
[0018]步驟三、在每個收包線程中,調(diào)用Mpipe接口接收網(wǎng)絡(luò)數(shù)據(jù)包,當(dāng)CPU核接收到數(shù)據(jù)包,把數(shù)據(jù)包轉(zhuǎn)變?yōu)镻CAP (Packet Capture)文件格式,根據(jù)數(shù)據(jù)包的序列號獲取數(shù)據(jù)包保存在PCAP文件內(nèi)存的首地址,根據(jù)首地址存取數(shù)據(jù)包,實(shí)現(xiàn)了多線程接收的數(shù)據(jù)包按照接收的先后順序存儲到PCAP文件的內(nèi)存中,確保了數(shù)據(jù)包順序的一致;
[0019]在Tilera眾核平臺下,多個線程并行接收網(wǎng)絡(luò)數(shù)據(jù)包,對數(shù)據(jù)包并行處理,大大提高了數(shù)據(jù)包的捕獲效率。網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法設(shè)置兩塊內(nèi)存進(jìn)行數(shù)據(jù)包的存儲管理,當(dāng)一塊內(nèi)存存儲了指定了的數(shù)據(jù)包以后,后續(xù)數(shù)據(jù)包存儲到另一塊內(nèi)存中,同時從前一塊內(nèi)存中順序提取數(shù)據(jù)包保存成PCAP文件。通過兩塊內(nèi)存實(shí)現(xiàn)數(shù)據(jù)包的捕獲與存儲互不影響。
[0020]步驟四、在每個收包線程中,當(dāng)CPU核接收到數(shù)據(jù)包,修改數(shù)據(jù)包的描述符,然后調(diào)用Mpipe接口轉(zhuǎn)發(fā)數(shù)據(jù)包;
[0021]所述的Tilera眾核平臺下的Mpipe (多核可編程智能包引擎)系統(tǒng)提供線速的數(shù)據(jù)包分類,負(fù)載平衡和數(shù)據(jù)包緩沖管理處理等功能。
[0022]步驟五、在每個收包線程中,判斷是否完成處理(完成處理指不進(jìn)行后續(xù)數(shù)據(jù)包的處理),均完成后,結(jié)束處理,否則,返回步驟三;
[0023]本發(fā)明在Tilera眾核平臺下實(shí)現(xiàn)數(shù)據(jù)包的線速捕獲,利用了 Tilera眾核處理器平臺的高性能低功耗的特點(diǎn),而且Tilera眾核處理器平臺提供了核間通信非常高的數(shù)據(jù)帶寬,降低了核間通信延時,并通過共享的Cache (高速緩沖存儲器)消除了核間互聯(lián)的性能瓶頸,并降低了芯片功耗。Tilera眾核平臺下的Mpipe (多核可編程智能包引擎)系統(tǒng)提供線速的數(shù)據(jù)包分類,負(fù)載平衡和數(shù)據(jù)包緩沖管理處理。數(shù)據(jù)包的線速捕獲采用多線程并且為各個線程綁定CPU核,并行接收數(shù)據(jù)包和處理數(shù)據(jù)包,最大程度的提高了數(shù)據(jù)包的線速捕獲效率,而且保證了捕獲的數(shù)據(jù)包的順序的一致性。
【權(quán)利要求】
1.網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法,具體包括以下步驟: 步驟一、在Tilera眾核平臺下配置Mpipe規(guī)則; 步驟二、創(chuàng)建η個收包線程,為各個線程綁定一個用于處理數(shù)據(jù)包的CPU核,η個收包線程并行運(yùn)行; 步驟三、在每個收包線程中,調(diào)用Mpipe接口接收網(wǎng)絡(luò)數(shù)據(jù)包,當(dāng)CPU核接收到數(shù)據(jù)包,把數(shù)據(jù)包轉(zhuǎn)變?yōu)镻CAP文件格式,根據(jù)數(shù)據(jù)包的序列號獲取數(shù)據(jù)包保存在PCAP文件內(nèi)存的首地址,根據(jù)首地址存取數(shù)據(jù)包; 步驟四、在每個收包線程中,當(dāng)CPU核接收到數(shù)據(jù)包,修改數(shù)據(jù)包的描述符,然后調(diào)用Mpipe接口轉(zhuǎn)發(fā)數(shù)據(jù)包; 步驟五、在每個收包線程中,判斷是否完成處理(完成處理指不進(jìn)行后續(xù)數(shù)據(jù)包的處理),均完成后,結(jié)束處理,否則,返回步驟三。
2.根據(jù)權(quán)利要求1所述的網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法,其中網(wǎng)絡(luò)數(shù)據(jù)包線速捕獲方法設(shè)置兩塊內(nèi)存進(jìn)行數(shù)據(jù)包的存儲管理,當(dāng)一塊內(nèi)存存儲了指定了的數(shù)據(jù)包以后,后續(xù)數(shù)據(jù)包存儲到另一塊內(nèi)在中,同時從前一塊內(nèi)存中順序提取數(shù)據(jù)包保存成PCAP文件,通過兩塊內(nèi)存實(shí)現(xiàn)數(shù)據(jù)包的捕獲與存儲互不影響。
【文檔編號】G06F9/38GK103916316SQ201410145478
【公開日】2014年7月9日 申請日期:2014年4月11日 優(yōu)先權(quán)日:2014年4月11日
【發(fā)明者】張良, 黃成 , 汪立東, 李曉倩, 謝銘 申請人:國家計(jì)算機(jī)網(wǎng)絡(luò)與信息安全管理中心