📚 第三章 数据链路
📄 一句话概括

以太网从 2.94 Mbps 走到 400G,用了五十年,帧格式一直没变。 它能活下来靠的不是速率,是「每次升级都还能和老设备通」。

📝 本节和前面几节的关系

3.3.2 讲的是「怎么读规格」,这一节讲「这些规格是怎么来的」。 看清时间线,就能理解为什么有些设计显得「过时却还在」。

一、关键节点

五个节点决定了今天的以太网:

| 年份 | 事件 | 留下了什么 | |---|---|---|---| | 1973 | Xerox PARC 的实验原型 | 2.94 Mbps,蹭主机时钟 | | 1980 | DIX 1.0(DEC/Intel/Xerox) | 帧格式定下来了 | | 1983 | IEEE 802.3 标准 | 厂商开始照着做 | | 1995 | 快速以太网 100BASE-TX | 保留了帧格式 | | 1998 | 千兆以太网 | 仍然没改帧 |

第一行那个 2.94 Mbps 很有意思:它不是设计出来的,是「直接拿计算机主频当发送时钟」的结果。 所以「先有能跑的代码、后有标准」这个顺序,从第一天就是这样。 第二行那个 DIX 是一个「厂商联盟」:三家公司在 1980 年联合发布了一份 36 页的规范, 这份规范里的帧格式,四十年后还在用。 所以「标准不是委员会凭空写的,是先把能跑的东西写下来」。 第三行 IEEE 802.3 是「把它变成国际标准」:从此不同厂商的设备能互通。 这也是「为什么以太网叫 802.3」的由来——802 是「局域网」这个系列,3 是其中一个工作组。

二、速率是怎么翻上去的

两个阶段,手段完全不同:

阶段 主要手段 代价
10M → 100M → 1G 换介质、换编码 要换线或换收发器
1G → 10G 以后 多通道并行 + 更强编码 功耗与器件成本上升

第一阶段的代表是「双绞线四对全用上」: 100BASE-TX 只用两对,1000BASE-T 用四对、每对 250 Mbps。 这不需要换线(Cat5 就够),只换网卡——所以千兆的普及比万兆快得多。 第二阶段靠「并行」:10GBASE-T 用四对线、每对 2.5 Gbps,再靠复杂编码压住串扰。 所以万兆双绞线的功耗和发热都明显高,很多万兆口干脆改用光纤(SFP+)。 这条路线和 CPU 很像:主频涨不动了就堆核心,单通道涨不动了就堆通道。 「并行」永远是「单通道做不到」之后的第二选择。

三、为什么它能活五十年

三个原因,按重要性排:

原因 具体表现
帧格式不变 1980 年的帧和今天的帧结构一样
向后兼容 千兆口能接百兆设备(自协商)
厂商多、便宜 芯片大量出货,单价一路下跌

第一行是最关键的:帧格式不变意味着「协议栈不用改」, 操作系统里的网卡驱动、上层协议全都能直接复用。 这就是「换硬件不用换软件」——它的价值远大于「速率翻十倍」。 第二行的「自协商」是个很实用的设计: 两端通电后互相发一串脉冲,约定「用最快的共同速率、双工方式」。 所以「千兆网卡插百兆交换机」能自动降到百兆,不用手工配。 代价是偶尔会协商失败——这就是「网络时通时不通」的经典原因之一。 拿它和同期的对手比一比:令牌环、FDDI、ATM 都更快或更优雅,但都要「整网替换」。 以太网每次升级只要求「换这一段」,于是它一路活到了今天。

四、动手 Demo:速率每翻十倍,用了多少年

把七个关键节点排出来,算「距上次」的间隔。 注意最后一行 100G 到 400G 只是四倍,不是十倍。

hist = [(1973, 2.94), (1980, 10), (1995, 100), (1998, 1000),
        (2002, 10000), (2010, 100000), (2017, 400000)]
prev = None
for yr, mbps in hist:
    if mbps >= 1000:
        sp = '%.0f Gbps' % (mbps / 1000.0)
    else:
        sp = '%.0f Mbps' % mbps if mbps >= 10 else '%.2f Mbps' % mbps
    gap = '-' if prev is None else '%d 年' % (yr - prev)
    print('%d  %-10s 距上次 %-6s' % (yr, sp, gap))
    prev = yr

实跑输出:

--------------------------------------------------------------------
速率每翻十倍,用了多少年
--------------------------------------------------------------------
**以太网从 2.94 Mbps 走到 400G,用了五十年。**把关键节点排出来,
看「翻十倍要多久」这件事有没有规律。

  年份     速率          距上次     标志
  ----------------------------------------------------------
  1973     2.94 Mbps     —          实验原型(Xerox PARC)
  1980     10 Mbps       7 年       DIX 1.0 标准,10BASE5
  1995     100 Mbps      15 年      快速以太网,100BASE-TX
  1998     1 Gbps        3 年       千兆以太网,1000BASE-SX
  2002     10 Gbps       4 年       万兆以太网,10GBASE-LR
  2010     100 Gbps      8 年       40G/100G 标准
  2017     400 Gbps      7 年       400G 标准

**第二列看趋势、第三列看节奏**:
**10M 到 100M 用了 15 年,100M 到 1G 只用了 3 年,1G 到 10G 用了 4 年,10G 到 100G 用了 8 年。**
**「翻十倍」的间隔先缩短到 3 年,后来又拉长回 7、8 年。**
**注意最后一行 100G 到 400G 只是四倍,不是十倍**——
**这个细节说明「按十倍一档」的节奏已经维持不下去了。**
**拉长的原因不在协议,在物理**:**速率越高,信号在铜线上的衰减越快、串扰越严重**,
**所以 10G 之后铜线越来越难做,短距靠光纤、长距靠更好的编码。**
**这也是「400G 只在数据中心内部、不上桌面」的原因。**
**还有一个数字更值得记住**:
**1973 年的原型是 2.94 Mbps,因为它的时钟直接取自计算机的 2.94 MHz 主频**——
**不是设计出来的速率,是「顺手用现成的时钟」。**
**这个细节说明早期的协议是被硬件牵着走的,标准是后来补的。**
**所以「以太网能活五十年」的真正原因不是速率**:
**是它每次升级都保持帧格式不变**——**1980 年的帧和今天的帧,结构上是一样的。**
**能兼容,才换得动。**

间隔先缩短、后拉长: 10M 到 100M 用了 15 年,100M 到 1G 只用了 3 年,1G 到 10G 用了 4 年,10G 到 100G 用了 8 年。 这个曲线的形状说明:早期的瓶颈是「标准没定」,后期的瓶颈是「物理做不到」。 最后一行 100G 到 400G 只是四倍:「按十倍一档」的节奏已经维持不下去了。 所以现在的做法是「多通道并行」+「换编码」,而不是「把单通道频率再提十倍」。 最值得记住的其实是「1980 到 1995 中间的 15 年」: 那段时间以太网只有 10 Mbps,而令牌环有 16 Mbps、FDDI 有 100 Mbps。 以太网是靠「便宜 + 兼容」熬过来的,后来 1995 年一次跳到 100M,就把对手全甩开了。

30 秒实验

  1. 算一下:从 1973 到 2017,速率一共翻了多少倍?平均几年翻一倍?
  2. 查一下你手上这台电脑的网卡是哪一年出的、速率多少。
  3. 想一下:为什么「帧格式不变」比「速率翻倍」更能决定一个协议的生死?

常见误区

  1. 以为「以太网一开始就是标准」。 是先有能跑的代码,标准(802.3)是 1983 年才有的。
  2. 以为「速率提升靠提高频率」。 早期靠换介质和编码,后期靠多通道并行。
  3. 以为「技术最好的一定赢」。 令牌环、FDDI 指标都更好,但迁移成本高,输给了以太网。
自测三问(点开对答案) 1. 以太网最早的速率是多少?为什么是这个奇怪的数? —— **2.94 Mbps。** 因为直接拿实验主机的 2.94 MHz 时钟当发送时钟,不是设计出来的。 2. 为什么以太网能活五十年? —— **帧格式一直没变,向后兼容好,厂商多、便宜。**换硬件不用换软件,这是最关键的。 3. 100G 到 400G 为什么只翻了四倍? —— **「单通道频率翻十倍」已经做不到了。**现在靠多通道并行和更强编码,所以档位粒度变小了。

下一节把帧拆开,一个字节一个字节地数。

相关笔记