IPv4頭部結構

2022-07-26 14:48:18 字數 2259 閱讀 8195

思動部落格

2.2 ipv4頭部結構

2.2.1 ipv4頭部結構

ipv4的頭部結構如圖2-1所示。其長度通常為20位元組,除非含有可變長的選項部分。

4位版本號(version)指定ip協議的版本。對ipv4來說,其值是4。其他ipv4協議的擴充套件版本(如sip協議和pip協議),則具有不同的版本號(它們的頭部結構也和圖2-1不同)。

4位頭部長度(header length)標識該ip頭部有多少個32?bit字(4位元組)。因為4位最大能表示15,所以ip頭部最長是60位元組。

8位服務型別(type of service,tos)包括乙個3位的優先權字段(現在已經被忽略),4位的tos欄位和1位保留字段(必須置0)。4位的tos欄位分別表示:最小延時,最大吞吐量,最高可靠性和最小費用。其中最多有乙個能置為1,應用程式應該根據實際需要來設定它。比如像ssh和telnet這樣的登入程式需要的是最小延時的服務,而檔案傳輸程式ftp則需要最大吞吐量的服務。

16位總長度(total length)是指整個ip資料報的長度,以位元組為單位,因此ip資料報的最大長度為65?535(216-1)位元組。但由於mtu的限制,長度超過mtu的資料報都將被分片傳輸,所以實際傳輸的ip資料報(或分片)的長度都遠遠沒有達到最大值。接下來的3個字段則描述了如何實現分片。

16位標識(identification)唯一地標識主機傳送的每乙個資料報。其初始值由系統隨機生成;每傳送乙個資料報,其值就加1。該值在資料報分片時被複製到每個分片中,因此同乙個資料報的所有分片都具有相同的標識值。

3位標誌欄位的第一位保留。第二位(don』t fragment,df)表示「禁止分片」。如果設定了這個位,ip模組將不對資料報進行分片。在這種情況下,如果ip資料報長度超過mtu的話,ip模組將丟棄該資料報並返回乙個icmp差錯報文。第三位(more fragment,mf)表示「更多分片」。除了資料報的最後乙個分片外,其他分片都要把它置1。

13位分片偏移(fragmentation offset)是分片相對原始ip資料報開始處(僅指資料部分)的偏移。實際的偏移值是該值左移3位(乘8)後得到的。由於這個原因,除了最後乙個ip分片外,每個ip分片的資料部分的長度必須是8的整數倍(這樣才能保證後面的ip分片擁有乙個合適的偏移值)。

8位生存時間(time to live,ttl)是資料報到達目的地之前允許經過的路由器跳數。ttl值被傳送端設定(常見的值是64)。資料報在**過程中每經過乙個路由,該值就被路由器減1。當ttl值減為0時,路由器將丟棄資料報,並向源端傳送乙個icmp差錯報文。ttl值可以防止資料報陷入路由迴圈。

8位協議(protocol)用來區分上層協議,我們在第1章討論過。/etc/protocols檔案定義了所有上層協議對應的protocol欄位的數值。其中,icmp是1,tcp是6,udp是17。/etc/protocols檔案是rfc 1700的乙個子集。

16位頭部校驗和(header checksum)由傳送端填充,接收端對其使用crc演算法以檢驗ip資料報頭部(注意,僅檢驗頭部)在傳輸過程中是否損壞。

32位的源端ip位址和目的端ip位址用來標識資料報的傳送端和接收端。一般情況下,這兩個位址在整個資料報的傳遞過程中保持不變,而不論它中間經過多少個中轉路由器。關於這一點,我們將在第4章進一步討論。

ipv4最後乙個選項字段(option)是可變長的可選資訊。這部分最多包含40位元組,因為ip頭部最長是60位元組(其中還包含前面討論的20位元組的固定部分)。可用的ip選項包括:

記錄路由(record route),告訴資料報途經的所有路由器都將自己的ip位址填入ip頭部的選項部分,這樣我們就可以跟蹤資料報的傳遞路徑。

時間戳(timestamp),告訴每個路由器都將資料報被**的時間(或時間與ip位址對)填入ip頭部的選項部分,這樣就可以測量途經路由之間資料報傳輸的時間。

鬆散源路由選擇(loose source routing),指定乙個路由器ip位址列表,資料報傳送過程中必須經過其中所有的路由器。

嚴格源路由選擇(strict source routing),和鬆散源路由選擇類似,不過資料報只能經過被指定的路由器。

關於ip頭部選項欄位更詳細的資訊,請參考ip協議的標準文件rfc 791。不過這些選項字段很少被使用,使用鬆散源路由選擇和嚴格源路由選擇選項的例子大概僅有traceroute程式。此外,作為記錄路由ip選項的替代品,traceroute程式使用udp報文和icmp報文實現了更可靠的記錄路由功能,詳情請參考文件rfc 1393。

IPv4報文頭部分析

第一行 1 版本 4 bit 標誌ip協議的版本號,存在ipv4 ipv6兩個版本,用4位2進製數字表示,0100代表ipv4,0110代表ipv6。2 頭部長度 4 bit 確定ip報文的長度,ipv4報頭單位是32bit,在這裡,4位二進位制表示為0101,即換算為 5 32bit 8 20 位...

ipv4頭部分析,讀書筆記3

ip頭部最長是60位元組,前面的20位元組是固定的,選項可加上40位元組 4位版本號 對於ipv4來說呢,就是4 4位頭部長度 表示 有多小個32bit 4位元組 4位最大表示數是15啦,也就是最大就是15啦,所以頭部最長就是60啦 8位服務型別 已經不用了 16總長度 ip資料報長度 所以最大長度...

IPV4資料報頭部格式

摘自 深入理解計算機網路 王達著 機械工業出版社 來自 來自 傳送端的網路層在收到它的上一層 傳輸層發來的資料段時,需要通過網路層協議將其封裝成資料報,也就是加上網路層ip協議 在此僅以ip協議為例進行介紹 頭部。ip協議頭部主要是源和目的網路的ip位址,以便可以資料分段傳輸到目的網路中。然後資料報...