路由器中MTU的数值应为多少?

“MTU=最大传输单元 单位:字节”

  我们在使用互联网时进行的各种网络操作,都是通过一个又一个“数据包”传输来实现的。而MTU指定了网络中可传输数据包的最大尺寸,在我们常用的以太网中,MTU是1500字节。超过此大小的数据包就会将多余的部分拆分再单独传输。

在Windows系统中,默认MTU值也是1500字节,但是“不同的接入方式、不同地区的网络运营商、不同的路由器”有着不同的MTU设置。

  例如:ADSL接入时MTU为1492字节,假设A需要给B传输3000字节数据,如果整个传输过程中各个环节的MTU都是1500,那么2个数据包就可以传输完成。可是偏偏这时ADSL接入方式的MTU是1492字节,数据包就因为这个MTU差异额外拆分为3个(为了便于理解,暂时不将“数据包报头”纳入考虑范围)

  显然这额外增加了需要传输的数据包数量,而且拆包组包的过程也浪费了时间。如果从本地到网络采用一致的MTU就可以避免额外拆包。

探测合适的MTU值,在cmd中输入 

“ping -l 1472 -f www.baidu.com”
含义:

ping:发起一个探测请求;

-l(L的小写):限制探测包大小;

1472:包大小为1472字节;

-f:禁止路由器拆分数据包

www.baidu.com:设百度为探测目标

探测包大小设置为1472,如果能正常返回,则证明MTU是1500,

数据包大小需要加上28字节的“数据包报头”,才是完整的数据包尺寸

如果出现需要拆分数据包但是设置 DF。或是Packer needs to be fragmented but DF set.的提示,那就说明数据包大小超过了网络限定的MTU大小。需要减小探测包大小再次尝试。

f89e6da695ba5dc995dfeca3118dbd3ee49.jpg

减小可以按5或者3进行减小,当又返回时,在进行加一,尝试出具体的MTU值

a9ba5938996b8fa13dfd87da9428166f5a3.jpg

所以这里尝试出的值时1464,因此路由器中设置MTU值为 1464+28 = 1492

转载于:https://my.oschina.net/lanyu96/blog/3059011

猜你喜欢

转载自blog.csdn.net/weixin_34296641/article/details/91903008