天天看點

IPv4分組格式IP分組首部格式資料分片方法

An IP packet consists of a header section and a data section.

IP分組首部格式

IPv4分組格式IP分組首部格式資料分片方法
IPv4分組格式IP分組首部格式資料分片方法

IPv4首部包含14個字段(fields),13是必需的,最後一個可選。

  • 版本(Version)

4 bits,IPv4分組的version值為0100

  • 首部長度(Internet Header Length,IHL)

4 bits,機關是32-bit words(即4 bytes)。最小值為5,此時首部不包含可選項(options),長度為20 bytes。最大值為15,此時IHL為60 bytes。

  • 服務類型(Differentiated Service Code Point,DSCP)

8 bits,指定packet的優先級、延遲、吞吐率、可靠性要求等。

  • 明确的擁塞通告(Explicit Congestion Notification,ECN)
  • 總長度(Total Length)

16 bits,分組的總長度,包括首部和資料。分組最小值為IHL的最小值20 bytes,最大值為65535 bytes。

  • 辨別(Identifier)

16 bits,同一IP分組的資料片(fragments)具有相同的辨別。

  • 标志(Flags)

3 bits,第0位是保留位(resvered),必需為0. 第1位=1時,表示不分片(Don’t fragment, DF),為0表示可分片。第2為=1時,表示該後續有其他分片(More fragmetns, MF)。

  • 片偏移(Fragment Offset)

13 bits,以8 bytes為機關給出目前資料片在原IP分組中的位置。最大偏移(2^13 - 1)* 8 bytes = 65528 bytes,加上首部的20 bytes已超出IP分組的最大總長度。

  • 生存時間(Time To Live,TTL)

8 bits,限制IP分組在網絡中存在時間的計數器,TTL的機關為秒(second)

。實際上,TTL作為路由(router)的最大跳數(hop count)使用初始值有發送終端設定。,每到達一個路由,TTL的值減一,值為0時,router丢棄該分組,并向sender發送ICMP時間逾時(ICMP Time Exceeded)的消息。

  • 協定(Protocol)

8 bits,訓示IP分組資料部分使用的協定,可用的協定清單,常見的如TCP(6)、UDP(17)、ICMP(2),括号内為協定号(Protocol Number)。

  • 首部校驗和(Header Checksum)

16 bits,僅驗證首部。分組到達router後,router計算首部的checksum,和該字段比較,不比對則丢棄該分組。

  • 源位址(Source Address)和目的位址(Destination Address)

在傳輸過程中,有可能被(Network address translation,NAT)裝置改變。

  • 可選項(Options)

資料分片方法

路由接收到一個packet,檢查目的位址,确定輸出接口(outgoing interface)和接口的最大傳輸單元(Maximum Transmition Unit,MTU)。如果packet > MTU,且DF位是0,路由會對packet分片。

4000 bytes的packet,首部20bytes,沒有options,router的MTU是1500 bytes,分片。

Fragment Total bytes Header bytes Data Bytes MF Fragment offset
1 1500 20 1480 1
2 1500 20 1480 1 185
3 1000 20 980 370

如果接下來的router的MTU是1000 bytes,上表Fragment 1/2/3都會在分片,一個IP分組的所有分片的Identifier位相同,隻有最後一個分片的MF=0。

參考:

https://en.wikipedia.org/wiki/IPv4

[email protected]+block/%E8%A7%86%E9%A2%914_IP-%E5%88%86%E7%BB%84%E6%A0%BC%E5%BC%8F.pdf”>http://www.xuetangx.com/asset-v1:[email protected]+block/%E8%A7%86%E9%A2%914_IP-%E5%88%86%E7%BB%84%E6%A0%BC%E5%BC%8F.pdf

繼續閱讀