IP數(shù)據(jù)報格式

前言

??先回顧一下TCP/IP協(xié)議棧


??網(wǎng)絡(luò)層的協(xié)議有IP協(xié)議改基、ARP協(xié)議霞赫、ICMP協(xié)議和IGMP協(xié)議。其中IP協(xié)議是最主要也是最重要的協(xié)議稚叹,所以本文先從IP數(shù)據(jù)報的格式開始介紹动雹。
本文內(nèi)容

1 IP數(shù)據(jù)報格式

??一個IP數(shù)據(jù)報由首部和數(shù)據(jù)兩個部分組成槽卫。
??其中首部的前一個部分是固定部分,長度固定共20字節(jié)胰蝠,這是所有IP數(shù)據(jù)報必須具有的歼培。后一部分是可變部分,其長度是可變的茸塞,不是必須的躲庄。

2 IP數(shù)據(jù)報首部格式

??2.1 固定部分

??(1) 版本:占4位,指IP協(xié)議的版本钾虐。目前廣泛使用的IP協(xié)議版本有兩種IPv4IPv6噪窘。

??(2) 首部長度:占4位,其單位是4B效扫。所以首部長度必須是4B的整數(shù)倍倔监。如首部長度字段的4個二進制位分別是1111(對應(yīng)十進制是15)无切,則IP協(xié)議首部的長度是15 × 4B = 60B(字節(jié))。由于IP數(shù)據(jù)報首部的固定部分長度固定是20丐枉,所以首部字段最小從0101開始。

??(3) 區(qū)分服務(wù):占8位掘托,一般情況下不使用該字段瘦锹。只有使用區(qū)分服務(wù)時,這個字段才起作用闪盔,如要求當前的數(shù)據(jù)報設(shè)置高優(yōu)先級優(yōu)先發(fā)送弯院。

??(4) 總長度:占16位,表示首部和數(shù)據(jù)部分長度之和泪掀,單位是字節(jié)听绳。

??(5) 標識、標志异赫、片偏移是關(guān)于IP數(shù)據(jù)報分片的椅挣,見下文。

??(6) 生存時間:占8位塔拳,表示數(shù)據(jù)報在網(wǎng)絡(luò)中的壽命鼠证。由發(fā)送數(shù)據(jù)報的源點設(shè)置這個字段,其目的是為了防止那些無法交付的數(shù)據(jù)報無限制的在互聯(lián)網(wǎng)中兜圈子(例如從路由器R1轉(zhuǎn)發(fā)到R2靠抑,再轉(zhuǎn)發(fā)到R3量九,然后又轉(zhuǎn)發(fā)到R1),因而白白浪費網(wǎng)絡(luò)資源颂碧。數(shù)據(jù)報每經(jīng)過一個路由器荠列,這個值就會減1,當減至0時载城,就丟棄該數(shù)據(jù)報肌似。

??(7) 協(xié)議:占8位,協(xié)議字段是指出次數(shù)據(jù)報所攜帶的數(shù)據(jù)是使用的協(xié)議诉瓦。這里記兩個協(xié)議字段的值:6表示TCP協(xié)議锈嫩,17表示UDP協(xié)議。

??(8) 首部校驗和:占16位垦搬,只校驗數(shù)據(jù)報的首部呼寸,不檢驗數(shù)據(jù)部分。數(shù)據(jù)報每經(jīng)過一個路由器都要重新計算一下首部校驗和(一些字段猴贰,如生存時間对雪、標志、片偏移可能發(fā)生了變化)米绕。

??(9) 源地址和目的地址:各占32位瑟捣。

??2.2可變部分

??(1) 可選字段:長度可變馋艺,從1字節(jié)~40字節(jié)÷跆祝可變部分是為了增加IP數(shù)據(jù)報的功能捐祠,如用來支持排錯、測量以及安全等措施桑李。
??(2) 填充:IP數(shù)據(jù)報的首部長度必須是4B的整數(shù)倍踱蛀,所以如果首部長度不滿足4B整數(shù)倍時,就使用填充字段將首部填充到4B的整數(shù)倍贵白。

3 IP數(shù)據(jù)報分片

??數(shù)據(jù)鏈路層將網(wǎng)絡(luò)層傳送的數(shù)據(jù)報添加頭部和尾部封裝成以太網(wǎng)幀率拒,數(shù)據(jù)鏈路層封裝數(shù)據(jù)幀長度是有限制的,以太網(wǎng)規(guī)定其最大傳送單元MTU的值是1500字節(jié)禁荒,如果從網(wǎng)絡(luò)層傳輸下來的數(shù)據(jù)報長度超過MUT值猬膨,就必須把過長的數(shù)據(jù)報進行分片處理舌界。

??而上節(jié)IP數(shù)據(jù)報首部固定部分的標識遵班、標志和片偏移就是用于數(shù)據(jù)報分片的。


??(1) 標識:占16位洗搂,所有分片的數(shù)據(jù)報的標識必須要和原數(shù)據(jù)報的標識相同热康。假如一個數(shù)據(jù)報的標識是12345召耘,這個數(shù)據(jù)報過大,分片后將它分為3個小的數(shù)據(jù)報褐隆,這3個較小的數(shù)據(jù)報的標識也必須是12345污它,可以理解這3個數(shù)據(jù)報是一個家族的。相同的標識字段的值可以使分片后的各個數(shù)據(jù)報最后能正確的重裝成原來的數(shù)據(jù)報庶弃。

??(2) 標志:占3位衫贬,目前只有兩位有意義。

??1) 最低位即第3位記為MF(More Fragment)歇攻,意思是是否還有更多分片固惯。當值為1時,表示該分片不是最后一片缴守,后面還有分片葬毫,當值為0時,表示這是原數(shù)據(jù)報分片后的最后一片數(shù)據(jù)報屡穗,后面已經(jīng)沒有更多的分片了贴捡。
??2) 中間位即第2位記為DF(Don't Fragment),意思是原數(shù)據(jù)報能否分片村砂。當值為1時烂斋,表示該數(shù)據(jù)報不允許分片,當值為0時,表示該數(shù)據(jù)報允許分片汛骂。

??(3) 片偏移:占13位罕模,以8B為單位。其表示較長分組分片后帘瞭,某一片在原分組中的相對位置淑掌,也就是說相對于用戶數(shù)據(jù)字段的起點,該片從何處開始蝶念。這也就是說抛腕,除了最后一個分片,每個分片的長度一定是8B的整數(shù)倍祸轮。

??舉個例子說明一下,假設(shè)一個數(shù)據(jù)報的總長度是3820個字節(jié)侥钳,其數(shù)據(jù)部分為3800字節(jié)長(首部僅僅使用固定部分)适袜,需要分片為長度不超過1420字節(jié)的數(shù)據(jù)報片。因固定首部長度為20字節(jié)舷夺,因此每個數(shù)據(jù)報片的長度不超過1400字節(jié)苦酱。于是分為3個報片,其數(shù)據(jù)部分的長度分別為1400给猾、1400疫萤、1000字節(jié)。原始數(shù)據(jù)報首部被復(fù)制為各個數(shù)據(jù)報的首部敢伸,但是必須修改有關(guān)字段扯饶。



??對于原始數(shù)據(jù)報、數(shù)據(jù)報片1池颈、2尾序、3的首部部分信息如下圖,(原始數(shù)據(jù)報的標識取12345)


??注意區(qū)分幾個字段的單位:

(1) 首部長度:單位是4B躯砰,表示數(shù)據(jù)報的首部的長度每币。
(2) 總長度:單位是B,標識整個數(shù)據(jù)報的長度琢歇。
(3) 片偏移量:單位是8B兰怠,表示某一分片相對于用戶數(shù)據(jù)字段的起點。

4 小結(jié)

??本文完

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末李茫,一起剝皮案震驚了整個濱河市揭保,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌魄宏,老刑警劉巖掖举,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡塔次,警方通過查閱死者的電腦和手機方篮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來励负,“玉大人藕溅,你說我怎么就攤上這事〖逃埽” “怎么了巾表?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長略吨。 經(jīng)常有香客問我集币,道長,這世上最難降的妖魔是什么翠忠? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任鞠苟,我火速辦了婚禮,結(jié)果婚禮上秽之,老公的妹妹穿的比我還像新娘当娱。我一直安慰自己,他們只是感情好考榨,可當我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布跨细。 她就那樣靜靜地躺著,像睡著了一般河质。 火紅的嫁衣襯著肌膚如雪冀惭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天掀鹅,我揣著相機與錄音云头,去河邊找鬼。 笑死淫半,一個胖子當著我的面吹牛溃槐,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播科吭,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼昏滴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了对人?” 一聲冷哼從身側(cè)響起谣殊,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牺弄,沒想到半個月后姻几,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年蛇捌,在試婚紗的時候發(fā)現(xiàn)自己被綠了抚恒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡络拌,死狀恐怖俭驮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情春贸,我是刑警寧澤混萝,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站萍恕,受9級特大地震影響逸嘀,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜允粤,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一崭倘、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧维哈,春花似錦绳姨、人聲如沸登澜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽脑蠕。三九已至购撼,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谴仙,已是汗流浹背迂求。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晃跺,地道東北人揩局。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像掀虎,于是被迫代替她去往敵國和親凌盯。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,033評論 2 355

推薦閱讀更多精彩內(nèi)容