999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向應用Intranet流量監測系統的設計與實現

2010-01-01 00:00:00
電腦知識與技術 2010年3期

摘要:該文著眼于Intranet流量監測,比較了幾種常用的流量數據采集方法,分析了Intranet中網絡應用業務的特點,從而提出了一種面向應用的流量數據采集模型。基于這一模型,利用WinPcap提供的函數庫實現了面向應用的Intranet流量監測系統。介紹了系統的設計與實現。

關鍵詞:流量;面向應用;WinPcap

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)03-593-04

The Design and Implementation for Application Intranet flow Monitoring System

MA Xiang

(Pianzhuan Group Information Center, Xianyang 712000, China)

Abstract: To deal with the Intranet flow monitor prpblem,after comparing several popular flow data collection methods and analysising netwrok's business characters, this paper resents a novel framework data collection model. Based on this modle, using the WinPcap's library, we give a detial introduction of the system's design and Implementation.

Key words: flow; application-oriented; winpcap

隨著Internet的迅速普及和廣泛使用,Intranet的部署和使用也不斷發展。Intranet即內部網絡,也叫內聯網,是將Internet的成熟技術如TCP/IP、SMTP、HTML、HTTP、WWW等應用于企業或政府部門的內部專用網絡。以Intranet為基礎,一方面,可以將基于Internet成熟技術的服務如Web服務、Mail服務、FTP服務等網絡應用遷移到企業內部;另一方面,企業根據自己的業務特點,針對企業內部人員或客戶,開展新的網絡應用業務,如企業內部數據庫系統、辦公自動化系統及MIS應用等。

隨著Intranet中多種網絡應用業務的開展,對網絡的承載能力是一個考驗。如何清楚地了解不同網絡應用業務網絡的使用情況;如何為每種網絡應用業務分配合理的網絡帶寬,逐漸成為眾多企業開展網絡應用業務后關心的一個問題。

1 常用的流量數據采集方法

實現對Intranet流量的監測,就要選擇流量數據采集點,并且采集的流量數據完整且不重復。下面對常用的流量數據采集方法[1]進行分析。

1.1 基于SNMP的網絡流量統計分析模式

根據SNMP[2]的工作原理,需要流量統計服務器和路由器相配合來完成網絡流量的采集和統計,如圖1所示。流量統計服務器和路由器分別扮演SNMP的Manager和Agent角色,服務器定期向路由器發送SNMPWALK(SNMP請求),當路由器接收到請求后將所要采集的數據發送給流量統計服務器。這一“請求-響應-處理-發送”的過程每隔一段指定的時間執行一次。

實現基于SNMP模式的網絡流量數據采集對所使用的路由器也有一定的要求。首先,路由器必須是企業網中心節點的路由器,這樣采集的網絡流量數據才會完整;其次,路由器除了擁有一般路由器的路由選擇和數據包轉發功能外,還須提供過往包的統計功能。這種模式原理簡單,容易實現。但工作效率較低,對網絡帶寬有影響且會加重路由器的負擔。另外,流量采集的時間間隔比較難把握,容易造成數據的丟失。

1.2 基于安插網絡探針技術的流量數據捕獲模式

探針(PROBE)技術是依靠傳統的以太網(Ethernet)總線結構的通信原理,在靠近出口路由器的網段上安插網絡探針,以監聽其他的通信,并記錄通過該網段的每一次通信,進而整理成流量統計數據。

這種模式最大的優點就是不需要路由器的參與,對路由器的影響很小;且占用很少的帶寬,不需要額外的網絡開銷。但要實現這種基于PROBE技術的流量采集統計,必須有很大的緩存器(Cache),以便記錄下所有的網絡通信。這給流量統計主機的性能和硬件配置提出了很高的要求。

網絡探針截獲的是網絡上的數據流,通過對這些數據進行分析,可以統計出對應IP地址的流量數據或者是基于某種協議的網絡應用業務的流量數據。

1.3 基于網絡數據流(NetFlow)技術的IP數據流捕獲模式

它是采用流作為網絡數據傳輸的單位。網絡設備(路由器和帶三層交換的交換機)為其提供一個專有的緩存器。在數據轉發期間,對于屬于同一個數據流的數據包,交換機只處理其第一個包,并根據第一個包的情況在netflow cache中建立一個記錄,屬于同一個流的數據包將根據netflow cache中的記錄直接作二層轉發而不再作三層處理。這樣,便可以大大加快網絡設備的數據處理速度。

在NetFlow[3]方法中,流量監控統計服務器使用專門的軟件,每時每刻處于監聽狀態。路由器和帶三層交換的交換機待某個流傳輸完畢后,把netflow cache中對該流的統計信息一次性地發送給流量監控統計服務器的監聽進程,并由流量統計分析程序進行整理,生成流量統計記錄,NetFlow技術的流量采集模型如圖2所示。

基于NetFlow的流量采集模型可以有效地節省網絡帶寬,減少網絡設備的額外負擔。但對網絡設備的要求較高,并且不適合用于某個精確時段的網絡流量統計。

基于NetFlow技術的網絡流量監控,可以根據源和目的IP地址及其子網掩碼,甚至TCP/UDP端口號進行流量數據統計,并且可以列出指定時間內的IP包數、字節數、IP包大小分布情況等流量信息。

2 面向應用的流量數據采集模型

通過對常用的網絡流量數據采集方法的分析和比較,結合Intranet中網絡應用業務的特點,提出了面向應用的流量數據采集模型,如圖3所示。

本模型需要網絡流量監控服務器(運行管理進程)和安裝在網絡應用業務服務器上的流量統計程序(即代理進程)相配合來完成流量數據采集工作。具體實現中,管理進程根據WinPcap的過濾表達式語法對代理進程需要進行流量統計數據采集的網絡應用業務信息和流量數據采集的周期進行配置。代理進程根據配置的參數信息,進行周期性的流量數據的采集工作,并隨時將采集的流量數據以一定的格式發送給管理進程。管理進程一直運行接收流量數據的監聽線程,將接收到的流量數據存入數據庫中,用于實時流量數據顯示和歷史流量數據分析。

面向應用的流量數據采集模型具有以下特點:

1)數據采集的完整性

Intranet中運行的網絡應用業務根據其實現模式可以歸為C/S模式和B/S模式,無論是何種模式,Server端處理所有Client的請求,并作相應的響應處理。因此對某種網絡應用業務而言,Server端是此種網絡應用業務流量的匯接點。從網絡應用業務的Server端采集此種網絡應用業務的流量數據具有完整性。

2)技術可行性

在現有的研究中,已提供了具有網絡數據采集和流量統計功能并用于開發的API,如Win32平臺下有WinPcap,Unix平臺下有libpcap等。

WinPcap(Windows Packet capture)[4]是Windows平臺下一個免費的,公共的網絡訪問系統。具有捕獲原始數據包,收集網絡通信過程中的統計信息等功能。并且WinPcap中定義了過濾表達式語法規則,通過在過濾表達式中對協議(如TCP、UDP)和端口的設定來標識不同的網絡應用業務,進而可以統計不同網絡應用業務的流量統計信息,從而為完整的采集各種網絡應用業務流量數據提供了技術上的保證。

3)實施可行性

面向應用的流量數據采集模型的數據源是網絡應用業務的服務器,完成流量統計信息采集功能的是WinPcap驅動。WinPcap能獨立于主機協議(如TCP/IP)發送和接收原始數據包,在發送和接收原始數據包的過程中,不阻塞、過濾或控制其他應用程序數據包的發收,并且具有流量統計功能。本模型中WinPcap的主要功能是完成統計功能,此功能在內核級完成,對網絡應用業務服務器端的正常運行影響很小,因此在具體實施方面具有可行性。

3 系統設計

3.1 數據及配置信息的存儲

要實現面向應用的Intranet流量監測系統,首先就要有進行流量監測的網絡應用業務的信息,根據WinPcap3.0提供的過濾表達式語法可以標識不同的網絡應用業務。Intranet中常用網絡應用業務在WinPcap中的過濾表達式如表1所示。其中,Web服務會因為Web產品的不同,過濾規則會有所不同。不同的企業網還有根據其自身業務而開展的其他網絡應用,這需要在具體實施過程中逐步補充。

為了給網絡管理員進行面向應用的Intranet流量分析和合理的帶寬分配提供參考數據,需要存儲網絡應用業務不同時段的流量數據,因此管理端需要有數據庫作為信息存儲介質。

面向應用的Intranet流量監測系統中代理進程Agent主要負責對不同網絡應用業務啟動流量數據采集線程進行流量數據的采集,同時將采集的數據發送給管理進程Manager。代理進程Agent需要保存網絡應用業務信息,網絡應用業務的過濾表達式,進行流量數據采集的周期等參數信息。對于這種初始化信息,采用Windows INI文件格式存儲。

3.2 通信協議設計

管理進程Manager和代理進程Agent之間互為客戶/服務器。Agent作為服務器,時刻監聽來自客戶端Manager的控制命令,并做出相應的響應。Manager作為服務器,時刻監聽并準備接收客戶端Agent發送的流量數據。Manager和Agent之間需要進行控制命令和數據的傳輸,要保證二者之間進行明確的請求和響應操作,就要制定一些彼此都認可的規定,因此在管理進程和代理進程之間定義通信協議FMCP。

FMCP協議規定了管理進程Manager用來監聽代理進程發送流量數據的端口號,代理進程用來監聽管理進程發送控制命令的端口號,以及管理進程Manager和代理進程Agent之間控制命令和數據命令的具體消息定義。

4 系統實現

圖4給出了系統總體結構。管理進程對代理進程和網絡應用業務進行參數信息配置,參數信息存儲到數據庫中,操作人員發送控制命令(如初始化代理進程、修改應用業務等控制命令)到代理進程,代理進程接收控制命令,進行響應,并將接收的參數信息(如代理進程、網絡應用業務參數信息)存入信息配置文件中,同時,代理進程根據信息配置文件和控制命令進行網絡應用業務實時流量數據采集工作,代理進程采集流量數據并發送給管理進程,管理進程將接收的流量數據存入數據庫,供操作人員進行網絡應用業務實時流量監測和歷史數據分析。

4.1 數據結構和函數說明

網絡應用業務流量數據的采集主要是通過調用WinPcap提供的函數和在WinPcap提供的回調函數中加入相關處理來實現的。下面對用到的WinPcap中的數據結構和函數[5]進行介紹。

1)數據結構pcap_t

數據結構pcap_t是WinPcap的核心數據結構,對用戶來說是唯一的,實際是一個包捕獲實例的描述,在程序的開始,調用pcap_open_live()將返回一個指向這個結構的指針。

2)char* pcap_lookupdev()

獲取可用設備,即網卡適配器。

3)pcap_t* pcap_open_live()

返回包捕獲實例的描述,其函數原型如下:

pcap_t* pcap_open_live(char * device, int snaplen, int promisc, int to_ms, char * ebuf)

其中,第二個參數snaplen指定從每個包返回數據的長度,例如,如果指定1000,那么長度小于1000的包將返回其實際長度的全部數據;如果包長度大于1000,則返回包的前1000字節。返回的數據是鏈路層的數據幀。

第三個參數promisc,是混雜標志,如果設定為1,將把網卡設置為混雜模式,監聽全網段,但代理進程是安裝在網絡應用業務服務器上,不需要把網卡設置為混雜模式,因此promisc的取值是0。

第四個參數to_ms,單位是毫秒,是回調函數的執行周期。

4)int pcap_loop()

收集和處理包,其函數原型如下:

int pcap_loop(pcap_t* p, int cnt, pcap_handler callback, u_char* user)

其中callback定義了處理包的回調函數。用戶實現回調函數的具體功能,本系統實現了統計模式下的回調函數dispatcher_handler()。

5)void dispatcher_handler()

統計模式下的回調函數,其函數原型如下:

void dispatcher_handler(u_char *state, const struct pcap_pkthdr *header, const u_char *pkt_data)

其中參數一供用戶傳遞變量;

參數二pcap_pkthdr的格式定義如下:

struct pcap_pkthdr {

struct timeval ts;

bpf_u_int32 caplen;

bpf_u_int32 len;

}

WinPcap的內核過濾器每輸出一個包,將在輸出的數據前加上數據,就是struct pcap_pkthdr。Struct timeval ts是接收此包的時間戳;bpf_u_int32 Caplen是接收到包的長度;bpf_u_int32是實際包長度。

參數三的數據格式定義如下。

struct {

LARGEINTEGER AcceptedPackets;

LARGEINTEGER AcceptedBytes;

}

回調函數每隔to_ms(pcap_open_live()中的參數四)毫秒接收由驅動計算好的采樣數據,采樣數據封裝在回調函數的參數二和參數三中,參數三存的是從上一次采樣到此次采樣間隔中接收到的包數和字節數。

4.2 流量數據采集

通過對WinPcap中的函數調用來說明流量數據采集過程。

1)打開設備

調用pcap_lookupdev(),獲取可用設備,再調用pcap_open_live()獲得唯一的包捕獲實例描述,并且設置回調函數的執行周期。

2)設置過濾規則

給定過濾表達式,調用pcap_compile()進行編譯,并用pcap_setfilter()設置包捕獲實例描述的內核過濾器。

3)設置數據采集模式

調用pcap_setmode()設置該包捕獲實例描述為統計模式。

4)獲取數據

執行pcap_loop()函數,利用回調函數dispatcher_handler()處理采集的流量數據。

回調函數dispatcher_handler()中,具體實時流速的計算和流量的計算如下代碼所示。dispatcher_handler()的參數一傳遞時間戳,用于計算此次調用與上一次調用之間的延時delay,Kbps表示實時流速,單位是K比特每秒,KB表示實時流量,單位是K字節。

struct timeval *old_ts = (struct timeval *)state;

u_int delay;

LARGE_INTEGER Kbps,KB;

delay = (header->ts.tv_sec - old_ts->tv_sec) * 1000000 + (header->ts.tv_usec - old_ts->tv_usec);

Kbps.QuadPart = (((*(LONGLONG *)(pkt_data + 8)) * 8 * 1000000) / (delay) /1024);

KB.QuadPart = ((*(LONGLONG *)(pkt_data + 8)) / 1024)

old_ts->tx_sec = header->ts.tv_sec;

old_ts->tv_usec = header->ts.tv_usec;

流速Kbps和流量KB是本系統需要的數據,因此計算出這兩個數據后,直接將采集的流速和流量數據發送給管理進程。

5 結束語

面向應用的Intranet流量監測系統應用于Intranet中不同網絡應用業務流量的監測。通過對以網絡應用業務為單位的流量數據的監測和分析,為Intranet中不同網絡應用業務網絡帶寬的合理利用和分配提供了重要參考依據。

參考文獻:

[1] 劉特,徐迎曉,吳建軍,等.基于Java Servlet的網絡流量采集與監控技術[J].計算機工程,2002,28(5):167-170.

[2] 曾凡鋒.基于SNMP的網絡流量統計分析系統[J].北方工業大學學報,2003,15(1).

[3] 夢學軍,吳黎兵,石崗.基于NetFlow網絡流量分析的研究及應用[J].華中科技大學學報(自然科學版),2003,31(234):253-255.

[4] Loris Degioanni, NetGroup, Politecnico di Torino.WinPcap Documentation 3.0[OL]. http:// winpcap.polito.it, 2003.

[5] 孫鵬,董玉華,韓正之.基于數據鏈路層的局域網流量統計的實現[J].計算機工程與應用,2002(5):150-15.

主站蜘蛛池模板: 国产无码精品在线播放| 免费人成在线观看成人片| 18禁影院亚洲专区| 亚洲大学生视频在线播放| 四虎免费视频网站| 国产成人做受免费视频 | 狠狠色丁香婷婷综合| 亚洲日韩图片专区第1页| 国产又黄又硬又粗| 国产99视频精品免费视频7| 成人午夜网址| 狠狠做深爱婷婷综合一区| 亚洲欧美日韩色图| 精品国产网站| 成人福利在线看| 国产成人亚洲精品色欲AV| 日本午夜三级| 国产精品妖精视频| 国产欧美视频在线| 欧类av怡春院| 亚洲国产91人成在线| 日本午夜视频在线观看| 国产青青草视频| 波多野结衣国产精品| 久久国语对白| 色婷婷狠狠干| 91九色最新地址| 国产尤物视频在线| 99热这里只有精品5| 99国产在线视频| 久久综合丝袜日本网| 亚洲精品大秀视频| 欧美国产在线精品17p| 青草娱乐极品免费视频| 伊人久久婷婷| 欧美午夜在线播放| 伊人久久影视| 激情综合网址| 99精品国产电影| 国产成人免费观看在线视频| 尤物午夜福利视频| 成人在线不卡视频| 亚洲精品动漫| 午夜毛片免费观看视频 | 日韩美毛片| 亚洲欧美不卡中文字幕| 5555国产在线观看| 久久人与动人物A级毛片| 一级黄色欧美| 国产精品妖精视频| 美女内射视频WWW网站午夜| 熟妇丰满人妻av无码区| 99草精品视频| 亚洲成肉网| 99伊人精品| 欧美69视频在线| 免费看美女自慰的网站| 天天综合网色中文字幕| 日本国产精品| 国产情侣一区| 91视频区| 国产成人免费视频精品一区二区| 国产精品v欧美| 亚洲Av综合日韩精品久久久| 四虎永久在线视频| 欧美国产成人在线| 亚洲精品无码抽插日韩| 国产性爱网站| 日韩av手机在线| 日韩123欧美字幕| 免费99精品国产自在现线| 98超碰在线观看| 国产毛片基地| 一级一级一片免费| 国产精品久久自在自线观看| 欧美中文字幕在线视频| 色婷婷成人网| 久久青草视频| 午夜电影在线观看国产1区| 国产精品自在线拍国产电影| 国产91无码福利在线| 欧美www在线观看|