为什么只能上QQ和百度,其它的浏览器,网址,播放器等网络应用软件使用不了。或许有的人可能会遇到,这是
我切身体会到的问题,为了解决这个问题花费了一下午的时间,竟然只是一个小小的MTU值问题引起的,不免感觉整
个暑假学的网络技术没有用,记得当时看这部分内容的时候留意过,但是没有彻底理解。解决这个问题,不得不说
MTU(最大传输单元)这个最直截了当的东西。MTU设置不当,可能会导致许多网络问题,如某些网络应用无法使用,
某些网站无法访问等。
一解释下一MTU以及相关的一系列的概念
Mtu即最大传输单元,全称为Maximum Transmission Unit,是指通信协议的某一层上面所能通过的最大数据包大
小(以字节为单位)。由于定义的模糊性,在此也介绍几个相关的名词,MRU、PMTU、MSS和JUMBO FRAME,供
大家甄别。
MRU即最大接收单元,全称为Maximum Receive Unit,与MTU相对,称为最大接收单元,目前也没有权威的标准定义,但许多文章中有这个名词。一台主机或路由器的MTU与MRU可以不一致。
PMTU,全称为 path maximum transmission unit,即路径MTU,把一条IP路径上MTU的最小值称为PMTU,PMTU
是个理想化的概念,但目前业界没有有效的手段来实现PMTU的发现和更新。`
MSS是OSI参考模型中四层的一个概念,即最大分段长度,全称为TCP Maximum Segment Size,指TCP每次能够
传输的最大数据分段长度(以字节为单位),MSS一般比MTU小40字节。
Jumbo Frame(有些称Giant Frame),网络上会遇到jumbo frame的概念,cisco路由器的接口中也有这个参数,超过
以太网标准长度1518字节的帧称为jumbo frame。
二理解MTU和MRU
MTU不能太大也不能太小,要刚刚合适才行
比如:一个数据总长度是2999字节
MTU为1500时,这个数据被拆成1500为标准的一段分1500+1499 2段 传送完毕
MTU为1400时,这个数据被拆成1500为标准的一段分1400+1400+1993段 传送完毕
......
所以太小了,传送的效率就被限制了
比如:一个数据总长度是9999字节
MTU为15000时,这个数据被拆成15000为标准的一段分15000 1段 传送完毕
......
所以太大了,传送的效率就被限制了
三MTU涉及主要原理
常见网络的MTU值:
IP网络以包为单位进行信息传递,那么,一次传送多大的包合适、多大的包最高效就成为一个核心问题一。MTU
就是决定在什么样的物理网络传送多大数据包大的事实标准,不同类型网络由于物理特性、发展阶段不同,其MTU的
默认值也不尽相同,以下是摘录的各类网络及其默认MTU值:
对于windows操作系统来讲,其以太网网卡MTU默认为1500,但可以通过修改工具或修改注册表进行修改,但只
能改小,不能改大,即只能修改为小于或等于1500字节。
2PMTU 发现过程
对于一个基于网络的应用来讲,如果应用穿过网络的MTU与PMTU相等,那么应用穿过网络的效率最高,或者
说,应用通过主机网卡发出的最大数据包与PMTU越接近(指小于等于PMTU),应用穿过网络的效率越高,原因是有
效的避免了分片和重组。
为了达到这个目的,一些操作系统支持自动发现路径MTU的功能,具体过程为:路由器接口上收到一个报文长
度大于本接口MTU值的报文,如果该报文被打上不分片的标记,将丢弃本报文,并且返回一个ICMP差错报文,通知
报文发起者丢弃原因。报文发起者将发送比较小的报文。通过多次上述报文协商,将得到对于某一个固定路径上的最
小Mtu值,这个过程叫做“Mtu Discovery”。
四如何确定网络MTU
某些ISP接入的MTU可能会比常规使用的MTU小,这时如果设置了过大的MTU,就可能会导致很多服务无法使
用的问题。可以通过ping程序确定MTU的值。
Windows+R 打开运行,输入cmd,可以打开命令提示符:
使用 ping -f -l <MTU> <IP地址>的方式确定MTU(也有其他的方式确定MTU值)
如:ping -f -l 1400 192.168.1.1可以从1400逐渐向上取值找到最合适的MTU值,最大不超过1500。
如果能ping通,说明词MTU是可以的,可适当加大MTU值,直到最大;否则就要适当调小MTU值。设置最大的
MTU值可以有效的提高网络吞吐量。
以上找到最大的适合MTU值为1472。
再提供一种测试MTU值的方法:
在命令提示符中输入 PING -l <MTU> -f <HOST>的方式确定MTU
如:ping -l 1400 -f www.baidu.com
实验过程为:
五修改方法
第一种 方法是windows修改:
(1)windows+R运行regedit
(2)浏览找到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(3)Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
(a)确定本机用来连接Internet的网卡或拨号连接的IP,如192.168.0.19;
(b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;
(c)如果IPAddress的键值与(a)中的IP相同,即192.168.0.19,则该子项就是要找的网卡。
(4)进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用
鼠标双击“MTU”,弹出修改窗口,填入合适的MTU的值。填写前请先把基数设为十进制。设置好后,需要重启机
器才能生效。注意,系统的版本不一样,可能下面的子项不一样,最好找到相应的系统。这里是win10操作系统的。
第二种方法是路由器修改:
(1)在浏览器的网址位置输入192.168.1.1或192.168.0.1进入自己的路由器相关配置界面
(2)在路由设置中找到网络参数,再找到WAN设置,选择高级设置
(3)在PPPoE高级设置中找到数据包MTU,就可以手动设置MTU值了。要找到最适合的值,不要一味的调大或调
小,一般默认的即可。
若是遇到一部分网络应用打不开和一部分网址打不开的时候,这时候去检测自己主机的MTU值,测试哪一个是最
适合你这个宽带连接方式的,可以适当调小MTU值,这样就可以运行网络应用和打开网址了。适当的调整MTU值也可
以加快打开网页的速度。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/erlian1992/article/details/48084399