1. 程式人生 > >IP數據報首部格式

IP數據報首部格式

ria 例如 tcp 包括 報文 校驗 應用 size 協議

IP協議提供不可靠、無連接的數據報傳送服務。

  • 不可靠:盡力而為地傳輸,不保證IP數據報能成功到達目的地。
  • 無連接:每一個數據報之間相互獨立地進行路由選擇,可不按發送順序接收。
IP首部格式例如以下: 技術分享
以下就用這幅圖結合Wireshark來分析個字段含義。

這次截取的是DNS數據報,它位於應用層。


首先看一下整個IP首部的內容: 技術分享

相應的原始數據:
技術分享

以下按字段分別進行說明。
4位版本號表示眼下的協議版本號號。這裏使用的是IPv4,當然值就是4啦。


4為首部長度表示首部包括多少個4字節。相應Header length字段的20字節,但依據原始數據能夠看出。這個字段實際值應該是5,也就是有5個4字節,共20字節。


8位服務類型包含最小延遲、最大吞吐量、最高可靠性等性能指標。

這裏全為0表示一般服務。


16位總長度是指整個IP數據報的長度。以字節為單位。這裏為514字節。

註意這一長度僅僅是包括在以太網幀中的IP數據報的長度,不包括以太網幀開頭的目的地址(6字節)、源地址(6字節)、類型(2字節)。


16位標識唯一地標識主機發送的每一份數據報。通常每發送一份報文它的值就加1,這一字段主要用來分片和重組。
3位標識。在分片和重組時用到,這裏暫不討論。
13位片廉價。

在分片和重組時用到,這裏暫不討論。


8位生存時間表示該數據報能夠經過的最多路由器數。經過一個路由器值減1。減到0則丟棄該數據報。並發送ICMP報文通知源主機

8位協議域,分別有:
  • 1表示ICMP協議
  • 2表示IGMP協議
  • 6表示TCP協議
  • 17表示UDP協議
我們這裏是UDP協議。從而能夠知道。DNS協議執行於UDP之上。
16位首部檢驗和。詳細怎樣校驗這裏不討論。當校驗值有誤時,IP層丟棄收到的數據報,但不生成差錯報文,由上層去發現丟失的數據報並進行重傳


接下來就是32位的源IP加上32位的目的IP。這裏沒什麽好說的。
最後的選項字段非常少被使用,這裏就不討論了。
參考: 《TCP/IP具體解釋》 P24-P27.

IP數據報首部格式