组网第十课:编码、速率与排障——从比特到信号的最后一公里
文章目录
- 组网第十课:编码、速率与排障——从比特到信号的最后一公里
- 一、为什么需要编码:比特不能"裸奔"
- 二、编码家族谱:从曼彻斯特到 PAM4
- 三、波特率 vs 比特率:一个信号符号能装几个比特
- 四、物理层四大"杀手":断·弱·污·超长
- 五、速率协商与双工:千兆为什么变百兆
- 六、用 Python 验算:网线千兆为什么只有 940M
- 小结
- 下期预告
某单位报障:"新换的千兆宽带,办公室电脑测速只有 95M。“链路、路由、防火墙全查了,正常。最后在机柜前蹲下来一看——那台"千兆交换机"的端口协商成了 100M 半双工,而网线是那批"便宜超五类”(8 芯只压了 4 芯,只够百兆)。
我把两根线芯压全、重插,端口"啪"地协商到 1000M 全双工,测速直接 940M。
客户恍然大悟:“原来’千兆’不是插上就有,还得看物理层这层’编码和协商’合不合拍。”
这一课,就把物理层的最后一环讲透:编码怎么把比特送上线路、速率怎么算、物理层四大杀手怎么定位。
一、为什么需要编码:比特不能"裸奔"
一串 0101 没法直接上线路——线路上传的是电压/光强的连续变化,需要一个"翻译规则"把比特变成信号,这就是线路编码(Line Coding)。它解决三个问题:
- 时钟同步:接收端要知道"每个比特的边界在哪",信号里得有"节拍";
- 直流平衡:长串连续的 0 或 1 会让电平长期不变,接收端失去同步、器件发热,编码要保证电平均匀变化;
- 效率:同样一根线,编码效率决定能跑多少有效比特。
打个比方:编码就是给比特"配了辆合适的车"——曼彻斯特是老牛车,8B10B 是货车,64B66B 是高铁,PAM4 是"一次拉四个乘客"的公交车。
二、编码家族谱:从曼彻斯特到 PAM4
以太网四十多年,线路编码换了好几代:
| 编码 | 规则 | 效率 | 用在哪儿 |
|---|---|---|---|
| 曼彻斯特 | 每个比特中间必有一次跳变(1=低→高,0=高→低) | 50% | 10M 以太网(最早) |
| 8B10B | 8bit 数据 → 10bit 符号,加控制字 | 80% | 千兆(1000BASE-X) |
| 64B66B | 64bit 数据 + 2bit 同步头 | 97% | 万兆/25G/100G(以太网光口) |
| PAM4 | 用 4 个电平,1 个符号承载 2bit | 200%(相对 NRZ) | 50G/100G/400G(数据中心) |
关键认知:
- 曼彻斯特效率只有 50%——传 10M 数据,线路要跑 20M 的信号变化,早被淘汰;
- 8B10B 通过"编码表"保证直流平衡和时钟密度,代价是 20% 带宽;
- 64B66B 只加 2bit 同步头,效率冲到 97%,但要求线路质量更好;
- PAM4 不是"1bit=1电平",而是 1 符号=2bit——不提高线路频率,直接翻倍吞吐,是 400G/800G 时代的关键。
规划认知:同样一根光纤,接口换 64B66B 或 PAM4,速率就能翻倍——物理层的"提速"不全是换介质,编码也在偷偷进化。
三、波特率 vs 比特率:一个信号符号能装几个比特
这是物理层最容易被绕晕的一对概念:
- 波特率(Baud):每秒钟信号变化的次数(符号率),单位 Baud;
- 比特率(Bit rate):每秒钟传输的比特数,单位 bps。
关系很简单:比特率 = 波特率 × 每符号比特数。
- 每符号 1bit(NRZ):比特率 = 波特率;
- 每符号 2bit(PAM4):比特率 = 波特率 × 2;
- 加上编码开销:有效数据率 = 线路速率 × 编码效率。
用 Python 把"线路速率→有效速率"算一遍,概念就清楚了:
# 编码效率与有效速率换算codings=[("曼彻斯特",1,2,10),("8B10B",8,10,1000),("64B66B",64,66,10000),("PAM4(忽略开销)",2,1,10000)]print("编码 线路速率 有效速率")forname,data,sym,line_rate_mbpsincodings:ifname.startswith("PAM4"):eff=2.0# 每符号 2 bit,无编码开销假设else:eff=data/sym valid=line_rate_mbps*effprint(f"{name:15s}{line_rate_mbps:>7}Mbps{valid:>7.0f}Mbps")# 实际工程:1G 网口理论 ~1000Mbps,TCP 吞吐 ~940Mbps(扣除帧头/协议开销)print("\n注: 10G 光口用 64B66B,有效 ~9.7Gbps;若换 PAM4 且线路速率不变,吞吐翻倍")一句话:"千兆"是线路速率,真正能用的要乘以编码效率。这也是为什么千兆网实际测速到不了 1000M——940M 才是正常值。
四、物理层四大"杀手":断·弱·污·超长
排障物理层,90% 的问题集中在四类:
| 杀手 | 现象 | 特征 | 手段 |
|---|---|---|---|
| 断 | 完全不通、灯灭 | 线缆/接头物理断开 | 打灯、万用表、通断测试仪 |
| 弱 | 通但不稳、丢包 | 信号幅度不足(长线、劣线、光衰) | 测光功率/线缆衰减、换线换模块 |
| 污 | 误码、CRC 涨 | 接头氧化、脏污、受潮、串扰 | 清洁接口、重新压接、换屏蔽线 |
| 超长 | 时延大、吞吐减半 | 超 100 米铜缆、超规格距离 | 上光纤或加中继/交换机 |
装维口诀:断是"灯不亮",弱是"通得虚",污是"错码多",超是"距离顶"。物理层先按这四类对号入座,能省下一大半排查时间。
五、速率协商与双工:千兆为什么变百兆
千兆变百兆、全双工变半双工,是物理层最经典的"哑故障":链路正常、灯亮着,就是速度不对。根因通常是:
- 线缆只有 4 芯(只压了 1/2、3/6 两对)——千兆需要 4 对全通;
- 线缆类别不够/超长——超过 100 米或劣质线,协商自动降级;
- 两端自动协商异常——一端固定速率、一端自动,出现"以低者为准";
- 端口配置错——有人手动指定了 100M。
设备上查看与修复速率协商的命令(华为/思科通用思路):
# 华为 VRP:查看端口协商结果display interface GigabitEthernet0/0/1# Speed(duplex) : 1000M(a-full) # a-full = 自动协商 全双工# 若显示 100M(a-half):协商异常,查线缆或强制# 强制端口速率/双工(与对端保持一致)interface GigabitEthernet0/0/1 undo negotiation auto# 关闭自动协商speed1000duplex full# 查物理错包(协商降级后常伴随 CRC/碰撞计数)display interface GigabitEthernet0/0/1# Input errors / CRC errors 持续增长 => 物理层脏/劣/超长六、用 Python 验算:网线千兆为什么只有 940M
# 千兆理论 vs 实测:帧开销从哪来# 一个最大帧 1518B(含 8B 前导 + 12B 帧间隙),有效载荷 1500Bframe_total=1518# 一个以太网帧在线上占用的字节(含前导+IFG)payload=1500# 实际数据字节line_rate=1e9# 线路速率 1 Gbps# 每秒最多能传多少帧?frames_per_sec=line_rate/(frame_total*8)# 有效吞吐valid_bps=frames_per_sec*payload*8print(f"千兆线路每秒最多 ~{frames_per_sec:,.0f}个最大帧")print(f"有效吞吐上限:{valid_bps/1e6:,.0f}Mbps")print(f"损失占比:{(1-valid_bps/line_rate)*100:.1f}%(帧头+帧间隙+前导)")# 结论:千兆实测 940M 左右 = 协议开销的必然结果,不是故障print("结论: 940M 是千兆的'协议天花板',测速低于 940M 才需要查物理层")结论:物理层提分不靠"加快线路",而是——选对介质、认对接口、保证编码、管好协商。把这几件事做对,物理层基本没有故障空间。
小结
- 线路编码把比特变成信号:解决时钟、直流平衡、误码率;
- 编码家族:曼彻斯特(50%)→8B10B(80%)→64B66B(97%)→PAM4(200%);
- 波特率 vs 比特率:比特率 = 波特率 × 每符号比特数,有效速率还要乘以编码效率;
- 物理四杀手:断、弱、污、超长,先对号入座再排障;
- 千兆 940M 是正常,低于 940M 才怀疑物理层(协商、线缆、超长);
- 物理层结尾,也是整个"物理介质层"收官——下一步进入数据链路层。
思考题:一根标称六类网线,压接正确、端口协商 1000M,但跑 iPerf3 只有 500M。它属于物理层"四杀手"里的哪一类?除了换线,还有哪些手段可以快速确认?(提示:先用"线缆测试仪"验证链路质量,再考虑是否串入级联设备或中间断点)
下期预告
物理层十课讲完:从 DDN 老线到同轴,从网线到光纤,从编码到速率。接下来进入组网的"实战主场"——政企专线全景:一条专线从 CPE 到局端、到对端,到底经过哪些"盒子"?怎么一眼认出它用了什么承载技术?下一课:组网第十一课:政企专线全景图谱与五层看灯法。
📖本系列其他课程
- 组网第一课:从一根 2M 专线说起——DDN 与电路交换的黄金时代
- 组网第二课:X.25 与帧中继——第一次让带宽"拼车"
- 组网第三课:ATM——53 字节信元的巅峰与谢幕
- 组网第四课:以太网革命与 IP 一统天下
- 组网第八课:同轴与 BNC——2M 专线背后那条"老线"
专栏主页:《组网那点事》——从 DDN 到 AIDC 智算组网 100 课