组网第十课:编码、速率与排障------从比特到信号的最后一公里
文章目录
- 组网第十课:编码、速率与排障------从比特到信号的最后一公里
-
- 一、为什么需要编码:比特不能"裸奔"
- [二、编码家族谱:从曼彻斯特到 PAM4](#二、编码家族谱:从曼彻斯特到 PAM4)
- [三、波特率 vs 比特率:一个信号符号能装几个比特](#三、波特率 vs 比特率:一个信号符号能装几个比特)
- 四、物理层四大"杀手":断·弱·污·超长
- 五、速率协商与双工:千兆为什么变百兆
- [六、用 Python 验算:网线千兆为什么只有 940M](#六、用 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 把"线路速率→有效速率"算一遍,概念就清楚了:
python
# 编码效率与有效速率换算
codings = [("曼彻斯特", 1, 2, 10), ("8B10B", 8, 10, 1000), ("64B66B", 64, 66, 10000), ("PAM4(忽略开销)", 2, 1, 10000)]
print("编码 线路速率 有效速率")
for name, data, sym, line_rate_mbps in codings:
if name.startswith("PAM4"):
eff = 2.0 # 每符号 2 bit,无编码开销假设
else:
eff = data / sym
valid = line_rate_mbps * eff
print(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。
设备上查看与修复速率协商的命令(华为/思科通用思路):
bash
# 华为 VRP:查看端口协商结果
display interface GigabitEthernet0/0/1
# Speed(duplex) : 1000M(a-full) # a-full = 自动协商 全双工
# 若显示 100M(a-half):协商异常,查线缆或强制
# 强制端口速率/双工(与对端保持一致)
interface GigabitEthernet0/0/1
undo negotiation auto # 关闭自动协商
speed 1000
duplex full
# 查物理错包(协商降级后常伴随 CRC/碰撞计数)
display interface GigabitEthernet0/0/1
# Input errors / CRC errors 持续增长 => 物理层脏/劣/超长
六、用 Python 验算:网线千兆为什么只有 940M
python
# 千兆理论 vs 实测:帧开销从哪来
# 一个最大帧 1518B(含 8B 前导 + 12B 帧间隙),有效载荷 1500B
frame_total = 1518 # 一个以太网帧在线上占用的字节(含前导+IFG)
payload = 1500 # 实际数据字节
line_rate = 1e9 # 线路速率 1 Gbps
# 每秒最多能传多少帧?
frames_per_sec = line_rate / (frame_total * 8)
# 有效吞吐
valid_bps = frames_per_sec * payload * 8
print(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 到局端、到对端,到底经过哪些"盒子"?怎么一眼认出它用了什么承载技术?下一课:组网第十一课:政企专线全景图谱与五层看灯法。
📖 本系列其他课程