路由器中填写的MTU值是包含28字节包头的。
例如:ping试验得到的最佳包大小为1460字节时,要加上28,将MTU设为1488。
计算机本地MTU值是1500,路由器MTU值默认1480,最大不可超过1492,进入路由设置了1168192。
如果是ADSL拨号上网的话,就设置成1492,如果是宽带上网或者是光纤上网,就设置成1500,mtu值没有明确规定必须是多少,要根据使用的网络环境决定。一般设备出厂时都默认是1500。
扩展资料:
MTU是网络调节的重要因素,因为包中的额外开销量相当高。高的MTU减少了头信息浪费的字节数。对大量数据传输尤其重要,而对小于MTU的传输没有影响。因此,注意配置传输大量数据流的服务器(如文件服务器和FTPH&.务器)上的MTU。
选择MTU时,规则是选择传输中不需分段的最大MTU。如果网络使用一种媒体类型,缺省的设置就可以。选择比媒体最大值更小的MTU并没有好处,整个数据报会因为每个包的错误而重发。换言之,不能重发单个段。
参考资料来源:百度百科-最大传输单元
如图所示,包的长度大于MTU网卡开启了TCP Segmentation Offloading功能(简称TSO): *** 作系统的TCP/IP模块不再进行TCP分段 *** 作,而是直接发大包(净荷超过1460字节)给网卡,由网卡完成分段功能(如果MTU=1500B,则分成的每个段大小都不超过MSS=MTU-40=1460B),这样可以减轻CPU的负担。
抓包位置是在TCP/IP模块和网卡之间,所以抓到的是大包,实际上在网卡上传的还是小包,包大小不会超过1500字节,净荷不会超过1460字节。
这个功能类似于TCP Checksum offloading功能,思路都是由网卡来分担CPU的一些工作,可以降低CPU的占用率。
如果抓包要看到小与1500的报文,可以关闭网卡TCO功能,关闭后会使CPU占用率升高:
ethtool -k eth0
ethtool -K eth0 tso off什么是MTU值?
MTU是Maximum Transmission Unit的缩写。意思是网络上传送的最大数据包。MTU的单位是字节。 大部分网络设备的MTU都是1500。如果本机的MTU比网关的MTU大,大的数据包就会被拆开来传送,这样会产生很多数据包碎片,增加丢包率,降低网络速度。把本机的MTU设成比网关的MTU小或相同,就可以减少丢包。
如何检测网关的MTU?
在本机打开dos窗口,执行: ping -f -l 1472 19216801 其中19216801是网关IP地址,1472是数据包的长度。请注意,上面的参数是“-l”(小写的L),而不是“-1”。 如果能ping通,表示数据包不需要拆包,可以通过网关发送出去。 如果出现: Packet needs to be fragmented but DF set 表示数据包需要拆开来发送。此时,减少数据包长度,再执行上面的ping命令。从1400到1472之间多试几次,就能找到合适的数据包长度了。把数据包长度加上数据包头28字节,就得到MTU的值。 如果检测到网关的MTU值是1500,不需要修改。 如果网关有防火墙ping不通,可以试试直接把MTU设为1400。
如何修改本机的MTU?
修改方法如下:
(1)、运行regedit
(2)、浏览到: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
(3)、Interfaces下有多个子项,每个子项对应一个网卡。请按如下方法选择网卡:
(a)确定本机用来连接Internet的网卡或拨号连接的IP,如192168019;
(b)用鼠标点击Interfaces上的子项,查看键值列表中的IPAddress项;
(c)如果IPAddress的键值与(a)中的IP相同,即192168019,则该子项就是要找的网卡。
(4)、进入该子项,在右边的窗口里按鼠标右键,选择“新建”->“双字节值”,输入名称“MTU”,按回车。再用鼠标双击“MTU”,d出修改窗口, 填入合适的MTU的值。填写前请先把基数设为十进制。 设置好后,需要重启机器才能生效。
实例修改
在我们常用的Windows XP *** 作系统中,系统默认的MTU值为1500,这是一个标准以太网的设置值,并不适合宽带网络,而一般ADSL宽带的MTU在1450与1492之间,系统与ISP之间MTU的不符就会直接导致数据在网络传输过程中不断地进行分包、组包,浪费了宝贵的传输时间,也严重影响了宽带的工作效率。这就要求我们必须将本机MTU值设为与ISP所使用的MTU值一样后才能快速浏览网页、下载数据。但是,每个地区的ISP所使用的MTU值都不相同,同时ISP也会不定期地更改局端MTU大小,这给我们设置本机MTU带来了很大的不便,那么我们怎样才能知道ISP的MTU是多少呢?其实,我们平时最常用的Ping命令就能很方便地帮我们测试出本地ISP的MTU大小,如果大家感兴趣,就请跟随笔者一起来看看吧。
在广域网上,大小超出ISP要求的数据包将无法传输,而 *** 作系统则会根据本机MTU值自动将大小不符合要求的数据进行分包处理再进行传输,所以我们可以通过向Internet上的某台主机发送一个定长数据包,并且不允许 *** 作系统更改其大小的方式去检查该数据包能否被正常传输,如果数据包小于或等于ISP的MTU值时,传输就能正常进行,而如果发送的数据包大于ISP使用的MTU值时,传输就会失败,这样我们就能通过不断发送不同大小的数据包最终得到ISP端的MTU大小,而这个数据再加上28字节的包头信息就是我们需要的最终MTU值。
测试步骤
1 上网,并打开“开始”菜单→“程序→附件→命令提示符”
2 输入命令“ping –l 14xx –f >
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)