您好,欢迎访问飞畅科技官网!
服务热线:+086 0571-87007055/56/57 EN
飞畅科技工业通信技术中心

光通信与工业互联网方案专家

EXPERT IN OPTICAL COMMUNICATION & INDUSTRIAL INTERNET SOLUTIONS

联系我们CONTACT US

全国咨询热线

0571-87007055/56/57/75

市场部直线电话:0571-87007140

手机:15306818230(微信)

QQ :2355416925

定制设计:18072828031(微信)

或给我们留言

在线留言

小包能通,大包为何失败?工业以太网MTU、巨帧与路径瓶颈科普

浏览次数:飞畅科技原创作者:飞畅科技技术团队

FIBERIOT / 故障排查

PLC能被搜索到,短命令也能应答,上传配方或打开远程画面却总卡住。有人立即更换光模块,有人把交换机速率调高,结果问题仍在。除了链路、电源和程序,还应检查一个容易被忽略的边界:这条通信路径究竟允许多大的报文通过?MTU不是网速,而是一次能够承载的信息尺寸。把它与以太网帧、巨帧和TCP数据段分清,才能理解“小包能通,大包失败”。

以太网帧内IP包与TCP应用数据的封装和长度口径
图1:原创通用示意,区分IP MTU、TCP MSS与外层帧长,非产品内部实测。

01先认清包裹:应用数据外面还有几层包装

电脑或控制器要发送的信息,通常不是直接出现在网线上。以TCP通信为例,应用数据先加上TCP头,里面记录端口、序号等传输信息;再加IP头,说明从哪里来、到哪里去;最后装入以太网帧,由网卡通过线路发出。接收端按相反顺序拆开包装。不同层都有自己的长度,不能拿其中一个数字代表全部。

本文所说的IP MTU,是一个接口允许发送的完整IP数据包的最大长度,包含IP头和IP载荷,不包含外层以太网头与帧校验部分。常见普通以太网接口使用1500字节IP MTU,但这不是所有网络的固定值。带VLAN标签时外层帧也会增加内容;设备手册中的“最大帧长”是否包含标签、校验字段,必须按它的定义核对。只看到“支持大帧”四个字,还不足以确定实际配置。

02MSS与巨帧:一个限制数据段,一个扩大承载范围

MSS是TCP最大报文段大小,限制的是一个TCP段里承载的应用数据部分。可以把MTU理解为带包装的包裹尺寸,MSS理解为内装物品的尺寸。TCP连接建立时,接收方会向对方报告自己愿意接收的MSS,发送方还要结合自身与路径条件安排数据段;它不是两端简单取一个数字就能保证整条路径畅通。TCP选项、IP版本和额外封装都可能影响最终可用空间。

巨帧通常指超过常规以太网尺寸范围的帧。它可能减少传送同一批数据时的帧数量,但不会把端口速率凭空提高,也不保证控制通信更及时。终端网卡、交换端口、路由接口以及中间设备都要满足相应条件。只在一台交换机打开巨帧,不能让不支持该长度的PLC或远端设备自动适应。对短小的控制报文,扩大帧长还可能没有实际收益。

IPv4大包在较小MTU路径被丢弃并由ICMP反馈源端
图2:假设IP MTU 1500与1400的路径示例;仅说明反馈机制,不代表产品参数。

03整条路看最窄的一段,不只看两端设置

想象一辆运输车先走宽路,再经过窄桥。出发点能装很大的包裹,并不代表窄桥也允许通过。路径MTU就是从发送方到接收方沿途限制形成的边界。设备经过路由、远程接入或隧道时,这个边界可能小于本地局域网。换了一条备用路径,或者新增一个安全网关,也可能改变原本能通过的尺寸。

二层交换机主要转发以太网帧。遇到超过自身接受范围的帧,可能直接丢弃并产生相关计数,它不会为了帮忙把里面的IP包切成几块。IP分片属于IP层处理,不能把二层交换机的帧长设置与路由器的IP MTU混为一谈。排查应画出真实经过的设备和接口,区分同网段交换、跨网段路由与隧道封装;不要仅比较两台终端的配置界面。

04IPv4怎样反馈“太大了”,IPv6又有什么不同

以传统IPv4路径MTU发现为例,发送方给IP包设置“不允许途中分片”的DF标志。若路由器要把它送到较小MTU的下一跳,又不能分片,就会丢弃这个包,并向源主机返回“需要分片”的ICMP错误信息。源主机据此降低该路径的发送尺寸,再尝试发送。ICMP在这里像一张退件说明,不是业务命令,却能帮助业务继续通信。

如果这种必要反馈被过滤,发送方可能只看到反复超时,甚至出现短命令正常、大数据迟迟传不完的现象。实际系统也可能使用其他探测或回退机制,不能据此断言每次都必然卡死。IPv4在允许分片的条件下可以由路由器分片,接收端负责重组;IPv6的路由器不执行这种途中分片,而通过Packet Too Big消息提示源端调整。不要把两种机制合并成一个万能修复步骤。

逐步改变报文长度并结合交换机计数与隧道封装排查
图3:原创诊断示意,长度扫描与抓包证据需要交叉验证,非实测曲线。

05远程隧道多一层包装,原来合适的包可能变大

远程维护链路可能把一个原有报文再放进新的外层封装。好比已经装好的盒子又套进运输箱,线路要承载的是加上外层后的尺寸。原来的应用数据没有变,沿途看到的外层包却更大。如果设备没有正确处理隧道的有效MTU与发送策略,边界问题就可能只在远程路径出现,本地访问仍然正常。

不能给所有VPN或隧道统一减去一个固定字节数。协议、加密方式和封装层数会影响开销,应依据具体实现资料。TCP MSS调整有时用于减少经过某路径的TCP段尺寸,但它并不自动处理所有UDP流量,也不代替帧长能力核对。需要改动安全设备时,应保留原配置、确定适用流量,并验证必要的错误反馈;不应为了让大包通过就关闭整套安全策略。

06现场排查:让测试长度有目的地变化

先在维护窗口记录小包的正常基线,再逐步增加测试报文长度,观察失败是否在相近边界出现。应核对工具显示的是应用载荷、IP包还是完整帧长度;不同操作系统的命令参数含义不一定相同。不能把一次普通ping成功当成“大帧全路径正常”,也不能在生产控制链路上直接进行无边界的压力测试。

同时观察发送端、接收端与中间设备证据:请求有没有发出,是否收到长度相关错误,交换端口有没有超长帧丢弃,路由或隧道是否反馈包过大。抓包中的异常大包也可能来自网卡卸载功能形成的主机视角,不一定以同样尺寸出现在物理线路上。必要时结合合适的外部观察点确认。单独一个丢包计数不能证明MTU原因,还要排除拥塞、线缆错误和终端处理异常。

测试前还要确认工具显示的长度属于哪一层。有的工具输入的是测试数据长度,有的显示完整IP包长,还有的显示网线上整帧的长度。把这些数字混在一起,会误以为设备在同一个边界上表现不一致。先记录工具名称、长度定义、是否允许分片和测试方向,再比较结果。一次改变一个条件,能让观察到的变化有明确原因;若同时改网卡、隧道和交换机,虽然可能暂时恢复,却很难知道真正的瓶颈在哪里。

07怎样在工业项目中把这条边界验收清楚

飞畅官网提供的管理型工业交换机产品资料,可作为核对接口与组网条件的入口;具体型号是否支持某种巨帧尺寸、按端口还是全局设置,应继续查看对应说明书或确认资料,不能从“千兆”或“管理型”直接推断。光口与电口只是不同物理传输方式,改成光纤并不会自动取消帧长与IP包长边界。

验收表可以记录终端MTU、各设备最大帧长口径、路由和隧道限制、双向测试条件以及故障发生位置。若业务确实需要大帧,就逐段核实;若不需要,保持经过验证的常规配置通常更便于维护。最终应回答三个问题:多大的报文能通过、超过边界怎样处理、改变路径后业务能否恢复。本文图中的尺寸仅用于解释原理,不代表飞畅产品参数或现场实测结果。

参考资料:RFC 1191:IPv4路径MTU发现;RFC 8201:IPv6路径MTU发现;Cisco:分片、MTU、MSS与隧道说明;Cisco:交换设备MTU排查示例;飞畅管理型交换机产品资料。图为原创通用原理示意,图中数值是假设例子,非飞畅产品内部实拍或实测。