一、版本號(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字段。**
- 000 普通(Routine) - 001 優先的(Priority) - 010 當即的發送(Immediate) - 011 閃電式的(Flash) - 100 比閃電還閃電式的(Flash Override) - 101 CRI / TIC / ECP(找不到這個詞的翻譯) - 110 網間控制(Internetwork Control) - 111 網絡控制(Network Control)
- 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 。翻譯
七、片偏移(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):這是一個可變長的字段。該字段屬於可選項,主要用於測試,由起源設備根據須要改寫。可選項目包含如下內容:
字段 | 長度 | 含義 |
---|---|---|
版本 | 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的填充字節。 |
數據部分 | 可變 | 用來填充報文。 |