总结:本地的mtu值==网络设备的mtu值是最优的,一般本地和网络设备的默认值都是1500(字节),没什么特殊需求,尽量不要修改

一、什么是 MTU 值

 
  1. 1

    从字面上来说,MTU 是英文 Maximum Transmission Unit 的缩写,即最大传输单元,它的单位是字节。

    在我们常用的以太网中,MTU 一般是 1500,而无线路由器默认一般是 1492,蓝牙官网的默认值是 672(这个速度很慢了,大约 20k/s 左右)。

  2. 2

    为什么说 MTU 值会影响网速呢?在此简单说明一下。

    在 Win 系统中,MTU 值默认是 1500。假设我们现在要传输 3000 字节的数据,只需要拆分成 2 个数据包就行了。

    而如果是 ADSL 接入方式,它的 MTU 值是 1492 的话,则 3000 字节的数据需要分为 3 个数据包传送。由于数据包的数量增多了,同时拆包组包都需要额外消耗时间,因此网速变慢也就不足为奇了。

    END

二、怎样测出自己当前网络最佳MTU值

 
  1. 1

    首先,我们必须明白什么才是最佳的 MTU 值。

    1)当本地 MTU 值 > 网络 MTU 值,网络会进行拆包,这样一来数据包数量增多,二来也增加了拆包组包的时间

    2)当本地 MTU 值 < 网络 MTU 值,虽然可以直接传输,但是却没有完全利用网络的性能,没有发挥出最大传输能力

    因此,设置最合适的本地 MTU 值,就是要让本地 MTU 值 = 网络 MTU 值。

    那么,怎样才能知道自己的当前网络环境的 MTU 值是多少呢?下面便来介绍测试方法。

  2. 2

    一、按下快捷键 Win键+R,打开运行窗口后输入 cmd,回车打开命令提示符窗口。

  3. 3

    在命令提示符窗口输入以下命令(建议直接复制,以免误将小写字母 l 写为数字 1),回车。

    ping -l 1472 -f www.baidu.com

    这条命令的意思是向 www.baidu.com(百度主页)发送一个探测请求,请求将一个不允许分割的 1472 字节的数据包发送出去。

  4. 4

    若是出现传输失败,提示需要拆分数据包的情况,则说明当前网络的 MTU 值要比指定的 1472 小,因此我们就适当调小数据包的大小(比如 1450),再发送一条类似的命令。

  5. 5

    这时,如果出现传输成功,则说明当前网络的 MTU 值比 1450 要大。于是我们需要稍微调大数值(比如1460),以便求得最为精确的网络 MTU 值。

  6. 6

    如此这般,通过不断修正数据包的大小,我们可以最终得到当前网络的 MTU 值。比如我这里,测试 1464 通过,但 1465 失败,所以我的网络 MTU 值为 1464。

    在此需要特别说明的是,当我们设置本地 MTU 值,必须牢记要将这个测得的值再加上 28,即 1464+28 = 1492。

    END

三、怎样设置本地MTU值

 
  1.  

    【Vista、Win7、Win8.1、Win10 操作系统设置 MTU 的方法】

    1、查看自己当前网络的 MTU 值,请命令提示符下输入以下命令并回车:

    netsh interface ipv4 show subinterfaces

  2.  

    2、要设置你正在使用网络的 MTU 值,请在命令提示符下输入以下命令并回车:

    netsh interface ipv4 set subinterface "需修改的连接名" mtu=值 store=persistent

    其中,需修改的连接名 和  要用相应的值来代替。例如,我这里需要输入:

    netsh interface ipv4 set subinterface "WLAN" mtu=1492 store=persistent

    在这里,我已经把要修改的地方用粗体字标出来了。

    另外,请大家注意,修改 MTU 值与查看不同,需要以管理员身份运行命令提示符。

  3. 3

    当我们以管理员身份运行命令提示符符时,输入以上命令即可成功设置。友情提示:回车后出现“确定”二字即代表已经设置成功。

    附:

    1)在 Win8.1/10 中以管理员身份运行命令提示符的方法,右击屏幕左下角的Win徽标,在弹出的右键菜单中点击“命令提示符(管理员)”

    2)Win7点击开始菜单,在所有程序找到“命令提示符(管理员)”点击运行即可

mtu简单说明的更多相关文章

  1. Python 黏包及黏包解决方案

    粘包现象 说粘包之前,我们先说两个内容,1.缓冲区.2.windows下cmd窗口调用系统指令 1 缓冲区(下面粘包现象的图里面还有关于缓冲区的解释) 每个 socket 被创建后,都会分配两个缓冲区 ...

  2. Python网络编程socket

    网络编程之socket 看到本篇文章的题目是不是很疑惑,what is this?,不要着急,但是记住一说网络编程,你就想socket,socket是实现网络编程的工具,那么什么是socket,什么是 ...

  3. Python-网络编程(二)

    今天继续网络编程的东西 一.网络通讯原理 1.互联网的本质就是一系列的网络协议 我们是在浏览器上输入了一个网址,但是我们都知道,互联网连接的电脑互相通信的是电信号,我们的电脑是怎么将我们输入的网址变成 ...

  4. 提升网速的路由器优化方法(UPnP、QoS、MTU、交换机模式、无线中继)

    在上一篇<为什么房间的 Wi-Fi 信号这么差>中,猫哥从微波炉.相对论.人存原理出发,介绍了影响 Wi-Fi 信号强弱的几大因素,接下来猫哥再给大家介绍几种不用升级带宽套餐也能提升网速的 ...

  5. 【Network】UDP 大包怎么发? MTU怎么设置?

    这里主要用UDP来发送视频,当发送的数据大于1500时分包发送,保证每包小于1500.发送好办,分割后循环发就可以了,关键是接收时的处理.先做一下处理的方法 :发送时每包上面加上标识,比如RTP的做法 ...

  6. 简单理解Socket

    题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公司使用的一些控件的开发,浏览器兼容性搞死人:但主要是因为这段时间一直在看html5的东西,看到web socket时觉得很有 ...

  7. Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例

    目录 [TOC] 1.环境准备 ​ 本文中的案例会有四台机器,他们的Host和IP地址如下 c1 -> 10.0.0.31 c2 -> 10.0.0.32 c3 -> 10.0.0. ...

  8. [转]简单理解Socket

    简单理解Socket 转自 http://www.cnblogs.com/dolphinX/p/3460545.html  题外话 前几天和朋友聊天,朋友问我怎么最近不写博客了,一个是因为最近在忙着公 ...

  9. About MTU,TCP-MSS (转)

    MSS是Maxitum Segment Size 最大分段大小的缩写,意为TCP数据包每次能够传输的最大数据分段,是TCP协议里面的一个概念.MSS值所表示的是TCP报文的净载荷数据大小.通过设置其大 ...

随机推荐

  1. 新浪某站CRLF Injection导致的安全问题

    CRLF攻击的一篇科普:新浪某站CRLF Injection导致的安全问题(转) 转:https://www.leavesongs.com/PENETRATION/Sina-CRLF-Injectio ...

  2. jQuery漏洞

    1.使用jQuery.append().jQuery.html()方法时,如果其中内容包含<script>脚本而没有经过任何处理的话,会执行它. 2.版本低于1.7的jQuery过滤用户输 ...

  3. PHP面向对象的三大特征操作——封装、继承、多态(下)

    <?php 继承(单继承)特点:一个子类只有一个父类,一个父类可以有多个子类.//父类(基类)class Ren{    public $name;    public function say ...

  4. sqlserver 循环取时间

    declare @str date; set @str='2015-01-08'; while DATEDIFF([day], @str , '2015-02-01')>0 begin sele ...

  5. 第26月第23天 nsobject 单例 CFAbsoluteTimeGetCurrent

    1.nsobject 单例 sudo chmod 666 /Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Resources/ ...

  6. 登录mysql时的一些命令

    清屏: cls 只要输入cls然后回车运行命令,可以清屏. 查看版本号: mysql -V 注意:V一定要大写,如果不大写就错了... 登录: mysql -u用户名 -p密码 -P端口号 -h数据库 ...

  7. window.name

    name 设置或返回存放窗口的名称的字符串.该名称是在 open()方法创建窗口时指定的或者使用一个<frame>标记的name属性指定的. 窗口的名称可用作一个<a>或者&l ...

  8. Django 详解 中间件Middleware

    Django中间件 还是涉及到django的请求生命周期.middle ware 请求穿过中间件到达url,再经过中间件返回给用户. 简单实例 django项目根目录新建一个Middle文件夹,再新建 ...

  9. Shiro入门 - md5+salt测试

    算法分类 典型的散列算法包括 MD2.MD4.MD5 和 SHA-1 待更新... 代码 /** * md5散列算法测试 */ @Test public void testMD5(){ String ...

  10. 批量清除react中的计时器小组件

    在Timers的父组件被卸载时,批量清除各个计时器.