一、原理:在windows里,默认的MTU是1500,但是不同的网络接入方式,不同地区的网络运营商,甚至不同的[路由器),它们的MTU值都可能是不同的。例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。
!
那么什么情况下MTU值是合理的呢?1、本地MTU值大于网络MTU值时,本地传输的数据包过大导致网络会拆包后传输,不但产生额外的数据包,而且消耗了“拆包、组包”的时间。2、本地MTU值小于网络MTU值时,本地传输的数据包可以直接传输,但是未能完全利用网络给予的数据包传输尺寸的上限值,传输能力未完全发挥。 这样我们就知道,所谓合理的设置MTU值,就是让本地的MTU值与网络的MTU值一致,既能完整发挥传输性能,又不让数据包拆分。
!
设置MTU大小是一个反复试验的过程: 由最大值1500开始下降,直至问题解决。使用下列值之一或许能解决一些由MTU值引起的问题:
1500:以太网信息包最大值,也是默认值。是没有PPPoE和*** 的网络连接的典型设置。是各种路由器、网络适配器和交换机的默认设置
1492:PPPoE 的最佳值
1468:DHCP的最佳值
1430:***和PPTP 的最佳值
576:拨号连接到ISP的标准值
!
二、判断本机MTU最大值方法,思路:在广域网上,大小超出ISP要求的数据包将无法传输,而操作系统则会根据本机MTU值自动将大小不符合要求的数据进行分包处理再进行传输,所以我们可以通过向Internet上的某台主机发送一个定长数据包,并且不允许操作系统更改其大小的方式去检查该数据包能否被正常传输,如果数据包小于或等于ISP的MTU值时,传输就能正常进行,而如果发送的数据包大于ISP使用的MTU值时,传输就会失败,这样我们就能通过不断发送不同大小的数据包最终得到ISP端的MTU大小,而这个数据再加上28字节的包头信息就是我们需要的最终MTU值。
!
输入命令“ping –l 14xx –f >
MTU值是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。
MTU值可以这样设置(Windows平台下):
运行regedit
打开:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
A确定本机用来连接Internet的网卡或拨号连接的IP,如192168019;
B用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;
C如果IPAddress的键值与A中的IP相同,即192168019,则该子项就是要找的网卡;
D进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“DWORD 值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,弹出修改窗口,填入MTU的值(一般为十进制的1480)。
填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。
MTU的主要特点:
因特网协议允许IP分片,这样就可以将数据包分成足够小的片段以通过那些最大传输单元小于该数据包原始大小的链路了。这一分片过程发生在网络层(OSI 模型的第四层,此前词条为传输层:O S I 模型中最重要的一层,这里是根据窗口控制传输,而非MTU。传输协议同时进行流量控制或是基于接收方可接收数据的快慢程度规定适当的发送速率。除此之外,传输层按照网络能处理的最大尺寸将较长的数据包进行强制分割。
MTU是通信术语,意思是“最大传输单元”。
MTU=最大传输单元单位:字节英文:Maximum Transmission Unit,平时上网时的各种操作,都是通过一个又一个“数据包”传输来实现的。就像货车通过限高的桥洞一样,货物高度超过限制高度了,就需要卸下一些货物,分两批通过限高路段。关系还是挺密切的,在windows里,默认的MTU是1500,但是不同的网络接入方式,不同地区的网络运营商,甚至不同的路由器,它们的MTU值都可能是不同的。
分片过程如下:
1、首先计算最大的IP包中IP净荷的长度=MTU-IP包头长度=1500-20= 1480 bytes。
2、然后把3008 bytes按照1480 bytes的长度分片,将要分为3片,3008= 1480+1480+48。
3、最后发送者将为3个分片分别添加IP包头,组成3个IP包后再发送,3个IP包的长度分别为1500 bytes、1500 bytes和68 bytes。
第一步、测出自己当前网络最佳MTU值,敲下 “Win键+R”,然后在运行窗口后输入“cmd”,再敲回车键。
第二步、在命令提示符窗口输入以下命令(建议直接复制,以免误将小写字母 l 写为数字 1),输好之后敲击回车。ping -l 1472 -f >
这条命令的意思是向 >
第三步、要是出现传输失败,提示需要拆分数据包的情况,就说明当前网络的 MTU 值要比指定的 1472 小,因此我们就适当调小数据包的大小(比如 1450),再发送一条类似的命令。
第四步、如果出现传输成功,就说明当前网络的 MTU 值比 1450 要大。于是我们需要稍微调大数值(比如1460),以便求得最为精确的网络 MTU 值。
第五步、然后通过不断修正数据包的大小,最终得到当前网络的 MTU 值。比如小编我这里,测试 1464 通过,但 1465 失败,所以小编的网络 MTU 值为 1464。
在此需要特别说明的是,当设置本地 MTU 值,必须牢记要将这个测得的值再加上 28,即 1464+28 = 1492。
以上就是关于MTU值如何设置全部的内容,包括:MTU值如何设置、MTU越大越好吗最大多少、什么是MTU值如何设置最快最好等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!