最大传输单元MTU与IP分片

MTUMaximum Transmission Unit(最大传输单元)


以以太网传递的比特流为帧;

IP数据报的长度超过帧的MTU时,它将被分片传输。分片可能发生在发送端,也可能发生在中转路由器上。而且可能在传输的过程中被多次分片,但只有在目标机器上,这些分片才会被内核中的IP模块重新组装。

IP头部的如下三个字段给IP的分片和重组提供了足够的信息:

数据报标识:一个IP数据报的每个分片都具有自己的IP头部,它们具有相同的标识值。系统用+1法为每个数据报唯一标识此位,如果数据13被分片,所有分的小片中此位都是13

标志:共三位。第一位保留,第二位DF为禁止分片,第三位MF为更多分片,当产生分N片时,将1N-1片此位置位。

片偏移:表示当前数据报在完整数据报中的偏移,这里一个单位是8字节,比如片偏移为185,则代表该片在完整数据报的偏移是185*8=1480字节。

以太网帧的MTU1500字节(netstat -i  /ifconfig)因此他携带的IP数据报的数据部分最多是1480 字节,(头部占20 字节)。

IP数据报是指IP层端到端的传输单元(在分片之前和重新组装之后),分组是指IP层和链路层之间的传送数据单元。一个分组可以是一个完整的数据报,也可以是IP数据报的一个分片。

假定IP首部为20字节,UDP首部为8字节。若传输的数据为1473字节的分组

 

发生ICMP不可达的差错的另一种情况:当路由器收到一份需要分片的数据报,而在IP头部又设置了不分片的标识。如果某个程序需要判断到达目的端的途中最小MTU是多少--称作MTU发现机制,则这个差错就可以被使用。

猜你喜欢

转载自blog.csdn.net/lzmain/article/details/79981812