MTU是什么
mportant;">Maximum Transmission Unit (MTU)指的是一个网络传输数据包的最大大小,一般情况下最大为1500 字节。MTU是IP分片的最大单位,是一个网络层概念,所以链路层报文头不在MTU之内,节选RFC791 IP协议的部分内容
MTU在什么地方产生效果
mtu存在典型的短板效应,任意两个设备之间如果链接通路不同,mtu也不太一样
如图所示,设备A到设备B之间的网络通路,如果走链路A其MTU=1500,如果走链路2,则MTU=1400,链路中所有路由器和交换机设备等的最小值。
如果发送包超过MTU会怎么样
如果发送包大小超过了MTU大小,链路中的路由设备或者交换机设备会采取丢掉包或者将包分成两个包切片的方法处理超大包。具体处理方式由中间设备决定。
所以软件程序应该控制所有的包大小不要超过MTU
如何判定一个链路的MTU大小
ping -f -l <包大小> <对端IP>
ping -f -l 1473 172.20.75.56
使用ping工具可以检测本设备到某个对端设备之间链路的MTU大小
ping 命令的-f 参数可以控制发送数据包不能使用分片的方法,只能发送单个包
ping命令的 -l参数能够控制发送每个包的大小,该命令会发送TCP包进行探测连通性,-l 后跟的包大小参数不包含28字节的TCP包头
探测原理是如果能够正常发送,说明包大小不超过MTU,会出现如下打印,包能正常发送
如果包大小超过了MTU则会出现如下打印,说明包大小超过MTU
只需要不断调整包大小,直到出现“Packet needs to be fragmented but DF set.”的异常,就能探测到链路的MTU大小。
分析载荷为1472时的情况
通过wireshark 抓包得到PING命令使用的是ICMP协议,包总长度为1514字节
其中链路层Ethernet II帧包含14个字节, 但是MTU是一个网络层概念,不包含链路头
IP报文头20字节
ICMP的报文头一共8字节
故MTU = 1472 + 8 (ICMP头) + 20(IP头) = 1500
打赏支付宝微信扫一扫,打赏作者吧~
本文链接:https://www.kinber.cn/post/4490.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝:
您阅读本篇文章共花了: