以太网赢在简单:一根共享的线、一套固定格式的帧、谁都能造。 CSMA/CD 是它早期的秩序,全双工普及后这套听诊机制已经退居二线。
上一节讲了标准是谁定的,这一节讲以太网本身。 它是全书出现频率最高的词:交换机的端口是以太网口,防火墙的接口是以太网口, 机柜里每一根线跑的都是以太网帧。
一、以太网的三条基本设定
一、共享介质。最早的以太网是一根同轴电缆,所有站点挂在上边,同一时刻只能有一个在发。 这就是「冲突」的来源。
二、固定帧格式。目的 MAC、源 MAC、类型、数据、校验,一共 18 字节头尾, 中间 46 到 1500 字节数据。格式四十年没变,这是它能活到今天的关键。
三、无连接、不确认。发出去就不管了,丢了靠上层(TCP)重传。 这个「甩手掌柜」的设计,换来的是极高的转发效率——交换机不需要记状态。
三条合起来就是以太网的哲学:把复杂度推给上层,自己只做最快的那一段。
二、CSMA/CD:一群人开会怎么不抢话
CSMA 是「先听后说」:发之前先听线路上有没有人在发,有就等。 CD 是「边说边听」:发的过程中继续听,发现撞了立刻停,各自随机退避一段时间再重来。
这个机制有三个直接后果,全都变成了工程规矩:
① 最小帧 64 字节。帧太短,发完了还没听到碰撞,就检测不到。 ② 网络直径有上限。信号往返时间必须小于最小帧的发送时间。 ③ 冲突域。同一个共享介质上的所有站点是一个冲突域,人越多撞得越凶。
1990 年代之后这三条逐渐失效:交换机把冲突域切成一段一段,每段只有两个站点, 而且全双工下收发各走一对线,根本不会撞。 所以今天的网络里 CSMA/CD 基本不工作,只有半双工的老设备还在用。 但最小帧 64 字节与 1518 上限留下来了,因为它们已经写进了所有芯片。
三、MAC 地址:出厂就定死的那 48 位
6 个字节,前三字节是厂商标识(OUI),后三字节是厂家自己编的流水号。 理论上全球唯一,实际有重复的便宜货,但影响不大——因为 MAC 只在本地网段有效。
三种类型要分清:单播(第一位是 0)、组播(第一位是 1)、广播(全 F, 也就是 FF:FF:FF:FF:FF:FF)。
交换机的转发表就是「MAC 地址到端口」的映射,靠源 MAC 学习、靠目的 MAC 转发。 这一条是第二章的主线,这里先埋个引子:交换机不关心 IP,它只认 MAC。
四、为什么赢的是以太网,不是令牌环
八十年代有好几种 LAN 标准,令牌环(Token Ring)在技术上更「优雅」:没有冲突、延迟可预测、 抗负载能力强。但它输了。
原因有三条,每一条都值得记住:
① 便宜。以太网用普通双绞线,令牌环要用专用屏蔽线与专用接口。 ② 开放。以太网标准公开,几十家厂都能造;令牌环早期基本是 IBM 一家。 ③ 能升级。以太网从 10M 到 100M 到 1G,帧格式不变;令牌环每次提速都要改协议。
技术更优不等于赢。这一条在今天的 SDN、Wi-Fi 7、 各种新协议上还在重演——能活着演化下去的那个,往往不是最优雅的那个。
五、动手 Demo:最小帧 64 字节是怎么算出来的(往返传播与争用窗口)
这段把 64 字节的来历算一遍:先算争用窗口的时间,再算信号能跑多远, 最后看速率涨上去之后直径怎么缩。
C = 2.0e8 # 铜缆里约 2/3 光速
rate = 10e6
slot_t = 512 / rate
d_max = slot_t * C / 2
for r in (100e6, 1000e6):
t = 512 / r
print(r, t * C / 2)
实跑输出:
--------------------------------------------------------------------
以太网的最小帧为什么是 64 字节
--------------------------------------------------------------------
**冲突检测要求「发完之前还能听到撞车」。**最坏情况是两端同时发,
碰撞信号要跑一个来回才回到发送方,所以帧的发送时间必须不短于往返传播时间。
量 值
--------------------------------------------
10BASE-T 速率 10 Mbit/s
争用窗口(slot time) 512 bit
折成时间 51.2 微秒
信号速度(按 2/3 光速) 200 米/微秒
往返能跑多远 10240 米
于是网络直径上限 5120 米
标准实际取的值 2500 米
**账面上的 5120 米,标准只认 2500 米。**差额是留给中继器的:
每个集线器都要把信号重新整形,这一段延迟计入了争用窗口,所以直径要缩。
**512 bit 就是 64 字节**——这是最小帧的长度,也是「帧还没发完就撞上」的检测下限。
小于 64 字节的帧叫残帧(runt),网卡直接丢;**大于 1518 字节的帧**(不带标签)也丢。
**速率涨了,直径就得缩。**如果速率变成 100 Mbit/s 而 slot 仍是 512 bit:
100 Mbit/s:slot 只有 5.1 微秒,直径上限缩到 512 米。
1000 Mbit/s:slot 只有 0.5 微秒,直径上限缩到 51 米。
千兆以太网靠「载波扩展」把帧补到 512 字节,才保住 100 米的布线距离。
51.2 微秒这个数在很多教材里直接给,这里是自己算出来的:512 bit 除以 10 Mbit/s。
账面直径 5120 米,标准只认 2500 米。差额留给中继器——每个集线器都要重整信号, 这段延迟计入争用窗口。这就是「标准比理论保守」的典型例子。
下面两行是本节最该记住的:速率提到 100 M,直径缩到 512 米;提到 1 G,缩到 51 米。 十米的机房都不一定够,所以千兆必须靠载波扩展。
30 秒实验
- 算一下你办公室最长的一根网线有多长,对照 100 米的上限还剩多少余量。
- 把一台老集线器接进交换机的一个口,看冲突灯会不会亮(多数情况不会,因为已全双工)。
- 用 arp -a 看一下你电脑学到的 MAC 地址,数一数前三个字节有几家厂商。
常见误区
- 以为以太网现在还靠 CSMA/CD 工作。交换机加全双工之后,冲突基本消失。
- 以为 MAC 地址全球绝对唯一。便宜网卡有重号,但只在同一广播域内才有影响。
- 以为帧越大越好。超过 MTU 会被丢弃或分片,跨网段更容易出问题。
自测三问(点开对答案)
1. 最小帧为什么是 64 字节? —— 它等于争用窗口 512 bit;帧短于此,发完还没听到碰撞,就检测不到冲突。 2. 交换机为什么不怕冲突? —— 它把冲突域切成每段两个站点,加上全双工收发分线,物理上不会撞。 3. 以太网赢令牌环的三条原因? —— 便宜、开放、帧格式不变可平滑升级。下一节:以太网上的数据具体长什么样,一个字节一个字节地看。
- ☐ (本节完,下一节 01.03.01 以太网上的数据)
相关笔记
- 以太网上的数据
- 第二章 02.01.01 什么是中继器(后章)
- 🔌 网络是怎样连接的
- 📡 图解网络硬件 · 索引