📡 第二章 彻底理解L2交换机
📄 一句话概括

PHY 负责四件事:编码、串并转换、时钟恢复、介质接口。它是「数字」与「模拟」的边界。 自协商与 MDI/MDI-X 都出在这一层——上一章双工不匹配的根就在这里。

📝 本节和前面几节的关系

上一节讲控制面,这一节开始往下走。PHY 是数据离开设备前的最后一站。 这一节要算:三种标准的编码与波特率,以及 MAC 与 PHY 之间接口的带宽。

一、三种标准的编码

10BASE-T 曼彻斯特:10 Mbaud,每符号 1 bit。效率 50%,但自带时钟。 100BASE-TX 4B/5B + MLT-3:125 Mbaud,效率 80%。MLT-3 三电平把基频压到四分之一。 1000BASE-T PAM-5:125 Mbaud × 2 bit × 4 对 = 1000 Mbps。每对线同时双向收发,靠回波消除。

这条演进线的主线是「把频率压到线缆能承受的范围内」, 而不是「把速率堆上去」——因为线缆的带宽是最硬的约束。

二、自协商与线序翻转

自协商(FLP):发一串脉冲,跟对端谈速率与双工。上一章讲的双工不匹配就出在这一层。

MDI/MDI-X 自动翻转:判断对端是直通还是交叉,自己把收发对换过来。 所以今天随便一根网线都能通,靠的是这一层。

注意这两件事都在 PHY 里做,不在 MAC 里。所以换 PHY 芯片可能改变协商行为——这是兼容性问题的来源之一。

三、PHY 与 MAC 之间的接口

MII:4 位、25 MHz、100 Mbps。GMII:8 位、125 MHz、1 Gbps。 RGMII:4 位 DDR、125 MHz、1 Gbps。SGMII:串行、1 Gbps。

RGMII 用一半的线跑出同样的带宽,靠双边沿采样。代价是时序更紧——走线长度要严格匹配,差几毫米就可能不稳。

光口没有 PHY 的「模拟部分」:电光转换由光模块完成。所以光口的「PHY」其实在模块里。

四、动手 Demo:三种标准的编码与波特率

这段把 10BASE-T、100BASE-TX、1000BASE-T 的编码、线上波特率、每对线用法并排列出来, 再列 MAC 与 PHY 之间的四种接口。

for a, b, c, d in ((u"10BASE-T", u"曼彻斯特", u"10 Mbaud", u"1 对"),
                    (u"100BASE-TX", u"4B/5B + MLT-3", u"125 Mbaud", u"1 对"),
                    (u"1000BASE-T", u"PAM-5 + 4D 格码", u"125 Mbaud", u"4 对")):
    T([a, b, c, d], [0, 0, 0, 0])

实跑输出:

--------------------------------------------------------------------
PHY 模块,把「比特」变成「波形」的那一层
--------------------------------------------------------------------
**PHY(物理层芯片)负责四件事**:编码、串并转换、时钟恢复、介质接口。
它是「数字」和「模拟」的边界。

  标准           编码                 线上波特率     每对线
  -------------------------------------------------------------
  10BASE-T       曼彻斯特             10 Mbaud       1 对
  100BASE-TX     4B/5B + MLT-3       125 Mbaud      1 对
  1000BASE-T     PAM-5 + 4D 格码     125 Mbaud      4 对

**注意千兆那一行:125 Mbaud × 2 bit(PAM-5 实际每符号 2 bit)× 4 对 = 1000 Mbps。**
这就是为什么千兆一定要四对线——不是「用得上」,是「非这样不可」。

**PHY 还管两件容易被忽略的事**:

1. **自协商**:发 FLP 脉冲,跟对端谈速率与双工。**上半章的双工不匹配就出在这一层。**
2. **MDI/MDI-X 自动翻转**:判断对端是直通还是交叉,自己把收发对换过来。
**所以今天随便拿一根网线都能通,靠的是这一层。**

**PHY 与 MAC 之间的接口带宽是要算的**:

  接口      位宽         时钟        带宽
  -----------------------------------------------
  MII       4 位         25 MHz      100 Mbps
  GMII      8 位         125 MHz     1 Gbps
  RGMII     4 位 DDR     125 MHz     1 Gbps
  SGMII     串行         —           1 Gbps

**RGMII 用一半的线跑出同样的带宽,靠的是双边沿采样(DDR)。**
代价是时序更紧——**这也是为什么 RGMII 的走线长度要严格匹配,差几毫米就可能不稳。**

**最后一条**:光口没有 PHY 这一层的「模拟部分」,它由光模块自己完成电光转换。
**所以光口的「PHY」其实在模块里。**

千兆那一行是重点:125 Mbaud × 2 bit(PAM-5 每符号 2 bit)× 4 对 = 1000 Mbps。 所以千兆一定要四对线,不是「用得上」,是「非这样不可」。

注意 100BASE-TX 是 125 Mbaud 跑 100 Mbps, 千兆也是 125 Mbaud 跑 1000 Mbps——同样的波特率,十倍的数据率。差别在「每符号带几个比特」和「用几对线」。

最后一行「4 对」也解释了 PoE 为什么能用:千兆把四对线全用了, 所以 PoE 只能用「数据对共模送电」的方式(10/100 则可以用空着的两对)。

30 秒实验

  1. 看一台设备的网口旁边有没有「MDI-X」标记。
  2. 查网卡驱动里的「自协商」选项。
  3. 用一根交叉线接两台老设备,看能不能通。

常见误区

  1. 以为千兆可以用两对线。必须四对。
  2. 以为自协商只在 MAC 里做。那是 PHY 的事。
  3. 以为光口也有 PHY 芯片。在模块里。
自测三问(点开对答案) 1. 100BASE-TX 与 1000BASE-T 的波特率分别是多少? —— 都是 125 Mbaud,差别在每符号比特数与线对数。 2. MDI/MDI-X 自动翻转解决什么问题? —— 自动判断对端是直通还是交叉,把收发对换过来。 3. 为什么千兆必须用四对线? —— 125 Mbaud × 2 bit × 4 对才能凑出 1000 Mbps。

下一节:PHY 之后进 MAC——成帧、算 CRC、记账。

相关笔记