許文民
摘要:網(wǎng)絡流量捕獲對網(wǎng)絡分析有著十分重要的作用,特別是隨著網(wǎng)絡技術的發(fā)展與網(wǎng)絡需求的增加,都對網(wǎng)絡流量捕獲提出了更高的要求。本文對網(wǎng)絡流量捕獲的意義進行了分析,并分析了網(wǎng)絡流量捕獲方法。
關鍵詞:網(wǎng)絡流量;數(shù)據(jù)包;數(shù)據(jù)包捕獲
隨著網(wǎng)絡技術的快速發(fā)展與網(wǎng)絡需求的空前增加,網(wǎng)絡用戶數(shù)量與網(wǎng)絡應用的快速增長導致了網(wǎng)絡的性能下降。因此,對網(wǎng)絡性能進行優(yōu)化、合理利用網(wǎng)絡資源已經(jīng)成為了人們普遍關注的焦點問題。網(wǎng)絡流量捕獲技術是對網(wǎng)絡性能進行綜合評估的重要基礎,因此對網(wǎng)絡流量捕獲技術進行研究焊絲優(yōu)化網(wǎng)絡性能、提高網(wǎng)絡利用率的重要措施。
一、網(wǎng)絡流量捕獲的意義
對網(wǎng)絡流量進行捕獲、分析,能發(fā)現(xiàn)網(wǎng)絡的瓶頸,對網(wǎng)絡的優(yōu)化打下良好基礎。網(wǎng)絡流量捕獲是網(wǎng)絡流量分析的重要基礎,能夠明確網(wǎng)絡流量的變化,反映出在網(wǎng)絡運行過程中所存在的故障、性能以及其他多個方面的信息。要準確的明確網(wǎng)絡運行的可靠性等信息,制定出科學合理的網(wǎng)絡性能優(yōu)化方案,就必須要對網(wǎng)絡運行的歷史進行定量化的記錄。網(wǎng)絡流量捕獲是對網(wǎng)絡運行歷史進行定量化記錄的重要手段,同時網(wǎng)絡流量捕獲也是對網(wǎng)絡進行測量的重要手段。
隨著網(wǎng)絡規(guī)模的擴大,各種網(wǎng)絡應用在不斷地增加,與此同時網(wǎng)絡的異構(gòu)性以及復雜性都在不斷的提高,而人們對網(wǎng)絡性能的滿意程度卻并沒有相應的增高。當前人們期望的是網(wǎng)絡能夠同時滿足高可靠性和高性能這兩方面的要求。因此,就需要設計出高速IP網(wǎng)絡流量捕獲監(jiān)測技術,通過這種檢測技術來對高效網(wǎng)絡協(xié)議進行分析,并開發(fā)出具有更高性能的網(wǎng)絡設備,并通過流量工程來改善網(wǎng)絡負載,使其變得更加的合理,并保證關鍵業(yè)務的性能。這些都需要對各層協(xié)議的詳細情況進行定量的了解,其中包括了網(wǎng)絡流量與業(yè)務流的使用分布、增長趨勢等等。通過對這些信息的了解,進而能夠建立起精確的網(wǎng)絡流量模型和業(yè)務流量、性能模型,這樣能夠更好的發(fā)現(xiàn)影響或者限制網(wǎng)絡性能的關鍵問題[1]。
二、網(wǎng)絡數(shù)據(jù)包捕獲技術分析
(一)數(shù)據(jù)包捕獲基本原理
物理基礎:以太網(wǎng)本身具有共享介質(zhì)的特征,信息是以明文的凡是在網(wǎng)絡上進行傳輸,當網(wǎng)絡適配器設置為監(jiān)聽模式時,因為是采用的以太網(wǎng)廣播信道征用的方式,這就能夠讓監(jiān)聽系統(tǒng)與正常的通信網(wǎng)絡系統(tǒng)進行并聯(lián)連接,并且還能夠捕獲任何一個在同一個沖突領域中所傳輸?shù)臄?shù)據(jù)。
數(shù)據(jù)包捕獲的前提:每一臺網(wǎng)絡上的主機都擁有一個唯一的物理地址,通過物理地址就能夠找到網(wǎng)絡上的任何一臺主機。在共享式的網(wǎng)絡中,每一個主機所發(fā)送的數(shù)據(jù)報,處于同一個網(wǎng)絡中的其余主機都能夠接收到。主機上網(wǎng)卡的首要任務就是對當前總線的狀態(tài)進行不斷的探測,如果當前網(wǎng)絡中有數(shù)據(jù)傳輸,那么就對所流經(jīng)的數(shù)據(jù)包進行判斷分析,如果數(shù)據(jù)包中的目的地址與本機的不符就將該數(shù)據(jù)幀丟棄,否則就接收。而工作在混雜模式下的網(wǎng)卡則能夠接受所有流經(jīng)該網(wǎng)卡的數(shù)據(jù)幀,因此,要捕獲數(shù)據(jù)包,其前提就是將網(wǎng)卡設置在混雜模式下。
(二)BPF機制與Libpeap函數(shù)庫
BPF是S.Mceanne和V.Jaeobson等人所推出的包過濾器。BPF由網(wǎng)絡分接頭與數(shù)據(jù)過濾器所組成,其中,網(wǎng)絡分接頭是一個函數(shù),其主要用于網(wǎng)絡數(shù)據(jù)流。數(shù)據(jù)過濾器則是BPF的核心部分,用戶能夠通過對數(shù)據(jù)過濾器設置過濾規(guī)則,來捕獲自己所感興趣的所有數(shù)據(jù)包子集,其工作機制如圖1所示[2]:
Libpep是由Berkeiey大學的Van Jacobson、Steven McCanne和Craig Leres所開發(fā)的,是應用在Linux平臺下的,用來對網(wǎng)絡數(shù)據(jù)包進行捕獲的跨平臺編程接口,是一個獨立于系統(tǒng)的、用戶層數(shù)據(jù)包捕獲函數(shù)庫。因為是工作在用戶層,所以對操作系統(tǒng)細節(jié)進行了隱藏,使用更加的方便,其主要包括了三個部分:最底層是針對硬件設備接口的數(shù)據(jù)包捕獲機制,中間是針對內(nèi)核級的包過濾機制,最后一層是針對用戶程序的接口。
(三)數(shù)據(jù)包捕獲工作流程
數(shù)據(jù)包捕獲流程主要有以下幾個方面:(1)對主機網(wǎng)絡機構(gòu)列表進行查找,并選擇可用網(wǎng)絡接口;(2)進行初始化,必須要對實行數(shù)據(jù)包捕獲的設備進行設置;(3)對過濾器進行設置,用戶需要根據(jù)自己的需要提前對過濾規(guī)則進行設置;(4)對數(shù)據(jù)包進行捕獲;(5)對數(shù)據(jù)包進行解析,在捕獲到符合要求的數(shù)據(jù)包之后,并不能夠直接獲取所感興趣的信息,而是需要進行相應的處理;(6)結(jié)束工作,在完成數(shù)據(jù)包捕獲工作之后,需要結(jié)束響應的程序,關閉會話以釋放資源。
三、結(jié)語
基于不同技術的數(shù)據(jù)包捕獲技術其實現(xiàn)的具體方式也不相同,但是數(shù)據(jù)包捕獲的基本原理與工作流程都是基本相同的。通過對數(shù)據(jù)包捕獲技術的分析能夠更好的實現(xiàn)網(wǎng)絡流量捕獲,進而為網(wǎng)絡分析提供更加可靠的依據(jù)。
參考文獻
[1] 王月輝.基于WinPcap的網(wǎng)絡數(shù)據(jù)捕獲和分析系統(tǒng)的研究與實現(xiàn)[D].沈陽:沈陽工業(yè)大學,2007.
[2] 張偉,等.基于WinPcap的數(shù)據(jù)包捕獲及應用[J].計算機工程與設計,2008,29(7):1649-1651.