测试一个网络MTU值的 *** 作步骤:
1)按win+r组合键呼叫运行菜单,输入cmd后回车
2)在出现的“命令提示符”窗口中输入“ping -l 1472 -f 百度”然后回车这段杂乱无章的东东是神马意思呢?
接下来Teamo稍微解释下:ping:发起一个探测请求; -l(L的小写):限制探测包大小; 1472:包大小为1472字节; -f:禁止路由器拆分数据包 百度:设百度为探测目标
3)按下回车后,会出现两种返回结果:
(1)、如果收到了回复,那么说明你的网络允许最大MTU值就是1500字节,与系统默认值相同,只需要将路由器的MTU值也设置为1500即可
(2)、如果出现需要拆分数据包但是设置 DF。或是Packer needs to be fragmented but DF set的提示,那就说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。
4)按“上箭头”恢复刚才输入的命令,然后以5为跨度减小包大小为1467字节,再次回车探测。
5)这时同样也有两种可能:
(1)、如果有返回,说明数据包小于MTU限制,就将包大小+3再次探测,如果+3之后没有返回,那就以1为跨度降低数据包大小进行探测。
(2)、如果还是没有返回,就继续以5为跨度减小包大小,直至有返回后进行5(1)中的 *** 作。
6)直至你发现数据包-1后,有了返回,就说明你探测到了MTU允许的准确数据包大小。
例如从1465降低到1464就有了返回,那么允许的数据包大小就是1464。
7)不过上面得到的值还不能设置为 *** 作系统或路由器的MTU,你找到的数据包大小需要加上28字节的“数据包报头”,才是完整的数据包尺寸。
例如:探测到的数据包大小是1464,那么加上28字节,最终MTU=1492字节。
8)最后,只需要将路由器和 *** 作系统中的MTU值设置为你得出的结果即可进入小极后台,高级选项中的MTU设置中填入测得的数值即可。
MTU值设置高了不好,因为以太网中的最大传输单元固定是1500,如果你的数据包过大则在传输的时候要被切片,然后再进行传输,这个过程是需要占用cpu和时间的,因此MTU值应该按照你的实际情况进行设定,一般的pppoe拨号网络最好设置为:1462。几个概念:
TCP 在三次握手的第一个SYN消息中有一个选项option 4,通告双方的MSS,如果一方MSS=1460,而另一方的MSS=9000,会选择较小的一方即1460作为这个TCP连接的MSS:
注意,MSS只是解决路径上第一跳的MTU问题,不能保证由于路径中有更小的MTU导致的分片。
什么时候用配置大MTU值?
比如在数据中心,MTU经常设置为大于8192字节。 这是因为NFS网络服务器之间的数据读取、存储最小单位是磁盘扇区,而服务器扇区多用8192,而且为了避免被分片,发送这些扇区数据的IP包的DF设置为1,意思是不允许分片。这里整个数据中心的MTU都要设置为大于8192,再加上IP 头,UDP头,文件系统头等,一般设置9000就好了。
案例:
在华为路由器上,接口配置mtu 9000,我们可以看到:端口下配置的是IP MTU,配置成9000字节后, 二层MTU自动变成9600
在思科NCS上,端口配置MTU 9014,可以看到:MTU is 9014 (9000 is available to IP)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)