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

或给我们留言

在线留言

千兆光口没有业务时在发什么?从 8b/10b 编码到空闲码组

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

FIBERIOT / 基础知识

两台工业交换机用千兆光纤连起来,拔掉下面的业务网线,光口的 Link 灯仍亮着。此时抓包可以一帧也看不到,但光纤并没有因为没业务就停止传输。在正常建立的 1000BASE-X 链路上,发送端在两帧之间仍会送出有规定格式的空闲码组。对端靠这些持续到来的信号保持接收时钟和码组边界,下一帧来时就能接着读。

01先分清三处接口看到的是什么

以飞畅工业轨式网管交换机的千兆 SFP 光上联为例,官网规格列出 1000BASE-SX 和 1000BASE-LX 介质。本文讨论这类 1000BASE-X 接口进入正常数据传输后的行为。光模块外壳同样写着 SFP,不能据此认定其编码、速率和适用协议相同,换件时仍要以两端的端口工作模式和适配模块为准。

交换机内部往光口发送一帧,先由 MAC 层提供帧字节,再交给 PCS,也就是物理编码子层。PCS 把数据或控制含义映射成串行链路可用的码组。串行电信号经模块变成光,到对端再转回电信号。对端要先从串行信号里恢复采样时钟,再划分和解码码组,最后把接收到的帧交给自己的 MAC。图中的职责分区用来理解信号路径,实际硬件可能把多个环节集成在同一芯片。

这也解释了为什么抓包和光功率计不能互相替代。光功率计测的是一段时间内收到多少光。普通网卡抓包通常只能看到接收端已经交给上层的帧。两者中间还隔着码组能否正确识别这一关。业务没有报文,不等于线路没有信号,光功率有读数也不等于对端已经正确读懂信号。

千兆光链路的主机PCS与PMA、电光发送、光纤和接收主机CDR及PCS的剖视信号路径
图1|空闲码组也走同一条电—光—电信号链;只示意一个方向。PCS、PMA和CDR为逻辑职责,不表示独立芯片或具体型号内部结构。飞畅科技AI辅助原创原理示意。

02为什么一字节要用十位来表示

8b/10b 的意思是把八位数据映射为十位线路码组。十位不会简单地由原来的八位再拼两位组成。编码器在规定的映射中选码,限制连续同值位的长度,并控制长期的高低电平偏差。前者提供有规律的跳变,帮助接收电路找到取样节拍。后者让高低电平的长期占用不过度偏向一侧,减轻接收端基线漂移。

可以用每秒位数算清两处速率的差别。在不计帧结构和空闲开销的编码换算中,传输八个数据位需要占用十个线路位时,1 Gb/s 的数据位速率对应 1.25 Gb/s 的串行线路位速率。在这里每个二电平线路符号携带一位,所以也可写作 1.25 GBd。用普通网卡做吞吐测试时还要扣除帧头、帧间隔和上层协议开销,不能把 1.25 当成应用能跑到的吞吐值。

编码器还要跟踪运行差异,也就是沿线路已经发送的 1 与 0 的累计偏向。某些字符有正、负两种编码形式,编码器按当前偏向选用合规形式。有的码组自身 1、0 数目相等,但仍须遵守编码规则。接收端发现不存在的码组或不合规的偏向,可以报告物理编码错误。由于干扰也可能把一码组变成另一个有效码组,帧层仍需要 FCS,也就是帧校验序列,检查接收到的整帧。

03空闲不是零,而是接收器能认出的控制序列

如果连续发送全零,接收器很长时间见不到电平跳变,就难以从数据本身判断采样节拍。同时,拿到一长串位也不知道该从哪一位开始每十位切一组。1000BASE-X 使用的空闲有序集由两个合法码组组成。一个典型的空闲有序集 /I2/ 先送控制字符 K28.5,再送数据字符 D16.2。另一种 /I1/ 则跟 D5.6。它们在编码中承担不同的运行差异作用。

以 K28.5 的一种形式 0011111010 为例,前七位 0011111 是逗号模式。接收器可用这一特征确定码组边界,再看后一个码组及后续合法性,完成同步判定。这里有两个不同问题。恢复时钟回答何时取样,逗号对齐回答从哪个位开始把采样结果按组解释。若取样时点错了,后续搜索到的边界就不可靠。如果时钟锁住但边界切错,连续十位也未必能还原为正确字符。

下一帧到来时,PCS 用起始控制字符标记边界。数据结束后用终止控制字符标记,再返回适用的空闲序列。普通业务接收方不会把这些物理层控制码当作以太网帧。本文示意的是已经进入正常传输后的空闲,建立链路时可能出现配置有序集,不能拿 /I2/ 概括每一个无业务时段。

接收端K28.5码型0011111010、前七位逗号特征及I2空闲有序集的机理放大图
图2|0011111010是K28.5的一种形式,前七位0011111为逗号特征;I2中后随D16.2。波形非实测,识别逗号后仍须核验后续码组。飞畅科技AI辅助原创原理示意。

04在现场怎样用三个观察点验证

设一套隔离台架,两端都明确选定匹配的千兆光模块和端口模式,使用短跳线建立稳定链路。第一步让设备保持连接但不主动发送测试帧。记录 Link 状态和接收光功率,如果模块和整机能读出 DDM 数字诊断,可记录同一时刻的读数。没有 DDM 就按现场规程使用合适量程的仪表。普通端口计数器不应把空闲码组记成业务帧,设备自己的管理报文仍可能出现。

第二步只从 A 端发送少量带序号的测试帧。对照发送端和 B 端的增量,把捕获到的序号与两侧的收发计数对上。测试停止后,如果业务帧计数不再增长而链路仍稳定,这一观察符合 PCS 持续发送空闲的工作方式。要直接证明收到的是哪一种有序集,须在受控台架使用支持 1000BASE-X 的 PCS 或串行测试能力,普通网卡不能给出这个结论。

第三步遇到偶发丢帧时,按同一时间窗读取接收光功率、链路变化和设备可提供的错误计数。如果光功率下降伴随失锁或链路反复断开,应先核对连接器、光纤方向、模块和端口速率。若光功率稳定但物理编码错误增加,应再核对模块类型、链路质量及端口设置。若链路与编码计数稳定而帧校验或丢弃计数增加,进一步分清接收错误和出口丢弃,并检查错误究竟在哪个入口出现。计数器含义和支持范围以实际型号文件为准,缺少某项统计不能推断对应环节没有问题。

光功率计断链测量、主机PCS诊断和普通网卡业务抓包的三种观测场景
图3|光功率、码组状态和业务帧是不同层面的证据。光功率计示意断开接收端后测量,非在线旁路测量;PCS诊断需设备支持。仪器和屏幕为通用示意,非实测。飞畅科技AI辅助原创绘制。

05把测试结果写成可复查的记录

以图中的第 17 号测试帧为例,记录表至少有发送时刻、发送帧序号、接收帧序号和两端端口状态。启动采样时先记一次基线,发完再记一次差值,避免把设备过去累计的错误混进这轮试验。如果 A 端应用显示已经发送,但光上联的发送帧计数没有相应变化,应先检查测试帧是否进了预期端口、是否被转发到预期上联。若 A 端上联的发送统计与测试相符,B 端却没收到,再比较 B 端入口计数和上层抓包。上层看不到一帧,丢失也可能发生在网卡之后的过滤环节。

更换模块时一次只改一个变量。先保留端口模式和跳线,换上已知匹配的模块并重复同一组测试。再按需要调整下一项。这样既能区分两端模块不匹配与链路本身质量不稳,也能保留导致变化的证据。试验中的第 17 帧和图中的时序都是为说明方法而设定,并非指定型号的实测或承诺。

06最容易混淆的两种边界

1000BASE-T 的千兆铜口和本文的千兆光口使用不同的物理层机制。多速率或外形相同的模块也可能对应不同接口模式。设备有收到光的读数、面板亮灯、接收端 PCS 已同步、业务帧正确到达,是四类不同证据。工程记录把它们分列,再记录模块标识、端口模式和测试帧序号。这样在更换光模块或重新走纤后,可以复核究竟恢复了哪一层,而不必凭单个指示灯猜测整个链路。

技术资料

AMD/Xilinx PG047 — 1000BASE-X (Appendix C) · IEEE 802.3 — K28.5 · 飞畅千兆光口工业交换机

现场常见问题

没有业务帧时光口会停止发送吗?

正常运行的1000BASE-X链路仍发送规定的空闲有序集。

K28.5的逗号有什么用?

接收端识别特定比特模式,找到十位码组的边界。

网卡抓包能直接看到空闲码组吗?

通常不能。需要支持1000BASE-X的物理层测量工具或PCS诊断。

适用边界与延伸阅读

本文讨论正常运行的1000BASE-X链路。端口模式与模块支持以设备资料为准。

以太网前导码和帧间隙;光脉冲展宽与色散