版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p> (科研訓(xùn)練、畢業(yè)設(shè)計)</p><p> 題 目:網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)</p><p><b> 姓 名:</b></p><p> 學(xué) 院:軟件學(xué)院</p><p><b>
2、 系:</b></p><p> 專 業(yè):軟件工程</p><p><b> 年 級: </b></p><p><b> 學(xué) 號:</b></p><p> 指導(dǎo)教師(校內(nèi)): 職稱: </p><p><b
3、> 年 月</b></p><p><b> 摘 要</b></p><p> 隨著電子信息產(chǎn)業(yè)的迅速發(fā)展,互聯(lián)網(wǎng)作為信息社會傳播信息資源的工具已經(jīng)愈發(fā)重要。網(wǎng)絡(luò)已然成為信息化社會中必不可少的一部分。計算機(jī)網(wǎng)絡(luò)的高度發(fā)展,網(wǎng)絡(luò)攻擊,網(wǎng)絡(luò)犯罪等各類網(wǎng)絡(luò)安全性問題也隨之而來,網(wǎng)絡(luò)管理己變得日益重要。網(wǎng)絡(luò)流量分析作為網(wǎng)絡(luò)管理的一個重要的基礎(chǔ),對網(wǎng)
4、絡(luò)的流量進(jìn)行實時的監(jiān)控,為后續(xù)的網(wǎng)絡(luò)管理工作,網(wǎng)絡(luò)黑客攻擊防范工作有著重要的意義。</p><p> 論文主要工作圍繞網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)展開,將異常流量檢測的分析模塊作為底層,以WINPCAP的網(wǎng)絡(luò)訪問系統(tǒng)為基礎(chǔ),以C#作為開發(fā)平臺,借助Microsoft SQL Server作為后臺的數(shù)據(jù)庫管理,提供簡潔明快的用戶管理界面,實現(xiàn)對本地網(wǎng)絡(luò)流量的實時監(jiān)控,對常見的UDP,TCP及ICMP等協(xié)議的數(shù)據(jù)流
5、量進(jìn)行每秒的檢測統(tǒng)計,并將流量數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,對超出警戒限制的流量數(shù)據(jù)進(jìn)行匯總,以供用戶對本地網(wǎng)絡(luò)中可能存在的諸如拒絕服務(wù)攻擊等安全隱患進(jìn)行檢測分析,并及時作出相應(yīng)的防范和補救措施,更好的進(jìn)行網(wǎng)絡(luò)管理。</p><p> [關(guān)鍵詞] 實時監(jiān)控,流量統(tǒng)計,Winpcap,SQL Server</p><p><b> Abstract</b></p>
6、<p> With the electronic information industry is developing rapidly, the Internet information society as a tool for the dissemination of information resources has become more important. Information network has beco
7、me an essential part of the community. The highly developed computer network, network attacks, cyber-crime, and other network security problems attendant, network management has become increasingly important. Analysis of
8、 network traffic network management as an important foundation for the </p><p> Key words: Real-time monitoring, Traffic statistics, Winpcap,SQL Server</p><p><b> 目錄</b></p>
9、<p><b> 第一章 緒論1</b></p><p> 1.1 網(wǎng)絡(luò)流量測量研究背景和意義1</p><p> 1.2 本文研究內(nèi)容1</p><p> 1.3 論文組織結(jié)構(gòu)2</p><p> 第二章 基本概念介紹3</p><p> 2.1 以太網(wǎng)簡介3
10、</p><p> 2.1.1 以太網(wǎng)的簡史3</p><p> 2.1.2 OSI參考模型4</p><p> 2.1.3 以太網(wǎng)基本網(wǎng)絡(luò)組成4</p><p> 2.2 IP/TCP協(xié)議4</p><p> 2.2.1 TCP/IP整體構(gòu)架概述5</p><p> 2.
11、2.2 TCP/IP中的協(xié)議5</p><p> 2.3 UDP協(xié)議6</p><p> 2.4 ICMP協(xié)議6</p><p> 2.5 Winpcap協(xié)議介紹7</p><p> 2.5.1 Winpcap 的組成7</p><p> 2.5.2 Winpacp的功能7</p>
12、<p> 2.6 系統(tǒng)開發(fā)工具簡介8</p><p> 2.6.1 C#簡介8</p><p> 2.6.2 Mirsoft SQL Server簡介9</p><p> 第三章 系統(tǒng)詳細(xì)設(shè)計11</p><p> 3.1系統(tǒng)開發(fā)目的及設(shè)計目標(biāo)11</p><p> 3.2 系統(tǒng)整體設(shè)計
13、思想12</p><p> 3.3 數(shù)據(jù)包捕獲分析13</p><p> 3.3.1 網(wǎng)絡(luò)數(shù)據(jù)包捕獲原理14</p><p> 3.3.2 Winpcap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和過濾的設(shè)計步驟15</p><p> 3.3.3 數(shù)據(jù)包捕獲的具體實現(xiàn)16</p><p> 3.3.4 對捕獲數(shù)據(jù)包的分析
14、17</p><p> 3.3.5 將分析的結(jié)果存入數(shù)據(jù)庫18</p><p> 3.4 數(shù)據(jù)庫的設(shè)計18</p><p> 3.5 實時監(jiān)控設(shè)計19</p><p> 3.5.1 數(shù)字監(jiān)控19</p><p> 3.5.2 圖形監(jiān)控19</p><p> 3.6 數(shù)據(jù)查
15、詢和刪除29</p><p> 3.6.1 歷史數(shù)據(jù)查詢和統(tǒng)計20</p><p> 3.6.2 報警設(shè)置、數(shù)據(jù)刷新、刪除20</p><p> 3.7界面處理20</p><p> 第四章 系統(tǒng)實現(xiàn)結(jié)果21</p><p> 4.1 后臺服務(wù)21</p><p> 4.
16、2 實時監(jiān)控22</p><p> 4.3 報警設(shè)定24</p><p> 4.4 歷史數(shù)據(jù)統(tǒng)計模塊25</p><p> 第五章 結(jié)束語27</p><p><b> 參考文獻(xiàn)29</b></p><p><b> 致謝31</b></p>
17、<p><b> Contents</b></p><p> Chapter 1 Introduction1</p><p> 1.1 the background and significance of Web traffic measuring1</p><p> 1.2 the content In this p
18、aper2</p><p> 1.3 organizational structure2</p><p> Chapter 2 Basic concepts introduCED3</p><p> 2.1 Brief History of Ethernet3</p><p> 2.1.1 Ethernet Introduct
19、ion4</p><p> 2.1.2 OSI Reference Model4</p><p> 2.1.3 Basic Ethernet network composed5</p><p> 2.2 IP/TCP protocol5</p><p> 2.2.1 TCP/IP overall framework outli
20、ned6</p><p> 2.2.2 TCP/IP protocol6</p><p> 2.3 UDP protocol7</p><p> 2.4 ICMP protocol7</p><p> 2.5 Winpcap protocol7</p><p> 2.5.1 Winpcap comp
21、osition7</p><p> 2.5.2 Winpacp features8</p><p> 2.6 System Tools Overview8</p><p> 2.6.1 C# Introduction8</p><p> 2.6.2 Mirsoft SQL Server Introduction9</p
22、><p> Chapter 3 System Design11</p><p> 3.1 The purpose of systems development and design goals11</p><p> 3.2 system overall design concept12</p><p> 3.3 packet cap
23、ture13</p><p> 3.3.1 network packet capture Principle13</p><p> 3.3.2 Winpcap network packet capture and filter design steps14</p><p> 3.3.3 capture the specific data packets
24、to achieve15</p><p> 3.3.4 capture data packets16</p><p> 3.3.5 will analyse the results in the datab16</p><p> 3.4 database design17</p><p> 3.5 real-time moni
25、toring design17</p><p> 3.5.1 digital monitoring18</p><p> 3.5.2 graphical control18</p><p> 3.6 data query and remove19</p><p> 3.6.1 historical data query and
26、 statistical19</p><p> 3.6.2 alarm settings, data refresh, delete20</p><p> 3.7 interface20</p><p> Chapter 4 system achieve results21</p><p> 4.1 behind21<
27、/p><p> 4.2 real-time monitoring22</p><p> 4.3 alarm settings24</p><p> 4.4 historical data statistics module25</p><p> Chapter 5 Concluding remarks27</p>&
28、lt;p> References29</p><p><b> Thanks31</b></p><p><b> 第一章 緒論</b></p><p> 1.1 網(wǎng)絡(luò)流量測量研究背景和意義</p><p> 隨著Internet 的飛速發(fā)展,網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,網(wǎng)絡(luò)傳輸速度和容
29、量的快速增長以及網(wǎng)絡(luò)應(yīng)用和業(yè)務(wù)種類的快速發(fā)展,使得Internet 成為一個綜合數(shù)據(jù)、語音、視頻等多媒體服務(wù)的平臺。同時,網(wǎng)絡(luò)技術(shù)的快速發(fā)展,不斷涌現(xiàn)的新的網(wǎng)絡(luò)協(xié)議以及網(wǎng)絡(luò)流量成指數(shù)倍的增長,網(wǎng)絡(luò)的異構(gòu)性特點也越來越明顯,這使得網(wǎng)絡(luò)測量和建模十分困難。</p><p> 近年來國內(nèi)外相關(guān)的研究大都是通過對大量的流量數(shù)據(jù)進(jìn)行分析,找出能反映網(wǎng)絡(luò)真實特性的數(shù)學(xué)模型,如自相似模型等,但仍然不能全面客觀地反映網(wǎng)絡(luò)的真實
30、狀態(tài)和面貌。可以說,Internet一直沒有得到有效的檢測,我們?nèi)狈W(wǎng)絡(luò)性能的理解和預(yù)測。事實上,要達(dá)到上述目的,采用網(wǎng)絡(luò)測量獲取真實的流量數(shù)據(jù),并對這些數(shù)據(jù)進(jìn)行細(xì)致充分的定性定量分析,是較為有效的方法。網(wǎng)絡(luò)流量測量是網(wǎng)絡(luò)流量管理的基礎(chǔ)和重要內(nèi)容,特別是對于Internet 這樣大型復(fù)雜的骨干網(wǎng)絡(luò)來說更為重要。流量測量還可以實現(xiàn)監(jiān)測擁塞鏈路,預(yù)警拒絕服務(wù)攻擊,實施流量工程,滿足服務(wù)等級合約的QoS 策略設(shè)計等功能。因此,研究Inter
31、net 的測量方法并且實現(xiàn)相應(yīng)的測量系統(tǒng)是至關(guān)重要的。</p><p> 網(wǎng)絡(luò)流量測量具有多方面的作用,也是網(wǎng)絡(luò)流量管理的基礎(chǔ)和重要內(nèi)容,特別是對于Internet 這樣大型復(fù)雜的骨干網(wǎng)絡(luò)來說更為重要。因此,研究Internet 的測量方法并且實現(xiàn)相應(yīng)的測量系統(tǒng)是至關(guān)重要的。網(wǎng)絡(luò)安全監(jiān)控是保障計算機(jī)網(wǎng)絡(luò)系統(tǒng)安全運行,防止各種惡意竊取,防止各種破壞性攻擊的重要的安全技術(shù)。同時,網(wǎng)絡(luò)監(jiān)控也是網(wǎng)絡(luò)管理的信息收集工具,
32、它為網(wǎng)絡(luò)管理提供必要的信息,對把握網(wǎng)絡(luò)的發(fā)展方向以及發(fā)現(xiàn)網(wǎng)絡(luò)故障都有一定的意義。</p><p> 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng),就是在這樣的背景下產(chǎn)生的。所有的有關(guān)于網(wǎng)絡(luò)安全監(jiān)控的系統(tǒng)及研究,都是以流量的監(jiān)控分析作為基礎(chǔ)的。</p><p> 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)就是對網(wǎng)絡(luò)內(nèi)到達(dá)本地服務(wù)器的所有數(shù)據(jù)包進(jìn)行截取和分析,掌握當(dāng)前網(wǎng)絡(luò)總流量,同時可以根據(jù)不同的需要對特定端口或特定外部地址進(jìn)行監(jiān)視
33、,防止非法入侵,以保障本地網(wǎng)絡(luò)系統(tǒng)的安全和穩(wěn)定。</p><p> 它的主要意義在于實現(xiàn)了網(wǎng)絡(luò)監(jiān)控。隨著內(nèi)部網(wǎng)絡(luò)的規(guī)模與容量的日漸擴(kuò)大,保持系統(tǒng)的正常運作將會變得越來越重要。網(wǎng)絡(luò)監(jiān)控能使系統(tǒng)及時地發(fā)現(xiàn)網(wǎng)絡(luò)流量異常的現(xiàn)象,使服務(wù)器在發(fā)現(xiàn)非法入侵后能立即做出反應(yīng),來保護(hù)自己的服務(wù)器不被破壞,以求獲得安全性的同時,提高網(wǎng)絡(luò)性能。</p><p> 1.2 本文研究內(nèi)容</p>
34、<p> 互聯(lián)網(wǎng)絡(luò)中,無論是應(yīng)用業(yè)務(wù)種類還是流量規(guī)模都在飛速發(fā)展。不斷變化的網(wǎng)絡(luò)需要相應(yīng)靈活的監(jiān)控工具幫助網(wǎng)絡(luò)管理者及時了解網(wǎng)絡(luò)狀態(tài),以便于進(jìn)行網(wǎng)絡(luò)規(guī)劃及故障排除。</p><p> 目前,網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)正受到越來越多的關(guān)注,我們有必要認(rèn)識它、了解它,并最終應(yīng)用它,讓它幫助我們解決各種各樣的網(wǎng)絡(luò)問題。</p><p> 本文設(shè)計完成的基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)是以監(jiān)控用戶
35、網(wǎng)絡(luò)流量情況、防范黑客攻擊進(jìn)行入侵檢測為主要目的而進(jìn)行開發(fā)的。基于Winpcap 協(xié)議來完成網(wǎng)絡(luò)數(shù)據(jù)包的捕獲,通過對所捕獲數(shù)據(jù)包的內(nèi)容進(jìn)行統(tǒng)計分析,完成對網(wǎng)絡(luò)流量的監(jiān)控分析和對可能發(fā)生的拒絕服務(wù)攻擊進(jìn)行檢測等功能。</p><p> 本系統(tǒng)是基于Winpcap 協(xié)議進(jìn)行開發(fā)的,采用.NET作為開發(fā)平臺,Mirsoft SQL Server 作為后臺的數(shù)據(jù)庫管理系統(tǒng),提供良好的用戶管理界面,可以實現(xiàn)對本地網(wǎng)絡(luò)流量
36、的實時監(jiān)控、統(tǒng)計分析,并提供異常流量的查詢功能,從而能對網(wǎng)絡(luò)中可能存在的拒絕服務(wù)攻擊進(jìn)行檢測。整個系統(tǒng)使用C#編寫后臺數(shù)據(jù)包捕獲程序及前臺的界面顯示, Mirsoft SQL Server 作為流量分析系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng),以Mirsoft SQL Server 數(shù)據(jù)庫作為前后臺交互的中間層,使后臺數(shù)據(jù)包的捕獲和前臺的數(shù)據(jù)流量實時監(jiān)控以及對歷史數(shù)據(jù)查詢得以很好的實現(xiàn)。</p><p> 1.3 論文組織結(jié)構(gòu)&l
37、t;/p><p> 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的論文組織結(jié)構(gòu)如下:</p><p> 本文將從以下幾個方面進(jìn)行說明:</p><p><b> 第一章 緒論;</b></p><p> 第二章 介紹流量分析系統(tǒng)基本的概念和相關(guān)的技術(shù)知識;</p><p> 第三章 介紹系統(tǒng)的詳細(xì)設(shè)計;<
38、;/p><p> 第四章 介紹系統(tǒng)具體實現(xiàn)結(jié)果;</p><p><b> 第五章 結(jié)束語;</b></p><p> 第二章 基本概念介紹</p><p> 由于本系統(tǒng)是基于Winpcap協(xié)議的網(wǎng)絡(luò)流量監(jiān)控系統(tǒng),實現(xiàn)針對不同網(wǎng)絡(luò)協(xié)議和不同網(wǎng)絡(luò)服務(wù)的相關(guān)數(shù)據(jù)包流量的實時分析,并將檢測數(shù)據(jù)保存到數(shù)據(jù)庫。整個系統(tǒng)開發(fā)采用
39、C#實現(xiàn)后臺數(shù)據(jù)包捕獲和實現(xiàn)前臺界面顯示,利用Mirsoft SQL Server實現(xiàn)數(shù)據(jù)存儲。所以在本章中主要對以太網(wǎng)、IP/TCP協(xié)議、UDP和ICMP協(xié)議、Winpcap協(xié)議、Mirsoft SQL Server數(shù)據(jù)庫以及系統(tǒng)開發(fā)工具做詳細(xì)介紹。</p><p><b> 2.1 以太網(wǎng)簡介</b></p><p> 以太網(wǎng)(Ethernet)是一種計算機(jī)局
40、域網(wǎng)組網(wǎng)技術(shù)。IEEE制定的IEEE 802.3標(biāo)準(zhǔn)給出了以太網(wǎng)的技術(shù)標(biāo)準(zhǔn)。它規(guī)定了包括物理層的連線、電信號和介質(zhì)訪問層協(xié)議的內(nèi)容。以太網(wǎng)是當(dāng)前應(yīng)用最普遍的局域網(wǎng)技術(shù)。它很大程度上取代了其他局域網(wǎng)標(biāo)準(zhǔn),如令牌環(huán)網(wǎng)、FDDI和ARCNET。 以太網(wǎng)的標(biāo)準(zhǔn)拓?fù)浣Y(jié)構(gòu)為總線型拓?fù)洌壳暗目焖僖蕴W(wǎng)(100BASE-T、1000BASE-T標(biāo)準(zhǔn))為了最大程度的減少沖突,最大程度的提高網(wǎng)絡(luò)速度和使用效率,使用交換機(jī)(Switc
41、h)來進(jìn)行網(wǎng)絡(luò)連接和組織,這樣,以太網(wǎng)的拓?fù)浣Y(jié)構(gòu)就成了星型,但在邏輯上,以太網(wǎng)仍然使用總線型拓?fù)浜?#160;CSMA/CD即帶沖突檢測的載波監(jiān)聽多路訪問) 的總線爭用技術(shù),并以10 Mbps的速率運行在多種類型的電纜上。</p><p> 2.1.1 以太網(wǎng)的簡史</p><p> Ethernet是Xerox、Digital Equipment和Intel三家公司開發(fā)的局
42、域網(wǎng)組網(wǎng)規(guī)范,并于80年代初首次出版,稱為DIX1.0。1982年修改后的版本為DIX2.0。 這三家公司將此規(guī)范提交給IEEE(電子電氣工程師協(xié)會)802委員會,經(jīng)過IEEE成員的修改并通過,變成了IEEE的正式標(biāo)準(zhǔn),并編號為IEEE802.3。Ethernet和IEEE802.3雖然有很多規(guī)定不同,但術(shù)語Ethernet通常認(rèn)為與802.3是兼容的。IEEE將802.3標(biāo)準(zhǔn)提交國際標(biāo)準(zhǔn)化組織(ISO)第一聯(lián)合技術(shù)委員會(JTC1),
43、再次經(jīng)過修訂變成了國際標(biāo)準(zhǔn)ISO8802.3。</p><p> 2.1.2 OSI參考模型</p><p> IEEE802.3在制定時突出的一個基本思想是將系統(tǒng)進(jìn)行邏輯劃分,并研究如何將連接在一起。我們知道,ISO組織將網(wǎng)絡(luò)按其功能劃分為7個功能層,每層都完成某個特定功能。圖2-1-1所示為OSI參考模型。</p><p> 圖2-1-1 OSI模型<
44、;/p><p> 2.1.3 以太網(wǎng)基本網(wǎng)絡(luò)組成</p><p> 共享媒體和電纜:10BaseT(雙絞線),10Base-2(同軸細(xì)纜),10Base-5(同軸粗纜)。</p><p> 轉(zhuǎn)發(fā)器或集線器:集線器或轉(zhuǎn)發(fā)器是用來接收網(wǎng)絡(luò)設(shè)備上的大量以太網(wǎng)連接的一類設(shè)備。通過某個連接的接收雙方獲得的數(shù)據(jù)被重新使用并發(fā)送到傳輸雙方中所有連接設(shè)備上,以獲得傳輸型設(shè)備。&l
45、t;/p><p> 網(wǎng)橋:網(wǎng)橋?qū)儆诘诙釉O(shè)備,負(fù)責(zé)將網(wǎng)絡(luò)劃分為獨立的沖突域或分段,達(dá)到能在同一個域/分段中維持廣播及共享的目標(biāo)。網(wǎng)橋中包括一份涵蓋所有分段和轉(zhuǎn)發(fā)幀的表格,以確保分段內(nèi)及其周圍的通信行為正常進(jìn)行。</p><p> 交換機(jī):交換機(jī),與網(wǎng)橋相同,也屬于第二層設(shè)備,且是一種多端口設(shè)備。交換機(jī)所支持的功能類似于網(wǎng)橋,但它比網(wǎng)橋更具有的優(yōu)勢是,它可以臨時將任意兩個端口連接在一起。交換
46、機(jī)包括一個交換矩陣,通過它可以迅速連接端口或解除端口連接。與集線器不同,交換機(jī)只轉(zhuǎn)發(fā)從一個端口到其它連接目標(biāo)節(jié)點且不包含廣播的端口的幀。</p><p> 以太網(wǎng)協(xié)議:IEEE 802.3 標(biāo)準(zhǔn)中提供了以太幀結(jié)構(gòu)。當(dāng)前以太網(wǎng)支持光纖和雙絞線媒體支持下的四種傳輸速率:</p><p> 10 Mbps – 10Base-T Ethernet(802.3)</p><p
47、> 100 Mbps – Fast Ethernet(802.3u)</p><p> 1000 Mbps – Gigabit Ethernet(802.3z))</p><p> 10 Gigabit Ethernet – IEEE 802.3ae</p><p> 2.2 IP/TCP協(xié)議</p><p> TCP/IP
48、協(xié)議是在60 年代由麻省理工學(xué)院和一些商業(yè)組織為美國國防部開發(fā)的。TCP/IP協(xié)議是支持Internet/Intranet 的基本通信協(xié)議。傳輸控制協(xié)議TCP(Transmission Control Protocol),負(fù)責(zé)數(shù)據(jù)的流量控制,并保證傳輸?shù)恼_性;網(wǎng)際協(xié)議IP(Internet Protocol),負(fù)責(zé)將數(shù)據(jù)從一處傳往另一處。TCP/IP 協(xié)議具有廣泛的兼容性和可伸縮性,可連接不同的計算機(jī)網(wǎng)絡(luò)協(xié)議、不同的網(wǎng)絡(luò)設(shè)備。TCP/
49、IP 已成為網(wǎng)絡(luò)互連事實上的標(biāo)準(zhǔn),并成為支持Internet/Intranet 的協(xié)議標(biāo)準(zhǔn)。</p><p> 2.2.1 TCP/IP整體構(gòu)架概述</p><p> TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層
50、、網(wǎng)路層、傳輸層、會話層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為: </p><p> 應(yīng)用層:應(yīng)用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等。 傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP
51、和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。 互連網(wǎng)絡(luò)層:負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。 網(wǎng)絡(luò)接口層:對實際的網(wǎng)絡(luò)媒體的管理,定義如何使用實際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。</p><p> 2.2.2 TCP/IP中的協(xié)議
52、</p><p><b> IP協(xié)議</b></p><p> 網(wǎng)際協(xié)議IP(Internet Protocol)是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。網(wǎng)際協(xié)議(IP)是一個網(wǎng)絡(luò)層協(xié)議,它包含尋址信息和控制信息 ,可使數(shù)據(jù)包在網(wǎng)絡(luò)中路由。IP 協(xié)議是 TCP/IP 協(xié)議族中的主要網(wǎng)絡(luò)層協(xié)議,與 TCP 協(xié)議結(jié)合組成整個因特網(wǎng)協(xié)議的核心協(xié)議。IP 協(xié)議同樣
53、都適用于 LAN 和 WAN 通信。</p><p> TCP協(xié)議 傳輸控制協(xié)議TCP(Transfer Control Protocol) 是 TCP/IP 協(xié)議棧中的傳輸層協(xié)議,它通過序列確認(rèn)以及包重發(fā)機(jī)制,提供可靠的數(shù)據(jù)流發(fā)送和到應(yīng)用程序的虛擬連接服務(wù)。與 IP 協(xié)議相結(jié)合, TCP 組成了因特網(wǎng)協(xié)議的核心。</p><p> 關(guān)于流數(shù)據(jù)傳輸 ,TCP 交付一個由序列號
54、定義的無結(jié)構(gòu)的字節(jié)流。 這個服務(wù)對應(yīng)用程序有利,因為在送出到 TCP 之前應(yīng)用程序不需要將數(shù)據(jù)劃分成塊, TCP 可以將字節(jié)整合成字段,然后傳給 IP 進(jìn)行發(fā)送。</p><p> TCP 通過面向連接的、端到端的可靠數(shù)據(jù)報發(fā)送來保證可靠性。 TCP 在字節(jié)上加上一個遞進(jìn)的確認(rèn)序列號來告訴接收者發(fā)送者期望收到的下一個字節(jié)。如果在規(guī)定時間內(nèi),沒有收到關(guān)于這個包的確認(rèn)響應(yīng),重新發(fā)送此包。</p>&l
55、t;p><b> 2.3 UDP協(xié)議</b></p><p> 用戶數(shù)據(jù)報協(xié)議UDP(User Datagram Protocol)是 ISO 參考模型中一種無連接的傳輸層協(xié)議,提供面向事務(wù)的簡單不可靠信息傳送服務(wù)。 UDP 協(xié)議基本上是 IP 協(xié)議與上層協(xié)議的接口。 UDP 協(xié)議適用端口分辨運行在同一臺設(shè)備上的多個應(yīng)用程序。</p><p> 與 TCP
56、 不同, UDP 并不提供對 IP 協(xié)議的可靠機(jī)制、流控制以及錯誤恢復(fù)功能等。由于 UDP 比較簡單, UDP 頭包含很少的字節(jié),比 TCP 負(fù)載消耗少。</p><p> UDP 適用于不需要 TCP 可靠機(jī)制的情形,比如,當(dāng)高層協(xié)議或應(yīng)用程序提供錯誤和流控制功能的時候。 UDP 是傳輸層協(xié)議,服務(wù)于很多知名應(yīng)用層協(xié)議,包括網(wǎng)絡(luò)文件系統(tǒng)(NFS)、簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)、域名系統(tǒng)(DNS)以及簡單文件傳
57、輸系統(tǒng)(TFTP)。</p><p> 2.4 ICMP協(xié)議</p><p> Internet 控制信息協(xié)議ICMP(Internet Control Message Protocol)是 IP 組的一個整合部分。通過 IP 包傳送的 ICMP 信息主要用于涉及網(wǎng)絡(luò)操作或錯誤操作的不可達(dá)信息。ICMP 包發(fā)送是不可靠的,所以主機(jī)不能依靠接收 ICMP 包解決任何網(wǎng)絡(luò)問題。ICMP 的
58、主要功能有:通告網(wǎng)絡(luò)錯誤、通告網(wǎng)絡(luò)擁塞、協(xié)助解決故障、通告超時。</p><p><b> 協(xié)議結(jié)構(gòu)如下:</b></p><p> 2.5 Winpcap協(xié)議介紹</p><p> Winpcap是一個免費公開的軟件系統(tǒng)。它用于windows系統(tǒng)下的直接的網(wǎng)絡(luò)編程。大多數(shù)網(wǎng)絡(luò)應(yīng)用程序訪問網(wǎng)絡(luò)是通過廣泛使用的套接字。這種方法很容易實現(xiàn)網(wǎng)絡(luò)
59、數(shù)據(jù)傳輸,因為操作系統(tǒng)負(fù)責(zé)底層的細(xì)節(jié)(比如協(xié)議棧,數(shù)據(jù)流組裝等)以及提供了類似于文件讀寫的函數(shù)接口。</p><p> 2.5.1 Winpcap 的組成</p><p> 第一個模塊NPF(Netgroup Packet Filter),是一個虛擬設(shè)備驅(qū)動程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊,這個過程中包括了一些操作系統(tǒng)特有的代碼。</p>
60、;<p> 第二個模塊packet.dll 為win32 平臺提供了一個公共的接口。不同版本的Windows 系統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。Packet.dll 用于解決這些不同。調(diào)用Packet.dll 的程序可以運行在不同版本的Windows 平臺上,而無需重新編譯。</p><p> 第三個模塊Wpcap.dll 是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。packet.dl
61、l直接映射了內(nèi)核的調(diào)用。Wpcap.dll 提供了更加友好、功能更加強(qiáng)大的函數(shù)調(diào)用。</p><p> 2.5.2 Winpacp的功能</p><p> Winpcap 可以為Win32 應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的能力。它提供了以下的各項功能:</p><p> a. 捕獲原始數(shù)據(jù)包,包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的以及相互之間交換的數(shù)據(jù)包;</p&
62、gt;<p> b. 在數(shù)據(jù)包發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)包過濾掉;</p><p> c. 在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)包;</p><p> d. 收集網(wǎng)絡(luò)通信過程中的統(tǒng)計信息。</p><p> Winpcap 的主要功能在于獨立于主機(jī)協(xié)議(如TCP-IP)而發(fā)送和接收原始數(shù)據(jù)報。也就是說,Winpcap 不能阻塞,過濾或
63、控制其他應(yīng)用程序數(shù)據(jù)報的發(fā)收,它僅僅只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報。目前基于Winpcap 的應(yīng)用主要有:WinDump、Analyzer、Ethereal 以及snort,這些軟件能夠捕捉網(wǎng)絡(luò)通信、讀取并翻譯來自其他系統(tǒng)的tcpdump 類型二進(jìn)制數(shù)據(jù)包。另外還有Sniffer,Project URL Snooper,Hidownload 等有特定實際用途的網(wǎng)絡(luò)軟件。</p><p> 2.6 系統(tǒng)開發(fā)工具簡
64、介</p><p> 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)是基于WINPCAP 進(jìn)行開發(fā)的,采用C#作為開發(fā)平臺, Mirsoft SQL Server 作為流量分析系統(tǒng)的數(shù)據(jù)庫管理系統(tǒng),以Mirsoft SQL Server 數(shù)據(jù)庫作為前后臺交互的中間層。</p><p> 2.6.1 C#簡介</p><p> C# (C sharp) 是微軟對這一問題的解決方案。
65、C#是一種最新的、面向?qū)ο蟮木幊陶Z言。它使得程序員可以快速地編寫各種基于Microsoft .NET平臺的應(yīng)用程序,Microsoft .NET提供了一系列的工具和服務(wù)來最大程度地開發(fā)利用計算與通訊領(lǐng)域。</p><p> C#是一種現(xiàn)代的面向?qū)ο笳Z言。它使程序員快速便捷地創(chuàng)建基于Microsoft .NET平臺的解決方案。這種框架使C#組件可以方便地轉(zhuǎn)化為XML服務(wù),從而使任何平臺的應(yīng)用程序都可以通過Inte
66、rnet調(diào)用它。</p><p> C#增強(qiáng)了開發(fā)者的效率,同時也致力于消除編程中可能導(dǎo)致嚴(yán)重結(jié)果的錯誤。C#使C/C++程序員可以快速進(jìn)行網(wǎng)絡(luò)開發(fā),同時也保持了開發(fā)者所需要的強(qiáng)大性和靈活性。</p><p> 2.6.2 Mirsoft SQL Server簡介</p><p> SQL Server 是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它最初是由Microsoft
67、Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個OS/2 版本。在Windows NT 推出后,Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上,專注于開發(fā)推廣SQL Server 的Windows NT 版本。Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用。</
68、p><p> SQL Server 2000 是Microsoft 公司推出的SQL Server 數(shù)據(jù)庫管理系統(tǒng),該版本繼承了SQL Server 7.0 版本的優(yōu)點,同時又比它增加了許多更先進(jìn)的功能。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點,可跨越從運行Microsoft Windows 98 的膝上型電腦到運行Microsoft Windows 2000 的大型多處理器的服務(wù)器等多種平臺使用。
69、0;</p><p> 第三章 系統(tǒng)詳細(xì)設(shè)計</p><p> 前面我們對基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)的進(jìn)行了分析,并對相關(guān)的技術(shù)和開發(fā)工具進(jìn)行了介紹,在本章中我們將給出詳細(xì)的設(shè)計方案。</p><p> 3.1系統(tǒng)開發(fā)目的及設(shè)計目標(biāo)</p><p> 本流量分析系統(tǒng)將用來動態(tài)檢測子網(wǎng)內(nèi)的網(wǎng)絡(luò)流量,實現(xiàn)針對不同網(wǎng)絡(luò)協(xié)議和不同網(wǎng)絡(luò)服務(wù)的相
70、關(guān)數(shù)據(jù)包流量的實時分析,提供圖形化分析工具,把分析所得的結(jié)果通過如折線圖、柱狀圖、餅狀圖等圖形化的界面顯示出來,并將檢測數(shù)據(jù)保存到數(shù)據(jù)庫。在監(jiān)視網(wǎng)絡(luò)流量的基礎(chǔ)上,通過制定一定的監(jiān)控策略,對網(wǎng)絡(luò)環(huán)境中出現(xiàn)的流量異常情況,按警戒要求匯總,使用戶能及時的采取相應(yīng)的預(yù)防或補救的措施。</p><p> 3.2 系統(tǒng)整體設(shè)計思想</p><p> 根據(jù)流量分析系統(tǒng)的開發(fā)目的及設(shè)計目標(biāo),將系統(tǒng)定位
71、于一個包含數(shù)據(jù)包捕獲分析和數(shù)據(jù)存儲、實時監(jiān)控、數(shù)據(jù)查詢與報警三個模塊。</p><p> 其中,捕獲分析模塊是系統(tǒng)的后臺運行程序,主要負(fù)責(zé)的是,通過使用Winpcap 協(xié)議,對通過所監(jiān)聽的網(wǎng)絡(luò)適配器的所有數(shù)據(jù)包進(jìn)行捕獲。這一部分屬于一些底層的操作,并且沒有對所捕獲的數(shù)據(jù)進(jìn)行顯示,而是通過前臺用戶界面調(diào)用數(shù)據(jù)庫數(shù)據(jù)實現(xiàn)數(shù)據(jù)的實時監(jiān)控功能。數(shù)據(jù)存儲是基于前一個捕獲分析模塊所捕獲并且分析過的數(shù)據(jù)包,對得到分析結(jié)果的數(shù)
72、據(jù)包進(jìn)行分類統(tǒng)計(基于不同網(wǎng)絡(luò)協(xié)議或者不同網(wǎng)絡(luò)服務(wù)),并把統(tǒng)計的結(jié)果存入到Mirsoft SQL Server 數(shù)據(jù)庫中,以供前臺顯示程序調(diào)用。該模塊主要的任務(wù)就是Mirsoft SQL Server 數(shù)據(jù)庫中建立好用于存儲捕獲分析模塊分析所得的結(jié)果的數(shù)據(jù)庫及指定的表格,建立好.NET對Mirsoft SQL Server 數(shù)據(jù)庫的連接,最后就是將所得的結(jié)果存入指定的數(shù)據(jù)庫中。</p><p> 實時監(jiān)控模塊主
73、要分?jǐn)?shù)字監(jiān)控和圖形監(jiān)控兩個部分。其中數(shù)字監(jiān)控主要通過連接數(shù)據(jù)庫,每秒刷新一次數(shù)據(jù)庫數(shù)據(jù)然后將查詢所得的數(shù)據(jù)分類在前臺顯示實現(xiàn)實時監(jiān)控,而圖形監(jiān)控是采用柱狀圖的形式顯示用戶計算機(jī)當(dāng)前的輸出流量、輸入流量、總流量,也是每秒刷新一次數(shù)據(jù)。</p><p> 數(shù)據(jù)查詢與報警模塊主要實現(xiàn)對后臺捕獲程序捕獲的所有歷史數(shù)據(jù)包進(jìn)行分類查詢,并且通過報警設(shè)置子模塊對滿足設(shè)置的數(shù)據(jù)進(jìn)行篩選匯總。</p><p&
74、gt; 系統(tǒng)整體流程如圖3-2-1所示:</p><p> 圖3-2-1 系統(tǒng)整體流程圖</p><p> 3.3 數(shù)據(jù)包捕獲分析</p><p> 此模塊是整個系統(tǒng)得以實現(xiàn)的關(guān)鍵部分,只有在后臺捕獲數(shù)據(jù)包的情況下系統(tǒng)才能進(jìn)行后續(xù)操作。</p><p> 3.3.1 網(wǎng)絡(luò)數(shù)據(jù)包捕獲原理</p><p> 以
75、太網(wǎng)(Ethernet)具有共享介質(zhì)的特征,信息是以明文的形式在網(wǎng)絡(luò)上傳輸,當(dāng)網(wǎng)絡(luò)適配器設(shè)置為監(jiān)聽模式(混雜模式,Promiscuous)時,由于采用以太網(wǎng)廣播信道爭用的方式,使得監(jiān)聽系統(tǒng)與正常通信的網(wǎng)絡(luò)能夠并聯(lián)連接,并可以捕獲任何一個在同一沖突域上傳輸?shù)臄?shù)據(jù)包。IEEE802.3 標(biāo)準(zhǔn)的以太網(wǎng)采用的是持續(xù) CSMA 的方式,正是由于以太網(wǎng)采用這種廣播信道爭用的方式,使得各個站點可以獲得其他站點發(fā)送的數(shù)據(jù)。運用這一原理使信息捕獲系統(tǒng)能夠
76、攔截的我們所要的信息,這是捕獲數(shù)據(jù)包的物理基礎(chǔ)。 以太網(wǎng)是一種總線型的網(wǎng)絡(luò),從邏輯上來看是由一條總線和多個連接在總線上的站點所組成各個站點采用上面提到的 CSMA/CD 協(xié)議進(jìn)行信道的爭用和共享。每個站點(這里特指計算機(jī)通過的接口卡)網(wǎng)卡來實現(xiàn)這種功能。網(wǎng)卡主要的工作是完成對于總線當(dāng)前狀態(tài)的探測,確定是否進(jìn)行數(shù)據(jù)的傳送,判斷每個物理數(shù)據(jù)幀目的地是否為本站地址,如果不匹配,則說明不是發(fā)送到本站的而將它丟棄。如果是的話,接收該數(shù)據(jù)幀
77、,進(jìn)行物理數(shù)據(jù)幀的 CRC 校驗,然后將數(shù)據(jù)幀提交給LLC 子層。</p><p> 3.3.2 Winpcap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和過濾的設(shè)計步驟</p><p> 流量分析系統(tǒng)中數(shù)據(jù)包的捕獲主要是通過調(diào)用Winpcap 協(xié)議來捕獲數(shù)據(jù)包的。Winpacp作為一個網(wǎng)絡(luò)底層的驅(qū)動,提供了許多的API 供開發(fā)人員調(diào)用,這些API 提供了許多不同的功能,通過這些API 可以實現(xiàn)諸多的功能,
78、包括從簡單的基本功能(如獲取網(wǎng)卡的列表,數(shù)據(jù)包的捕獲等)到統(tǒng)計和收集網(wǎng)絡(luò)流量等高級功能。主要步驟如下:</p><p> ?。?)打開網(wǎng)卡,并設(shè)為混雜模式。</p><p> ?。?)回調(diào)函數(shù) Network Tap 在得到監(jiān)聽命令后,從網(wǎng)絡(luò)設(shè)備驅(qū)動程序處收集數(shù)據(jù)包把監(jiān)聽到的數(shù)據(jù)包負(fù)責(zé)傳送給過濾程序。</p><p> 圖3-3-1 基于Winpcap捕獲流程&l
79、t;/p><p> ?。?)當(dāng) Packet filter 監(jiān)聽到有數(shù)據(jù)包到達(dá)時,NDIS 中間驅(qū)動程序首先調(diào)用分組驅(qū)動程序,該程序?qū)?shù)據(jù)傳遞給每一個參與進(jìn)程的分組過濾程序。</p><p> ?。?)然后由 Packet filter 過濾程序決定哪些數(shù)據(jù)包應(yīng)該丟棄,哪些數(shù)據(jù)包應(yīng)該接收,是否需要將接收到的數(shù)據(jù)拷貝到相應(yīng)的應(yīng)用程序。</p><p> ?。?)通過分組過
80、濾器后,將數(shù)據(jù)未過濾掉的數(shù)據(jù)包提交給核心緩沖區(qū)。然后等待系統(tǒng)緩沖區(qū)滿后,再將數(shù)據(jù)包拷貝到用戶緩沖區(qū)。監(jiān)聽程序可以直接從用戶緩沖區(qū)中讀取捕獲的數(shù)據(jù)包。</p><p><b> ?。?)關(guān)閉網(wǎng)卡。</b></p><p> 圖3-3-2 數(shù)據(jù)包捕獲流程</p><p> 3.3.3 數(shù)據(jù)包捕獲的具體實現(xiàn)</p><p>
81、; 捕獲數(shù)據(jù)包的具體具體實現(xiàn)如下:</p><p> ?。?)獲得網(wǎng)絡(luò)接口列表</p><p> 通常, 一個基于WinPcap 的應(yīng)用程序所要做的第一件事, 就是獲得適合的網(wǎng)絡(luò)接口的列表. Libpcap 中的pcap_findalldevs()函數(shù)就是用來獲得適合的網(wǎng)絡(luò)接口的列表的,返回一個pcap_if 結(jié)構(gòu)的列表。由pcap_findalldevs() 函數(shù)返回的pcap_if
82、 結(jié)構(gòu)也包含了一個pcap_addr 結(jié)構(gòu)的列表, 它記錄了以下信息:</p><p> 1. 接口的地址列表</p><p> 2. 接口的掩碼列表(與地址列表一一對應(yīng))</p><p> 3. 接口的廣播地址列表(與地址列表一一對應(yīng))</p><p> 4. 目標(biāo)地址列表(與地址列表一一對應(yīng))</p><p&g
83、t;<b> ?。?)打開捕捉設(shè)備</b></p><p> 使用函數(shù)pcap_open_live() 來打開一個捕捉設(shè)備.函數(shù)原型:pcap_t * pcap_open_live (char *device, int snaplen, int promisc, int to_ms, char *ebuf)pcap_open_live()的第四個參數(shù)(to_ms)定義了采樣的間隔,在本系統(tǒng)
84、中將此參數(shù)設(shè)置為1000,即系統(tǒng)捕獲數(shù)據(jù)包進(jìn)行分析統(tǒng)計的時間間隔是1 秒。流量監(jiān)控系統(tǒng)監(jiān)控所得的結(jié)果都是每秒鐘通過的數(shù)據(jù)包的流量。</p><p><b> ?。?)設(shè)置過濾器</b></p><p> 過濾數(shù)據(jù)的函數(shù)是pcap_compile() 和pcap_setfilter()來實現(xiàn)的pcap_compile() 和pcap_setfilter()是用來編輯過
85、濾器和設(shè)置過濾器的pcap_compile()來編譯一個過濾設(shè)備,它通過一個高層的boolean 型變量和字串產(chǎn)生一系列的能夠被底層驅(qū)動所解釋的二進(jìn)制編碼。boolean 表示語法能夠在這個文件的過濾表示語法中找到。pcap_setfilter() 用來聯(lián)系一個在內(nèi)核驅(qū)動上過濾的過濾器,這時所有網(wǎng)絡(luò)數(shù)據(jù)包都將流經(jīng)過濾器,并拷貝到應(yīng)用程序中。</p><p><b> ?。?)捕捉數(shù)據(jù)包</b>
86、;</p><p> pcap_dispatch() 或者pcap_loop() 函數(shù)都可以用來捕捉數(shù)據(jù)包。這兩個函數(shù)非常相似,pcap_dispatch() 將會在超時后直接返回,而pcap_loop() 則一定要等到一定數(shù)量的數(shù)據(jù)包被處理了以后才會返回,也可以用pcap_next_ex()來代替pcap_loop()來捕獲數(shù)據(jù)包。以下捕獲數(shù)據(jù)包的主要代碼:</p><p> /*
87、開始捕獲數(shù)據(jù)包*/</p><p> pcap_loop(adhandle, 0, packet_handler, NULL);</p><p> 其中:packet_handler 是處理包的函數(shù)</p><p> (5)保存捕獲的數(shù)據(jù)包</p><p> WINPCAP 為我們提供了很多API 來將流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)包保存到一個堆文件
88、并讀取堆的內(nèi)容。系統(tǒng)中采用pcap_live_dump 將數(shù)據(jù)寫到文件。pcap_live_dump 有三個參數(shù):一個文件名,和一個該文件允許的最大長度還有一個參數(shù)是該文件所允許的最大包的數(shù)量。對這些參數(shù)來說0 意味著沒有最大限制。</p><p> 這里,我們可以在調(diào)用pcap_live_dump()前設(shè)置一個過濾器來定義哪些數(shù)據(jù)報需要存儲,并且可以用pcap_live_dump_ended()來等檢查是否數(shù)
89、據(jù)存儲完畢。</p><p> 需要說明的是,pcap_live_dump()是WinPcap 所特有的,而且只能夠應(yīng)用于Win32 環(huán)境。</p><p> ?。?) 收集網(wǎng)絡(luò)流量的統(tǒng)計信息</p><p> WinPcap 的另一高級功能:收集網(wǎng)絡(luò)流量的統(tǒng)計信息。程序必須打開一個網(wǎng)卡并用</p><p> pcap_setmode(
90、)將其設(shè)置為統(tǒng)計模式。在統(tǒng)計模式下編寫一個程序來監(jiān)視TCP 流量只是幾</p><p> 行代碼的事情在設(shè)置為統(tǒng)計模式前可以設(shè)置一個過濾器來指定要捕獲的協(xié)議包。如果沒有</p><p> 設(shè)置過濾器那么整個網(wǎng)絡(luò)數(shù)據(jù)都將被監(jiān)視。一旦設(shè)置了過濾器就可以調(diào)用pcap_setmode()</p><p> 來設(shè)置為統(tǒng)計模式,之后網(wǎng)卡開始工作在統(tǒng)計模式下。</p&
91、gt;<p> 3.3.4 對捕獲數(shù)據(jù)包的分析</p><p> 對前面所捕獲的數(shù)據(jù)包,我們都要進(jìn)行一定的分析,才能得到我們所要的結(jié)果??梢愿鶕?jù)系統(tǒng)的開發(fā)目的及設(shè)計目標(biāo)來確定分析的具體深入程度。本系統(tǒng)中是以針對不同網(wǎng)絡(luò)協(xié)議和不同網(wǎng)絡(luò)服務(wù)的相關(guān)數(shù)據(jù)包流量的實時分析為主要目的,所以只需對數(shù)據(jù)包分析出每個數(shù)據(jù)包的所基于的網(wǎng)絡(luò)協(xié)議類型和網(wǎng)絡(luò)服務(wù)的類型(即端口號)這一層面上。最后再對分析出來的數(shù)據(jù)包按照不
92、同的網(wǎng)絡(luò)協(xié)議類型或者不同的網(wǎng)絡(luò)服務(wù)類型進(jìn)行分類統(tǒng)計。程序中根據(jù)IP頭部的proto 字段的數(shù)值來判斷所屬的網(wǎng)絡(luò)協(xié)議類型。</p><p> 3.3.5 將分析的結(jié)果存入數(shù)據(jù)庫</p><p> 前面程序已經(jīng)捕獲的數(shù)據(jù)包進(jìn)行分析,并且根據(jù)數(shù)據(jù)包所屬的不同的網(wǎng)絡(luò)協(xié)議類型或者不同的網(wǎng)絡(luò)服務(wù)進(jìn)行了分類,并且用參數(shù)進(jìn)行各種數(shù)據(jù)包的數(shù)量的統(tǒng)計,現(xiàn)在這個階段就是要將這些統(tǒng)計的結(jié)果存入到數(shù)據(jù)庫中。首先
93、,要在程序中建立對Mirsoft SQL Server 數(shù)據(jù)庫的初始化連接,在程序中主要通過一段Mirsoft SQL Serverdb_init()的函數(shù)來實現(xiàn),調(diào)用Mirsoft SQL Server 提供的API 中的Mirsoft SQL Server_init、Mirsoft SQL Server_real_connect 等函數(shù)來連接數(shù)據(jù)庫,連接成功后,在指定的數(shù)據(jù)庫中建立用來存儲統(tǒng)計數(shù)據(jù)的表,然后每隔一秒鐘,將這一秒鐘所統(tǒng)
94、計的流量數(shù)據(jù)存入到數(shù)據(jù)庫中的這個表中。</p><p> 3.4 數(shù)據(jù)庫的設(shè)計</p><p> 于在本系統(tǒng)中,數(shù)據(jù)庫扮演著一個中介橋梁的作用,是用來連接貫穿前臺后臺程序的重要模塊,系統(tǒng)中的所有的數(shù)據(jù)都要在這個數(shù)據(jù)庫中進(jìn)行存入、中轉(zhuǎn)、輸出等等。所以說,數(shù)據(jù)庫設(shè)計的好壞,直接影響到整個系統(tǒng)運行的效率高低。如果說,后臺的數(shù)據(jù)包捕獲模塊是系統(tǒng)成功運行的前提的話,那么數(shù)據(jù)庫存儲模塊則是整個系統(tǒng)
95、的中心,是系統(tǒng)最關(guān)鍵的模塊。</p><p> 數(shù)據(jù)庫中存儲數(shù)據(jù)最重要的部分就是每秒鐘通過網(wǎng)絡(luò)適配器的各種類型的數(shù)據(jù)包的數(shù)量的即時數(shù)據(jù)。所以,數(shù)據(jù)庫中主要用兩個表來存儲這些數(shù)據(jù),表INFO存儲基于不同網(wǎng)絡(luò)協(xié)議類型的統(tǒng)計數(shù)據(jù)和基于不同網(wǎng)絡(luò)服務(wù)類型的統(tǒng)計數(shù)據(jù)用,還有一個表Alarm用來存儲報警數(shù)據(jù),前臺程序查詢數(shù)據(jù)庫時同時檢測是否有流量異常的情況,如果有,將報警數(shù)據(jù)存入報警數(shù)據(jù)表中。</p><
96、p> 用來存儲捕獲分析模塊所分析統(tǒng)計的結(jié)果,主要存儲的是每一次采樣的時間、數(shù)據(jù)包的源IP地址、UDP包數(shù)、TCP包數(shù)、ICMP包數(shù)。</p><p> 數(shù)據(jù)存入后效果如圖3-4―1所示:</p><p> 圖3-4-1 數(shù)據(jù)存儲效果截圖</p><p> 3.5 實時監(jiān)控設(shè)計</p><p> 此模塊分?jǐn)?shù)字監(jiān)控和圖形監(jiān)控兩個部
97、分,下面將詳細(xì)介紹這兩個部分的設(shè)計和實現(xiàn)。</p><p> 3.5.1 數(shù)字監(jiān)控</p><p> 數(shù)字監(jiān)控功能完全基于后臺數(shù)據(jù)包捕獲模塊下實現(xiàn)。捕獲程序每秒捕獲一次數(shù)據(jù)并把數(shù)據(jù)存入Mirsoft SQL Server數(shù)據(jù)庫的NetmonitorInfo表中,當(dāng)啟動數(shù)字監(jiān)控功能時,系統(tǒng)通過連接數(shù)據(jù)庫并且每秒刷新數(shù)據(jù)庫,把數(shù)據(jù)庫中的新記錄添加到主界面列表框顯示從而達(dá)到實時監(jiān)控目的。&l
98、t;/p><p> 3.5.2 圖形監(jiān)控</p><p> 系統(tǒng)調(diào)用任務(wù)管理器的數(shù)據(jù),然后采用C#的圖形繪制功能,將數(shù)據(jù)以柱狀圖的形式繪制出來。</p><p> 如圖3-5-1所示:</p><p> 圖3-5-1 流量圖形監(jiān)控截圖</p><p> 3.6 數(shù)據(jù)查詢和刪除</p><p&g
99、t; 此模塊主要用來方便用戶對歷史數(shù)據(jù)的查詢、統(tǒng)計,并且將系統(tǒng)捕獲的異常數(shù)據(jù)匯總給用戶,使用戶能及時的采取相應(yīng)的措施。</p><p> 3.6.1 歷史數(shù)據(jù)查詢和統(tǒng)計</p><p> 后臺數(shù)據(jù)包捕獲程序捕獲的數(shù)據(jù)都保存在Mirsoft SQL Server數(shù)據(jù)庫的表NetmonitorInfo中,當(dāng)用戶需要對這些數(shù)據(jù)做查詢、統(tǒng)計、刪除等操作時可以通過此模塊實現(xiàn)。</p>
100、;<p> (1) 歷史數(shù)據(jù)的查詢是通過連接數(shù)據(jù)庫,執(zhí)行select語句查詢數(shù)據(jù)庫記錄,將記錄顯示在對應(yīng)的主界面列表框?qū)崿F(xiàn)。</p><p> (2) 歷史數(shù)據(jù)的統(tǒng)計是查詢NetmonitorInfo表中所有記錄,在列表框顯示總記錄數(shù)量和各種數(shù)據(jù)包總數(shù)。</p><p> (3) 清理數(shù)據(jù)是指當(dāng)用戶不再需要數(shù)據(jù)庫中的所有歷史數(shù)據(jù)時,可以通過此功能刪除表Netmonito
101、rInfo中所有記錄。</p><p> 3.6.2 報警設(shè)置、數(shù)據(jù)刷新、刪除</p><p> 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的一個很重要的功能就是能檢測數(shù)據(jù)包的異常流量,讓用戶及時采取相關(guān)措施。用戶通過報警設(shè)置模塊設(shè)置數(shù)據(jù),當(dāng)系統(tǒng)檢測到滿足用戶設(shè)置的流量限制時判斷為異常數(shù)據(jù),并將這些數(shù)據(jù)存入Mirsoft SQL Server數(shù)據(jù)表Alarm中提供給用戶。</p><p>
102、; (1) 報警設(shè)置的實現(xiàn)</p><p> 創(chuàng)建報警設(shè)置對話框和對話框類,分別給TCP包數(shù)、UDP包數(shù)、ICMP包數(shù)創(chuàng)建成員變量。</p><p> (2) 報警數(shù)據(jù)篩選、統(tǒng)計</p><p> 當(dāng)報警數(shù)據(jù)設(shè)置完畢之后,系統(tǒng)對Mirsoft SQL Server數(shù)據(jù)庫表NetmonitorInfo中的記錄進(jìn)行篩選,把所有滿足報警設(shè)置的記錄保存到表Alarm
103、中。</p><p> (3) 清理數(shù)據(jù)是指當(dāng)用戶不再需要數(shù)據(jù)庫中的所有報警數(shù)據(jù)時,可以通過此功能刪除表Alarm中所有記錄。</p><p><b> 3.7界面處理</b></p><p> 程序的界面設(shè)計以簡潔明快的風(fēng)格,非常友好的同用戶交流。</p><p><b> 主要內(nèi)容:</b&g
104、t;</p><p> 按鈕設(shè)定:包括了監(jiān)控功能和報警設(shè)定及歷史查詢,還有刪除功能。</p><p> 主監(jiān)控窗口中包括了如下方面內(nèi)容:</p><p> 主統(tǒng)計表,包括來源IP地址,主要類型包和其他類型包的累計數(shù)</p><p> 即時流量監(jiān)控圖,直觀的表達(dá)了當(dāng)前的流量</p><p> 詳細(xì)流量表,按照每
105、秒一次進(jìn)行包的統(tǒng)計</p><p> 報警設(shè)定窗口:設(shè)定具體的警戒限制</p><p> 報警記錄窗口主要包括了如下方面內(nèi)容:</p><p> 詳細(xì)歷史數(shù)據(jù)表,記錄了每秒的各類包的統(tǒng)計量和流速</p><p> 報警數(shù)據(jù)表,把超過了限定的流量數(shù)據(jù)匯總</p><p> 第四章 系統(tǒng)實現(xiàn)結(jié)果</p>
106、;<p><b> 4.1 后臺服務(wù)</b></p><p> 圖4-1-1為SQL Server控制臺</p><p> 圖4-1-1 后臺數(shù)據(jù)庫控制臺</p><p> 圖4-1-2為本地服務(wù)管理器</p><p> 圖4-1-2 SQL 本地服務(wù)管理器</p><p>
107、;<b> 4.2 實時監(jiān)控</b></p><p> 主程序主要分下列功能模塊:實時監(jiān)控、數(shù)據(jù)清除,報警界限、歷史記錄查看。</p><p> 圖4-2-1為系統(tǒng)運行初始界面:</p><p> 圖4-2-1 系統(tǒng)運行初始界面</p><p> 開始監(jiān)控后,系統(tǒng)會以一秒為間隔對捕獲的數(shù)據(jù)包做實時監(jiān)控。<
108、/p><p> 監(jiān)控主界面在主列表框內(nèi)顯示數(shù)據(jù)包捕獲的時間、源地址IP、IP包數(shù)、TCP包數(shù)、UDP包數(shù)、ICMP包數(shù)</p><p> 如圖4-2-2所示運行主界面:</p><p> 圖4-2-2 實時監(jiān)控主界面</p><p> 圖4-2-3為主統(tǒng)計窗口</p><p> 圖4-2-3 主統(tǒng)計窗口</
109、p><p> 圖4-2-4為每秒詳細(xì)流量表</p><p> 圖4-2-4 詳細(xì)流量表</p><p> 當(dāng)選擇清除數(shù)據(jù)時,如圖4-2-5</p><p> 圖4-2-5 清除監(jiān)控數(shù)據(jù)</p><p> 選擇停止監(jiān)控后,最下方將表示該次統(tǒng)計的時間,總流量和網(wǎng)速,如圖4-2-6</p><p&g
110、t; 圖4-2-6 結(jié)束監(jiān)控統(tǒng)計</p><p><b> 4.3 報警設(shè)定</b></p><p> 選擇了報警界限按鈕后,將出現(xiàn)如下設(shè)定對話框,圖4-3-1:</p><p> 圖4-3-1 報警界限設(shè)定</p><p> 4.4 歷史數(shù)據(jù)統(tǒng)計模塊</p><p> 此模塊分兩個部
111、分:歷史數(shù)據(jù)的統(tǒng)計、報警數(shù)據(jù)的統(tǒng)計。主要功能是統(tǒng)計Mirsoft SQL Server數(shù)據(jù)庫中表portflowtable和表alarm中記錄的個數(shù)(同時在主界面列表框中顯示捕獲的TCP包、UDP包、ICMP包各自的數(shù)量。</p><p> 點擊,報警記錄 按鈕,出現(xiàn)新的窗口,如圖4-4-1:</p><p> 圖4-4-1 歷史記錄窗口</p><p> 上
112、端窗口為所有的每秒數(shù)據(jù)記錄,圖4-4-2:</p><p> 圖4-4-2 所有記錄窗口</p><p> 為避免遭受攻擊時候不斷彈出報警窗口,我只將報警記錄保存在數(shù)據(jù)庫中,并未作出實際的提示,這項功能可在將來改進(jìn),圖4-4-2:</p><p> 圖4-4-2 報警記錄窗口</p><p> 刷新記錄可以獲得最新的數(shù)據(jù)記錄。<
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控及分析工具畢業(yè)論文
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-任務(wù)書
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)-任務(wù)書
- 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)-畢業(yè)論文
- 基于流量分析的網(wǎng)絡(luò)監(jiān)控系統(tǒng)-畢業(yè)論文
- 畢業(yè)論文---網(wǎng)絡(luò)流量測量軟件的設(shè)計與實現(xiàn)
- 對等網(wǎng)絡(luò)流量識別技術(shù)研究[畢業(yè)論文]
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的研究和應(yīng)用.pdf
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng) ——流量分析程序設(shè)計-開題報告
- 基于SNMP協(xié)議的網(wǎng)絡(luò)流量監(jiān)控系統(tǒng).pdf
- 網(wǎng)絡(luò)流量監(jiān)控系統(tǒng) ——流量分析程序設(shè)計-開題報告
- 網(wǎng)絡(luò)流量應(yīng)用層特征提取與分析【畢業(yè)論文】
- 網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)畢業(yè)論文
- 畢業(yè)論文---網(wǎng)卡流量的監(jiān)控
- 新型網(wǎng)絡(luò)流量行為監(jiān)控系統(tǒng)NBOS的管理系統(tǒng).pdf
- 網(wǎng)絡(luò)流量監(jiān)控-第2章 網(wǎng)絡(luò)基礎(chǔ)知識
- 畢業(yè)論文---淺談通信網(wǎng)絡(luò)流量控制與擁塞控制技術(shù)
評論
0/150
提交評論