什么是数据包MTU,最大传输单元详解_cfeng 数据包mtu 字节

MTU(MaximumTransmission Unit,最大传输单元)

MTU由TCP/IP协议栈中的IP协议定义,网络层的IP将MTU设置为1500字节。

简单点理解就是:

IP规定每一个单独的数据包大小,在网络层时不能超过1500字节。

如果要将一个大于1500字节的数据包从一个接口传出去,在网络层,就会对这个数据包进行分割成若干份,每份都是1500字节。

比如:一个5000字节的数据包要传出去,则会分成四个数据包,前三个都是1500字节,最后一个是500字节。

关于一个数据包MTU的大小,并不是固定的,需要注意的是:

网络层外面还会加上数据链路层的封装,经过数据链路层封装之后,才是一个数据包最终的大小。要注意,MTU只是限制了一个数据包经过网络层的封装后,不要超过1500字节。

一个数据包最终是多少,是不能一概而论的,不同的数据链路层会在“网络层1500字节”的基础上加上不同的头部,比如:

以太网会在网络层的基础上加上14字节头部和4字节的FCS尾部,所以,一个以太网数据帧最终的大小是1518字节

当数据链路层为HDLC时,它会在网络层前面加上4字节的HDLC的头部和4字节的FCS校验,所以,一个HDLC链路的数据包是1508字节

当数据链路层为PPP时,它会在网络层前面加上4字节的PPP的头部和4字节的FCS校验,所以,一个PPP链路的数据包是1508字节

其他…………

当链路两端的数据包MTU设置不一致时,影响大吗?

需要注意的是,MTU只会影响到数据发出方向,对收入的数据,是没有MTU限制的。

但是,我们建议将链路两端的MTU设置为一样大小的,因为网络通讯都是有来有回的,一个大与接口MTU的数据收进来,如果又要从这个接口返回去,则入向收到的是一个完整的包,而出向会对这个数据分片。

虽然不会影响通信,但这种双向数据结构不匹配的通讯模型并不是很合理。

以太网最小帧长为什么是64字节

以太网(IEEE 802.3)帧格式:

1、前导码:7字节0x55,一串1、0间隔,用于信号同步

2、帧起始定界符:1字节0xD5(10101011),表示一帧开始

3、DA(目的MAC):6字节

4、SA(源MAC):6字节

5、类型/长度:2字节,0~1500保留为长度域值,1536~65535保留为类型域值(0x0600~0xFFFF)

6、数据:46~1500字节

7、帧校验序列(FCS):4字节,使用CRC计算从目的MAC到数据域这部分内容而得到的校验和。

相关MTU问题整理

MTU设置不当,可能会导致许多网络问题,如某些网络应用无法使用,某些网站无法访问等。下面是在网上搜索整理的关于MTU设置的东西,某些可能未作验证,仅供参考。

1. 如何确定网络MTU

某些ISP接入的MTU可能会比常规使用的MTU小,这时如果设置了过大的MTU,就可能会导致很多服务无法使用的问题。可以通过ping程序确定MTU的值。

Windows可以打开命令提示符,使用 PING -l -f 的方式确定MTU

ping -l 1400 -f www.baidu.com

如果能ping通,说明词MTU是可以的,可适当加大MTU值,直到最大;否则就要适当调小MTU值。设置最大的MTU值可以有效的提高网络吞吐量。

相关实验可见下图:

2. 常见MTU值
什么是数据包MTU,最大传输单元详解_cfeng 数据包mtu 字节

根据宽带连接方式的不同,MTU可能不尽相同,如下所示:

1)PPPoE/ADSL: 1360-1492

2) PPTPVPN:1400-1460

3) L2TP VPN: 1400-1460

4) Fixed IP: 1400-1500

5) DHCP: 1400-1492

3. Windows 修改MTU

Windows直接连接的,可在注册表中修改MTU,具体方法为:

1)【开始】-【运行】-【regedit】打开注册表

2)选择【HKEY_Local_Machine】-【SYSTEM】-【CurrentControlSet】-【Services】-【Tcpip】-【Parameters】-【interface】

3) 在 interface 底下可能有很多的选项,一个一个的去看,会有一个选项IPaddress与当前网卡的 IP相同,然后在该选项上选择【编辑】-【新建】-【DWORD值】,建立一个名为【MTU】的DWORD,然后双击修改,选择十进制,填入合适MTU 值

4.路由器中设置MTU

如果是通过路由器共享上网,可以查看路由器是否支持MTU设置,如果支持,那么恭喜你,直接修改MTU为合适的数值即可。

1)TP-LINK 路由器设置

2)JCG路由器设置

5. TCP MSS 与大包通信的关系

用户在使用路由器访问Internet时,经常会反馈不能访问网页(或部分网页)以及使用Outlook收发邮件(这些应用是基于TCP或UDP的),但进行Ping包时没有问题,这时候检查配置时也没有错误。出现这种情况的时候,多半是因为在设备上进行了NAT应用,同时设备对报文进行了分片操作。

IP报文里是有五元组的,但报文要进行分片时,只有第一片报文带有IP的五元组信息(源目的ip位址,源目的端口号,协议号),后续的分片不会保留TCP/UDP报文所有的标识信息,如端口号信息等,这种情况下,如果设备又实现了NAT转换操作(NAT转换过程中,会随机地做埠转换),并且应用又是基于TCP/UDP的,这就导致报文不能正确组包,会出现上述的问题现象。

TCP/IP连接时建立的过程中会协商很多参数的,其中TCP MSS参数就是用于协商TCP报文大小的,如果协商出来的TCPMSS的参数值小于设备的MTU的值时,TCP报文在设备上就不会被分片,否则就会出现报文分片并导致上述现象的发生,因此,为了避免上述情况的发生,一定要保证协商的TCPMSS参数小于设备的MTU的值。为此,Quidway路由器上有一个设置TCPMSS值的命令,如果配置了这条命令,路由器设备在建立TCP/IP连接的过程中就按照这个配置的值来修改协商报文中关于TCPMSS的值,在同对端协商的过程中也就能够协商出这个值来,如果不配置这条命令,路由器设备就不会修改报文中的这个值(有时对端设备发送过来的协商报文中的这个值会很大,如8000)。一般来说,默认或配置的MTU的值一般在1500左右,将TCPMSS的值设备为小于1500就可以,如1400或1024等。

如果TCPMSS值设置的过小,报文数量明显增多又导致效率下降,特别是没有配置NAT应用的情况下,限制TCP报文大小更没有必要,由于应用情况比较复杂,设置默认的TCPMSS的值也不是特别合适(设备会在建立连接时均要修改TCP MSS的值),因此,还是在应用中加以注意比较好,思科设备也是有这个配置命令的

MTU: Maxitum Transmission Unit 最大传输单元

MSS: Maxitum Segment Size 最大分段大小

MSS最大传输大小的缩写,是TCP协议里面的一个概念。
MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。

而一般以太网MTU都为1500, 所以在以太网中, 往往TCP MSS为1460。

协商TCP MSS大小具体过程如下:
TCP client发出SYN报文,其中option选项填充的MSS字段一般为(MTU-IP头大小-TCP头大小),同样TCPserver收到SYN报文后,会发送SYN+ACK报文应答,option选项填充的mss字段也为(MTU-IP头大小-TCP头大小);协商双方会比较SYN和SYN+ACK报文中MSS字段大小,选择较小的MSS作为发送TCP分片的大小。

对于涉及PPPOE+NAT、IPsec、L2TP、GRE等组网,通常由于报文太大需要分片,这样会降低传输速率;所以选择一个合适的MSS对传输数据来说比较重要. linux中一般可以通过netfilter iptables设置TCPMSS来解决。

iptables -A FORWARD -p tcp- -tcp-flags SYN,RST SYN -j TCPMSS--clamp-mss-to-pmtu

这条规则的目的就是改变TCP MSS以适应PMTU(Path MTU)

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN- j TCPMSS--set-mss 128

设置MSS为128

6. 设置网络接口MTU

1)Linux主机接口MTU可通过如下命令设置

ifconfig mtu

2)PPPoE MTU设置,可以通过在配置文件中添加

mtu

mru

3)NAT自动设置MSS值

iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS--clamp-mss-to-pmtu

  

爱华网本文地址 » http://www.413yy.cn/a/25101017/360249.html

更多阅读

圣母是欧洲危机的「最大希望之源」 欧洲圣母病

圣母是欧洲危机的「最大希望之源」教廷礼仪圣事部部长安多尼·卡尼萨雷斯〔网上图片〕  教廷礼仪圣事部部长安多尼·卡尼萨雷斯(AntonioCanizares)枢机,在西班牙瓦伦西亚的传统「儿童弥撒」中说,圣母玛利亚是目前面临经济危机的西班

什么是丙烯颜料,环保吗? 丙烯颜料环保吗

什么是丙烯颜料,环保吗?(2012-03-24 23:47:59)标签:杂谈分类: 关于筑梦历经多年不断的尝试,淘汰,我们精选出了最适合墙面装饰的品牌丙烯画颜料作为我们的施工用颜料,它色泽鲜艳、丰富,遮盖力强,环保速干,同时又便于清洗。丙烯颜料是二十

什么是国际货代,主要工作是什么? 宁波国际货代

什么是国际货代,主要工作是什么?作者:货代知识十万个为什么货代的历史:国际货代行业建立于十世纪,早期期为报关行,大部分从业人员是从国际贸易企业而来,高素质人才,货主的相当一部分国际贸易业务和运输事宜都由其办理,随着贸易发展,逐渐派生

声明:《什么是数据包MTU,最大传输单元详解_cfeng 数据包mtu 字节》为网友花與少年分享!如侵犯到您的合法权益请联系我们删除