您好,欢迎访问飞畅科技官网!
服务热线:+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(微信)

或给我们留言

在线留言

工业交换机流控怎么工作:暂停帧为何能缓解丢包却可能拖慢控制

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

FIBERIOT / 基础知识

交换机端口灯亮着,为什么应用仍会偶尔丢包?很多人第一反应是更换网线或提高带宽,但真正的原因可能是某个出口瞬间来不及发送。流控就是设备在“快要接不住”时发出的一种暂停请求。本文从数据进入端口、缓冲队列、暂停帧字段到工业现场验收,说明它能解决什么,不能解决什么。

原理图可点击查看原图;手机端可横向滑动查看清晰标注。

接收端缓存压力触发相邻发送端暂停
图1:展示全双工相邻链路中缓存压力、暂停请求和发送闸门的方向关系。原创原理示意,非实测。

01先把“拥堵”想成一个出口排队问题

交换机并不是收到一帧就立刻送出。它先读取帧头,查找目标MAC对应的出口,再把帧交给出口发送器。如果多个入口同时把数据送向同一个较慢的出口,出口前的缓存就像只有一个闸门的车道:入口还在来,出口却只能按自己的速度放行。

这种短时间集中到达叫微突发。平均利用率不高,也可能出现瞬时排队。缓存满后,新到的帧只能丢弃。流控的目标是给相邻设备争取一点排空时间,而不是把一条链路变快。

把它与“加大带宽”区分开:带宽是道路宽度,流控是车辆已经排队时的临时放行规则。道路本身有故障、光模块不匹配、双工协商错误时,暂停帧不能替代维修。它只在发送端和接收端都能理解该控制方式、并且链路处于全双工时,才有机会发挥作用。

因此,看到暂停帧时不要只问“要不要关掉它”,而要问“哪个出口先满、谁在请求暂停、暂停是否沿着预期方向传播、控制业务是否受影响”。这四个问题比单独修改一个勾选框更容易找到真正原因。

原理图可点击查看原图;手机端可横向滑动查看清晰标注。

802.3x暂停帧字段和计时器处理过程
图2:展示暂停帧的识别字段、计时器和MAC发送控制。示例字段用于解释机制。

02802.3x暂停帧怎样让相邻设备暂缓发送

在全双工以太网中,接收端B发现自己的接收缓存达到设定压力,会向发送端A发一个特殊的MAC控制帧。它不是普通业务数据,Type字段为0x8808,暂停操作码为0x0001,还带有暂停时间值。A的MAC识别后,暂时停止向B发送新的业务帧,已经在链路上的帧仍按协议完成传输。

暂停时间不是“休息几秒”的口语命令,而是用固定时间量表达的计数值,设备内部按自己的时钟逐步递减。时间到后A恢复发送;如果B仍然拥塞,可能再次发送暂停帧。具体是否启用、计时单位和统计方式必须以设备芯片及固件说明为准,不能把一台设备的界面名称套到所有交换机上。

暂停帧只影响相邻全双工链路,并不会替所有下游设备做端到端调度。它也不会改变IP地址、重排应用消息或修复坏光纤。对端不支持或关闭接收流控时,发送端可能忽略这类请求。

抓包时不要只看帧的颜色或软件名称。应确认目的地址、类型字段、操作码和暂停时间是否被正确解码,再把抓包时间与交换机端口的接收、发送和丢弃计数对齐。不同厂商可能把计数器命名为流控帧、暂停帧或MAC控制帧,名称不同不代表机制不同。

原理图可点击查看原图;手机端可横向滑动查看清晰标注。

工业交换机流控在PLC摄像机和上联拓扑中的影响
图3:展示暂停只沿相邻链路传播及其对不同端口的影响。原创工程示意。

03流控开启后,工业网络哪里会变化

在典型拓扑中,PLC、摄像机和上联设备同时发送,交换机B某个出口出现排队。B发暂停帧给直接相连的A,A暂缓该方向的新帧;其他没有拥塞的端口仍可工作。若A的发送队列也被占满,暂停会向更上游传播,形成“背压”。这能减少瞬时丢帧,却可能让控制消息等待更久。

因此,流控不是越多越好。对周期性控制、报警和视频混合的网络,应先确认优先级、队列和端口速率,再决定是否启用。飞畅官网工业网管交换机资料列出端口流量控制、广播风暴抑制、端口统计、VLAN和端口镜像等管理功能;这些能力有助于观察和限制流量,但具体是否支持某种暂停帧模式仍须查对应型号手册。

如果暂停从一台交换机传到另一台交换机,现场人员应画出每一跳的方向。一个端口的接收压力可能让上一跳放慢,却不会自动通知几跳之外的PLC。链路层流控和应用层重试、控制器周期是不同层次的问题,混在一起会误判故障。

实际设备的缓存位于端口、交换芯片或上行发送队列中的哪一层,取决于芯片和固件设计。文章中的“B缓存”是帮助理解的简化称呼,不代表所有型号都有同样的阈值或同样的告警。查手册时应找流控开关、接收暂停、发送暂停、队列丢弃和统计清零等明确项目。

流控与广播风暴抑制也不是同一件事。风暴抑制通常按一段时间内的广播、组播或未知单播流量进行限制;暂停帧是接收端向相邻发送端提出暂缓请求。两者可以同时存在,但一个不能替代另一个。现场出现大量广播时,应先找出源头和VLAN范围。

光纤上联的存在不会改变上述逻辑。双工LC SFP把电信号变成光信号并在对端还原,交换芯片仍按端口队列和MAC控制帧处理;只要两端能力和配置一致,排障时仍可从端口计数、抓包和拓扑方向入手。

原理图可点击查看原图;手机端可横向滑动查看清晰标注。

流控开启与关闭时的排障证据对比
图4:展示计数器、队列和应用现象的观察方法,数据为说明性示例。

04不用公式也能完成现场排障

第一步看端口速率、双工和光电介质是否一致;第二步看出口丢弃、队列、暂停帧收发计数是否在同一时间变化;第三步用端口镜像或抓包确认帧的方向和字段。若只看到暂停帧增加而没有丢包,说明设备正在用时间换空间;若暂停帧很多且控制响应变慢,应继续查谁在持续制造突发流量。

排障时把业务分成三类:必须及时到达的控制消息、可以等待的监控流量、可以重传的普通数据。不要在运行产线时随意关闭流控或拔线做“试验”。在批准窗口内分别记录开启和关闭时的端口计数、应用响应和恢复结果,并保留配置版本。

验收记录不需要复杂公式,但要有前后对照:同一端口、同一业务、同一时间窗口内,暂停帧计数、输出丢弃、队列变化和应用告警分别是多少。若恢复后计数仍持续增长,应继续寻找突发源、速率不匹配或下游处理瓶颈,而不是把“开启流控”当作根治结论。

“暂停”并不等于“丢包已经消失”。它可能把丢弃从接收端推迟到发送端,也可能让上游队列越来越长。对实时控制业务,延迟和抖动同样需要关注;对可重传的监控数据,少量等待可能比重复发送更合适。最终选择要以业务验收目标为准。

记录完整证据,后续复盘才不会只剩一句“网络偶发丢包”。

参考资料:RFC 826:以太网地址解析协议;飞畅对应工业交换机资料。原理图为原创示意,非产品内部实拍或实测。