Appearance
以太网与MAC地址
2026 大纲 三(六)1 局域网的基本概念与体系结构(第一节承载)与 三(六)2 以太网与 IEEE 802.3(本篇主体)。最小帧长 64 字节的推导在《CSMA/CD》,交换机的自学习与 STP 在《交换机工作原理》,802.1Q 标签在《VLAN》。
一、协议讲完了,看它落成的产品
前面四节把随机访问的两条路线都讲完了:有线走 CSMA/CD,无线走 CSMA/CA。但那些都是接入协议——只回答"谁能发"。真正跑在有线局域网上的是一整套东西:帧长什么样、地址怎么编、设备怎么隔离。
以太网就是这套东西,而且它已经赢下了整个有线局域网市场。这一节要看的是它的产品形态,其中有一半内容是在替 CSMA/CD 收账(最小帧长、冲突域),另一半是它自己的设计(MAC 地址、帧格式)。
局域网通论:一切都从"广播信道"开始
局域网用的是广播信道——一台机器发出的信号所有机器都能收到。"广播功能"是局域网体系结构的起点:正因如此才需要介质访问控制,也才有"冲突域""广播域"两个概念;广域网用点对点信道,没有这些问题。
教材给局域网的定义是"网络为一个单位所拥有,且地理范围和站点数目均有限",由此派生出三个优点:广播功能、便于扩展演变、提高可靠性可用性生存性。还有一条容易被忽略的性质:局域网工作的层次跨越了数据链路层和物理层,适配器同样跨两层。
拓扑有三种:星形网(各站连到中心设备,现代以太网)、总线网(各站直接连在一根总线上、两端有匹配电阻,传统以太网)、环形网(各站首尾相接成环,令牌环网)。总线两端的匹配电阻用来吸收电磁波能量、避免有害反射。
以太网走的是"逻辑没变、物理变了"的路:最早是总线网,集线器出现后成为物理星形但逻辑仍是总线(所有端口共享一个冲突域),交换机出现后才是真正的星形。为什么当年不直接上交换机?因为 70 年代"还很难用廉价的方法制造出高可靠性的以太网交换机"。
LLC 与 MAC 为什么拆两层,又为什么退化了
拆两层是历史原因:IEEE 802 委员会当初"未能形成一个统一的、'最佳的'局域网标准,而是被迫制定了几个不同的局域网标准"(802.4 令牌总线、802.5 令牌环等)。为了让数据链路层同时适配这些局域网,就把它拆开——MAC 与接入传输媒体有关(CSMA/CD、令牌传递各不相同),LLC 与媒体无关、对上层屏蔽下面的差异。

图源:谢希仁《计算机网络》(第 8 版) 图 3-14,p86。图里 MAC 层之间的箭头要穿过"局域网"这朵云(经过物理层与实际介质),LLC 层之间却是一个跨过云的粗箭头——这就是"LLC 对传输媒体透明"的图形表达。
90 年代后以太网"在局域网市场中已取得了垄断地位","屏蔽多种局域网差异"这件事就没有意义了——802.2 的 LLC 子层"作用已经消失了,很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议"。
分层是为了兼容多样性,多样性没了,分层也就退化了。 同一件事在 IEEE 802 标准族上也看得见:教材脚注给了个很能说明问题的数字——仍在活动的工作组只有 5 个(802.1、802.3、802.11、802.15、802.19),其余都已停止活动。802.3 与 802.11 是仅存的两个主流,恰好对应有线与无线,也对应 CSMA/CD 与 CSMA/CA。
适配器(网卡)做五件事:串并转换、缓存、实现以太网协议、过滤(收到帧先用硬件检查目的 MAC,不是发往本站的直接丢弃)、中断通知(收到正确的帧用中断通知计算机,收到有差错的帧直接丢弃且不通知)。后两条合起来说明:大量过滤与丢弃在网卡硬件里就做完了,CPU 完全不参与——这也是"以太网提供不可靠交付"在实现层面的体现,坏帧连报告都没有。
二、两个核心特征:无连接、不可靠
| 标准 | 速率 | 介质 |
|---|---|---|
| 10BASE-T | 10 Mb/s | 双绞线 |
| 100BASE-TX | 100 Mb/s(快速以太网) | 双绞线 |
| 1000BASE-T | 1 Gb/s(千兆以太网) | 双绞线 |
| 10GBASE-T | 10 Gb/s(万兆以太网) | 双绞线 |
命名规则是"速率 + BASE + 介质类型",其中 BASE 表示基带传输(信号不经调制直接送上介质)。后缀 T 是双绞线、F 是光纤——传输介质那一节的题就是靠这条规则直接推出答案的。
DEC、Intel、Xerox 三家先提出 DIX Ethernet V2,802.3 工作组在此基础上制定标准,"对以太网标准中的帧格式做了很小的一点更动"。现在市场上流行的都是 DIX Ethernet V2 的 MAC 帧,但大家也常常把它称为 IEEE 802.3 标准的 MAC 帧,两者一般不严格区分。
以太网采取无连接与不可靠交付两个措施:不编号、不确认,坏帧直接丢弃且不通知。这样也没问题,是因为局域网信道质量好、出错概率小;真出了错,上层 TCP 会发现并把数据重新交给以太网重传——但以太网并不知道这是重传帧,而是当作新的数据帧来发送。
这一条在判断"链路层是否一定提供可靠传输"时是决定性的:不一定。 以太网是最主流的链路层协议,而它连"这是重传"都不知道。
三、MAC 地址:它是"名字"不是"地址"
MAC 地址是链路层的硬件地址,48 位(6 字节),固化在适配器的 ROM 中,写作 00:1A:2B:3C:4D:5E。高 24 位是 OUI(厂商向 IEEE 的注册管理机构购买),低 24 位由厂家自行指派——买一个 OUI 就可以生成
⚠️ 24 位的 OUI 不能单独用来标识一个公司:一个公司可能买了多个 OUI,几个小公司也可能合起来买一个。
为什么说它是"名字"不是"地址":MAC 是 48 位平面地址,"并不指明这台主机位于什么地方"——换网卡地址就变,换地方地址不变。它无法层次化聚合,只能识别"是不是我"、不能回答"在哪里"。跨网络必须靠 IP,这条分界是整个网络层存在的理由。
两个特殊位都在第一字节,而且要说"最低位"而不是"第一位"(两种地址记法下字节内先发哪一位不同,说"第一位"会有歧义):I/G 是第一字节的最低有效位(0 单播 / 1 多播),G/L 是最低第二位(0 全球 / 1 本地)。全球管理时最低两位固定为 0,地址空间
只有目的地址能用广播/多播地址,源地址必须是单播。 广播地址是 FF:FF:FF:FF:FF:FF。
适配器接收三种"发往本站的帧":单播帧、广播帧、多播帧;"所有的适配器都至少应当能够识别前两种帧",多播地址需要操作系统在初始化时给适配器编程。适配器还可设为混杂方式——只要"听到"有帧在以太网上传输就都接收下来,教材说它"就像一把双刃剑"。
四、帧格式:没有长度字段的那个设计
| 字段 | 目的 MAC | 源 MAC | 类型 | 数据 | FCS |
|---|---|---|---|---|---|
| 长度 | 6 字节 | 6 字节 | 2 字节 | 46 ~ 1500 字节 | 4 字节 |
| 说明 | 接收方地址 | 发送方地址 | 标识上层协议(0x0800 IPv4、0x0806 ARP) | 上层数据 + 必要的填充 | CRC-32 |
物理层还会在帧前插入 8 字节(硬件生成,不属于 MAC 帧):前导码 7 字节的 1010… 交替码,让接收端适配器调整时钟频率实现位同步;帧开始定界符 SFD 1 字节 10101011,最后两个连续的 1 告诉适配器"MAC 帧马上就来"。
前导码与 SFD 不计入帧长、也不参与 FCS——适配器正是靠前导码才把时钟对上,此时还没进入能正确解码的状态,用这段校验没有意义。⚠️ 但 802.3 文档里的帧格式是包含这 8 字节的,题面按该口径时要跟着走。
有效 MAC 帧长 64 ~ 1518 字节。三种情形之一即为无效 MAC 帧,一律丢弃且不负责重传:① 帧长不是整数个字节;② 用收到的 FCS 查出有差错;③ 数据字段长度不在 46 ~ 1500 之间。
两个数字的因果方向别倒:46 是被算出来的(
为什么没有长度字段
这是本篇最值得想清楚的一处。曼彻斯特编码的每个码元正中间一定有一次电压转换,发送方把帧发完就不再发码元、电压也就不再变化,接收方据此找到帧的结束位置,再往前数 4 字节就确定了数据字段的末尾。
帧尾是靠物理层的信号特征识别的——对照《封装成帧》:PPP 用标志字节 + 字节填充,HDLC 用标志 + 零比特填充,以太网用物理层编码的静默,三种思路同一个问题。所以以太网既不需要帧结束定界符,也不需要字节填充来保证透明传输。
填充字段由 MAC 子层在数据不足 46 字节时补上,而帧首部并没有指出有没有填充,只能靠上层字段剥离:对 IP 是首部的"总长度"(
这是跨层协作的典型样本:MAC 层制造了一个它自己无法解释的冗余,却依赖上层的字段来消除它——"层与层之间完全独立"只是理想模型。
⚠️ 以太网 V2 与 IEEE 802.3 帧有三点区别。 ① 802.3 的第三个字段是"长度/类型"二义字段:值大于
0x0600(1536) 时表示"类型"(此时与 V2 完全一样),小于0x0600时表示"长度";② 表示"长度"时数据字段必须装入 LLC 帧;③ 802.3 文档中 MAC 帧格式包括前导码与 SFD。门限 1536 是怎么定的:以太网数据字段最大 1500,任何合法的"长度"都不会超过 1500;而已分配的协议类型值都从 1536 往上取。两个取值域不重叠,一个字段就能同时表达两件事。
交互可视化
五、帧长账:以太网为什么不喜欢小包
某 100 Mb/s 以太网。承载 1500 字节 IP 数据报:帧长
若站在信道占用时间的角度,还要计入前导码 + SFD(8 字节)与帧间隙(96 比特时间 = 12 字节):
固定开销(
六、冲突域与广播域
| 概念 | 定义 | 划分依据 |
|---|---|---|
| 冲突域(碰撞域) | 连在同一物理介质上、竞争同一信道的所有站点,域内任意两站同时发送都会碰撞 | 看"信号会不会叠加" |
| 广播域 | 一个站发出广播帧时能收到该帧的所有站点 | 看"广播帧能传到哪" |
| 设备 | 工作层次 | 隔离冲突域 | 隔离广播域 |
|---|---|---|---|
| 中继器 / 集线器 | 物理层 | ✗ | ✗ |
| 网桥 / 二层交换机 | 数据链路层 | ✓ | ✗ |
| 路由器 | 网络层 | ✓ | ✓(每接口一个) |
为什么交换机隔离得了冲突域、隔离不了广播域?
隔离冲突域靠"缓存 + 定向转发"——端口有存储器,能把到来的帧缓存下来再发,两个端口的信号不会在介质上叠加,从根上就没有"同时发送"这回事了。
不隔离广播域是因为它必须转发广播帧——二层交换机没有网络层信息,判断不出该不该转发,只能泛洪到所有端口。要在二层切分广播域只能用 VLAN。
判据:能不能隔离冲突域看它会不会缓存,能不能隔离广播域看它懂不懂网络层。
还有一条边界要记住:全 F 的广播只在本广播域内有效,二层广播不会跨越路由器——二层广播 ≠ "发给所有人"。
怎么数:冲突域看共享网段,广播域看三层接口
数广播域最简单:数路由器(或三层设备)的接口。 集线器和二层交换机都不隔离广播域,所以路由器每一侧下面挂了多少二层设备都不影响。
数冲突域要先想清楚"哪一段介质上真的可能碰撞":
- 集线器下的那一片(集线器 + 它下挂的全部主机 + 它到交换机的那条上联线)合起来算 1 个——这一段是共享介质,两台主机同时发就会撞。
- 交换机端口直接挂一台主机的那条链路,也算 1 个(教材口径:"每一个端口和连接到端口的主机构成了一个碰撞域")。
- 交换机与交换机之间、交换机与路由器之间的链路是全双工点对点的,两端各自独立收发,物理上不可能碰撞,做题时通常不计入。
集线器扩了覆盖范围却砍了吞吐量:教材那个"三个系各一个 10BASE-T 以太网、互连后三个碰撞域合成一个、吞吐量从 30 Mb/s 掉回 10 Mb/s"的例子说的就是这笔账——"当某个系的两个站在通信时所传送的数据会通过所有的集线器进行转发,使得其他系的内部在这时都不能通信"。
本节小结
- 局域网用广播信道,所以才需要介质访问控制、才有冲突域与广播域两个概念;它跨越数据链路层与物理层。LLC / MAC 双子层是为兼容多种局域网标准而设,以太网垄断后多样性消失,LLC 的作用也随之消失。以太网无连接 + 不可靠交付,且连"这是重传"都不知道。
- MAC 地址 48 位、前 24 位 OUI、后 24 位厂家自定;第一字节最低位 I/G 分单播/多播、最低第二位 G/L 分全球/本地。它本质是平面地址、是"名字"不是"地址"——不指示位置,只能用于一跳之内,跨网必须靠 IP。
- 帧格式五字段、有效帧长 64~1518,前导码与 SFD 不计入也不参与校验;没有长度字段,靠曼彻斯特编码"发完就不再有电压变化"识别帧尾,因此不需要帧结束定界符与字节填充;填充字段无标记,靠上层字段剥离。冲突域看信号会不会叠加,广播域看广播帧能传到哪;交换机隔离前者(靠缓存)不隔离后者(读不懂网络层)。
考点速记
本节在真题里被考过的形式有三类,恰好对应它的三块内容:
① 以太网提供什么服务(cn-2012-35)。问"以太网的 MAC 协议提供的是",答无连接不可靠服务。四个选项就是"有/无连接"与"可靠/不可靠"的四种组合,本节第二部分那两条特征直接给出答案。抓手是"以太网并不知道这是重传帧"——连重传都感知不到,谈何可靠。
② 什么不属于物理层接口规范(cn-2018-34)。四个选项是接口形状、引脚功能、物理地址、信号电平,答物理地址。前三项分别对应机械、功能、电气特性(完整对照在传输介质第六部分),而 MAC 地址虽名为"物理地址",却是数据链路层的概念——物理层连"帧"都不认识,更不知道帧里有个地址字段。凡涉及寻址、帧、转发的都已经到链路层了。
③ 求某一跳上帧的源 MAC 与目的 MAC(cn-2018-37)。给"H1 — S1 — R — S2 — H2"的拓扑,问 H1 发出的帧的目的 MAC、H2 收到的帧的源 MAC。这是数据包的网络之旅那套方法最规整的一次应用,三步:
- H1 判出目的 IP 192.168.4.2 不在本网段 ⇒ 帧交给默认网关,目的 MAC 是 R 在 H1 那一侧接口的 MAC;
- 交换机 S1、S2 不改帧,不产生新的地址组合;
- R 换了链路,整个替换帧首尾部,新源 MAC = R 的出接口 MAC(H2 那一侧的),所以 H2 收到的帧源 MAC 是 R 的另一个接口。
两个位置填的都是路由器的接口 MAC,只是一头一个。 干扰项里填 H1/H2 自己的 MAC,正是漏掉了"路由器换链路要重做封装"这一步。
关于数冲突域与广播域:这类题渲染在交换机自学习的练习区,完整解法与两种口径的辨析记在那一篇。练习区比本节内容宽属正常——本节给的是定义与判据,题在下一篇。
易错:以太网提供无连接、不可靠交付。 它有 FCS 但不确认、不重传,坏帧丢弃且不通知发送方。
易错:MAC 地址不属于物理层,尽管它叫"物理地址"。物理层接口规范只有机械、电气、功能、过程四特性。
易错:46 是算出来的(
),64 是 CSMA/CD 规定的。 因果方向别倒。同理 MTU 1500 是数据字段上限,整帧最大 1518。
易错:前导码与 SFD 不计入帧长、不参与 FCS(但 802.3 文档的帧格式包含它们,看题面口径)。
易错:以太网帧没有长度字段,帧尾靠物理层信号识别,所以也不需要字节填充做透明传输。这与 PPP、HDLC 是三种不同思路。
易错:填充字段没有任何标记,接收方靠 IP 首部的"总长度"或 ARP 分组的固定长度把它剥掉。
易错:全 F 广播只在本广播域内有效,不跨路由器。
教材出处
- 谢希仁《计算机网络》(第 8 版)印刷 p84,3.3.1 局域网的数据链路层:局域网定义与三个优点——"局域网最主要的特点是:网络为一个单位所拥有,且地理范围和站点数目均有限";三种拓扑(星形/环形/总线,图 3-13)与总线匹配电阻的作用——"总线两端的匹配电阻吸收在总线上传播的电磁波信号的能量,避免在总线上产生有害的电磁波反射";以及"局域网工作的层次跨越了数据链路层和物理层"。同页给出双绞线"已成为局域网中的主流传输媒体"。
- 同书印刷 p85–p86:LLC 与 MAC 双子层的由来与图 3-14——"IEEE 802 委员会就把局域网的数据链路层拆成两个子层,即逻辑链路控制 LLC 子层和媒体接入控制 MAC 子层。与接入到传输媒体有关的内容都放在 MAC 子层,而 LLC 子层则与传输媒体无关";LLC 消失的原因——"IEEE 802 委员会制定的逻辑链路控制子层 LLC(即 IEEE 802.2 标准)的作用已经消失了,很多厂商生产的适配器上就仅装有 MAC 协议而没有 LLC 协议";以及 802 委员会仍在活动的工作组只剩 5 个(脚注)。
- 同书印刷 p86:适配器的作用——串并转换、缓存、过滤、中断通知;"虽然我们把适配器的内容放在数据链路层中讲授,但适配器所实现的功能却包含了数据链路层及物理层这两个层次的功能"。
- 同书印刷 p87:以太网的两个措施——"采用较为灵活的无连接的工作方式"与"以太网提供的服务是尽最大努力的交付,即不可靠的交付";以及"以太网并不知道这是重传帧,而是当作新的数据帧来发送"。
- 同书印刷 p95:MAC 地址是"名字"而非"地址"的辨析——"局域网上的某台主机的'地址'并不指明这台主机位于什么地方。因此,严格地讲,局域网的'地址'应当是每一个站的'名字'或标识符";换适配器地址就变、换地点地址不变的两个例子。
- 同书印刷 p96–p97:OUI 与 EUI-48——"可见购买了一个 OUI,就可以生成出
个不同的 6 字节(48 位)MAC 地址";I/G 位与 G/L 位的规定及"第一位"记法的歧义警告;平面地址与层次地址的对比(脚注);适配器接收的三种帧与混杂方式。 - 同书印刷 p98:以太网 V2 的 MAC 帧五字段与"46 字节是这样得出的:最小长度 64 字节减去 18 字节的首部和尾部就得出数据字段的最小长度";无长度字段而靠曼彻斯特编码识别帧尾的完整推理;填充字段靠 IP 首部"总长度"剥离的例子(总长度 42 字节则填充 4 字节)。
- 同书印刷 p99:前导码与 SFD 的作用及"MAC 帧的 FCS 字段的检验范围不包括前同步码和帧开始定界符";以太网"不需要使用帧结束定界符,也不需要使用字节插入来保证透明传输";三种无效 MAC 帧与有效帧长 64~1518;802.3 与以太网 V2 的三点区别及
0x0600门限。 - 同书印刷 p100–p101:三个系的以太网互连前后碰撞域与吞吐量的对比;集线器"基本上是个多端口(也称为接口)的转发器,它并不能把帧进行缓存";以及交换机"每一个端口和连接到端口的主机构成了一个碰撞域,具有
个端口的以太网交换机的碰撞域共有 个"。 - 同书印刷 p103–p104:以太网从总线拓扑演进到星形拓扑的原因——"在当时的技术条件下,还很难用廉价的方法制造出高可靠性的以太网交换机"。
相关知识
CSMA/CD 协议|交换机工作原理|VLAN 虚拟局域网|无线局域网(IEEE 802.11)|物理层设备