IP UDP包頭詳解

IP UDP包頭詳解IP UDP包頭詳解

各字段功能:

一、版本號(Version):長度 4 bit 。標識目前採用的 IP 協議的版本號。通常的值爲 0100(IPv4),0110(IPv6)安全

版本號 版本
0 保留
1~3 未分配
4 Internet 協議版本 4(IPv4)
5 ST 數據報(Datagram)
6 簡單 Internet 協議(SIP)
6 IPv6
7 TP / IX
8 P Internet 協議(PIP)
9 使用更大地址的 TCP 和 UDP(TUBA)
10~14 未分配
15 保留

二、IP 報頭長度(Header Length):長度 4 bit 。這個字段的做用是爲了描述 IP 報頭的長度,由於在 IP 報頭中有變長的可選部分。該部分佔 4 個 bit,長度單位爲 4 個字節,即本區域值 = IP 頭部長度(單位爲字節)/ 長度單位(4 個字節)。所以,一個 IP 報頭的長度最長爲 「 1111 」,即 15 x 4 個字節 = 60 個字節。IP 報頭最小長度爲 20 字節。網絡

Header Length Header Length 所表明的實際的 IP 報頭長度
0101 20 字節
0110 24 字節
0111 28 字節
1101 52 字節
1110 56 字節
1111 60 字節

三、服務類型(Type of Service):長度 8 bit 。8 位按位被以下定義:PPP DTRC0ide

**TOS只表示用戶的請求,不具備強制性,實際應用中不多用,路由器一般忽略TOS字段。**
  • PPP:(Precedence)前 3 位,定義包的優先級,取值越大數據越重要。優先級主要用於QoS,表示從0(普通級別)到7(網絡控制分組)的優先級。
    - 000 普通(Routine)
    - 001 優先的(Priority)
    - 010 當即的發送(Immediate)
    - 011 閃電式的(Flash)
    - 100 比閃電還閃電式的(Flash Override)
    - 101 CRI / TIC / ECP(找不到這個詞的翻譯)
    - 110 網間控制(Internetwork Control)
    - 111 網絡控制(Network Control)
  • DTRCO:後 5 位
    - D (Delay更低的時延)時延:0:普通,1:延遲儘可能小
    - T (Throughput 更高的吞吐量)吞吐量:0:普通,1:流量儘可能大
    - R(Reliability更高的可靠性) 可靠性:0:普通,1:可靠性儘可能大
    - C (Cost 更低費用的路由)傳輸成本:0:普通,1:成本儘可能小
    - 0 最後一位被保留,恆定爲 0

四、IP 包總長度(Total Length):長度 16 bit 。以字節爲單位計算的 IP 包的長度(包括頭部和數據),因此 IP 包最大長度 65 535 字節。因此,數據包有效載荷的大小 = IP 包總長度(Total Length)- IP 報頭長度(Header Length)。測試

五、標識符(Identifier):長度 16 bit 。該字段和 Flags 和 Fragment Offest 字段聯合使用,對較大的上層數據包進行分段(fragment)操做。路由器將一個包拆分後,全部拆分開的小包被標記相同的值,以便目的端設備可以區分哪一個包屬於被拆分開的包的一部分。大數據

六、標記(Flags):長度 3 bit 。翻譯

  • 該字段第一位不使用。
  • 第二位是 DF(Don’t Fragment)位,DF 位設爲 1 時代表路由器不能對該上層數據包分段。若是一個上層數據包沒法在不分段的狀況下進行轉發,則路由器會丟棄該上層數據包並返回一個錯誤信息。
  • 第三位是 MF(More Fragments)位,當路由器對一個上層數據包分段,則路由器會在除了最後一個分段的 IP 包的報頭中將 MF 位設爲 1 。

七、片偏移(Fragment Offset):長度 13 bit,以 8 個八位組爲單位。表示該 IP 包在該組分片包中位置,接收端靠此來組裝還原 IP 包。設計

八、生存時間(TTL):長度 8 bit,設計之初是以秒(s)爲單位的,但實際以跳數爲單位,建議的缺省值爲 64 。當 IP 包進行傳送時,先會對該字段賦予某個特定的值。當 IP 包通過每個沿途的路由器的時候,每一個沿途的路由器會將 IP 包的 TTL 值減小 1 。若是 TTL 減小爲 0,則該 IP 包會被丟棄。這個字段能夠防止因爲路由環路而致使 IP 包在網絡中不停被轉發。code

九、協議(Protocol):長度 8 bit 。標識了上層所使用的協議。如下是比較經常使用的協議號:1 ICMP;2 IGMP;6 TCP;17 UDP;88 IGRP;89 OSPF 。blog

十、頭部校驗(Header Checksum):長度 16 bit 。用來作 IP 頭部的正確性檢測,但不包含數據部分。 由於每一個路由器要改變 TTL 的值,因此路由器會爲每一個經過的數據包從新計算這個值。接口

十一、起源和目標地址(Source and Destination Addresses):這兩個地址都是 32 bit 。標識了這個 IP 包的起源和目標地址。要注意除非使用 NAT,不然整個傳輸的過程當中,這兩個地址不會改變。

十二、可選項(Options):這是一個可變長的字段。該字段屬於可選項,主要用於測試,由起源設備根據須要改寫。可選項目包含如下內容:

  • 鬆散源路由(Loose source routing):給出一連串路由器接口的 IP 地址。IP 包必須沿着這些 IP 地址傳送,可是容許在相繼的兩個 IP 地址之間跳過多個路由器。
  • 嚴格源路由(Strict source routing):給出一連串路由器接口的 IP 地址。IP 包必須沿着這些 IP 地址傳送,若是下一跳不在 IP 地址表中則表示發生錯誤。
  • 路由記錄(Record route):當 IP 包離開每一個路由器的時候記錄路由器的出站接口的 IP 地址。
  • 時間戳(Timestamps):當 IP 包離開每一個路由器的時候記錄時間。
  • 填充(Padding):由於 IP 報頭長度(Header Length)部分的單位爲 32 bit,因此 IP 報頭的長度必須爲 32 bit 的整數倍。所以,在可選項後面,IP 協議會填充若干個 0,以達到 32 bit 的整數倍。







字段 長度 含義
版本 4比特 IP協議的版本號,分爲IPv4和IPv6協議。
首部長度 4比特 IPv4的首部長度。
區分服務 8比特 用來得到更好的服務。只有在使用區分服務時,這個字段才起做用。
總長度 16比特 指首部和數據之和的長度。
標識 16比特 IPv4軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識字段。
標誌 3比特 目前只有兩位有意義。最低位爲1表示後面「還有分片」的數據報,爲0表示這已是最後一個數據片;中間一位爲1表示「不能分片」,爲0才容許分片。
片位移 13比特 指出較長的分組在分片後,該片在原分組中的相對位置。
生存時間TTL(Time To Live) 8比特 表示數據報在網絡中的壽命,功能是「跳數限制」。
協議 8比特 指出此數據報攜帶的數據是使用何種協議。
首部檢驗和 16比特 數據報每通過一個設備,設備都要從新計算一下首部檢驗和,若首部未發生變化,則此結果必爲0,因而就保留這個數據報。這個字段只檢驗數據報的首部,但不包括數據部分。
源地址 32比特 報文發送方的IPv4地址。
目的地址 32比特 報文接收方的IPv4地址。
選項字段 0~40字節(長度可變) 用來支持排錯、測量以及安全等措施。在必要的時候插入值爲0的填充字節。
數據部分 可變 用來填充報文。

UDP

IP UDP包頭詳解

相關文章
相關標籤/搜索