ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

以太网从帧结构到2.5G与工业EtherNet/IP实践全解析

以太网从帧结构到2.5G与工业EtherNet/IP实践全解析 以太网这东西干网络和自动化的几乎每天都要碰但说实话真正把它从物理层到协议层串起来讲明白的人不多。最近项目里从电脑板载网卡配置、2.5G链路协商到车间里用 EtherNet/IP 让安川机器人和焊机互通一圈下来踩了不少坑也把一个协议的老底摸透了。这篇把 Ethernet 的核心机制、速率演进、驱动与 VLAN 配置、工业以太网对接这四块内容掰开揉碎讲一遍想从零弄清以太网、或者正在被链路协商和 VLAN 卡住的人不用去翻几百页的 IEEE 802.3 文档看这篇就够了。1. 以太网的立身之本帧与交换到底怎么工作很多人把以太网等同于插根网线能上网这只看到了结果。以太网真正的核心是一套介质访问控制规则和帧格式约定所有上层应用、工业协议都得踩在这套机制上跑。先把地基盖明白后面排障才有方向。1.1 从冲突检测到全双工一次被遗忘的变革早期的以太网是总线型结构一根同轴电缆上挂着所有设备谁要发数据就得先听线路上有没有人正在发没人发才开口边发还要边监听如果发现大家都在说就随机退避一会儿再重传。这套机制叫 CSMA/CD载波监听多路访问/冲突检测。在那个时代网速只有 10 Mbps半双工模式让带宽利用率大打折扣距离稍远一点信号衰减就特别明显。后来交换机组网普及每个端口独享一条链路交换机的每个物理端口和终端之间形成了点对点连接不再共享冲突域于是全双工模式成为主流发送和接收可以同时进行CSMA/CD 基本退出了舞台。现在的千兆、2.5G、万兆以太网全部依赖全双工网上有些人说以太网还在用冲突检测这属于拿着十年前的教材讲今天的网早就变了。从设计思路上看这一变化其实解决了以太网最核心的痛点信道利用率。全双工模式下千兆网卡的收发速率都能跑到理论值的 100%半双工时代能跑到 60% 就算不错。明白这一点后你在排查速度异常时优先要确认的就是两端协商出来的双工模式是不是全双工如果协商成半双工经常出现高丢包和严重延迟这个坑我见过太多次。1.2 MAC地址、VLAN Tag与帧结构排查问题的基本功不管速率怎么涨、介质怎么换802.3 的帧结构骨架一直没变。一帧数据从前往后依次是目标 MAC6字节、源 MAC6字节、类型/长度字段2字节、数据载荷46到1500字节、以及尾部的 FCS 校验4字节。交换机在转发时的核心依据就是目标 MAC 地址它维护一张 MAC 地址表记录哪个 MAC 从哪个端口学来的。数据包进来后查表决定往哪个端口扔查不到就向所有端口广播终端回复后交换机再把表补齐。这个学习-转发-老化的过程是交换机最基础也最核心的动作。VLAN 的出现则是在源 MAC 之后插入一个 4 字节的 802.1Q TagType 字段变成 0x8100后面跟着 12 位的 VLAN ID。打上 Tag 后同一台交换机上就可以划分出多个逻辑隔离的二层广播域部门之间、业务之间、管理网与生产网之间互不干扰。要注意的是VLAN 的隔离只对广播域有效隔离不了三层路由不同 VLAN 要互通还是得走网关。理解帧结构对排查非常有用。比如 PING 不通但抓包能看到 ARP 请求一直在广播却没人回应那问题多半不在二层而在 IP 地址配置或者 VLAN 划分上如果抓包根本看不到任何帧那就要回头查物理链路了。排障时先用抓包工具确认帧到底有没有到网卡再顺着协议栈往上追能省一半力气。2. 速率门槛与物理层细节PCS、PMA、SGMII到底卡在哪最近 2.5G 网口在主板和 NAS 上遍地都是1g/2.5g ethernet pcs/pma or sgmii这个搜索热词也说明很多人在设备管理器里看到这几个名词发懵。这其实是网卡驱动或固件里对物理层工作模式的描述弄懂它之后你就明白为什么有些网口插上只能跑到千兆、为什么兼容性会有差异。2.1 PCS和PMA物理层不是一块铁板以太网的物理层被 IEEE 802.3 拆成了好几个子层从上层往下依次是 PCS物理编码子层、PMA物理介质附加子层、PMD物理介质相关子层。PCS 负责把 MAC 层下来的数据做编码比如千兆以太网的 8B/10B 编码即将每 8 位数据映射成 10 位符号保证有足够多的电平跳变和直流平衡方便接收端恢复时钟到了万兆以太网改用 64B/66B 编码开销更小但同步机制更复杂。PMA 则负责把编码后的并行数据转成串行比特流交给 PMD 去驱动网线上的物理信号。为什么不直接把数据怼到网线上核心原因就一句话电气信号不能保证时钟同步。一串连续的高电平或者低电平传到对端接收器根本分不清有多少个位编码保证了时钟信息内嵌在数据流里这是数字传输的基石。苹果设备、Intel 板载网卡、各种 USB 网卡在驱动里显示的 PCS/PMA 模式本质上就是告诉你当前这个 PHY 芯片的编码和串行化参数是按哪种速率标准跑的。2.2 SGMII到底改了什么口子小了但协议没变SGMII串行吉比特介质独立接口是 MAC 芯片和 PHY 芯片之间的一根高速串行接口速率是 1.25 Gbps对应千兆模式2.5G 速率下则跑 3.125 Gbps。以前 MAC 和 PHY 之间用并行的 GMII 接口十几根线布线麻烦速率一高还容易互相干扰。SGMII 用一对差分信号就解决了这个问题所以你看到网卡芯片上数据通路短得可怜基本都是走的串行。2.5G 的出现相当于是把传统千兆的底层直接提速同样的帧结构、同样的 MAC 机制只是 PHY 芯片内的 PCS 编码和传输时钟换了参数。这就带来一个很实际的兼容问题2.5G 网卡和 1G 交换机互联时自协商会把速率降到 1G没毛病但有些老交换机不支持 2.5G 的自协商就会协商失败Link 灯都不亮。遇到这种情况我的建议是先固定两端速率为 1G 全双工试一下而不是怀疑网线坏了。2.3 选型与实操什么时候值得上2.5G家用和中小办公场景千兆实际上还在临界值附近最近几年 NAS 和 WiFi 6/7 的无线速率都超过千兆了内网传输就成了瓶颈。2.5G 网口在支持 Cat5e 网线的情况下就能跑到满速这是它迅速普及的最大原因——不用重新布线。实际测下来用合格 Cat5e 网线连接两台 2.5G 设备iperf3 跑满能达到 280 MB/s 左右比千兆的 110 MB/s 翻了一倍还多性价比非常突出。但要注意几个坑。一是网线质量我见过一些号称 Cat5e 的细线其实铜芯很细连千兆都费劲更别说 2.5G直接换 Cat6 靠谱。二是交换机需要支持 2.5G 端口否则只能协商到 1G。三是如果你的网卡面板显示链路速率正常但复制文件速度还是只有千兆的档次大概率是硬盘写入瓶颈而不是网络问题别一上来就怪网卡。3. 网卡驱动的两个高频坑Apple Mobile Device Ethernet与Intel I219-V驱动层的问题往往离协议最远却最影响日用体验。一个搜得火热的关键词是apple mobile device ethernet 下载另一个是 Intel I219-V 配置 VLAN。这两个问题我在实际维护中碰到过不少次写出来帮大家省点时间。3.1 Apple Mobile Device Ethernet是什么、该不该装、怎么救装过 iTunes 或 Apple Devices 的 Windows 电脑在网络适配器里会出现一个名字叫 Apple Mobile Device Ethernet 的虚拟网卡。很多人第一反应是苹果网卡我电脑上哪来的苹果配件其实它不是一个硬件而是苹果设备服务里的一个虚拟以太网适配器用于 iPhone/iPad 通过 USB 连接电脑时的网络共享、固件恢复、同步等服务本身并不会对你的正常网络产生干扰占用的资源也可以忽略不计。网上不少人说卸载它能让网速变快我试过多次这纯属误导。它没有绑定你真正的物理网卡也不参与正常路由删除后该多快的还是多快。真正的问题是如果你误删了它的驱动或者驱动文件损坏插入 iPhone 时电脑无法识别或者同步失败又找不到单独的驱动下载页面。此时最快的方法是重新下载安装最新版的 Apple Devices 应用安装包会一并把 Apple Mobile Device Ethernet 驱动装回来装了之后如果还不出现进设备管理器菜单栏点查看-显示隐藏的设备在网络适配器里手动扫描一下硬件改动就有了。还有一点如果你的 Windows 开启了驱动强制签名第三方修改版安装包可能装不上这个驱动那就老老实实用官网的包。3.2 Intel I219-V 配置 VLAN 的完整步骤Intel I219-V 是被很多主板采用的板载千兆网卡Windows 设备管理器里显示为 Intel(R) Ethernet Connection (16) I219-V括号里的数字代表驱动版本的生成代号。它本身支持 802.1Q VLAN 功能但实际配置入口藏得有点深。先说最常见的做法装好 Intel 官网的完整版驱动包后在设备管理器的网卡属性-高级选项卡里能看到 VLAN ID 选项默认是 0表示不打 Tag改成你需要的 VLAN ID 后网卡发出的所有数据帧都会带上这个 802.1Q Tag。如果还需要同时访问多个 VLAN就用 Intel PROSet Adapter Configuration Utility 来创建多个虚拟 VLAN 接口每个接口绑定一个 VLAN ID一个物理网口就能同时以 Trunk 口的姿态工作。实际操作中最大的坑是一旦在网卡上设置了 VLAN ID网卡会把收到的 Untagged 帧直接丢弃你的电脑立刻断网连物理网卡自己的 IP 都不好使了。因此这个操作必须和交换机侧严格配合先确认交换机对应 Access 口划到了哪个 VLAN再做网卡侧设置否则同步做完又得找串口线去救交换机。还有Windows 控制面板里自带的VLAN按钮很多版本是灰色的别死磕那个入口直接用设备管理器的高级属性或者 PROSet。4. 工业版以太网EtherNet/IP与安川焊机通讯的踩坑记录消费场景里以太网追求的是速率和延迟工业场景里还要加两个词确定性和设备互通。EtherNet/IP 就是工业以太网里最常见的一员用标准的 TCP/IP 协议跑却在上面叠加了 CIP通用工业协议让 PLC、机器人、焊机这些工业设备之间能交换实时状态和数据。最近做的一个安川机器人与焊机通讯项目正好把这个过程完整走了一遍。4.1 EtherNet/IP和普通以太网的区别到底在哪EtherNet/IP 并不是一个特别的网线协议物理层和数据链路层就是普通以太网要用交换机连、要配 IP 地址所有设备都在同一个二三层网络里通信。它的特殊之处是应用层使用了 CIP并且把报文分成了两大类显式消息走 TCP 端口 44818用于读取设备信息、组态和诊断特点是可靠但速率低隐式 I/O 走 UDP 端口 2222直接周期性地交换输入输出状态比如机器人的启停信号、焊机的电流反馈特点是实时性好且开销小。这就能解释为什么现场网络明明通但 EtherNet/IP 数据不通因为有些防火墙或三层交换机默认把 UDP 2222 端口滤掉了TCP 44818 的组态能连通隐式 I/O 却在超时。所以排查 EtherNet/IP 问题时不要停留在能 PING 通这个层面要确认 UDP 2222 和 TCP 44818 都能双向通信最好用 Wireshark 在设备端口上抓包验证。另外 EtherNet/IP 的设备标识核心是 EDS 文件电子数据表。这个文件描述了设备支持多少个连接、输入输出数据的大小和格式相当于设备的数据手册。配置时如果没有拿到对应版本的 EDS 文件扫描器设备根本不知道该怎么向它发起通讯会出现设备在线但组态失败的诡异情况。4.2 安川机器人与焊机通讯的配置过程安川机器人控制柜如 YRC1000、YRC1000micro支持 EtherNet/IP 扩展既可作为 Scanner可理解为控制端也可以作为 Adapter从站设备。我这次的项目是机器人作为 Scanner焊机具备 EtherNet/IP Adapter 功能两者通过一台工业交换机连接结构非常简单一台交换机、两根网线、两个 IP 地址。第一步是规划 IP 网段。安川控制柜设置一个固定 IP比如 192.168.1.10焊机设置同网段 192.168.1.20子网掩码都是 255.255.255.0网关都留空。注意工业设备和家用设备不同有些焊机参数界面非常简陋IP 地址要翻半天说明书才能找到入口建议提前把焊机型号和说明书电子版准备好。第二步是导入 EDS 文件。在安川示教器的外部通信-EtherNet/IP 设置菜单里先把焊机的 EDS 文件导入到控制柜。这个导入动作在部分安川系统里是通过 U 盘或者 SD 卡拷贝完成的文件路径不能有中文名字否则会报找不到文件。第三步是建立 I/O 映射。打开扫描器配置新建一条连接指定对方 IP 地址再根据焊机说明书的 Assembly 实例号填入输入长度和输出长度。碳钢气保焊机一般输入机器人到焊机是 3 到 4 个字包含启动焊接、送丝使能、电流设定输出焊机到机器人是 4 到 6 个字包含就绪信号、焊接电流反馈、故障代码。分配完成后在机器人程序里把 PLC 或 IO 信号映射转换到这些 EtherNet/IP 数据位上就算大功告成。第四步是联机调试。示教器上能看到 EtherNet/IP 连接状态变为运行后先手动给焊机发一个启弧位看看焊机是否动作。这里有个常见错误有些焊机需要等待 100 到 300 毫秒的引弧确认信号机器人程序如果不等反馈就把送丝速度拉满很容易焊丝一直送不点火堆出一大团焊瘤。把反馈的时序逻辑用示波器或者 IO 监控窗口看一遍比反复试焊要高效得多。4.3 工业现场的布线规范与抗干扰很多 EtherNet/IP 连通性故障其实是物理布线的锅。工业现场环境里电机、变频器、焊机都是强干扰源普通办公室用的 Cat5e 网线根本扛不住。项目里用的至少是 Cat6 屏蔽双绞线SFTP每一根线都对绞双端屏蔽层要可靠接地而且网线要避开动力电缆的走线槽保持至少 20 厘米以上的间距。如果现场走线距离太长或者跨机柜尽量用光纤跳线加工业光电转换器避免长距离铜缆带来的地面电位差和浪涌问题。还有一点非常关键工业以太网交换机的选型。用消费级千兆交换机虽然便宜但遇到焊机起弧瞬间的电压跌落和电磁脉冲很容易出现端口重启或者数据丢包。选择带金属外壳、支持导轨安装、有 24V 直流供电和冗余电源输入口的工业交换机稳定性能好一整个量级。有条件上 PoE 供电的设备优先用 PoE省一套供电线缆故障点也少一个。5. 以太网故障排查从协商失败到VLAN不通的真实案例最后讲讲排查思路。以太网看起来是分层很清楚但实际排障时大家容易从一头扎进去出不来了。我一般按照物理层、链路层、网络层三个层次逐步排查每层都有明确的验证手段这样能把问题锁定在一个小范围内。5.1 排查套路从Link灯到抓包一步步缩小范围物理层的第一步永远是看网口指示灯。千兆以太网正常工作时连接指示灯亮起活动指示灯会闪烁如果速度指示灯显示 100M 或缺省状态说明网线或对端端口可能是百兆的或者协商没跑上去。用 ethtool 命令Linux或网卡状态页Windows查看协商结果像 Speed: 1000Mb/s、Duplex: Full 这样的输出才是正常值如果看到 Duplex: Half 就要重点检查网线和水晶头。链路层排查最有力的工具是抓包。用 Wireshark 在问题网卡上抓包如果连广播流量都看不到说明物理层或者驱动有问题如果能看到广播但看不到你要找的对端 MAC那就是二层隔离问题优先查 VLAN 和交换机的 MAC 表。抓包时候注意要先过滤比如只抓 ARP 或只抓 EtherNet/IP 的 UDP 端口不然数据量太大根本看不完。网络层排查则是常规的 IP 地址、子网掩码、网关测试。先 PING 网关、再 PING 远端如果在同一个 VLAN 里能 PING 通但应用不通那就是应用协议和端口的问题和网络无关了。迭代做下来问题通常只需要十分钟就能定位到具体的层。5.2 常见问题速查表直接对照处理现象可能原因处理方法网口灯不亮网线损坏、端口禁用、协商失败换线、检查端口状态、强制设置速率双工协商成100M但不稳定网线质量差、水晶头接触不良换Cat6成品线重新压水晶头能PING通但EtherNet/IP超时UDP 2222被防火墙过滤放行UDP 2222和TCP 44818设置了网卡VLAN ID后无法上网对端交换机端口VLAN不匹配删除网卡VLAN ID先确认交换机配置网卡驱动显示PCS/PMA错误驱动版本过旧或PHY芯片配置异常更新官网最新驱动检查BIOS网卡选项安川机器人EtherNet/IP组态失败EDS文件版本不对或IP网段不一致核对EDS文件、确保两端IP同网段焊机通讯时好时坏屏蔽层未接地、网线靠近动力线重新敷设屏蔽双绞线远离动力线槽2.5G端口只能跑到1G网线或对端端口不支持2.5G换Cat6网线、确认交换机端口为2.5G5.3 几个容易忽略的小细节排查过程中最容易被忽略的还有三件小事。第一件是驱动版本Intel I219-V 这类网卡如果装的是 Windows 自带的旧驱动可能缺少 VLAN 配置和高级断电省电选项导致休眠唤醒后网卡丢配置建议直接用 Intel 官网的完整驱动包而不是系统自动装的那一版。第二件是网卡的电源管理选项Windows 默认允许系统关闭网卡节约电力有时候挂着下载突然断流就是这个原因在设备管理器的电源管理里把允许计算机关闭此设备以节约电源关掉能解决一半的灵异断网问题。第三件是 IP 地址冲突。工业现场和办公室域混一起时最容易出现两台设备抢同一个 IP症状是网络间歇性断开、访问时而通时不通。用 arp -a 看看对应 IP 的 MAC 地址是不是换来换去再在交换机上做端口隔离或者把 IP 地址规划得独立一些才算根治。抓包的时候如果看到大量 DHCP 请求和 ARP 响应冲突也是同一类问题。我在实际项目中最大的感受是以太网排障七成要靠物理层驱动和协议反而没那么复杂。你若把网线、水晶头、屏蔽接地、交换机这几个环节做好后面协议调试会非常顺利。最后再分享一个小技巧现场无论是做实验还是正式组网都建议留一台带串口的管理型交换机和一套带屏蔽测试功能的寻线仪80% 以上的 EtherNet/IP 和 VLAN 问题都能在两小时内定位出来比拿着笔记本到处换线试错效率高太多了。
返回列表