0x0800 IP数据包格式分析
一、基本概念
IP數(shù)據(jù)包也稱為IP報(bào)文分組,是網(wǎng)絡(luò)層的一個(gè)協(xié)議,由IP報(bào)文頭和IP報(bào)文用戶數(shù)據(jù)組成,IP報(bào)文頭部長(zhǎng)度一半在20-60個(gè)字節(jié)之間。一個(gè)IP分組最大長(zhǎng)度不能超過(guò)65535個(gè)字節(jié)。IP是一個(gè)不可靠和無(wú)連接的協(xié)議,因?yàn)樗峁┑牡氖亲畲笈鬏敚粵](méi)有推自身傳輸?shù)南⑦M(jìn)行檢錯(cuò)和跟蹤的方法,因此IP具有內(nèi)在協(xié)議層的不可靠性,如果對(duì)數(shù)據(jù)的可靠性質(zhì)有要求可以選擇IP+TCP,如果對(duì)數(shù)據(jù)的可靠性無(wú)要求可以使用IP+UDP。
二、數(shù)據(jù)格式
版本號(hào)[4bit] : 用于指定IP協(xié)議的版本號(hào),目前主要版本為IPv4, 即第4版本號(hào),通信雙方的IP協(xié)議版本號(hào)必須一致,否則無(wú)法直接進(jìn)行通信。
首部長(zhǎng)度[4bit]:指IP報(bào)文頭部長(zhǎng)度,每個(gè)長(zhǎng)度單位為4個(gè)字節(jié), 最小長(zhǎng)度(0101)為5個(gè)單位長(zhǎng)度, 所以IP協(xié)議報(bào)文頭部長(zhǎng)度最小20(5 * 4)個(gè)字節(jié);最大長(zhǎng)度(四個(gè)bit全為1),為15個(gè)單位長(zhǎng)度, 所以最大為60(15 * 4)個(gè)字節(jié)。
服務(wù)類型[8bit]: 用來(lái)表示更好的服務(wù)。
RFC791[互聯(lián)網(wǎng)標(biāo)準(zhǔn)]:
其中前3個(gè)bit 表示報(bào)文優(yōu)先級(jí)取值為 0: 普通級(jí)別(缺省標(biāo)記值)、1:優(yōu)先(數(shù)據(jù)業(yè)務(wù))、2: 快速(數(shù)據(jù)業(yè)務(wù))、3:閃速(語(yǔ)音控制)、4: 疾速(視頻會(huì)議、視頻流)、5:關(guān)鍵(語(yǔ)音數(shù)據(jù))、6:網(wǎng)間控制(網(wǎng)絡(luò)控制數(shù)據(jù))、7:網(wǎng)絡(luò)控制(網(wǎng)絡(luò)控制數(shù)據(jù)), 后幾位分別表示低延時(shí)、高吞吐、高可靠、低路由,字段為1表示啟用,為0表示不啟用。
總長(zhǎng)度[16bit]:包括首部和數(shù)據(jù)之和,單位為字節(jié),報(bào)文總長(zhǎng)度最大可表示65545個(gè)字節(jié)
標(biāo)識(shí)[16bit]: 唯一標(biāo)識(shí)主機(jī)發(fā)送的數(shù)據(jù)報(bào),當(dāng)IP報(bào)文長(zhǎng)度超過(guò)網(wǎng)絡(luò)的MTU(最大傳輸單元)時(shí),進(jìn)行分片,該標(biāo)示字段不變。 通常每發(fā)送一個(gè)報(bào)文,該字段值+1
標(biāo)志[3bit]:傳輸控制標(biāo)志, 分別表示R、DF、MF三位, DF位為分片標(biāo)志位值為0分片,MF位中斷標(biāo)志位值為1表示最后分片字段
片偏移[13bit]:在原先數(shù)據(jù)報(bào)文中相對(duì)首位的偏移位。(需要再乘以8)
生存時(shí)間(TTL)[8bit]:IP報(bào)文所允許通過(guò)的路由器的最大數(shù)量。每經(jīng)過(guò)一個(gè)路由器,TTL減1,當(dāng)為0時(shí),路由器將該數(shù)據(jù)報(bào)丟棄。TTL 字段是由發(fā)送端初始設(shè)置一個(gè) 8 bit字段.推薦的初始值由分配數(shù)字 RFC 指定,當(dāng)前值為 64。發(fā)送 ICMP 回顯應(yīng)答時(shí)經(jīng)常把 TTL 設(shè)為最大值 255。
協(xié)議號(hào)[8bit]:IP報(bào)文攜帶的數(shù)據(jù)使用的是那種協(xié)議,以便目的主機(jī)的IP層能知道要將數(shù)據(jù)報(bào)上交到哪個(gè)進(jìn)程
首部校驗(yàn)和[8bit]:計(jì)算IP頭部的校驗(yàn)和,用于檢測(cè)首部在傳輸過(guò)程中是否出現(xiàn)差錯(cuò)
源IP地址[32bit]:發(fā)送端設(shè)備IP地址
目標(biāo)IP地址[32bit]:目標(biāo)IP地址
選項(xiàng)信息:IP選項(xiàng)是IP固定首部之后的選項(xiàng)部分,由于IP首部長(zhǎng)度是用4bit來(lái)計(jì)數(shù),以4個(gè)字節(jié)為表示的,所以首部長(zhǎng)度最多為60個(gè)字節(jié),IP選項(xiàng)最多為40個(gè)字節(jié)。IP選項(xiàng)字段可能包含0~多個(gè)單獨(dú)選項(xiàng)。選項(xiàng)包含兩類:?jiǎn)巫止?jié)與多字節(jié)。
單字節(jié):單個(gè)標(biāo)明類型的選項(xiàng), 單字節(jié)IP選項(xiàng)只有倆個(gè)
選項(xiàng)表的結(jié)尾:在可變長(zhǎng)度的選項(xiàng)的結(jié)尾必須使用操作結(jié)束符(有時(shí)成為選項(xiàng)列表結(jié)束符),因此,只能有一個(gè)選項(xiàng)結(jié)束符。選項(xiàng)結(jié)束符在所有選項(xiàng)的結(jié)尾。并且只有在選項(xiàng)的結(jié)尾無(wú)法按照IP數(shù)據(jù)報(bào)的題頭長(zhǎng)度字段中規(guī)定與選項(xiàng)題頭的結(jié)尾保持一致時(shí),才會(huì)使用結(jié)束符。
無(wú)操作:是一個(gè)填充字符,沒(méi)有任何功能,只作為填充符放在選項(xiàng)的開(kāi)始或現(xiàn)象之間,一邊在32位邊界對(duì)其下一個(gè)選項(xiàng),無(wú)操作字節(jié)沒(méi)有長(zhǎng)度字段。用于規(guī)定數(shù)據(jù)報(bào)控制選項(xiàng),并支付只到第一個(gè)段中
多字節(jié):多字節(jié)IP選項(xiàng)共有七個(gè),由一個(gè)字節(jié)的復(fù)用字段,一個(gè)字節(jié)的長(zhǎng)度字段和一個(gè)可變長(zhǎng)度的數(shù)據(jù)字段組成。
記錄路由:記錄有為記錄IP數(shù)據(jù)在從源設(shè)備傳輸?shù)侥康脑O(shè)備時(shí)采用的路徑提供了一種方法。
時(shí)間戳:用于記錄路由器有路由處理數(shù)據(jù)報(bào)所用的時(shí)間,時(shí)間以毫秒為單位,時(shí)間戳只能給出數(shù)據(jù)包從一個(gè)路由器傳輸?shù)较乱粋€(gè)路由器所使用的時(shí)間的預(yù)估值。
嚴(yán)格源路由:嚴(yán)格路由為設(shè)備提供了數(shù)據(jù)報(bào)到達(dá)目的地必須通過(guò)的跳(路由器接口)的列表,這些跳是數(shù)據(jù)報(bào)可以使用的唯一路由器。 在這個(gè)列表中兩個(gè)連續(xù)地址之間的路徑之間不能有多個(gè)物理網(wǎng)絡(luò)否則將產(chǎn)生一個(gè)錯(cuò)誤信息。如果數(shù)據(jù)不能沿著嚴(yán)格源路由指定的路徑傳送。這個(gè)數(shù)據(jù)將會(huì)丟棄。
寬松源路由:寬松源路由允許主機(jī)或路由器使用具有任何數(shù)量的中間路由器的路由到達(dá)該路由中的下一個(gè)必經(jīng)的接口。如果路由器利用記錄的路由器代替愿路由,這個(gè)選項(xiàng)成為寬松源和記錄路由選項(xiàng)
數(shù)據(jù)包:上層協(xié)議數(shù)據(jù)
總結(jié)
以上是生活随笔為你收集整理的0x0800 IP数据包格式分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: hdu4489 组合公式+dp
- 下一篇: 趵突泉再现“趵突腾空”盛景:多地游客冒雨