
1. 物理层到底在忙什么1.1 从“一根线两头通”说起物理层和比特流这两个词放在教科书里就是几个特性背一背放到现场干活它是最不给你留面子的一层。上面几层配错了顶多是不通改配置重启一下还能看到希望物理层出问题表现往往是“时通时不通”“白天好晚上坏”“Ping大包丢小包不丢”这种让人抓狂的半吊子状态。我在机房里熬过的那些夜里八成都在跟一根跳线、一个光模块、一对自协商参数较劲。先把话说清楚物理层干的事本质上是把上层交给它的一串0和1变成能在某种介质上跑起来的物理信号然后在另一端把这些信号还原回一模一样的0和1。中间那一大堆机械特性、电气特性、功能特性、规程特性说白了都是在回答四个问题——接口长什么样、电压光功率多少算合格、哪个电平代表1、什么时候算一个比特开始。这几个问题答错了上层协议设计得再优雅也白搭。适读人群我不想说得太窄。网工、弱电施工、机房运维、做嵌入式调试的、搞音视频传输的、甚至自己在家折腾全屋网线的朋友都能从这一层拿到东西。因为它不像路由协议那样有厂商特性差异物理层的规律是硬的算出来的数字就是那个数字量出来的波形就是那个波形骗不了人。1.2 比特流不是抽象概念是电压、光子和电磁波很多人对“比特流”这个词有误解以为它是一串飘在空中的数字。它在物理层一点都不抽象。在铜缆上它是两根导线之间的电位差比如千兆以太网那套4D-PAM5的方案一对线上跑五个电平每一对线同时收发靠的是回声抵消把发送信号从接收信号里减掉。在光纤上它是某个波长的光功率在一段时间内的高低变化。在无线信道上它是某个频段里电磁波的幅度和相位被反复调制的结果。理解这一点非常重要因为它直接决定了排障思路。铜缆出问题你要去看阻抗是不是120欧、有没有近端串扰、接头压接有没有氧化光纤出问题你要去看端面脏不脏、弯曲半径够不够、收发功率在不在窗口内无线出问题你要去看信道占用、信噪比、多径。这三个方向的方法论完全不同混着来就是瞎猜。还有一个常被忽略的点物理层传的是比特流但它不保证这些比特是对的。物理层只负责“尽力把信号送过去”检错纠错是数据链路层和上层的事。当然现代高速链路里物理层自己也带FEC前向纠错比如100G光模块里跑RS(544,514)但那属于为了压低误码率做的工程手段不改变分层职责。1.3 物理层真正要解决的几件硬骨头我把物理层的核心任务归成五件事这五件事你只要有一件没搞定链路就不稳。第一是介质与接口的匹配。RJ45配双绞线、LC配光纤、SMA配射频这些是硬约束。接口不匹配插都插不进去这是最幸运的错误因为一眼能看出来。第二是信号的编码与调制。0和1怎么变成电平跳变怎么变成星座点这决定了同样的带宽能跑多快、抗干扰能力有多强。第三是比特同步。发送端和接收端的时钟不可能完全一致长时间累积下来就会错位。所以编码方案里必须自带“跳变”让接收端能从信号里把时钟抽出来这叫自同步。这是曼彻斯特编码存在的全部理由也是8B/10B里那些K码的意义。第四是信道容量的边界。带宽、信噪比、码元数这三个量决定了理论上限你买再贵的设备也超不过去。奈奎斯特和香农这两个公式不是考试题是你在做链路预算时的尺子。第五是拓扑与复用。点对点、总线、星形、环形以及频分、时分、波分这些复用方式决定了同一份介质资源怎么分给多个使用者。提示排障的时候按这五件事的顺序倒着查先看接口和介质能看见的再看同步和误码能测出来的最后才怀疑容量和配置。这个顺序能省掉大量无效动作。2. 传输介质怎么选别只看价格2.1 双绞线的等级不是营销词是频率上限选网线这件事很多人只看“几类”这个字不看频率。Cat5e的标称带宽是100MHzCat6是250MHzCat6a是500MHzCat8能到2000MHz。这个带宽指的是线缆能可靠传输的最高信号频率不是速率。速率是靠编码和调制在这个带宽里“挤”出来的。具体到实际能力Cat5e在100米内跑千兆没问题这是它的舒适区Cat6在100米内跑千兆同样稳想跑万兆只能到55米左右这55米不是厂商保守是串扰和插入损耗在频率升高后恶化得太快Cat6a才是100米万兆的正解Cat8那30米的距离限制注定它只能待在机柜内部做主幹短跳。选型的时候我一般按这个顺序问自己距离多少、未来三年会不会升速、施工环境有没有强电干扰、预算卡得多死。距离超过80米就别想着Cat6跑万兆了直接上Cat6a或者光纤省得后面返工。施工环境如果和动力电缆平行走很长一段屏蔽线F/UTP、S/FTP值得多花那点钱但前提是屏蔽层必须做好接地接不好地反而变成天线比非屏蔽还糟。2.2 光纤的单模多模别搞混也别乱配光纤这边最容易犯的错是把单模模块插到多模跳线上或者反过来。这两种光纤的纤芯直径差着一个数量级单模9微米多模50或62.5微米光在里面传播的模式完全不同混用轻则损耗巨大链路起不来重则把模块的接收端打坏。多模的等级要记住OM3和OM4这两个关键节点。OM3在850纳米窗口下万兆能跑300米OM4能跑400米到了OM5主要是为了短波分复用留出更宽的窗口。多模的优势是光源便宜用VCSEL垂直腔面发射激光器短距离数据中心内部大量使用。单模的优势是距离1310和1550纳米窗口衰减小几公里到几十公里都不是问题代价是光源和模块贵。这里有个实操细节值得说光模块的配对是有讲究的。双纤模块要一收一发交叉连接单纤双向模块BIDI必须成对使用一个发1310收1550另一个反过来两个同型号的插一起是通不了的。我见过不止一次现场把两个一样的BIDI模块对接然后一群人围着查配置查了两个小时。2.3 无线信道是最不讲道理的那一种无线和有线最大的区别是有线信道你基本可以认为是稳定的无线信道是时变的。同一条链路早上和下午的可用带宽可能差一倍因为周围多了几十个AP在抢同一个信道。多径效应会让同一个信号以不同延迟到达接收端叠加之后产生深衰落这个位置的信号可能突然掉20dB。所以无线的物理层设计里塞满了对抗手段OFDM把宽带拆成一堆窄子载波每个子载波上的衰落相对平坦均衡好做MIMO用多根天线利用空间自由度信道编码和交织把突发错误打散还有各种速率自适应算法根据实时信噪比切换调制编码方案MCS。这些手段的共同点是它们都在跟“不确定性”做斗争。做无线覆盖规划的时候别信仿真软件给的漂亮热图。那个图是在假定墙体材质、家具摆放、人员密度都固定的前提下算的实际环境一变全废。我的做法是先用软件出个大概然后拿实测工具在关键点位走一圈重点测信噪比而不是信号强度。信号强度-60dBm但信噪比只有5dB的地方比信号强度-75dBm信噪比25dB的地方体验差得多。2.4 介质选型决策表把上面的东西压成一张表现场选型的时候直接对照场景距离推荐介质关键理由办公室桌面接入小于90米Cat6非屏蔽千兆够用成本可控施工方便机房内服务器接入小于30米Cat6a或DAC直连铜缆万兆需求机柜内短距DAC更省电楼宇主干100米到500米OM4多模光纤万兆到400米模块便宜园区跨楼500米以上OS2单模光纤衰减低一次布线管十年强干扰车间任意屏蔽双绞线或光纤抗电磁干扰光纤彻底免疫移动终端覆盖视环境无线灵活性优先但要控制单AP带机量注意DAC直连铜缆和AOC有源光缆都是“成品线”两端模块焊死在一起不能像光模块那样自由换跳线。它们的优势是便宜、功耗低、延迟低劣势是长度固定、坏了整根换。机柜内部互联我优先推荐DAC超过5米再考虑AOC。3. 编码把0和1变成能发出去的信号3.1 为什么不能直接高电平代表1、低电平代表0刚接触这一层的人常有个疑问直接拿电压高低表示0和1不就完了搞那么多编码花样干什么。问题出在时钟上。发送端有个晶振接收端也有个晶振两个晶振的频率哪怕只差百万分之五十跑上几百万个比特之后相位就偏得没法看了。如果数据是长串的0或者长串的1信号电平一直不变接收端根本无从判断“这一位到哪儿结束、下一位从哪儿开始”。这就是所谓“直流分量累积”和“时钟恢复失败”两个问题。解决思路只有一条想办法在信号里制造跳变让跳变本身携带时钟信息。所有的线路编码方案本质上都是在“跳变够不够多”和“带宽效率高不高”之间做权衡。3.2 几代编码方案的演进逻辑最早期的NRZ不归零编码最直白高电平1低电平0一个比特周期内电平不回来。它的带宽效率是100%一个比特对应一个符号周期但完全没有自同步能力只适合极短距离或者有独立时钟线的场合。曼彻斯特编码在每一位的中间强制插入一次跳变比如从高到低代表0、从低到高代表1或者反过来标准里有约定。这样每个比特周期至少有一次跳变接收端拿锁相环就能把时钟提出来。代价是带宽效率掉到50%原本能跑20Mbps的带宽只能跑10Mbps。10BASE-T以太网用的就是这个那个年代的线材和器件水平这个代价是值得的。差分曼彻斯特更进一步它不看电平的绝对高低只看每一位开始处有没有跳变。有跳变代表0没跳变代表1。抗干扰能力更强因为干扰通常同时影响相邻两个采样点差分检测能抵消掉。令牌环网用的就是这个。到了百兆时代4B/5B登场。它把4个比特映射成5个比特的码字保证映射后的序列里不会出现超过3个连续的0。效率80%配合MLT-3三电平编码用在100BASE-TX上。为什么是MLT-3因为三电平信号的基本频率只有比特率的四分之一同样的数据率下对线缆带宽的要求降下来了这是那个年代让百兆跑在Cat5上的关键。千兆和更高速率普遍用8B/10B把8比特映射成10比特。它比4B/5B强的地方在于三点一是直流平衡通过运行不一致性Running Disparity机制保证长期来看0和1的数量基本相等避免信号中心电平漂移二是提供了12个特殊控制字符K码其中包含独特的“逗号序列”接收端靠它做符号对齐和链路同步这个功能在 serdes 调试里极其关键三是有一定的错误检测能力非法码字直接判定为错误。代价同样是20%的带宽开销。10G以太网之后主流转向64B/66B开销只有3%左右效率大幅提升。但64B/66B本身的自同步能力弱所以它依赖扰码scrambler把数据打散再加上周期性的同步头来维持对齐。到了25G、100G单通道PAM4开始普及一个符号周期传2个比特四个电平同样的符号率下速率翻倍代价是信噪比要求提高眼图张开度变小对链路质量极其敏感。3.3 编码方案对照表编码方案效率自同步典型应用主要短板NRZ100%无板内短距、部分光模块内部长连0或连1失步曼彻斯特50%强10BASE-T、部分工业总线带宽浪费大差分曼彻斯特50%强令牌环同上且实现稍复杂4B/5B MLT-380%中100BASE-TX、FDDI需要扰码配合8B/10B80%强K码千兆以太网、光纤通道、PCIe20%开销64B/66B约97%弱靠扰码10G/40G/100G以太网对齐依赖同步头PAM4每符号2bit依赖FEC25G/100G/400G单通道信噪比要求高提示调试serdes链路的时候如果看到“block lock”起不来八成是8B/10B的逗号序列没对齐先查参考时钟和通道极性别急着换芯片。通道极性反了是很常见的事很多芯片支持软件翻转翻一下就好了。3.4 编码之外还有一层物理层子层的分工以太网的物理层并不是铁板一块它内部还分层。最上面是PCS物理编码子层负责编码解码、扰码、对齐中间是PMA物理介质接入子层负责串并转换和符号处理下面是PMD物理介质相关子层负责真正的电光转换最底下是MDI介质相关接口就是那个插口。光模块之所以能即插即用就是因为PMD和MDI被封装在模块里上面的PCS和PMA在MAC芯片或者PHY芯片里两者通过标准化的电接口对接。理解这个分层对排障有直接帮助。链路不通的时候你能看到的信息层级是不一样的模块的DDM信息反映的是PMD层的光功率PHY芯片的寄存器能读到PCS层的块锁定状态和误码计数MAC层看到的是收发包统计。从下往上逐层确认比盲目重启有效得多。4. 带宽、速率与信道容量那几个必须会算的数4.1 奈奎斯特给出的是理想上限奈奎斯特定理说的是无噪声理想信道下的极限C 2W × log₂V。W是带宽单位赫兹V是一个符号能表示的不同离散状态数C是比特率上限。举个具体例子。一条带宽3000Hz的理想话路如果采用4个电平的编码V4那么C 2 × 3000 × log₂4 2 × 3000 × 2 12000 bps也就是12kbps。这个数字告诉我们在3kHz带宽里用四电平最多也就这个速率想再快只能增加电平数或者换更宽的带宽。但增加电平数是有代价的。V从4加到16速率翻倍到24kbps可每个电平之间的间隔变小了同样的噪声下更容易判错。这就是为什么实际系统不会无限增加电平数PAM4停在4个电平QAM在无线里一般也就到1024或者4096再往上就是给实验室看的。4.2 香农定理才是现实中的天花板香农把噪声加了进来C W × log₂(1 S/N)。S/N是信噪比线性值不是分贝值。换算要记住这个关系dB 10 × log₁₀(S/N)。信噪比30dB对应S/N 100020dB对应1003dB大约对应2。还是拿3kHz话路举例信噪比30dB。C 3000 × log₂(1 1000) 3000 × log₂(1001)。log₂(1001)约等于9.97所以C约等于29900bps接近30kbps。对比奈奎斯特算出来的12kbps香农的数值反而更高这不是矛盾因为两个公式的前提不同奈奎斯特假设的是无噪声但电平数受限香农假设的是带噪声且允许任意复杂的编码。实际系统取两者的较小约束。4.3 把公式用在真实链路上假设你要给一栋楼做链路预算需要确认某段Cat6a能不能稳定跑万兆。Cat6a标称带宽500MHz万兆以太网在100米内的目标误码率要求是10⁻¹²加FEC之后可以放宽。这时候光算香农不够因为线缆的插入损耗、串扰、回波损耗都是频率的函数不是常数。真正干活的做法是查线缆的规格书看它在各个频点的插入损耗Insertion Loss和近端串扰NEXT然后算信道余量。厂商通常会给一个“余量值”比如Cat6a在500MHz处要有正的余量负余量就意味着这条链路在这个频点上有风险。这就是为什么正规施工要做认证测试测试仪打出来的报告上有一栏叫“余量”负值就是不合格。注意现场用简易测线仪测“通断”只能证明四对线的线序对、没有断路证明不了能不能跑千兆万兆。要验证高速链路必须用能测频率特性的认证测试仪看插入损耗、近端串扰、回波损耗、传播延迟偏差这几项。4.4 几个特别容易搞混的概念带宽和速率不是一回事。带宽是频率资源单位Hz速率是比特流量单位bps。一条100MHz带宽的线可以跑100Mbps也可以跑1Gbps甚至10Gbps取决于编码调制方案前提是信噪比撑得住。兆比特和兆字节差8倍。这个低级错误每年都有人犯运营商标的100M是比特下载软件显示的是字节除以8才是理论峰值实际还要打折。双工模式和速率是两回事。1000BASE-T只支持全双工这一点和百兆不同。百兆时代还有半双工的存在自协商的时候如果一端强制全双工、一端强制半双工链路能起来但会大量冲突和CRC错误而且自协商本身是检测不到的因为它被强制关闭了。这是最阴的一类故障。标称距离是设计余量不是悬崖。Cat6标称万兆55米不代表56米就完全不能跑而是56米时误码率已经掉出规格可能在温度变化或者线缆弯折之后就崩了。工程上不要在边界上做设计。5. 动手环节从压一根网线到测一条链路5.1 双绞线的线序与压接T568B的线序是橙白、橙、绿白、蓝、蓝白、绿、棕白、棕。T568A是把橙和绿两组对调绿白、绿、橙白、蓝、蓝白、橙、棕白、棕。直通线两端用同一个标准交叉线两端用不同标准。现在的设备基本都支持自动翻转Auto-MDIX交叉线在日常场景里已经没什么存在感但做设备间调试或者连接老设备时还是要知道。压接过程的实操要点我按顺序说剥外皮的时候只剥够用的长度大约2厘米剥太长会让外露的线对失去绞距串扰指标直接崩掉。外皮要压进水晶头的卡扣里这是很多人忽略的一点外皮不进去线缆受力全靠八根细线拽两次就断了。解开线对之后要保持扭绞一直到接近针脚的位置解开的长度不要超过13毫米。绞距是双绞线抗串扰的核心解开太多等于白买了Cat6。插入水晶头时要看到八根线都顶到最前端从水晶头端面看应该能看到铜芯的截面。压线钳一次到位压完轻轻拉一下确认锁紧。最后用测线仪测主测和远端逐芯核对顺序必须是1到8依次亮。如果出现乱序说明线序错了如果某几芯不亮说明没压到位或者线断了。这一步花两分钟能省掉后面两个小时的排查。5.2 光纤连接的现场规范光纤这块比铜缆更讲究因为它是“脏了就完蛋”的典型。端面清洁是每天都要做的事。专用清洁笔或者一次性清洁纸单向擦拭不要来回蹭。绝对不能用嘴吹唾液里的水分和杂质留在端面上就是永久污染源。跳线不用的时候戴上防尘帽这个习惯要养成。连接之前做一次端面检查用手持放大镜看有划痕或者白点就换。看起来小题大做但一颗小小的灰尘能让回波损耗恶化十几dB链路时通时不通就是这么来的。弯曲半径要控制。静态敷设时弯曲半径不小于光缆外径的10倍动态牵引时不小于20倍。现场最常见的错误是扎带扎太紧或者盘线的时候绕成小圈肉眼看不见损伤光功率却掉了几个dB。注意任何时候都不要直视光纤端面或者光模块的发射口。虽然常见波长的光不可见但功率足以损伤视网膜。测试的时候先用光功率计确认再动别的。5.3 光模块功率预算怎么算接收端能不能正常工作取决于到达接收机的光功率落在不在它的窗口内。算法很简单发射光功率减去链路衰减再减去接头和熔接损耗剩下的就是接收光功率。这个值必须大于接收灵敏度同时小于接收过载点。举个算例。某模块的发射光功率是-3dBm接收灵敏度是-20dBm接收过载是-3dBm。链路总衰减假设是10dB实际接收就是-13dBm落在-20到-3之间合格。但如果链路衰减是18dB接收就是-21dBm低于灵敏度链路起不来或者闪断。工程上还要留余量。光纤会老化接头会污染熔接点会劣化所以现场通常要求留3dB的余量。也就是说算出来的接收光功率要比灵敏度高至少3dB才敢签字。模块的DDM数字诊断信息能直接读出当前收发光功率这是排查的第一手资料。收光功率比预期低很多查衰减收光功率正常但还是报错查模块兼容性和配置收光功率偏高甚至超过过载点那可能是衰减器忘了装。6. 常见故障与排查实录6.1 问题速查表现象最可能的位置排查顺序典型原因链路完全不UP介质/接口换线换口验证线序错、模块不匹配、端口损坏能通但大量CRC错误物理层质量看模块DDM和端口计数端面脏污、线缆损伤、接头氧化时通时不通连接可靠性抖动线缆观察计数变化接头松动、光功率临界、干扰源间歇工作丢大包不丢小包误码率临界长包压力测试链路余量不足、距离超限速率协商不到预期自协商两端配置对照一端强制一端自协商、线材等级不足千兆端口跑百兆线对查线对和针脚有一对线断或线序错百兆只用两对光口反复闪断光功率读DDM收发功率收光低于灵敏度或高于过载点高温时段出问题散热与器件对比温度和误码曲线模块过热、PHY芯片散热不良6.2 自协商与双工不匹配这个坑这一类故障我单拎出来说因为它的表现太迷惑链路是UP的Ping也通但业务一上量就丢包而且两端都看不到明显的配置错误。原理是这样的。自协商通过快速链路脉冲交换能力信息正常情况下两端会协商出共同支持的最高速率和双工模式。但如果一端被手工强制设置了速率和双工那么这一端就不会发自协商脉冲另一端收不到协商信息只能退回到并行检测通过测量线路上的信号特征猜测对方的能力。这个猜测过程中双工信息是猜不准的通常是猜成半双工。于是就成了一端全双工一端半双工。全双工那端认为链路已经被独占随时可以发半双工那端还在用冲突检测机制收到不该收的帧就认为冲突。结果就是大量的CRC错误和延迟抖动。判断方法很直接看两端端口的错误计数冲突计数Collisions在千兆链路上如果还在增长那就一定是双工问题因为千兆全双工不该有冲突。解决也简单要么两端都自协商要么两端都手工强制同样的速率和双工绝对不要一边自协商一边强制。6.3 几个只有现场才能学会的技巧先看计数再动线缆。交换机端口上一般都有收发字节、CRC错误、超短帧、超长帧的统计。这些数字的变化趋势比任何猜测都可靠。清一次计数跑十分钟业务再看增量能定位到九成的问题。光功率的变化比绝对值更有说服力。收光-15dBm不一定是问题但如果三天前是-8dBm那肯定有东西在劣化。所以新上线的链路我会记录一次基准值后面出问题有对比。换件法要讲究顺序。一次只换一个东西换完立刻验证。同时换跳线和模块问题解决了你也不知道是谁的问题下次还会踩。我一般按成本从低到高换先清洁端面再换跳线再换模块最后才怀疑板卡。万兆以太网的电口很烫。10GBASE-T的功耗比光口高得多一个48口的万兆电口交换机满载时功耗和发热都相当可观机柜散热不够的话夏天会出现莫名其妙的丢包。这不是设备质量问题是环境问题加风道或者改用光口才是根治办法。记录一定要记录。每一条链路的模块型号、序列号、光功率基准、施工日期、责任人写进台账。这不是走形式等到三年后某个夜里链路崩了台账就是你手里唯一的线索。我见过太多机房连自己有多少根跳线、分别是谁在哪天布的都说不清楚。提示清洁光纤端面用的无水乙醇和专用无尘纸拆封后要密封保存。敞着口放一个月的清洁耗材本身就成了污染源越擦越脏。7. 我个人的几条经验物理层这块越干越觉得它考验的是耐心而不是智商。所有的问题都有明确的物理原因所有的原因都能通过测量验证没有玄学。真正难的是你有没有一套稳定的排查顺序以及在现场压力下还能不能坚持一次只改一个变量。我个人最看重的一件事是建立基准。新链路交付的时候把光功率、误码计数、认证测试报告、模块信息全部记录归档这份基准在后续三五年里会持续产生价值。很多人省这一步觉得交付了就行结果每次出问题都要从零开始猜。第二件事是不要迷信规格书上的极限值。距离、温度、弯曲半径这些东西规格给的是“能工作”的边界不是“能稳定工作”的边界。工程上我一般把设计和规格之间留出两到三成的余量看起来是浪费实际上是给自己买保险。第三件事遇到“时通时不通”的故障别急着怀疑软件。软件要么对要么错很少时对时错。间歇性的问题九成在物理层接触、温度、供电、干扰这几个方向轮流查比盯着日志看有效得多。