组网第十课:编码、速率与排障——从比特到信号的最后一公里

组网第十课:编码、速率与排障------从比特到信号的最后一公里

文章目录

某单位报障:"新换的千兆宽带,办公室电脑测速只有 95M。"链路、路由、防火墙全查了,正常。最后在机柜前蹲下来一看------那台"千兆交换机"的端口协商成了 100M 半双工,而网线是那批"便宜超五类"(8 芯只压了 4 芯,只够百兆)。

我把两根线芯压全、重插,端口"啪"地协商到 1000M 全双工,测速直接 940M。

客户恍然大悟:"原来'千兆'不是插上就有,还得看物理层这层'编码和协商'合不合拍。"

这一课,就把物理层的最后一环讲透:编码怎么把比特送上线路、速率怎么算、物理层四大杀手怎么定位。

一、为什么需要编码:比特不能"裸奔"

一串 0101 没法直接上线路------线路上传的是电压/光强的连续变化 ,需要一个"翻译规则"把比特变成信号,这就是线路编码(Line Coding)。它解决三个问题:

  1. 时钟同步:接收端要知道"每个比特的边界在哪",信号里得有"节拍";
  2. 直流平衡:长串连续的 0 或 1 会让电平长期不变,接收端失去同步、器件发热,编码要保证电平均匀变化;
  3. 效率:同样一根线,编码效率决定能跑多少有效比特。

打个比方:编码就是给比特"配了辆合适的车"------曼彻斯特是老牛车,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 米铜缆、超规格距离 上光纤或加中继/交换机

装维口诀 :断是"灯不亮",弱是"通得虚",污是"错码多",超是"距离顶"。物理层先按这四类对号入座,能省下一大半排查时间。

五、速率协商与双工:千兆为什么变百兆

千兆变百兆、全双工变半双工,是物理层最经典的"哑故障":链路正常、灯亮着,就是速度不对。根因通常是:

  1. 线缆只有 4 芯(只压了 1/2、3/6 两对)------千兆需要 4 对全通;
  2. 线缆类别不够/超长------超过 100 米或劣质线,协商自动降级;
  3. 两端自动协商异常------一端固定速率、一端自动,出现"以低者为准";
  4. 端口配置错------有人手动指定了 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 到局端、到对端,到底经过哪些"盒子"?怎么一眼认出它用了什么承载技术?下一课:组网第十一课:政企专线全景图谱与五层看灯法。

📖 本系列其他课程

专栏主页:《组网那点事》------从 DDN 到 AIDC 智算组网 100 课

相关推荐
网络小江1 小时前
上网第四十三课:路由原理——数据包是怎么找到路的
网络协议
91刘仁德5 小时前
IP协议详解:从IP协议头到网段划分、路由与NAT
linux·服务器·网络·网络协议·tcp/ip
硅基手札6 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
网络小江10 小时前
上网第四十二课:第六周复盘——协议篇快问快答
网络协议
青春不朽51212 小时前
requests 超时、重试、SSL 报错?9 个高频问题与一整张排错对照表
网络·网络协议·ssl
天天进步201514 小时前
Caddy 实战:5 分钟给域名开启 HTTPS,自动申请 SSL 证书并反向代理
网络协议·https·ssl
xixingzhe216 小时前
正确认知HTTPS:并非万能加密,通信安全需要多层防护
网络协议·安全·https
网络小江17 小时前
组网第九课:光纤与光接口——一根玻璃丝,把千里外的机房“连“起来
网络协议
XiaoMaqqqq1 天前
市面上正规的IP驱动产业新场景新工具哪家强
运维·python·网络协议·tcp/ip