IP數(shù)據(jù)包的捕獲和解析

IP數(shù)據(jù)包的捕獲和解析

ID:47386473

大?。?9.50 KB

頁數(shù):11頁

時(shí)間:2019-07-12

IP數(shù)據(jù)包的捕獲和解析_第1頁
IP數(shù)據(jù)包的捕獲和解析_第2頁
IP數(shù)據(jù)包的捕獲和解析_第3頁
IP數(shù)據(jù)包的捕獲和解析_第4頁
IP數(shù)據(jù)包的捕獲和解析_第5頁
資源描述:

《IP數(shù)據(jù)包的捕獲和解析》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、1.課程設(shè)計(jì)應(yīng)達(dá)到的目的(1)使學(xué)生掌握網(wǎng)絡(luò)通信協(xié)議的基本工作原理;(2)培養(yǎng)學(xué)生基本掌握網(wǎng)絡(luò)編程的基本思路和方法;(3)能提高學(xué)生對(duì)所學(xué)計(jì)算機(jī)網(wǎng)絡(luò)理論知識(shí)的理解能力;(4)能提高和挖掘?qū)W生對(duì)所學(xué)知識(shí)的實(shí)際應(yīng)用能力和創(chuàng)新能力;(5)提高學(xué)生的科技論文寫作能力。2.課程設(shè)計(jì)題目及要求IP數(shù)據(jù)包捕獲與解析的設(shè)計(jì)。設(shè)計(jì)任務(wù):(1)掌握IP數(shù)據(jù)包的工作原理與報(bào)頭設(shè)計(jì)的相關(guān)字段(2)理解IP包的版本、頭長度、服務(wù)類型、數(shù)據(jù)包總長度、數(shù)據(jù)包標(biāo)識(shí)、分段標(biāo)志、分段偏移量、生存時(shí)間、上層協(xié)議類型、頭校驗(yàn)合、源IP地址和目的IP地址等內(nèi)容。設(shè)計(jì)內(nèi)容

2、:根據(jù)IP數(shù)據(jù)包的標(biāo)準(zhǔn)格式,編寫程序捕獲IP數(shù)據(jù)包并進(jìn)行解析,并將解析后各IP包的頭部與數(shù)據(jù)字段寫入輸出文件。數(shù)據(jù)字段的值從捕獲的文件中獲取。為了獲取網(wǎng)絡(luò)中的IP數(shù)據(jù)包,可以采用Winsock的數(shù)據(jù)庫查詢函數(shù)gethostname()和gethostbyname()解決,捕獲IP數(shù)據(jù)包并解析IP地址等內(nèi)容。3.課程設(shè)計(jì)思想IP數(shù)據(jù)報(bào)的格式說明:IP數(shù)據(jù)包格式包含了標(biāo)頭固定部分,標(biāo)頭可變部分和數(shù)據(jù)區(qū)三部分。IP數(shù)據(jù)報(bào)標(biāo)頭部分固定為20個(gè)字節(jié),其中包含了12個(gè)參數(shù)域,各參數(shù)域隱含著網(wǎng)間協(xié)議的傳輸機(jī)制。IP具體的標(biāo)頭格式如圖1所示。各

3、參數(shù)域的具體含義如下:1)版本號(hào):長度4位,表示所使用的IP協(xié)議的版本。IPv4版本號(hào)字段值為4;IPV6版本號(hào)字段號(hào)的值為6.2)標(biāo)頭長:長度4位,定義了一個(gè)以4B為一個(gè)單位的IP包的報(bào)頭長度3)服務(wù)類型:共8位,高3位組成優(yōu)先級(jí)子域,隨后4位組成服務(wù)類型子域。4)數(shù)據(jù)報(bào)總長度:總長度為2B(即6位)。定義了以字節(jié)為單位的數(shù)據(jù)報(bào)的總長度。5)重裝標(biāo)識(shí):長度16位,用于識(shí)別IP數(shù)據(jù)報(bào)的編號(hào),讓目的主機(jī)判斷新來的數(shù)據(jù)屬于哪個(gè)分組。6)分片標(biāo)識(shí):共3位,最高位為0;DF禁止分片標(biāo)識(shí)。DF=0,可以分片;DF=1,不能分片。MF:分片

4、標(biāo)識(shí)。MF=0,表示接的是最后一個(gè)分片;MF=1,不是最后一個(gè)分片。7)片偏移值:共13位,說明分片在整個(gè)數(shù)據(jù)報(bào)中的相對(duì)位置。8)生存周期:8位,用來設(shè)置數(shù)據(jù)數(shù)據(jù)報(bào)在整個(gè)網(wǎng)絡(luò)傳輸過程中的壽命。常以一個(gè)數(shù)據(jù)報(bào)可以經(jīng)過的最多的路由器跳步數(shù)來控制。9)協(xié)議類型:共8位,表示該IP數(shù)據(jù)報(bào)的高層協(xié)議類型。1)標(biāo)頭校驗(yàn)和:共16位,用于存放檢查報(bào)頭錯(cuò)誤的校驗(yàn)碼。2)源、宿主機(jī)地址:共32位,分別表示發(fā)送和接受數(shù)據(jù)報(bào)的源主機(jī)和宿主機(jī)的IP地址。3)選項(xiàng)數(shù)據(jù)域:0-40B,用于控制和測試。IP數(shù)據(jù)包的格式為:IP數(shù)據(jù)包的C++定義:typede

5、fstruct_IP{union{BYTEVersion;//版本BYTEHdrLen;//IHT};BYTEServiceType;//服務(wù)類型WORDTotalLen;//總長WORDID;//標(biāo)識(shí)union{WORDFlags;//標(biāo)志W(wǎng)ORDFragOff;//分段偏移};BYTETimeToLive;//生命期BYTEProtocol;//協(xié)議WORDHdrChksum;//頭校驗(yàn)和DWORDSrcAddr;//源地址DWORDDstAddr;//目的地址BYTEOptions;//選項(xiàng)}IP;套接字的使用:本程序使用

6、套接字socket編程,將網(wǎng)卡設(shè)為能夠接受流經(jīng)網(wǎng)卡的所有類型的數(shù)據(jù)包。首先,初始化套接字,然后監(jiān)聽數(shù)據(jù)包,解析數(shù)據(jù)包。SOCKETsock=socket(AF_INET,SOCK_RAW,IPPROTO_IP)用來創(chuàng)建套接字,其參數(shù)為通信發(fā)生的區(qū)字段和套接字的類型。WSAIoctl(sock,IO_RCVALL,&dwBufferInLen,sizeof(dwBufferInLen)函數(shù)用來把網(wǎng)卡設(shè)置為混雜模式。recv(sock,buffer,65535,0)函數(shù)用來接收經(jīng)過的IP包,其參數(shù)分別是套接字描述符,緩沖區(qū)的地址,緩

7、沖區(qū)的大小。4.課程設(shè)計(jì)流程圖NoYes開始構(gòu)造程序運(yùn)行文件,生成輸出文件創(chuàng)建并初始化原始套接字設(shè)置網(wǎng)卡混雜模式監(jiān)聽網(wǎng)卡捕獲和解析IP數(shù)據(jù)報(bào)輸出解析信息,并存入文檔結(jié)束是否達(dá)到需要次數(shù)五、部分程序設(shè)計(jì)的分析1、使用原始套接字要進(jìn)行IP層數(shù)據(jù)包的接收和發(fā)送,應(yīng)使用原始套接字。創(chuàng)建原始套接字的代碼如下:SOCKETsock;sock=WSASoccket(AF_INET,SOCK_RAW,IPPROTO_IP,NULL,0,WSA_FLAG_OVERLAPPED);在WSASoccket函數(shù)中,第一個(gè)參數(shù)指定通信發(fā)生的區(qū)字段,AF_

8、INET是針對(duì)Internet的,允許在遠(yuǎn)程主機(jī)之間通信。第二個(gè)參數(shù)是套接字的類型,在AF_INET地址族下,有SOCK_STREAM、SOCK_DGRAM、SOCK_RAW三種套接字類型。在這里,設(shè)置為SOCK_RAW,表示聲明的是一個(gè)原始套接字類型。第三個(gè)參

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。