以太网技术详解:MAC地址、双工模式、MTU 与 CSMA/CD
一、以太网概述
- 以太网(Ethernet) 是局域网(LAN)的主流技术,由 Xerox、DEC、Intel 于 20 世纪 70 年代提出(DIX 标准),后由 IEEE 802.3 标准化。
- 发展历程:10BASE5(粗缆)→ 10BASE2(细缆)→ 10BASE-T(双绞线)→ 快速以太网(100Mbps)→ 千兆/万兆及更高。
- 以太网主要工作在 OSI 的物理层和数据链路层(链路层又细分为 LLC 子层与 MAC 子层)。
二、MAC 地址
1. 基本概念
- MAC(Media Access Control)地址:48 位(6 字节)的物理/硬件地址,通常烧录在网卡 ROM 中。
- 表示格式:6 组十六进制数,如
00:1A:2B:3C:4D:5E(也可写作-分隔或不分隔)。
2. 地址结构
前 3 字节(24 位):OUI(组织唯一标识符),由 IEEE 分配给厂商
后 3 字节(24 位):厂商自行分配的接口序列号3. 特殊 MAC 地址
| 类型 | 判定方式 | 示例 |
|---|---|---|
| 单播地址 | 第 1 字节最低位(I/G 位)= 0 | 00:1A:2B:xx:xx:xx |
| 组播地址 | 第 1 字节最低位(I/G 位)= 1 | 01:00:5E 开头(IPv4 组播映射) |
| 广播地址 | 48 位全 1 | FF:FF:FF:FF:FF:FF |
| 本地管理地址 | 第 1 字节倒数第 2 位(U/L 位)= 1 | 手机的随机化 MAC 常属此类 |
4. 以太网帧格式
| 目的MAC | 源MAC | 类型 | 数据 | FCS |
| 6字节 | 6字节 | 2字节 | 46 ~ 1500 字节 | 4字节 |- 类型字段:标识上层协议(0x0800 = IPv4,0x0806 = ARP,0x86DD = IPv6)。
- FCS:帧校验序列,基于 CRC 的差错检测。
5. 工作要点
- 交换机基于源 MAC 学习(建立 MAC 地址表),基于目的 MAC 转发;表中无目的 MAC 时向除入口外的所有端口泛洪。
- MAC 地址表项有老化时间(默认常为 300 秒)。
- 查看方法:Windows
ipconfig /all、Linuxip link、ARP 表arp -a。
6. MAC 与 IP 的关系
| 对比项 | MAC 地址 | IP 地址 |
|---|---|---|
| 所属层次 | 数据链路层 | 网络层 |
| 类型 | 物理地址(理论上固定) | 逻辑地址(随网络变化) |
| 作用范围 | 本地链路内交付 | 全局路由与互联 |
| 长度 | 48 位 | IPv4 32 位 / IPv6 128 位 |
一句话:IP 负责"找到哪台主机",MAC 负责"在本段链路上交给谁";两者通过 ARP 关联。
三、双工模式
1. 三种通信方式
| 模式 | 说明 | 典型例子 | 是否冲突 |
|---|---|---|---|
| 单工 | 只能单向传输 | 广播、电视 | 否 |
| 半双工 | 可双向但不能同时收发 | 对讲机、集线器以太网 | 有冲突,需 CSMA/CD |
| 全双工 | 可同时双向收发 | 电话、交换机以太网 | 无冲突,无需 CSMA/CD |
2. 全双工的实现条件
- 收、发使用独立的传输通道(如双绞线的两对线、光纤的收/发两芯)。
- 点对点连接(网卡 ↔ 交换机端口),不存在共享介质。
3. 冲突域与广播域
| 设备 | 冲突域 | 广播域 |
|---|---|---|
| 集线器 | 所有端口同属 1 个 冲突域 | 1 个 |
| 交换机 | 每个端口一个 冲突域 | 默认整个交换机 1 个(VLAN 可划分) |
| 路由器 | 每个端口一个 | 每个接口一个(隔离广播域) |
4. 自动协商
- 现代以太网支持 Auto-Negotiation:自动协商速率与双工模式。
- 两端协商不一致(如一端强制全双工、另一端自动协商出半双工)会导致双工不匹配,表现为丢包、CRC 错误、性能严重下降,是常见网络故障点。
四、MTU
1. 基本概念
- MTU(Maximum Transmission Unit):链路层一次能够承载的最大数据长度。
- 标准以太网 MTU = 1500 字节(以太网帧数据字段的上限)。
2. 以太网帧的长度构成
整帧最大 = 14 字节帧头 + 1500 字节数据 + 4 字节 FCS = 1518 字节
带 VLAN 标签(802.1Q)时 = 1518 + 4 = 1522 字节3. MTU 与 IP 分片
- IP 报文超过出接口 MTU 时,在 IP 层分片(每个分片独立传输,由接收方重组)。
- 若 IP 头部 DF(Don't Fragment)位 置位:不分片,路由器丢弃并回送 ICMP「目的地不可达——需要分片」(类型 3,代码 4)——这是 PMTUD(路径 MTU 发现) 的基础。
- 路径 MTU:源到目的路径上所有链路 MTU 的最小值。
4. 常见链路 MTU 参考值
| 链路类型 | MTU |
|---|---|
| 标准以太网 | 1500 |
| PPPoE(拨号上网) | 1492 |
| IPsec / GRE 等隧道封装后 | 更小(常见 1400 左右) |
| 巨型帧 | > 1500,常用 9000 |
5. 巨型帧
- 优点:单帧承载更多数据,降低包头开销、提升吞吐,常用于存储网络、数据中心内部。
- 注意:路径上所有设备必须一致支持并配置,否则中间设备会分片或丢包。
五、CSMA/CD
1. 基本概念
- CSMA/CD(Carrier Sense Multiple Access with Collision Detection):载波侦听多路访问/冲突检测。
- 适用场景:共享介质的半双工以太网(同轴电缆、集线器时代);全双工交换式以太网不再需要。
2. 工作流程(十六字诀:先听后发、边发边听、冲突停发、随机重发)
- 载波侦听:发送前监听信道,空闲才发送(忙则等待)。
- 边发边听:发送过程中持续检测冲突。
- 冲突检测:一旦检测到冲突,立即停止发送,并发出强化干扰信号(Jam 信号)告知所有站点。
- 二进制指数退避:等待随机时间后重试;连续冲突时退避窗口翻倍(上限 2^10 - 1 = 1023 个时隙),重试 16 次仍失败则放弃并报错。
3. 退避算法
第 i 次冲突后,从 [0, 2^min(i,10) - 1] 中随机取 k,等待 k × 512 比特时间 再重发。
4. 冲突与最小帧长(核心考点)
- 站点必须在一帧发送完之前检测到可能发生的冲突,否则无法得知帧已损坏。
- 由此推出以太网最小帧长 = 64 字节(512 比特时间):
- 10Mbps 以太网:争用期(冲突窗口)= 51.2μs,对应 64 字节;
- 数据不足 64 字节时必须填充(Padding)。
- 这也解释了为什么以太网帧的数据字段下限是 46 字节(64 - 14 - 4 = 46)。
5. 为什么现代以太网弃用 CSMA/CD
- 全双工 + 交换机:收发通道独立,点对点链路不存在冲突。
- 千兆以太网虽曾为兼容半双工设计过"载波延伸/分组突发",实际已淘汰;万兆仅支持全双工。
六、常见面试问答
- MAC 地址的结构? 48 位,前 24 位 OUI(IEEE 分配给厂商)+ 后 24 位厂商自配序列号。
- 为什么有 MAC 地址还需要 IP 地址? 分层设计:IP 是网络层逻辑地址,支撑全局路由与互联;MAC 是链路层地址,负责本地链路内的实际交付,二者通过 ARP 映射。
- MTU 为什么是 1500?超出怎么办? 1500 是 802.3 规定的以太网数据字段上限;超出时 IP 层分片(或 DF 置位时触发 PMTUD/ICMP 报错),应尽量通过路径 MTU 发现避免分片。
- CSMA/CD 中为什么必须"边发边听"? 只有发送期间才能检测冲突;若帧发完仍未检测到,冲突造成的损坏就无从得知,因此引入最小帧长 64 字节保证冲突可被检测。
- 全双工还需要 CSMA/CD 吗? 不需要。收发独立通道、点对点链路无冲突。
- 集线器与交换机的本质区别? 集线器工作在物理层,所有端口共享 1 个冲突域(半双工);交换机工作在链路层,每端口独立冲突域(全双工),并能基于 MAC 表转发。
- 双工不匹配有什么现象? 表现为严重丢包、CRC 错误、传输速率极低,多因一端强制全双工而另一端协商为半双工。
七、要点速记
- MAC 地址:48 位 = OUI(24) + 序列号(24);广播 FF:FF:FF:FF:FF:FF;交换机学源转目的。
- 双工模式:半双工有冲突 → CSMA/CD;全双工无冲突 → 现代以太网标准形态。
- MTU:标准 1500;整帧上限 1518(VLAN 1522);超 MTU → IP 分片或 PMTUD;巨型帧常用 9000。
- CSMA/CD:先听后发、边发边听、冲突停发、随机重发;最小帧长 64 字节,重试 16 次放弃。
- 最小帧长的由来:争用期 × 速率 = 最小帧长,保证"发完之前能听到冲突"。