版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、.計算機網(wǎng)絡(luò)課程設(shè)計報告課題:監(jiān)控 IP 包的流量專 業(yè) 班 級:計科 10101 班姓名(學號):張鳴宇( 201017010103):李 瑋( 201017010143)指 導 教 師:梅曉勇評閱意見:評定成績:目錄指導老師簽名:年月日;.一 目的和意義從社會角度來說,隨著人們對 Internet 的依賴性越來越高,網(wǎng)絡(luò)傳輸?shù)臉I(yè)務(wù)類型變得繽紛多彩, 在此背景下, 需要對網(wǎng)絡(luò)狀況, 網(wǎng)絡(luò)性能進行準確的檢測和評估,而這次課程設(shè)計正是對流量工程內(nèi)容研究。從學習的角度來說,此次課程設(shè)計將我們帶入網(wǎng)絡(luò)編程領(lǐng)域,進一步網(wǎng)絡(luò)知識的應(yīng)用,監(jiān)控 IP 包的流量課程設(shè)計讓我們進一步了解 IP 協(xié)議的基本內(nèi)容,
2、 對于掌握 TCP/IP 協(xié)議的主要內(nèi)容和學習網(wǎng)絡(luò)課程是十分重要的,此外,也加深了對 Winpcap 的理解和運用能力, 同時也增長了知識, 開闊了視野, 對于以后的學習有很大的幫助。二基本原理2.1 概述1. IP 協(xié)議IP 是 TCP/IP 模型中的網(wǎng)絡(luò)層協(xié)議,又稱為互聯(lián)網(wǎng)協(xié)議,是支持網(wǎng)間互連的數(shù)據(jù)報協(xié)議,它與TCP 協(xié)議一起構(gòu)成了 TCP/IP 協(xié)議族的核心。它提供網(wǎng)間連接的完善功能,包括IP 數(shù)據(jù)報規(guī)定互聯(lián)網(wǎng)范圍內(nèi)的IP 地址格式 2 。在因特網(wǎng)中IP 協(xié)議是能使連接到網(wǎng)上的所有計算機網(wǎng)絡(luò)實現(xiàn)相互通信的一套規(guī)則,規(guī)定了計算機在因特網(wǎng)上進行通信時應(yīng)當遵守的規(guī)則。任何廠家生產(chǎn)的計算機系統(tǒng),
3、 只要遵守 IP 協(xié)議就可以與因特網(wǎng)互連互通。IP 地址具有唯一性,根據(jù)用戶性質(zhì)的不同,可以分為不同的類別。IP 協(xié)議的特點如下:( 1) IP 協(xié)議是一種不可靠、無連接的數(shù)據(jù)報傳送協(xié)議。( 2) IP 協(xié)議是點對點的網(wǎng)絡(luò)層通信協(xié)議。( 3) IP 協(xié)議向通信層隱藏了物理網(wǎng)絡(luò)的差異。( 4) IP 協(xié)議以一種數(shù)據(jù)報的形式傳輸數(shù)據(jù),每個數(shù)據(jù)報獨立傳輸,可能通過不同路徑傳輸,因此可能不按順序到達目的地,或者出現(xiàn)重復(fù)。2.關(guān)于 Winpcap 庫Winpcap(windows packet capture)是 windows 平臺下一個買費的、公共的基于 windows 的網(wǎng)絡(luò)接口 API 庫。主要
4、為 win32 應(yīng)用程序提供訪問網(wǎng)絡(luò)底層的;.能力。Winpcap 的主要功能在于獨立于主機協(xié)議 (如 TCP/IP)發(fā)送和接收原始數(shù)據(jù)報。也就是說, Winpcap 不能阻塞、過濾或控制其他應(yīng)用程序數(shù)據(jù)報的收發(fā),它只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)報。因此,它不能用于 QoS 調(diào)度程序或個人防火墻。其功能有:(1) 捕獲原始數(shù)據(jù)包,包括在共享網(wǎng)絡(luò)上各主機發(fā)送接收的以及相互之間交換的數(shù)據(jù)包;(2) 捕獲原始數(shù)據(jù)包,包括在共享網(wǎng)絡(luò)上各主機發(fā)送接收的以及相互之間(3) 在數(shù)據(jù)包發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)包過濾掉;(4) 在網(wǎng)絡(luò)上發(fā)送原始數(shù)據(jù)包;(5) 收集網(wǎng)絡(luò)通信過程中的統(tǒng)計信息
5、。2.2 作用對 IP 包流量的控制主要是通過用VC+ 編程實現(xiàn)對網(wǎng)絡(luò)中IP 數(shù)據(jù)包流量的統(tǒng)計,實際上是編制程序,監(jiān)控網(wǎng)絡(luò),捕獲一段時間內(nèi)網(wǎng)絡(luò)上的IP 數(shù)據(jù)包,按IP 數(shù)據(jù)包的源地址統(tǒng)計出該源地址在該時間段內(nèi)發(fā)出的IP 包的個數(shù)。程序中會用到 Winpcap,它主要功能在于獨立于主機協(xié)議發(fā)送和接收原始數(shù)據(jù)報。本次課程設(shè)計中用 VC+ 實現(xiàn)基于 Winpcap 的網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和統(tǒng)計,基于 Winpcap 的應(yīng)用程序?qū)⒏鶕?jù)獲取網(wǎng)絡(luò)設(shè)備列表; 選擇網(wǎng)卡并打開; 設(shè)置過濾器; 捕獲數(shù)據(jù)包或者發(fā)送數(shù)據(jù)包;列出網(wǎng)卡列表,讓用戶選擇可用的網(wǎng)卡的步驟進行編寫三 需求分析3.1 系統(tǒng)功能需求分析近年來,網(wǎng)絡(luò)
6、病毒的出現(xiàn)和傳播更加劇了網(wǎng)絡(luò)狀況的復(fù)雜和不穩(wěn)定性. 在此背景下,需要對網(wǎng)絡(luò)狀況, 網(wǎng)絡(luò)性能進行準確的檢測和評估,而這些正是流量工程的研究內(nèi)容 . 而流量工程的主要任務(wù)是測量和評估網(wǎng)絡(luò)的運行狀況,性能。并能夠容易地使網(wǎng)絡(luò)的最終用戶看到和理解評估結(jié)果,能夠?qū)W(wǎng)絡(luò)中的突發(fā)時間能夠做出積極有效的反應(yīng), 以及研究和改進網(wǎng)絡(luò)協(xié)議, 網(wǎng)絡(luò)工作模式的機制, 以促進網(wǎng)絡(luò)服務(wù)的可靠性,保證網(wǎng)絡(luò)的正常運行。而我們在在這個課程設(shè)計里將編制一個程序,監(jiān)控網(wǎng)絡(luò),捕獲一段時間內(nèi)網(wǎng);.絡(luò)上的 IP 數(shù)據(jù)包,按 IP 數(shù)據(jù)包的源地址統(tǒng)計出該源地址在該時間段內(nèi)發(fā)出的IP 包的個數(shù),將其寫入日志文件中或用圖形表示出來。3.2 功能
7、函數(shù)部分本次課程設(shè)計主要運用了以下功能函數(shù):1 系統(tǒng)函數(shù)1)pcap_findalldevs(&alldevs,errbuf)說明:用來獲得網(wǎng)卡的列表, alldevs 為網(wǎng)絡(luò)適配器的列表的指針 ; char 型指針 ,當打開列表錯誤時返回錯誤信息2)pcap_open_live(head-name,1000,1,1000,errbuf)說明:以混雜模式方式打開網(wǎng)卡, name為要抓取的網(wǎng)絡(luò)設(shè)備的字符串,最大可抓取的字節(jié)長度為 1000 字節(jié),超時時間為 1000ms,當在超時內(nèi)上沒有數(shù)據(jù)到來時對網(wǎng)卡的讀操作將返回錯誤信息3)pcap_compile(fp,&fcode,packet_filt
8、er,1,netmask)說明:編譯過濾器, fp 是對網(wǎng)卡描述符,型號、名字, fcode 是一個 bpf_program 結(jié)構(gòu)的指針,在 pcap_compile()函數(shù)中被賦值。 1 表示對結(jié)果代碼進行優(yōu)化。 netmask參數(shù)指定本地網(wǎng)絡(luò)的網(wǎng)絡(luò)掩碼4)pcap_setfilter(fp,&fcode)5)說明:設(shè)置過濾器, 用來聯(lián)系一個在內(nèi)核驅(qū)動上過濾的過濾器,一旦調(diào)用,這時所有網(wǎng)絡(luò)數(shù)據(jù)包都將流經(jīng)相關(guān)的過濾器,并拷貝到應(yīng)用程序中,把 pcap_compile() 構(gòu)造的 filter 設(shè)置到 fp 上 ,6)pcap_freealldevs(alldevs)7)說明:釋放網(wǎng)絡(luò)適配器列表
9、空間8)pcap_next_ex(fp,&header,&pkt_data)說明:該函數(shù)從網(wǎng)絡(luò)設(shè)備中讀取一個數(shù)據(jù)包, fp- 設(shè)備指針, header-數(shù)據(jù)包頭, pkt_data-數(shù)據(jù)包內(nèi)容2. 自定義函數(shù)1)main(int argc,char *argv)說明:主函數(shù)通過調(diào)用主函數(shù)和其他自定義函數(shù), 實現(xiàn) IP 包流量監(jiān)控的功能, argv是 argc 第 0 個參數(shù),其中第 0 個參數(shù)是程序的全名,以后的參數(shù),命令行后面跟的用戶輸入的參數(shù)。2)addNode(long sourceIP)說明:將 IP 結(jié)點加入鏈表;.四 概要設(shè)計4.1 編程環(huán)境Microsoft Visual C+
10、6.04.2 模塊分析課 程設(shè) 計的 主要 目 的是 接收 統(tǒng)計 IP 包 ,所以 主 要任務(wù) 就 是設(shè)置網(wǎng)卡以 及相 關(guān)的 一系 列 操作 ,以 下為 一些 主要 功能 模塊 :(1)取得當前網(wǎng)絡(luò)設(shè)備列表(在標準輸出上顯示,以讓用戶進行選擇)。(2)將用戶選擇的 Ethernet卡以混雜模式打開,以接收到所有的數(shù)據(jù)包。(3)編譯并設(shè)置過濾器,此處的過濾器為“IP ”。(4)捕獲 IP 包并按包的源地址進行統(tǒng)計(用鏈表結(jié)構(gòu)進行實現(xiàn))其程序流程圖如下:;.開始獲取網(wǎng)卡列表選取 Ethernet網(wǎng)卡打開網(wǎng)卡編譯并設(shè)置過濾器捕獲包將包源地址加入列表否是否超時是顯示鏈表內(nèi)容結(jié)束;.五 詳細設(shè)計5.1
11、具體實現(xiàn)過程首先獲取網(wǎng)卡列表是為了得到網(wǎng)卡的相關(guān)信息,以便于用戶進行選擇,選取 Ethermet 網(wǎng)卡是用戶所選擇的網(wǎng)卡類型,編譯設(shè)置過濾器是為了編譯并設(shè)置過濾器是為了只捕獲網(wǎng)絡(luò)數(shù)據(jù)流的某些數(shù)據(jù), 打開網(wǎng)卡既將網(wǎng)卡設(shè)置為混雜 (統(tǒng)計)模式是為了接受所有經(jīng)過網(wǎng)卡的數(shù)據(jù)包, 包括不是發(fā)給本機的數(shù)據(jù)包, 開始主循環(huán)以是否超時為判斷條件, 循環(huán)體內(nèi)主要有捕獲 IP 數(shù)據(jù)包、將 IP 包的源地址加入鏈表、條件判斷,循環(huán)結(jié)束后輸出鏈表內(nèi)容,程序至此結(jié)束。具體的實現(xiàn)如下:1 取得網(wǎng)絡(luò)適配器列表并找到要監(jiān)聽的網(wǎng)絡(luò)適配器,alldevs 是 pcap_if_it指針,指向鏈表頭, errbuf 是 char 類
12、型數(shù)組,存儲錯誤信息 3 。 for(d=alldevs;d;d=d-next) /列出網(wǎng)卡列表 ,讓用戶進行選擇cout+j:name;if(d-description)cout descriptionendl;/描述網(wǎng)絡(luò)適配器接口for(d=alldevs,i=1;inext,i+);/ 找到選擇的網(wǎng)絡(luò)適配器head=d;/2 采用混雜模式打開網(wǎng)絡(luò)適配器if(fp=pcap_open_live(head-name,1000,1,1000,errbuf)=NULL)coutnUnable to open the adapter.endl;pcap_freealldevs(alldevs);r
13、eturn;3 編譯并設(shè)置過濾器if(pcap_compile(fp,&fcode,packet_filter,1,netmask)0) /編譯并設(shè)置過濾器;.coutnUnable to compile the packet filter.Check the syntax.n;pcap_freealldevs(alldevs);return;if(pcap_setfilter(fp,&fcode)0) / 設(shè)置濾波器cout=0)time(&end);/ 獲得系統(tǒng)時間if(end-beg=min*60)/ 計算系統(tǒng)時間break;if(res=0)continue;/超時ip_header
14、*ih;/找到 I 頭得位置ih=(ip_header*)(pkt_data+14);/14 為以太頭的長度link.addNode(ih-saddr);/將源 IP 地址加入鏈表;.5.2 主要數(shù)據(jù)結(jié)構(gòu)1) 此次課程設(shè)計主要采用了鏈表數(shù)據(jù)結(jié)構(gòu),具體的實現(xiàn)如下:class NodeListIPNode *pHead;IPNode *pTail;public:NodeList()pHead=pTail=NULL;NodeList()if(pHead!=NULL)IPNode *pTemp=pHead;pHead=pHead-pNext;delete pTemp;2)IP 包頭部結(jié)構(gòu)/struct
15、 ip_headerunsigned char ver_ihl; unsigned char tos; unsigned short tlen; unsigned short identification; unsigned short flags_fo; unsigned char tll; unsigned char proto; unsigned short crc; DWORD saddr;DWORD daddr;unsigned int op_pad;/ 版本號 (4 位 )+頭部長度 (4 位 )/服務(wù)類型/總長度/標識/標志 +片偏移/生存時間/協(xié)議/校驗碼/ 源地址/ 目的地址
16、/選項 +填充;.六 實現(xiàn)與測試6.1 實現(xiàn)與測試1)取得網(wǎng)絡(luò)適配器列表并找到要監(jiān)聽的網(wǎng)絡(luò)適配器號.2)正在監(jiān)聽 IP 數(shù)據(jù)包,時間為一分鐘;.3)最后的監(jiān)聽的結(jié)果;.七 心得結(jié)論在這一周的課程設(shè)計里,在老師同學幫助自己以及自己的努力下,我學到了很多的東西。在此期間老師給了我們很大的幫助, 老師的認真負責讓我們不再馬馬乎乎對待自己的學業(yè),在課堂上老師也以同樣的責任心來督促我們認真學習, 對于不懂的問題都會一一解答, 現(xiàn)在也如此, 這對于我們以后步入社會之后有很大的幫助, 無論做任何事情都要認真負責,對自己負責同時也對別人負責。在老師的指導之余,我還學到了一定的課外知識,以前從未聽過 Winpc
17、ap,現(xiàn)在我知道了它對于捕獲網(wǎng)絡(luò)上的一些數(shù)據(jù)信息很有幫助,從而豐富了我的知識,同時也知道了如何去利用它來為自己服務(wù),這是一個很大的進步。做這個題目我從網(wǎng)上找了很多的資料。但也不能盲目相信找來的資料,要通過自己的驗證沒錯誤后才能用。 不但是于此, 別的任何學習方面也一樣。 在自己查找資料的同時也鍛煉了我及時捕獲有用知識的能力, 我想這是我現(xiàn)在乃至以后最大的一個財富, 一個人最重要的就是要懂得如何去學, 學習不是被動的, 而是主動的,只有這樣我們才能學得到對于我們自己有幫助的東西,用VC+ 編程實現(xiàn) IP 數(shù)據(jù)報流量統(tǒng)計,開始這對于我來說是是一個很模糊的概念,但是當我在查找了很多資料之后我不再迷茫, 而是慢慢跟著我所要找的資料來靠近我所要達到的目標。這是我們每個人所要學會
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度個人裝修工程石材安裝合同
- 個人專屬高效勞務(wù)協(xié)議(2024優(yōu)化版)
- 2025版無人機植保作業(yè)質(zhì)量控制合同樣本3篇
- 教育信息化與學生成長檔案的建設(shè)研究
- 二零二五年度誠意金支付及旅游產(chǎn)品預(yù)購協(xié)議4篇
- 二零二五年度綠色食品生產(chǎn)設(shè)備按揭購買協(xié)議2篇
- 提升學生網(wǎng)路素養(yǎng)助力其終身學習與發(fā)展
- 2025版無子女離婚協(xié)議書:離婚后子女權(quán)益保障與家庭責任協(xié)議12篇
- 二零二五年度車庫門故障診斷與快速修復(fù)服務(wù)協(xié)議3篇
- 二零二五年度潔具綠色生產(chǎn)認證合同范本共20套3篇
- 17個崗位安全操作規(guī)程手冊
- 數(shù)學史簡介課件可編輯全文
- 2025年山東省濟南市第一中學高三下學期期末統(tǒng)一考試物理試題含解析
- 中學安全辦2024-2025學年工作計劃
- 網(wǎng)絡(luò)安全保障服務(wù)方案(網(wǎng)絡(luò)安全運維、重保服務(wù))
- 2024年鄉(xiāng)村振興(產(chǎn)業(yè)、文化、生態(tài))等實施戰(zhàn)略知識考試題庫與答案
- 現(xiàn)代科學技術(shù)概論智慧樹知到期末考試答案章節(jié)答案2024年成都師范學院
- 軟件模塊化設(shè)計與開發(fā)標準與規(guī)范
- 2024年遼寧鐵道職業(yè)技術(shù)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- 有機農(nóng)業(yè)種植模式
- 勞務(wù)派遣招標文件
評論
0/150
提交評論