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