最大传输单元MTU详解

网络协议 —— 最大发送单元( MTU ) 在目前大规模的数据中心等网络中,通常没有对 MTU 进行统一调整 ,随着新技术的应用, MTU 的问题会逐步暴露出来,比如为进行大二层扩展进行的各类隧道技术的使用, VPLS , VXLAN 等,这些技术无一例外的都使用了额外的封装,形成了超大报文 , 例如 VXLAN 会在原始报文基础上增加 50 字节 , 如不统一进行 MTU 的规划,会导致原始传输效率低下 , 或者业务中断;在数据中心等网络的建设中,也需要确定 MTU 的配置规范,在各个厂商都支持的情况下,尽量将 MTU 配置的大一些。 阅读详情

MTU(Maximum Transmission 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可能不尽相同,如下所示:

1)PPPoE/ADSL: 1360-1492

2) PPTP VPN: 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. TCP MSS 与大包通信的关系 

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

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

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

如果TCP MSS值设置的过小,报文数量明显增多又导致效率下降,特别是没有配置NAT应用的情况下,限制TCP报文大小更没有必要,由于应用情况比较复杂,设置默认的TCP MSS的值也不是特别合适(设备会在建立连接时均要修改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头大小),同样TCP server收到SYN报文后,会发送SYN+ACK报文应答,option选项填充的mss字段也为(MTU-IP头大小-TCP头大小);协商双方会比较SYN和SYN+ACK报文中MSS字段大小,选择较小的MSS作为发送TCP分片的大小。

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

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

5. 设置网络接口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

在MTU为1500,不分片的条件下,ping包长最大为1472B的理解 MTU默认值为1500,一般指IP报文长度为1500B;由于IP头默认20B,所以ICMP报文为1480BICMP报文头为8B,所以ICMP载荷为1472B。 阅读详情

相关推荐

mtu 服务器优化,修改MTU值优化网络

一、MTU值对网络的影响MTU,即Maximum Transmission Unit(最大传输单元),此值设定TCP/IP协议传输数据报时的最大传输单元。设置合适的MTU值可以解决“部分网站打不开”、“上网速度慢”等问题,并且可以适当提升上网速度。在默认情况下,TCP/IP在网络中的最大传输单元为1500。我们知道网络传输数据是按数据包的形式来传送的,例如默认的MTU值为1500字节,那么当传送的...

weixin_36489344的博客 3454

网络协议——最大传输单元 MTU

MTU Maximum Transmission Unit,最大传输单元,指的是数据链路层的最大payload,由硬件网卡设置MTU,是一个硬性限制 Q&A 1500字节包含链路层的头部和尾部吗?——不包含。 MTU里包含802.1Q的头部VLAN tag吗?——包含。当网卡配置VLAN tag时,VLAN tag + Data <= MTU,有时VLAN tag不只有一个,可能是双标签,那这个VLAN tag就是8个字节。 网络分片是在哪一层完成的?——网络层。网络层必须将发给网卡AP

wei 1万+

MTU详解:从原理到排障,教你正确设置最大传输单元

在计算机网络中,MTU(最大传输单元)决定了网络接口单次能发送的数据包大小,直接影响网页访问、大文件传输和游戏延迟等体验。当MTU设置不匹配时,会出现“小包能通、大包不通”的典型故障,比如部分网页白屏、视频卡顿或远程连接中断。理解MTU的工作原理,掌握IP分片、路径MTU发现(PMTUD)以及PPPoE拨号下的额外开销,是网络排障的关键。实际应用中,标准以太网MTU为1500,而PPPoE宽带通常需调整为1492,数据中心则可启用9000字节的巨型帧提升吞吐。本文从基础概念出发,结合Ping命令实测方法,逐

weixin_29698641的博客 246

【网络】什么是MTU|MTU 优化|最大传输单元

原文:https://notfalse.net/23/mtu 封装 与 拆装一文, 提及了 区段 (Segment)、资料包 (Datagram)、帧 (Frame)、封包 (Packet) 的概念。 应用层的资料,经由逐层的 封装 (Encapsulation), 最后成为 数据链路层 (Data-Link Layer) 的 帧 (Frame) 并传送。 但是,帧 (Frame) 太大会发生什麽事? 传输需耗损大量的 缓衝区 (buffer) 大小 传输媒介可能被某一传送端独佔,造成堵塞...

我的笔记本 1万+

MTU是什么?网页打不开、视频卡顿的隐形元凶,一文搞懂排查与调整

网络明明满格,网页却间歇性白屏,视频总在转圈?这往往不是带宽不够,而是数据包传输环节出了问题。网络传输中,数据被拆分成一个个数据包,每个包的最大尺寸由MTU(最大传输单元)决定。MTU设置不当,会导致数据包过大被丢弃,触发分片与重组,甚至因PMTUD路径MTU发现机制失效而形成黑洞,引发大包必丢、小包正常的怪象。掌握MTU的原理,理解1500、1492等常见值的由来,并通过ping命令探测最优值,是网络工程师排查故障的重要技能。无论是家庭PPPoE拨号、无线桥接,还是云主机VPC环境,合理调整MTU与TCP

weixin_33230433的博客 112

SNAP计算哨兵二号的叶面积指数(LAI)

对于哨兵二号数据以及LANDSAT8数据,SNAP提供已经集成好的模块计算LAI。在Optical->Thematic Land Processing->Biopyhsical Processor目录下面。 对于经过Sen2Cor处理好的数据,需经过重采样才可进行计算。重采样工具在Raster->Geometric->Resampling。 如果选择Biopyhsical Processor S2_10m进行计算,需要将所有的波段都重采样为10米(哨兵二号的第二波段为10米,可据此波

gxwwww的博客 9417

链路层详解---MTU最大传输单元

文章目录链路层如何获取对端的MAC地址MTU----最大传输单元 链路层 负责相邻设备之间的数据帧传输 链路层就是负责每一个相邻节点之间的数据传输 相邻设备之间也需要描述识别(因为一个设备有可能有很多相邻设备) 链路层相邻设备之间的识别是通过MAC地址实现的 MAC地址:网卡的硬件地址(uint8_t mac[6]) 48位对端MAC地址/48位源端MAC地址:描述识别相邻的设备—描述了相邻设备之间的数据传输 16位上层协议类型:网络层的协议类型,进行数据分用时选择上层的解析协议 32位CRC校验和:

Hedenghui777的博客 1171

线性代数学习笔记(十)——矩阵运算(二)

本篇笔记讲解矩阵的幂运算和矩阵的转置,其中矩阵进行幂运算的前提是矩阵为方阵,矩阵幂运算的两条性质与数的幂运算规则类似;矩阵转置的定义与行列式转置类似,但要注意由于矩阵的行数和列数不同,所以转置之后行数和列数变换。

li2008kui的专栏 1万+

QUIC-GO性能优化终极指南:MTU发现与路径最大传输单元详解

QUIC协议作为下一代互联网传输协议,正在彻底改变网络通信的性能表现。😊 在quic-go项目中,MTU发现机制是实现高性能传输的关键技术之一。本文将为您深入解析MTU发现的原理、实现方式和优化技巧,帮助您充分利用QUIC协议的优势。 ## 什么是MTU发现? MTU发现是QUIC协议中的一项重要功能,它通过动态探测网络路径的最大传输单元,确保数据包能够以最优大小进行传输。简单来说,MTU发

gitblog_01118的博客 376

Vivado FIR Complier_IP核使用方法

文章依靠该IP核对应手册PG149写的,因为笔者需求简单,没有深入挖掘功能,可以自行下载学习。

2302_80180551的博客 3987

uni-app - 文本展开 / 收起折叠功能,支持自定义样式(当文本内容超出规定行数后,展开收起折叠的功能)兼容 H5 / App / 小程序且易用更容易修改的插件组件源码,超详细的示例代码及注释

uniapp实现文本的展开与收起功能,uniapp展开全部和收起,uniapp里文本的展开与收起,uniapp中文本内容超出规定行数后展开收起的处理,UNIAPP兼容h5、微信小程序多行文本展开或收起,uni-app中,文字超出隐藏并显示省略号(实现展开、收起全文),uni-app中文本过长-实现折叠与展开效果,中文本内容超出规定行数(字数)后展开收起的处理,超出部分...显示,uniapp适用于uniapp多行文本溢出显示...,多行文本展开或收起,uni-app-文本展开/收起折叠功能,支

🏆 前端领域优质创作者 5639

国家基本比例尺分幅土地利用现状图制作

本次主要解决的问题是如何构建脚本快速生成所涉及区域标准国家基本比例尺分幅,然后制作土地利用现状图模板,套用模板生成标准分幅土地利用现状图。

xyt1172228177的博客 2458

MTU与MSS:Linux网络中的最大传输单元与分片机制

在网络通信中,MTU(Maximum Transmission Unit)和MSS(Maximum Segment Size)是关键参数,它们影响数据传输效率和可靠性。在Linux系统中,这些参数通过内核网络堆栈实现,并涉及IP层的分片机制。下面我将逐步解释这些概念,包括它们的定义、关系和在Linux中的具体行为。回答基于标准网络协议(如TCP/IP)和Linux实现,确保真实可靠。通过以上步骤,您应该能理解MTU、MSS和分片在Linux中的核心机制。如有具体场景问题,可提供细节以深入分析。

qqqqisuxkshd的博客 465

ZYNQ 使用AXI_BRAM实现PS与PL 数据交互数据交互

有时CPU需要与PL进行小批量的数据交换,可以通过Block RAM实现。通过Zynq 的GP Master 接口读写PL端的 BRAM,实现PS与PL的交互。加入自定义的 FPGA 程序,并利用 AXI4 总线进行配置,通知何时读写 BRAM。CPU通过 AXI BRAM Controller 读取 BRAM 数据,CPU 仅配置自定义的 PL BRAM Controller 的寄存器,不通过它读写数将BRAM与socket进行联合使用,将电脑的数据发到PS端,PS端放在PL端,PL端再发给PS端,P据。

wangjie36的博客 1万+

硬方案——几种实用的恒流源电路设计方案,敬请收藏(运放、三极管在手,让你玩出多种花样)

0 引言 我们在信号测量、供电等应用场景时常会涉及到使用恒流源,以前觉得恒流源挺神奇的,研究了下实现方案,其实也没有多么高深(这里讨论的仅限于用在信号测量中的小电流恒流源设计),这里给出几个实用的恒流源电路设计方案。 1 恒流源电路设计 (1)使用三极管搭建的恒流源 (2)使用运放搭建的恒流源 (3)使用恒流二极管搭建的恒流源 pt100恒流源测温电路图_电子技术_电工之家 ...

数字世界 万物互联 9524

TCP/IP

TCP/IP详解卷1》学习小结(一)------链接层 2013-01-17 15:06:12 标签:网络协议 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://neilhappy.blog.51cto.com/5504414/1120...

weixin_34355715的博客 70

倍福--实现TCP/IP的配置

控制器为CX5120,需要和上位机做通信,选择TCP/IP的通讯方式,本文介绍TCP/IP通信的操作步骤。 目 录 软硬件版本 3 1.1. 倍福Beckhoff 3 1.1.1. 控制器硬件 3 1.1.2. 控制软件 3 1.2. 串口调试助手 3 1.2.1. TCP调试通信助手 3 授权文件 3 2.1 Lib文件 3 2.2. CAB文件 4 PLC程序编写 4 3.1. 引入TCP/IP库文件 4 3.2. Client端程序 5 3.2.1. 建立相关变量 5 3.3.2. 编写连接功能块

weixin_41883890的博客 5730

修改网口MTU说明

定义:指网络层(IP层)能够传输的最大数据包大小(单位:字节),不包含以太网头部(14字节)和FCS(4字节)。默认值:标准以太网默认MTU为 1500 字节。此时最大帧长为 1518 字节。巨型帧:通常指 MTU 设置在 9000 字节及以上的数据包,常用于存储网络(如iSCSI、NFS)或内部高性能计算网络,以减少CPU中断和提升吞吐量。

Gp7HH6hrE的博客 199

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CH579 MTU大小协商加快语音文件传输速度

本文通过CH579 MCU实测,展示如何利用MTU协商与DLE技术提升BLE语音传输速度。通过合理配置最大传输单元和数据长度扩展,实现传输速率提升近5倍,显著降低延迟与CPU负载,适用于语音类蓝牙应用的性能优化。

weixin_36474001的博客 787

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

最大传输单元(MTU)

最大传输单元 维基百科,自由的百科全书 最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 因特网协议允许IP分片,这样就可以将数据报分成足够小的片段以通过那些最大传输单元小于该数据报原始大小的链路了。这一分片过...

weixin_34294649的博客 2925

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

IP协议解析及MTU最大传输单元的应用

IP协议解析及MTU最大传输单元的应用 1. IP协议解析 IP协议是属于网络层协议,IP协议只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。 2. 具体字段的意义及其功能 4位协议版本:当前版本默认为4,表示lPv4 4位头部长度:以4字节为单位,IP报头固定最小20字节,最大60字节 8位服务类型:3位弃用,1位固定0,4位tos字段:最高可靠性,最小成本,最大吞吐量,最小延时 16位报文长度:IP报文必须小于64k(tcp报文中数据必须小于64k-40,udp中数据最大小于64k-

qq_42613519的博客 1258

mtu(Maximum Transmission Unit)最大传输单元

最大传输单元(Maximum Transmission Unit, MTU)用来通知对方所能接受数据服务单元的最大尺寸,说明发送方能够接受的有效载荷大小 最大传输单元 - 百度百科

baidu_40537062的博客 774

网络协议学习笔记-数据链路层-MTU、路径MTU和串行线路吞吐量计算

原文  http://www.cnblogs.com/Marineking/articles/2626394.html 最大传输单元 (Maximum Transmission Unit,MTU):是指一种通信协议的某一层上面所能通过的最大数据报大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 以太网和802.3对数据帧的长度都有一个限制

PersonFly_小逗 2049
上一篇: VIM常用命令及使用技巧
下一篇: SDH原理--1.SDH概述
JIANXIN.Y
博客等级 码龄9年 273粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值