一種以太網(wǎng)流量再生方法
【專利摘要】本發(fā)明提供一種以太網(wǎng)流量再生方法,所述方法需提供winpcap驅動、網(wǎng)卡、文件管理器和數(shù)據(jù)包發(fā)送控制模塊;所述文件管理器用于將待發(fā)送的數(shù)據(jù)包載入緩沖區(qū);所述數(shù)據(jù)包發(fā)送控制模塊用于控制數(shù)據(jù)包的發(fā)送速率、修改MAC地址、控制循環(huán)發(fā)送和控制流量波動;所述方法包括如下步驟:檢查winpcap驅動,初始化網(wǎng)卡列表;創(chuàng)建發(fā)送列表;設置發(fā)送參數(shù);選擇發(fā)送數(shù)據(jù)包的網(wǎng)卡;點擊發(fā)送,創(chuàng)建緩沖隊列并把數(shù)據(jù)包載入緩沖隊列。本發(fā)明通過再現(xiàn)以太網(wǎng)流量提供網(wǎng)絡的歷史數(shù)據(jù),回放網(wǎng)絡的歷史事件,并采用修改目的MAC地址的方式實現(xiàn)定位,對問題進行實時追蹤和處理。
【專利說明】一種以太網(wǎng)流量再生方法
【技術領域】
[0001]本發(fā)明涉及一種通信網(wǎng)絡,特別是涉及一種以太網(wǎng)流量再生方法。
【背景技術】
[0002]以太網(wǎng)流量在以前只是實時解析或者事后排查,無法在解決問題時再現(xiàn)一些實際的問題。只能根據(jù)分析存儲的數(shù)據(jù)包,根據(jù)存儲的數(shù)據(jù)包做出應對方案。而有些問題,例如特殊數(shù)據(jù)包并非一下子就出現(xiàn),無法定位解決問題和對問題實現(xiàn)跟蹤處理。
【發(fā)明內容】
[0003]本發(fā)明要解決的技術問題,在于提供一種能夠再現(xiàn)流量數(shù)據(jù)包的以太網(wǎng)流量再生方法,對問題進行實時追蹤和處理。
[0004]本發(fā)明是這樣實現(xiàn)的:一種以太網(wǎng)流量再生方法,該方法通過將數(shù)據(jù)包存儲和定位的方式對問題進行實時追蹤和處理,所述方法需提供winpcap驅動、網(wǎng)卡、文件管理器和數(shù)據(jù)包發(fā)送控制模塊;
[0005]所述文件管理器用于將待發(fā)送的數(shù)據(jù)包載入緩沖區(qū);
[0006]所述數(shù)據(jù)包發(fā)送控制模塊用于控制數(shù)據(jù)包的發(fā)送速率、修改MAC地址、控制循環(huán)發(fā)送和控制流量波動;
[0007]該方法包括如下步驟:
[0008]步驟1、檢查winpcap驅動,初始化網(wǎng)卡列表;
[0009]步驟2、創(chuàng)建發(fā)送隊列,添加/刪除數(shù)據(jù)包文件到發(fā)送隊列;
[0010]步驟3、數(shù)據(jù)包發(fā)送控制模塊設置發(fā)送參數(shù);
[0011]步驟4、選擇發(fā)送數(shù)據(jù)包的網(wǎng)卡;
[0012]步驟5、點擊發(fā)送,文件管理器將待發(fā)送的數(shù)據(jù)包文件載入到緩沖隊列準備發(fā)送;
[0013]步驟6、發(fā)送成功。
[0014]進一步的,所述步驟I具體為:檢查winpcap驅動是否正常,若winpcap驅動正常,則初始化驅動網(wǎng)卡列表,若winpcap驅動異常,則需要人為對驅動進行異常處理后再重新進行檢查。
[0015]進一步的,所述步驟3中的參數(shù)包括發(fā)送速率、流量大小、循環(huán)發(fā)送和是否改變目的 MAC。
[0016]進一步的,所述步驟5的緩沖隊列在內存中被創(chuàng)建,當不再需要緩沖隊列時,釋放緩沖隊列所占用的內存。
[0017]進一步的,所述步驟6具體為:發(fā)送成功,根據(jù)步驟3中設置的循環(huán)發(fā)送參數(shù)會自動停止或者循環(huán)發(fā)送。
[0018]本發(fā)明具有如下優(yōu)點:以太網(wǎng)流量再生方法通過再現(xiàn)以太網(wǎng)流量提供網(wǎng)絡的歷史數(shù)據(jù),回放網(wǎng)絡的歷史事件,并采用修改目的MAC地址的方式實現(xiàn)定位,對問題進行實時追蹤和處理。本發(fā)明通過對網(wǎng)卡丟包率的統(tǒng)計測試網(wǎng)卡硬件的性能,在網(wǎng)絡壓力測試中通過瞬間提高網(wǎng)絡流量來測試網(wǎng)絡的承載能力,以及通過統(tǒng)計網(wǎng)絡中的攻擊數(shù)據(jù)來測試網(wǎng)絡的安全防護能力,大大提高了軟件測試的準確性和針對性。
【專利附圖】
【附圖說明】
[0019]下面參照附圖結合實施例對本發(fā)明作進一步的說明。
[0020]圖1為本發(fā)明邏輯結構圖。
[0021]圖2為本發(fā)明方法執(zhí)行流程圖。
【具體實施方式】
[0022]如圖1和圖2所示,一種以太網(wǎng)流量再生方法,所述方法通過將數(shù)據(jù)包存儲和定位的方式對問題進行實時追蹤和處理,所述方法包括winpcap驅動、網(wǎng)卡、文件管理器和數(shù)據(jù)包發(fā)送控制模塊,該方法把數(shù)據(jù)包存儲下來并發(fā)送給供分析的系統(tǒng)進行分析和改進;
[0023]所述文件管理器用于將待發(fā)送的數(shù)據(jù)包載入緩沖區(qū);
[0024]所述數(shù)據(jù)包發(fā)送控制模塊用于控制數(shù)據(jù)包的發(fā)送速率、修改MAC地址、控制循環(huán)發(fā)送和控制流量波動;
[0025]該方法包括如下步驟:
[0026]步驟1、檢查winpcap驅動是否正常,若winpcap驅動正常,則初始化驅動網(wǎng)卡列表,若winpcap驅動異常,則需要人為對驅動進行異常處理后再重新進行檢查;
[0027]步驟2、創(chuàng)建發(fā)送隊列,添加/刪除數(shù)據(jù)包文件到發(fā)送隊列;
[0028]步驟3、數(shù)據(jù)包發(fā)送控制模塊設置發(fā)送參數(shù),該發(fā)送參數(shù)包括發(fā)送速率、流量大小、循環(huán)發(fā)送和是否改變目的MAC ;
[0029]步驟4、選擇發(fā)送數(shù)據(jù)包的網(wǎng)卡;
[0030]步驟5、點擊發(fā)送,在內存中建立緩沖隊列,文件管理器將待發(fā)送的數(shù)據(jù)包文件載入到緩沖隊列準備發(fā)送,當不再需要緩沖隊列時,釋放緩沖隊列所占用的內存;
[0031]步驟6、發(fā)送成功,根據(jù)步驟3中設置的循環(huán)發(fā)送參數(shù)會自動停止或者循環(huán)發(fā)送。
[0032]其中,設置發(fā)送流量大小,在模擬現(xiàn)場網(wǎng)絡流量,若實驗中沒有3Gbps的流量做研究,就可以通過多臺發(fā)生不同流量到研究的設備進行現(xiàn)場模擬;循環(huán)發(fā)送控制一個發(fā)送隊列發(fā)送的次數(shù);在分析需要發(fā)送數(shù)據(jù)時改變MAC地址便于定位。
[0033]另外,Winpcap提供了一種高級的,強大的,結構更優(yōu)的方法來發(fā)送一組數(shù)據(jù)包。發(fā)送隊列是一個容器,它能容納不同數(shù)量的數(shù)據(jù)包,這些數(shù)據(jù)包將被發(fā)送到網(wǎng)絡上。發(fā)送隊列的大小代表了它能存儲的數(shù)據(jù)包的最大數(shù)量。發(fā)送隊列通過調用pcap_sendqueue_alloc O函數(shù)(pcap_send_queue*pcap_sendqueue_alloc (u_int memsize))創(chuàng)建,并且需要指定隊列的大小。一旦發(fā)送隊列被創(chuàng)建,pcap_sendqueue_queue O函數(shù)就可以將數(shù)據(jù)包添加到發(fā)送隊列中。pcap_sendqueue_queue O 函數(shù):
[0034]int pcap_sendqueue_queue(pcap_send_queue氺queue,
[0035]const struct pcap_pkthdr氺pkt_header,
[0036]const u_char*pkt_data);
[0037]pcap_sendqueue_queue ()函數(shù)的參數(shù)包含一個pcap_pkthdr的結構體,它包含三個參數(shù):時間戳、長度和一個指向數(shù)據(jù)包數(shù)據(jù)的緩沖。這些參數(shù)和那些被pCap_neXt_eX()和pcap_handler()接收到的數(shù)據(jù)相同,因此,為那些剛剛捕獲到的或是從文件讀取出來的數(shù)據(jù)包排隊,就相當于把這三個參數(shù)傳遞給pcap_sendqueue_queue O。
[0038]為一個發(fā)送隊列分配空間,即創(chuàng)建一個用來存儲一組原始數(shù)據(jù)包(raw packet)的緩沖區(qū),這些數(shù)據(jù)包將用pcap_sendqueue_transmit O提交到網(wǎng)絡上。memsize是隊列容納的字節(jié)數(shù),它決定了隊列所能容納的最大數(shù)據(jù)量。使用pcap_sendqueue_queue O可以在發(fā)送隊列中插入數(shù)據(jù)包。
[0039]添加一個數(shù)據(jù)包到發(fā)送隊列中。queue指向發(fā)送隊列的尾部;pkt_header指向一個pcap_pkthdr結構體,該結構體包含時間戳和數(shù)據(jù)包的長度;pkt_data指向存放數(shù)據(jù)包數(shù)據(jù)部分的緩沖區(qū)。
[0040]WinPcap 提供了 pcap_sendqueue_transmit O 函數(shù)來發(fā)送一個隊列。
[0041]pcap_sendqueue_transmit ()函數(shù):
[0042]u_int pcap_sendqueue_transmit(pcap_t*p,
[0043]pcap_send_queue氺queue,
[0044]int sync);
[0045]該函數(shù)將隊列里的內容提交到線路上。p是一個指向適配器的指針,數(shù)據(jù)包將在這個適配器上被發(fā)送;queue指向pcap_send_queue結構體,它包含著要發(fā)送的所有數(shù)據(jù)包;sync決定了發(fā)送操作是否被同步,如果非零,則發(fā)送數(shù)據(jù)包關系到時間戳,否則,他們將以最快的速度發(fā)送(即不考慮時間戳)。返回值是發(fā)送的字節(jié)數(shù),如果它小于size參數(shù),將發(fā)生一個錯誤。該錯誤可能是由于驅動/適配器(driver/adapter)問題或發(fā)送隊列的不一致 / 偽造(inconsistent/bogus)弓I起。
[0046]使用pcap_sendqueue_transmit O 函數(shù)的效率比使用 pcap_sendpacket O 發(fā)送一系列數(shù)據(jù)包的效率高,因為數(shù)據(jù)包在核心態(tài)(kernel-level)被緩沖,所以降低了上下文的交換次數(shù)。因此,使用pcap_sendqueue_transmit O更好。
[0047]當sync被設置為TRUE時,隨著一個高精度的時間戳,數(shù)據(jù)包將在內核伴被同步。這就要求CPU的數(shù)量是不可忽略的,通常允許以一個微秒級的精度發(fā)送數(shù)據(jù)包(這依賴于機器性能計數(shù)器的準確度)。然而,用pcap_sendpacket O發(fā)送數(shù)據(jù)包不能達到這樣一個精確度。
[0048]雖然以上描述了本發(fā)明的【具體實施方式】,但是熟悉本【技術領域】的技術人員應當理解,我們所描述的具體的實施例只是說明性的,而不是用于對本發(fā)明的范圍的限定,熟悉本領域的技術人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應當涵蓋在本發(fā)明的權利要求所保護的范圍內。
【權利要求】
1.一種以太網(wǎng)流量再生方法,其特征在于:所述方法通過將數(shù)據(jù)包存儲和定位的方式對問題進行實時追蹤和處理,所述方法需提供Winpcap驅動、網(wǎng)卡、文件管理器和數(shù)據(jù)包發(fā)送控制模塊; 所述文件管理器用于將待發(fā)送的數(shù)據(jù)包載入緩沖區(qū); 所述數(shù)據(jù)包發(fā)送控制模塊用于控制數(shù)據(jù)包的發(fā)送速率、修改MAC地址、控制循環(huán)發(fā)送和控制流量波動; 該方法包括如下步驟: 步驟1、檢查winpcap驅動,初始化網(wǎng)卡列表; 步驟2、創(chuàng)建發(fā)送隊列,添加/刪除數(shù)據(jù)包文件到發(fā)送隊列; 步驟3、數(shù)據(jù)包發(fā)送控制模塊設置發(fā)送參數(shù); 步驟4、選擇發(fā)送數(shù)據(jù)包的網(wǎng)卡; 步驟5、點擊發(fā)送,文件管理器將待發(fā)送的數(shù)據(jù)包文件載入到緩沖隊列準備發(fā)送; 步驟6、發(fā)送成功。
2.根據(jù)權利要求1所述的一種以太網(wǎng)流量再生方法,其特征在于:所述步驟I具體為:檢查winpcap驅動是否正常,若winpcap驅動正常,則初始化驅動網(wǎng)卡列表,若winpcap驅動異常,則需要人為對驅動進行異常處理后再重新進行檢查。
3.根據(jù)權利要求1所述的一種以太網(wǎng)流量再生方法,其特征在于:所述步驟3中的參數(shù)包括發(fā)送速率、流量大小、循環(huán)發(fā)送和是否改變目的MAC。
4.根據(jù)權利要求1所述的一種以太網(wǎng)流量再生方法,其特征在于:所述步驟5的緩沖隊列在內存中被創(chuàng)建,當不再需要緩沖隊列時,釋放緩沖隊列所占用的內存。
5.根據(jù)權利要求1所述的一種以太網(wǎng)流量再生方法,其特征在于:所述步驟6具體為:發(fā)送成功,根據(jù)步驟3中設置的循環(huán)發(fā)送參數(shù)會自動停止或者循環(huán)發(fā)送。
【文檔編號】H04L12/24GK104079435SQ201410327556
【公開日】2014年10月1日 申請日期:2014年7月10日 優(yōu)先權日:2014年7月10日
【發(fā)明者】黃文峰, 劉少軍, 許輝奇 申請人:南威軟件股份有限公司