什么是MTU?
早期上网的时候,当我们连上某些网站时总会连接超时而断线,然后某位大神说把MTU值改为1472就OK了!什么原因呢?
通过MAC封装的定义我们知道标准以太网数据帧所能传送的数据量最大是1500bytes,这个值就是所说的MTU(Maximun Transmission Unit最大传输单元)我们知道IP数据包最大可达65535byets,这可比MTU值大得多了,但数据包是可以拆解的,然后才能放到MAC去,最后数据包到目的地后再由主机组装回来就行了,所以说如果MTU值够大的话就可以减少IP数据包拆解的次数,从而数据包与数据包传送之间的等待时间(96bit time)就减少了!这时你会想那把MTU值尽可能改大不就行了么!如Gigabit以太网对Jumbo frame的支持,定义到9000bytes。MTU值也改成9000bytes,但事实上你无法确认所有的网络设备都是那么大啊!如果9000bytes数据包通过一个不支持Jumbo frame的网络设备时有些网络设备(如Switch/Router)会主动重组再进行传送,有些则可能直接回报这个数据包无效而丢弃,这就惨了!所以说这种情况仅能在内部网络环境中实现!
如何来检测网关MTU呢
主机上打开命令窗口输入:ping -f -l 1472 网关
为啥是1472因为数据包头占28个字节,一般都是1472;你可以在1472左右试试看输出的结果。
如何修改本机的MTU
windows系统,打开注册表,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces,对应有好几个子项一个个打开看找到对应的IPAddress是主机IP,然后右击该子项新建DWORD值输入名称为MTU,然后再双击打开写入MTU值就可以了,之后重启机器生效!
win7系统,管理员权限运行CMD然后使用netsh interface ipv4 show subinterfaces命令看看MTU;使用netsh interface ipv4 set subinterface "本地连接" mtu=1000 store=persistent来修改就可以了。
Linux系统,得root权限,ifconfig eth0 mtu 1472 这个命令就可以了。
要饭二维码
洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权
本文属于“洪哥笔记”原创文章,转载请注明来源地址:MTU最大传输单元:http://www.splaybow.com/post/mtu-zuidachushudanyuan.html
如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D!
发布时间:2013/11/25 16:53:06 | 编辑:徐为明 | 分类:TCP/IP协议 | 浏览: