版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、ip 數(shù)據(jù)報(bào)解析源地址目的地址青島農(nóng)業(yè)大學(xué)理學(xué)與信息科學(xué)學(xué)院計(jì)算機(jī)網(wǎng)絡(luò)綜合實(shí)習(xí)報(bào)告題目IP 數(shù)據(jù)報(bào)解析源地址 / 目的地址專業(yè)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)號(hào)姓名指導(dǎo)教師日 期2014 年 11 月 8 日計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)目錄一、設(shè)計(jì)任務(wù)和目的 -. 2 -二、設(shè)計(jì)要求 -. 2 -三、設(shè) 計(jì)內(nèi)容 -. 2 -3.1 原理概述 : -. 2 -3.1.1 點(diǎn)分十進(jìn)制表示法: - 2 -3.1.2 IP 數(shù)據(jù)報(bào)格式: - 2 -3.2 運(yùn)行結(jié)果及分析 - 4 -3.2.1 程序運(yùn)行及截圖 - 4 -3.2.2 分析 - 5 -四、設(shè)計(jì)方案改進(jìn)及建議 -. 5 -五、總 結(jié)體會(huì) -. 6 -六、主要參考文獻(xiàn)
2、 -. 6 -七、附錄 -. 6 -附錄 1 程序流程圖 - 6 -附錄 2 程序源代碼及解釋 - 8 - 9 -一、設(shè)計(jì)任務(wù)和目的設(shè)計(jì)一個(gè)解析 IP 數(shù)據(jù)包的程序, 并根據(jù)這個(gè)程序, 從 IP 數(shù)據(jù)報(bào)頭中解析出源地址 和目的地址等相關(guān)問(wèn)題,從而對(duì) IP 層的工作原理有更好的理解和認(rèn)識(shí)。通過(guò)實(shí)際操作, 加深對(duì)計(jì)算機(jī)網(wǎng)絡(luò)的理解,了解計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用的靈活性,加深對(duì)IP 數(shù)據(jù)報(bào)格式的了解,點(diǎn)分十進(jìn)制理解,鞏固所學(xué)習(xí)的 C 語(yǔ)言。二、設(shè)計(jì)要求編寫計(jì)算機(jī)程序, 從網(wǎng)絡(luò)捕獲數(shù)據(jù)包, 從 IP 數(shù)據(jù)報(bào)頭中解析出源地址和目的地址, 將它們以點(diǎn)分十進(jìn)制形式輸出。三、設(shè)計(jì)內(nèi)容3.1 原理概述 :3.1.1 點(diǎn)分十
3、進(jìn)制表示法:對(duì)主機(jī)或路由器來(lái)說(shuō), ip 地址都是 32位的二進(jìn)制代碼, 為了提高可讀性, 我們常常 把 32 位的 ip 地址中的每 8 位用其等效的十進(jìn)制數(shù)字表示, 并且在這些數(shù)字之間加上一 個(gè)點(diǎn),這就叫做點(diǎn)分十進(jìn)制表示法( dotted decimal notation )。例如:一個(gè) ip 地址: 100000000 00001011 00000011 00011111用 點(diǎn)分十進(jìn)制表示為: 1讀起來(lái)要方 便得多。3.1.2 IP 數(shù)據(jù)報(bào)格式:IP 協(xié)議所處理的數(shù)據(jù)單元稱為 IP 數(shù)據(jù)報(bào)。其格式如下:圖 3-1 數(shù)據(jù)報(bào)格式圖 1IP 數(shù)據(jù)報(bào)由首部和數(shù)據(jù)兩部分組成,首部
4、又分為定長(zhǎng)部分和變長(zhǎng)部分。 版本(VER) :4 位,表示數(shù)據(jù)報(bào)的 IP 協(xié)議版本,當(dāng)前的 IP 協(xié)議版本號(hào)為 4,即 IPv4; 下一代網(wǎng)絡(luò)協(xié)議 IPv6,版本號(hào)為 6.首部長(zhǎng)度( HLEN ):4 位,表示以字長(zhǎng)( 4 字節(jié))為單位的數(shù)據(jù)報(bào)首部長(zhǎng)度。服務(wù)類型(SERVICE TYPE ): 8 位,規(guī)定本數(shù)據(jù)報(bào)的處理方式。 前三位是優(yōu)先級(jí), 0-7,0 表示最低, 7最高(最重要),但目前的 IPv4 沒(méi)有使用優(yōu)先級(jí)。后 4 位是 TOS, 表示本數(shù)據(jù)報(bào)在傳輸過(guò)程中所希望得到的服務(wù), D-最小延遲( minimize delay ); T-最 大吞吐率( maximize througho
5、ut );R-最高可靠性( maximize reliability );C- 最低成 本( minimize cost )。值得注意的有 2 點(diǎn):服務(wù)類型代表用戶的希望,并不具有強(qiáng)制性,目前許多設(shè)備 TCP/IP 中不支持服 務(wù)類型特性。在 D、T、R、C 這 4個(gè)參數(shù)中只能設(shè)置其中一個(gè)。 數(shù)據(jù)報(bào)總長(zhǎng)度: 在 IP 數(shù)據(jù)報(bào)封裝到以太網(wǎng)幀中進(jìn)行傳輸時(shí)很有用 . 標(biāo)識(shí)( IDENTIFICATION ): 16 位每個(gè) IP 數(shù)據(jù)報(bào)都有一個(gè)本地唯一的標(biāo)識(shí)符, 它由信源機(jī)賦予 IP 數(shù)據(jù)報(bào)。每次自動(dòng)加 1. 標(biāo)志( FLAGS ):3位,表示該 IP 數(shù)據(jù)報(bào)是否允許分片以及是否最后一片。 片偏移(
6、 FRAGMENTATION OFFSET ):表示本片數(shù)據(jù)在他所屬原始數(shù)據(jù)報(bào)數(shù)據(jù)區(qū)的偏移量 生存時(shí)間( time to live,TTL ) : 8 位, 協(xié) 議 ( PROTOCOL ): 8 位 , 指 明 被 IP 數(shù) 據(jù) 報(bào) 封 裝 的 協(xié) 議:ICMP=1,IGMP=2,TCP=6,EGP=8,UDP=17,OSPF=89.首部校驗(yàn)和( HEADER CHECKSUM ):16 位,保證首部數(shù)據(jù)完整性。 源 IP 地址( SOURCE ADDRESS ):32 位( IPv4 中),發(fā)送方源地址。 目的地址( DESTINATION ADDRESS ): 32位(IPv4 中),最
7、總接收方 IP 地址。 IP 選項(xiàng)( IP OPTIONS ):變長(zhǎng)字段,傳輸數(shù)據(jù)報(bào)時(shí)的附加功能。 本實(shí)驗(yàn)的功能主要是實(shí)現(xiàn)將 32 位的二進(jìn)制表示成十進(jìn)制數(shù)圖 3-2 IP 組成結(jié)構(gòu)圖 23.2 運(yùn)行結(jié)果及分析3.2.1 程序運(yùn)行及截圖圖 3-2-1 程序運(yùn)行圖圖 3-2-2 運(yùn)行結(jié)果圖3.2.2 分析IP 數(shù)據(jù)報(bào)的首部長(zhǎng)度和數(shù)據(jù)長(zhǎng)度都是可變長(zhǎng)的, 但總是 4 字節(jié)的整數(shù)倍。對(duì)于 IPv4 , 4位版本字段是 4。4位首部長(zhǎng)度的數(shù)值是以 4 字節(jié)為單位的,最小值為 5,也就是說(shuō)首 部長(zhǎng)度最小是 4x5=20 字節(jié),也就是不帶任何選項(xiàng)的 IP 首部,4 位能表示的最大值是 15, 也就是說(shuō)首部長(zhǎng)
8、度最大是 60 字節(jié)。8 位 TOS 字段有 3 個(gè)位用來(lái)指定 IP 數(shù)據(jù)報(bào)的優(yōu)先 級(jí)(目前已經(jīng)廢棄不用) ,還有 4 個(gè)位表示可選的服務(wù)類型(最小延遲、最大呑吐量、 最大可靠性、最小成本) ,還有一個(gè)位總是 0。總長(zhǎng)度是整個(gè)數(shù)據(jù)報(bào)(包括 IP 首部和 IP 層 payload)的字節(jié)數(shù)。每傳一個(gè) IP 數(shù)據(jù)報(bào), 16 位的標(biāo)識(shí)加 1,可用于分片和重新組裝 數(shù)據(jù)報(bào)。 3 位標(biāo)志和 13位片偏移用于分片。 TTL (Time to live) 是這樣用的:源主機(jī)為 數(shù)據(jù)包設(shè)定一個(gè)生存時(shí)間,比如 64,每過(guò)一個(gè)路由器就把該值減 1,如果減到 0 就表示 路由已經(jīng)太長(zhǎng)了仍然找不到目的主機(jī)的網(wǎng)絡(luò), 就
9、丟棄該包, 因此這個(gè)生存時(shí)間的單位不 是秒,而是跳( hop)。協(xié)議字段指示上層協(xié)議是 TCP、UDP、ICMP 還有 IGMP 。然 后是校驗(yàn)和,只校驗(yàn) IP 首部,數(shù)據(jù)的校驗(yàn)由更高層協(xié)議負(fù)責(zé)。 IPv4 的 IP 地址長(zhǎng)度為 32 位。選項(xiàng)字段的解釋從略。四、設(shè)計(jì)方案改進(jìn)及建議首先理解點(diǎn)分十進(jìn)制表示方法的運(yùn)用,理解 IP 數(shù)據(jù)報(bào)的格式,利用 C 語(yǔ)言設(shè)計(jì)程 序以點(diǎn)分十進(jìn)制表示輸出 IP 數(shù)據(jù)報(bào)頭源 / 目的地址。從網(wǎng)絡(luò)抓取數(shù)據(jù)包作為源操作數(shù),再生成 32 位二進(jìn)制數(shù)作為目的操作數(shù),用編程計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)實(shí)現(xiàn)將二進(jìn)制數(shù)轉(zhuǎn)化成十進(jìn)制數(shù),以點(diǎn)分的形式輸出在屏幕上。五、總結(jié)體會(huì) 通過(guò)本次課程設(shè)計(jì)
10、,讓我學(xué)到了很多。經(jīng)過(guò)實(shí)習(xí),通過(guò)實(shí)際操作,對(duì)計(jì)算機(jī)網(wǎng)絡(luò)加 深了理解。才知道計(jì)算機(jī)網(wǎng)絡(luò)的可以應(yīng)用的很靈活,而且加深了對(duì) IP 數(shù)據(jù)報(bào)格式的了 解,點(diǎn)分十進(jìn)制理解,而且對(duì)于 C語(yǔ)言也進(jìn)行了鞏固。在實(shí)習(xí)中并不是一番風(fēng)順的, 但是經(jīng)過(guò)努力最終解決了這些困難, 讓我認(rèn)識(shí)到了堅(jiān) 持的重要性??偟膩?lái)說(shuō)通過(guò)實(shí)習(xí)是我收獲不小, 也讓我認(rèn)識(shí)到了認(rèn)真學(xué)習(xí)知識(shí)的重要性。 希望學(xué)校以后多提供這樣的機(jī)會(huì)。本次實(shí)習(xí), 其目的是將以前所學(xué)的計(jì)算機(jī)網(wǎng)絡(luò)理論知識(shí)上升為實(shí)踐, 在編程的基礎(chǔ) 上進(jìn)一步了解計(jì)算機(jī)通信交流以及組網(wǎng)的方法,實(shí)踐就要求對(duì)知識(shí)的掌握更加的系統(tǒng) 化。在實(shí)習(xí)之初,仔細(xì)的查找了相關(guān)的資料,了解與本實(shí)習(xí)有關(guān)的知識(shí),對(duì)
11、 IP 數(shù)據(jù)報(bào) 報(bào)頭的格式更進(jìn)一步的復(fù)習(xí)和掌握, 并查找最前沿的資料充實(shí)自己, 力求將自己的實(shí)習(xí) 做得的更加全面,在實(shí)習(xí)的準(zhǔn)備過(guò)程中了解到, 在實(shí)際的網(wǎng)絡(luò)管理中大多使用的 sniffer 軟件對(duì)流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)進(jìn)行抓取和處理以及分析的過(guò)程也可以通過(guò)軟件的設(shè)置將所需 數(shù)據(jù)顯示在終端上, 本實(shí)驗(yàn)所要求處理的任務(wù)是將 IP 數(shù)據(jù)報(bào)報(bào)頭中的源和目的 IP 地址 以點(diǎn)分十進(jìn)制的形式輸出, 程序的實(shí)現(xiàn)比較簡(jiǎn)單, 結(jié)合以前 C語(yǔ)言的基礎(chǔ)和編程方法使 用隨機(jī)數(shù)生成指令,以及調(diào)用 C 語(yǔ)言庫(kù)函數(shù)實(shí)現(xiàn)將二進(jìn)制的源和目的 IP 地址轉(zhuǎn)化為點(diǎn) 分十進(jìn)制。在實(shí)驗(yàn)過(guò)程中曾試圖使用套接字編程實(shí)現(xiàn)數(shù)據(jù)包的抓取, 然后使用解析程
12、序分析數(shù) 據(jù)報(bào)的報(bào)頭,但是在具體的實(shí)現(xiàn)過(guò)程中由于現(xiàn)在使用的 VC+平臺(tái)不包含 mstcpip.h 庫(kù) 文件,所以程序沒(méi)有得到驗(yàn)證,但也在思考和設(shè)計(jì)的過(guò)程中學(xué)到了很多知識(shí)。六、主要參考文獻(xiàn)1 謝希仁 計(jì)算機(jī)網(wǎng)絡(luò)(第 5 版) 電子工業(yè)出版社 20082 殷肖川 網(wǎng)絡(luò)編程與開發(fā)技術(shù) 西安交通大學(xué)出版社 2003七、附錄附錄 1 程序流程圖計(jì)算機(jī)網(wǎng)絡(luò)課程設(shè)計(jì)圖 7-1 程序流程圖附錄 2 程序源代碼及解釋#include winsock2.h#include ws2tcpip.h#include iostream.h#include stdio.h/定義 IP 頭#pragma comment(li
13、b,ws2_32.lib) typedef struct _IP_HEADER union/版本(前 4 位)/IHL (后 4 位),報(bào)BYTE Version;BYTE HdrLen;頭標(biāo)長(zhǎng);/服務(wù)類型/總長(zhǎng)/標(biāo)識(shí)/標(biāo)志(前 3 位)/分段偏移(后 13 位)BYTE ServiceType;WORD TotalLen;WORD ID; union WORD Flags;WORD FragOff;BYTE TimeToLive;/生命期BYTE Protocol;/協(xié)議WORD HdrChksum;/頭校驗(yàn)和DWORD SrcAddr;/源地址DWORD DstAddr;/目的地址BYTE
14、 Options;/選項(xiàng)IP_HEADER;/逐位解析 IP 頭中的信息void getVersion(BYTE b, BYTE & version)version=b4;/右移 4 位 ,獲取版本字段void getIHL(BYTE b,BYTE & result)result=(b&0x0f)*4;/獲取頭部長(zhǎng)度字段char * parseServiceType_getProcedence(BYTE b)switch(b5)/獲取服務(wù)類型字段中優(yōu)先級(jí)子域case 7:return Network Control;break;case 6:return Internet work Contr
15、ol; break;case 5:return CRITIC/ECP;break;case 4:return Flash Override;break;case 3:return Flsah;break;case 2:return Immediate;break;case 1:return Priority;break;case 0:return Routine; break;default:return Unknow; break;char * parseServiceType_getTOS(BYTE b)b=(b1)&0x0f;/獲取服務(wù)類型字段中的TOS 子域switch(b)case
16、0:return Normal service; break;case 1:return Minimize monetary cost; break;case 2:return Maximize reliability; break;case 4:return Maximize throughput; break;case 8:return Minimize delay; break;case 15:return Maximize security; break;default: return Unknow; void getFlags(WORD w,BYTE & DF,BYTE & MF)
17、/解析標(biāo)志字段DF=(w14)&0x01;MF=(w13)&0x01; void getFragOff(WORD w,WORD & fragOff) /獲取分段偏移字段fragOff=w&0x1fff;char * getProtocol(BYTE Protocol) / 獲取協(xié)議字段共 8 位switch(Protocol)/ 以下為協(xié)議號(hào)說(shuō)明:case 1:return ICMP;case 2:return IGMP;case 4:return IP in IP;case 6:return TCP;case 8:return EGP;case 17:return UDP;case 41:r
18、eturn IPv6;case 46:return RSVP;case 89: return OSPF;default:return UNKNOW;void ipparse(FILE* file,char* buffer)IP_HEADER ip=*(IP_HEADER*)buffer; /通過(guò)指針把緩沖區(qū)的內(nèi)容強(qiáng)制轉(zhuǎn)化為 IP_HEADER 數(shù)據(jù)結(jié)構(gòu)fseek(file,0,SEEK_END);BYTE version;getVersion(ip.Version,version);fprintf(file, 版本號(hào) =%drn,version);BYTE headerLen; getIHL(
19、ip.HdrLen,headerLen);fprintf(file, 報(bào) 頭 標(biāo) 長(zhǎng) =%d(BYTE)rn,headerLen);fprintf(file, 服務(wù)類型 =%s,%srn,parseServiceType_getProcedence(ip.ServiceType), parseServiceType_getTOS(ip.ServiceType);fprintf(file, 總 長(zhǎng) 度 =%d(BYTE)rn,ip.TotalLen);fprintf(file, 標(biāo)識(shí) =%drn,ip.ID);BYTE DF,MF;getFlags(ip.Flags,DF,MF);fprintf
20、(file, 標(biāo) 志 DF=%d,MF=%drn,DF,MF);WORD fragOff;getFragOff(ip.FragOff,fragOff);fprintf(file, 分段偏移值 =%drn,fragOff);fprintf(file, 生 存 期 =%d (hopes)rn,ip.TimeToLive);fprintf(file, 協(xié) 議 =%srn,getProtocol(ip.Protocol);fprintf(file, 頭 校 驗(yàn) 和 =0x%0xrn,ip.HdrChksum);fprintf(file, 源 IP 地 址 =%srn,inet_ntoa(*(in_ad
21、dr*)&ip.SrcAddr);fprintf(file, 目 的 IP 地 =%srn,inet_ntoa(*(in_addr*)&ip.DstAddr);fprintf(file,rn);int main(int argc,char* argv)if(argc !=2) printf(usage eror!n); return -1;FILE * file;if(file=fopen(argv1,wb+)=NULL)printf(fail to open file %s,argv1); return -1;WSADATA wsData;if(WSAStartup(MAKEWORD(2,2
22、),&wsData)!=0) printf(WSAStartup failed!n); return -1; /建立套接字 SOCKET sock; if(sock=socket(AF_INET,SOCK_RAW,IPPROTO _IP)=INV ALID_SOCKET) printf(create socket failed!n); return -1;BOOL flag=TRUE;/設(shè)置 IP 頭操作選項(xiàng),用戶可對(duì) IP 頭處理 if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(c har*)&flag,sizeof(flag)=SOCKET_ERROR)
23、 printf(setsockopt failed!n); return -1;char hostName128;if(gethostname(hostName,100)=SOCKET_ERROR) printf(gethostname failed!n); return -1;/獲取本地地址 hostent * pHostIP; if(pHostIP=gethostbyname(hostName)=NULL) printf(gethostname failed!n); return -1;/填充 SOCKADDR_IN 結(jié)構(gòu) sockaddr_in addr_in;addr_in.sin_addr=*(in_addr*)pHostIP-h_addr_l ist0;addr_in.sin_family=AF_INET; addr_in.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地下管線探測(cè)儀產(chǎn)業(yè)深度調(diào)研及未來(lái)發(fā)展現(xiàn)狀趨勢(shì)
- 工商管理咨詢行業(yè)相關(guān)項(xiàng)目經(jīng)營(yíng)管理報(bào)告
- 互聯(lián)網(wǎng)無(wú)線電廣播服務(wù)行業(yè)營(yíng)銷策略方案
- 居家養(yǎng)老服務(wù)監(jiān)控系統(tǒng)方案
- 頭戴式虛擬現(xiàn)實(shí)裝置市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 太陽(yáng)能電池市場(chǎng)發(fā)展預(yù)測(cè)和趨勢(shì)分析
- 海綿城市雨水管理實(shí)施方案
- 醫(yī)院病患飲食配餐方案
- 計(jì)算機(jī)基礎(chǔ)知識(shí)培訓(xùn)
- 公共關(guān)系專業(yè)實(shí)訓(xùn)教學(xué)方案
- 馬工程《公共財(cái)政概論》課后習(xí)題庫(kù)(含)參考答案(可做期末復(fù)習(xí)和試卷)
- 助行器、輪助使用2016課件
- YY/T 1760-2021一次性使用腹膜透析引流器
- YY 9706.220-2021醫(yī)用電氣設(shè)備第2-20部分:嬰兒轉(zhuǎn)運(yùn)培養(yǎng)箱的基本安全和基本性能專用要求
- GB/T 41365-2022中藥材種子(種苗)白術(shù)
- GB/T 18371-2001連續(xù)玻璃纖維紗
- GB/T 12527-2008額定電壓1 kV及以下架空絕緣電纜
- 一級(jí)建造師考試題庫(kù)及答案(全國(guó)通用)
- 竣工工程銷項(xiàng)工作計(jì)劃表
- 公司社會(huì)責(zé)任管理制度
- 高速公路施工全流程標(biāo)準(zhǔn)化手冊(cè)
評(píng)論
0/150
提交評(píng)論