IP包頭分析

2022-05-17 10:32:58 字數 1814 閱讀 6889

tcp/ip協議定義了乙個在網際網路上傳輸的包,稱為ip資料報(ip datagram).這是乙個與硬體無關的虛擬包,由首部和資料兩部分組成.首部的前一部分是固定長度,共 20位元組,是所有ip資料報必須具有的.在首部的固定部分的後面是一些可選字段,其長度是可變的.

版本佔四位 指ip協議版本。並且通訊雙方使用的版本必須一致,目前我們使用的是ipv4,ipv6也是一種版本

首部長度

佔 4 位,可表示的最大十進位制數值是15.請注意,這個欄位所表示數的單位是32位字 (1個32位字長是4 位元組),因此,當 ip 的首部長度為 1111 時 (即十進位制的 15),首部長度就達到 60位元組.當 ip 分組的首部長度不是4位元組的整數倍時,必須利用最後的填充字段加以填充.因此資料部分永遠在 4位元組的整數倍開始,這樣在實現 ip協議時較為方便.首部長度限制為 60位元組的缺點是有時可能不夠用.這樣做的目的是希望使用者儘量減少開銷.最常用的首部長度就是 20 位元組 (即首部長度為 0101),這時不使用任何選項.

區分服務

佔 8 位,用來獲得更好的服務.這個欄位在舊標準中叫做服務型別,但實際上一直沒有被使用過.2023年ietf把這個字段改名為區分服務 ds(differentiated services).只有在使用區分服務時,這個欄位才起作用

總長度總長度指首部及資料之和的長度,單位為位元組.因為總長度欄位為 16位,所以資料報的最大長度為 216-1=65 535位元組.在ip層下面的每一種資料鏈路層都有自己的幀格式,其中包括幀格式中的資料字段的最大長度,即最大傳送單元 mtu (maximum transfer unit).當乙個資料報封裝成鏈路層的幀時,此資料報的總長度 (即首部加上資料部分)一定不能超過下面的資料鏈路層的mtu值,否則要分片.

識別符號佔16位.ip軟體在儲存器中維持乙個計數器,每產生乙個資料報,計數器就加 1,並將此值賦給標識欄位.但這個"標識"並不是序號,因為 ip是無連線的服務,資料報不存在按序接收的問題.當資料報由於長度超過網路的 mtu 而必須分片時,這個標識欄位的值就被複製到所有的資料報的標識欄位中.相同的標識欄位的值使分片後的各資料報片最後能正確地重灌成為原來的資料報.

標誌佔3 位,但目前只有2位有意義. 標誌欄位中的最低位記為 mf(more fragment).mf=1即表示後面"還有分片"的資料報.mf=0表示這已是若干資料報片中的最後乙個.標誌字段中間的一位記為df(don't fragment),意思是"不能分片",只有當 df=0時才允許分片.

段偏移量

佔13位.較長的分組在分片後,某片在原分組中的相對位置.也就是說,相對使用者資料字段的起點,該片從何處開始.片偏移以 8個位元組為偏移單位,這就是說,每個分片的長度一定是 8位元組(64位)的整數倍.

生存時間(ttl)

佔 8位,生存時間字段常用的英文縮寫是ttl(time to live),其表明資料報在網路中的壽命.由發出資料報的源點設定這個欄位.其目的是防止無法交付的資料報無限制地在網際網路中兜圈子,因而白白消耗網路資源.最初的設計是以秒作為 ttl的單位.每經過乙個路由器時,就把ttl減去資料報在路由器消耗掉的一段時間.若資料報在路由器消耗的時間小於 1 秒,就把ttl值減 1.當 ttl值為 0時,就丟棄這個資料報.

協議號佔 8 位.協議字段指出此資料報攜帶的資料是使用何種協議,以便使目的主機的ip層知道應將資料部分上交給哪個處理過程.

首部檢驗和

佔 16位.這個欄位只檢驗資料報的首部,但不包括資料部分.這是因為資料報每經過乙個路由器,都要重新計算一下首都檢驗和 (一些字段,如生存時間,標誌,片偏移等都可能發生變化),不檢驗資料部分可減少計算的工作量

源位址目的位址

IP包頭分析

ip包頭結構 版本,首部長度,型別,總長度 標識,標誌,片偏移 ttl,協議號,首部校驗和 源ip目的ip 可選項資料 資料 資料裡面是4層和5層的資料 現實中資料報沒有換行,識別符號應該在總長度後面 每一行32位元,ip包頭最小20位元組,最長60位元組 在ip包頭裡可選項輕易不會被使用到 版本 ...

IP包頭詳解

ip協議 writed by vindeselly 版本 4 bit 首部長度 4 bit 服務型別 tos 8 bit 總長度 位元組數 16 bit 標識16 bit 標誌3 bit 片偏移13 bit 生成時間 ttl 8 bit 協議8 bit 首部檢驗和 16 bit 源ip位址 32 b...

IP包頭結構詳解

這篇講得比較詳細 清楚,轉了 ip包頭結構如下圖所示 下面具體分析ip包頭中各部分的作用。版本號 version 長度4位元。標識目前採用的ip協議的版本號。一般的值為0100 ipv4 0110 ipv6 ip包頭長度 header length 長度4位元。這個欄位的作用是為了描述ip包頭的長度...