

Ethernet 以太网 一、概述 以太网 是一种广泛应用于局域网(LAN)的计算机通信技术,由 IEEE 802.3 标准定义。它规定了有线网络中设备如何通过物理介质(如双绞线、光纤)进行数据帧的传输。以太网因其成本低、速度快、可靠性高、易于扩展等优点,成为当今最主流的局域网技术。 有线网络 ≠ 以太网 虽然以太网在有线网络中占绝对主导地位,但"有线网络"并不等同于"以太网"。还有其他不遵循 IEEE 802.3 标准的有线传输技术: 技术 典型用途 与以太网的关系 PPP / HDLC 传统拨号上网、专线 WAN 完全不同的协议族 SDH / SONET 电信骨干光传输网 物理层不同,可承载以太网帧 InfiniBand 超算/数据中心高速互联 独立标准,不兼容以太网 光纤通道(FC) 存储区域网络(SAN) 专为存储设计,非以太网 CAN 总线 汽车电子、工业控制 短帧、实时、非以太网 RS-232 / RS-485 串口通信、工业设备 点对点串行,非以太网 USB / Thunderbolt 外设连接 完全不同的协议栈 简单来说:以太网是"有线局域网"的绝对主流,但不是有线网络的全部。 家庭宽带、公司办公网大概率是以太网;但电信机房、超算中心、汽车内部、工业现场则可能运行着其他有线技术。 二、以太网与 OSI 模型 以太网主要工作在 OSI 模型 的 物理层 和 数据链路层: +----------------------------+ | 应用层 | | 表示层 | | 会话层 | | 传输层 | ← TCP/UDP | 网络层 | ← IP | 数据链路层 | ← Ethernet(MAC + LLC) | 物理层 | ← 双绞线、光纤、编码 +----------------------------+ 数据链路层 分为两个子层: MAC(介质访问控制):负责寻址、帧封装、错误检测。 LLC(逻辑链路控制):提供与上层协议的接口(IEEE 802.2)。 整篇笔记将沿着 物理层 → 数据链路层 → 上层协议 的顺序自底向上展开。 三、物理层 物理层定义了以太网的传输介质、信号编码方式和电气特性。 3.1 命名规则 以太网物理层标准通常以 速率 + 信号方式 + 介质类型 命名,如 10BASE-T。 部分 含义 速率 10、100、1000、10G、40G、100G 等(单位 Mbps 或 Gbps) BASE 基带传输 介质 T(双绞线)、F/LX/SX(光纤)、C(同轴电缆)、KX/KR(背板) 3.2 常见物理层标准 标准 速率 介质 最大距离 10BASE5 10 Mbps 粗同轴电缆 500 m 10BASE2 10 Mbps 细同轴电缆 185 m 10BASE-T 10 Mbps 3 类及以上双绞线(Cat 3+) 100 m 100BASE-TX 100 Mbps 5 类双绞线(Cat 5) 100 m 100BASE-FX 100 Mbps 多模光纤 2 km 1000BASE-T 1 Gbps 超五类及以上双绞线(Cat 5e+) 100 m 1000BASE-SX 1 Gbps 多模光纤(短波) 550 m 1000BASE-LX 1 Gbps 单模/多模光纤(长波) 5 km 10GBASE-T 10 Gbps 六类及以上双绞线(Cat 6a+) 100 m 10GBASE-SR 10 Gbps 多模光纤(短距) 300 m 10GBASE-LR 10 Gbps 单模光纤(长距) 10 km 40GBASE-SR4 40 Gbps 多模光纤(并行 4 通道) 150 m 100GBASE-LR4 100 Gbps 单模光纤(4 波分复用) 10 km 400GBASE-DR4 400 Gbps 单模光纤(并行 4 通道) 500 m 3.3 自动协商 设备自动协商最佳传输速率和双工模式(半双工/全双工)。 在 1000BASE-T 及以上 标准中为强制功能。 通过 FLP(快速链路脉冲) 交换能力信息。 3.4 PoE(以太网供电) 通过以太网线缆同时传输数据和电力。 标准: IEEE 802.3af(PoE):最大 15.4 W IEEE 802.3at(PoE+):最大 30 W IEEE 802.3bt(PoE++):最大 60 W(Type 3)、100 W(Type 4) 四、数据链路层——MAC 子层 4.1 MAC 的作用与存在的意义 MAC(Media Access Control,介质访问控制) 是数据链路层的下半部分,直接与物理层打交道。如果把网络通信比作物流系统,那么: 物理层 = 公路、卡车(负责运输比特流) MAC 子层 = 快递员的分发规则(决定包裹怎么打包、写地址、交给谁) 关于 LLC(逻辑链路控制) LLC 是 IEEE 802 标准中定义的数据链路层上半部分,理论上它负责一件事:告诉接收方的上层(网络层)当前收到的数据应该交给哪个协议处理(比如交给 IP 还是 ARP)。 但这其实不需要一个单独的子层——以太网通过一种更简单的方式解决了这个问题: 方式 怎么做 谁在用 Ethernet II(DIX 格式) 在 MAC 帧头中用 2 字节的 EtherType 字段直接写上协议号(如 0x0800 = IPv4) 几乎全部以太网设备 IEEE 802.3 + LLC MAC 帧头只写数据长度,额外用 LLC 头的 SAP 字段标识协议 极少见(如某些古老的 NetWare 网络) 所以 LLC 在以太网中几乎不存在于实际网络中,它更多出现在 802.11(Wi-Fi)和 802.15.4(Zigbee)等无线协议中。后面的帧结构部分会详细展示 Ethernet II 是如何用 EtherType 直接标识上层协议的。 MAC 的核心职责 职责 说明 帧封装与解封装 将上层数据包(IP 包)封装为以太网帧,添加头部和尾部;接收时再从帧中提取数据包 寻址 在帧头中写入源和目的 MAC 地址,让接收方能识别发送方和接收方 介质访问控制 在半双工模式下通过 CSMA/CD 协调多个设备共享链路;在全双工模式下无需此功能 错误检测 在帧尾部添加 FCS(CRC-32 校验码),接收方校验帧是否在传输中损坏 数据填充 当上层数据过短时,填充到最小帧长(46 字节数据 / 64 字节帧) 为什么需要 MAC 层? 早期的局域网中,多个设备共享同一根线缆(总线型拓扑)。如果没有一个统一的规则来管理"谁在什么时候可以发送数据",就会发生混乱——就像一群人没有主持人就同时发言,谁也听不清。 MAC 层解决了三个根本问题: "谁是发件人?" — 每个设备有一个唯一的 MAC 地址作为身份标识。 "谁可以发?" — 通过 CSMA/CD 或全双工机制协调介质访问。 "发对了没有?" — 通过 FCS 校验检测传输错误,损坏的帧直接丢弃。 即使在全双工交换网络中不再需要 CSMA/CD,MAC 层的寻址、帧封装和错误检测功能仍然不可或缺——它是以太网能够正确工作的基石。 MAC 在数据链路层中的位置 +---------------------------+ | 网络层 (IP) | +---------------------------+ | 数据链路层 | | ├── LLC(逻辑链路控制) | ← 与上层接口 | └── MAC(介质访问控制) | ← 与物理层接口 +---------------------------+ | 物理层 (双绞线/光纤) | +---------------------------+ 4.2 MAC 地址 长度:48 位(6 字节),通常表示为 12 个十六进制数,如 00:1A:2B:3C:4D:5E。 结构: +---------------------+------------------------------+ | OUI (24 bits) | NIC 特定 (24 bits) | | 厂商唯一标识符 | 接口唯一编号 | +---------------------+------------------------------+ 第 1 字节最低位(I/G 位):0 表示单播,1 表示组播。 第 1 字节次低位(G/L 位):0 表示全局唯一,1 表示本地管理。 特殊 MAC 地址: FF:FF:FF:FF:FF:FF — 广播地址,发送给所有设备。 01:80:C2:00:00:00 — STP(生成树协议) 组播地址(后续讲解)。 4.3 MAC 操作模式 模式 说明 单播 帧发送给单个目标设备 组播 帧发送给一组设备(如 IPTV) 广播 帧发送给所有设备(如 ARP 请求) 五、以太网帧结构 以太网帧是数据链路层的数据单元,其标准格式如下: 5.1 IEEE 802.3 帧格式 +----------------+----------+----------+----------+----------+--------+----------------+ | 前导码 (7B) | SFD (1B) | 目的MAC | 源MAC | 长度/类型 | 数据 | 帧校验序列 FCS | | (101010...1010) | 10101011 | (6B) | (6B) | (2B) | (46-1500B)| (4B) | +----------------+----------+----------+----------+----------+--------+----------------+ 字段 长度 说明 前导码 7 字节 用于同步接收方的时钟,内容为交替的 1 和 0 帧起始定界符(SFD) 1 字节 标记帧的开始,固定为 10101011 目的 MAC 地址 6 字节 接收方的 MAC 地址 源 MAC 地址 6 字节 发送方的 MAC 地址 长度/类型 2 字节 若值 ≤ 1500 表示数据长度;若值 ≥ 1536 表示上层协议类型(如 0x0800 为 IPv4,0x0806 为 ARP) 数据 46~1500 字节 上层协议数据包,不足 46 字节需填充 帧校验序列(FCS) 4 字节 使用 CRC-32 校验整个帧的完整性 为什么以太网需要前导码来同步时钟? 以太网没有独立的时钟线(不像 SPI、I2C 等有专门的 CLK 信号线)。它采用时钟数据恢复(CDR) 技术——接收方必须从数据信号本身提取时钟信息。 前导码提供了一串已知的交替 101010... 序列,让接收方的 PLL(锁相环) 在真正的数据到达之前,先锁定发送方的时钟频率和相位,确保后续的每一位都能在正确的时刻被采样。这类似于两人通话前先说"喂喂喂"来确认语速和音调。 不同的以太网标准使用不同的线路编码来嵌入时钟: 10BASE-T:曼彻斯特编码(每个 bit 中间有跳变,自带时钟) 100BASE-TX:MLT-3 + 4B/5B 编码 1000BASE-T:PAM-5 编码(4 对线同时传输) 5.2 帧间间隔(IFG) 两个以太网帧之间至少需要 96 bit 时间 的空闲间隔,用于帧的分离和接收方恢复。 5.3 最小帧长与最大帧长 最小帧长:64 字节(从目的 MAC 到 FCS)。 最大帧长:1518 字节(标准),巨型帧 可达 9000 字节以上(用于数据中心)。 现代以太网还需要最小帧长吗? 最小帧长 64 字节最初是为了 CSMA/CD 碰撞检测 而设计的: 在半双工模式下,发送方必须在发送完毕前就能感知到碰撞,这就要求帧的传输时间 ≥ 2 倍的最大传播延迟(即信号走完整个网络来回的时间)。对于 10 Mbps、最大距离 2500 m 的经典以太网,算下来最小帧正好是 64 字节。 然而,现代交换式全双工以太网已经不存在碰撞了,那 64 字节还有必要吗? 向后兼容:IEEE 802.3 标准一直保留此约束,确保新旧设备能互操作。 帧合法性判定:小于 64 字节的帧被视为 碎片(Runt Frame),接收方直接丢弃——这有助于区分有效帧和噪声或异常短帧。 硬件一致性:交换机和网卡的缓冲区、DMA 引擎等都按至少 64 字节设计,改动的成本极高。 纯全双工环境:在纯交换网络中,理论上可以发送更短的帧,但实际很少有设备支持此非标准行为。 简单来说:最小帧长在现代网络中不再是碰撞检测的需要,而更多是 协议遗产和工程惯例。 六、工作原理 6.1 CSMA/CD(半双工模式) 载波监听(Carrier Sense):设备在发送数据前先检测信道是否空闲。 多路访问(Multiple Access):多个设备共享同一传输介质。 碰撞检测(Collision Detection):如果两个设备同时发送,检测到碰撞后发送 阻塞信号,然后随机等待一段时间(退避算法)再重试。 6.2 全双工模式(现代以太网) 使用交换机和点对点连接,每个设备独占一条链路。 不需要 CSMA/CD,可以同时发送和接收数据。 理论吞吐量翻倍,消除了碰撞。 CSMA/CD 是以太网历史中最重要的协议机制之一,虽然现代交换网络已将其淘汰,但理解它有助于明白最小帧长、退避算法等以太网设计的来龙去脉。 七、以太网交换机 7.1 什么是交换机? 交换机 是一种工作在 数据链路层(L2) 的网络设备,它根据 MAC 地址 将数据帧从一个端口转发到另一个特定端口。可以把它理解为一个智能的"分发中心"——它知道每个设备连接在哪个端口上,因此只把数据发给目标设备,而不是全网广播。 要理解交换机为什么能实现点对点连接,先对比一下两种早期设备: 集线器——共享介质 设备A ────┐ 设备B ────┼──── 集线器 HUB 设备C ────┤ (所有端口共享内部总线) 设备D ────┘ 集线器 是物理层设备,所有端口共享同一根总线(内部总线)。 数据从 A 发送到 D 时,集线器会把信号复制到所有端口——B 和 C 也会收到这个帧。 同一时刻只能有一个设备发送,否则会发生碰撞(因此需要 CSMA/CD)。 所有设备处于同一个冲突域,本质上还是总线型网络,只是物理上看起来像星型。 交换机——点对点连接 设备A ──── 端口1 ─┐ 设备B ──── 端口2 ─┼── 交换机 SWITCH 设备C ──── 端口3 ─┤ (每个端口独立交换通道) 设备D ──── 端口4 ─┘ 交换机 是数据链路层设备,每个端口内部有独立的 MAC 地址表和数据缓冲区。 数据从 A 发送到 D 时,交换机根据 MAC 地址表,只把帧从 D 所在端口发出,B 和 C 完全不受影响。 不同端口对可以同时通信(如 A↔D 同时 B↔C),互不干扰。 每个端口是一个独立的冲突域,连接在端口上的设备独占该链路。 为什么交换机实现了"点对点"? 对比项 集线器 交换机 工作层级 物理层(L1) 数据链路层(L2) 转发方式 广播到所有端口 根据 MAC 地址定向转发 冲突域 所有端口共享一个冲突域 每个端口独立冲突域 同时通信 仅允许一对设备通信 多对设备可同时通信 是否需要 CSMA/CD 是 不需要(全双工) 链路占用 共享链路,轮流使用 独占链路,点对点 关键点在于:交换机将每个端口背后的链路变成了一个独立的、专用的通道。当设备 A 连接到交换机端口 1、设备 D 连接到端口 4 时,端口 1 和端口 4 之间的链路是 A 和 D 独享的,不会有第三方设备介入。这就是"点对点连接"的含义——每台设备与交换机之间都是独占链路的点对点关系。 7.2 交换机的工作原理 学习:交换机记录每个端口接收到的帧的源 MAC 地址,建立 MAC 地址表。 转发:根据目的 MAC 地址查找地址表,将帧从对应端口转发。 泛洪:如果目的 MAC 未知,则向除接收端口外的所有端口广播(泛洪)。 过滤:如果目的 MAC 在同一个端口上,则丢弃帧(不转发)。 两个常见疑问 Q1:交换机不是会学习吗,为什么还会"未知"? 交换机的 MAC 地址表不是生来就全知全能的。初始时表是空的,每收到一个帧才学到一条记录。当设备 A 第一次向设备 B 发送数据时,交换机知道 A 在哪个端口(因为收到了 A 的帧),但还不知道 B 在哪——所以只能先泛洪。另外,MAC 地址表有老化时间(通常 300 秒),如果 B 长时间不说话,它的记录会被删除,下次发往 B 的帧又变成"未知"了。 Q2:什么情况下目的 MAC 会和源 MAC 在同一个端口上? 最常见的是集线器级联到交换机端口的场景:假设端口 1 接了一个集线器,集线器上连着设备 A 和 B。A 给 B 发帧,交换机在端口 1 收到这个帧,查表发现 B 的 MAC 也在端口 1(之前从 B→A 的帧学到的),于是交换机判断"这个帧不需要我转发,已经在同一段链路上了",直接丢弃(过滤)。同理,如果端口 1 后面还级联了另一台交换机,也属于这种情况。 7.3 交换方式 方式 说明 延迟 错误校验 存储转发 接收完整帧后校验 FCS,再转发 高 是 直通转发 读取目的 MAC 后立即转发 低 否 无碎片转发 读取前 64 字节后转发,避免碎片 中 部分 7.4 VLAN(虚拟局域网) 通过交换机将物理网络划分为多个逻辑网络。 基于 802.1Q 标签,在帧头中插入 4 字节的 VLAN 标记。 作用:隔离广播域、提高安全性、简化管理。 7.5 STP(生成树协议) 冗余链路就是"备用线路"。为了防止单条线路故障导致网络瘫痪,通常会部署多条物理线路连接交换机。例如交换机 A 和 B 之间拉了两根网线, 主链路正常时,冗余链路是"闲置"的;主链路断了,冗余链路才顶上。这提高了可靠性,但也带来了问题——环路。 环路会导致三种灾难: 广播风暴:广播帧在环路中无限循环,瞬间占满带宽。 MAC 地址表抖动:交换机从一个端口学到 MAC 后又从另一端口收到同一源地址,反复翻转。 重复帧:目标设备收到同一帧的多个副本。 STP(Spanning Tree Protocol,生成树协议,IEEE 802.1D) 的作用就是逻辑上阻断冗余链路,让交换网络在物理上有环路、逻辑上无环路。它通过 BPDU(桥接协议数据单元)交换信息,选举根桥,计算最短路径,自动阻塞多余的端口。当某条链路故障时,STP 会重新计算,解除阻塞,恢复连通。 简单来说:STP 就是交换网络的"红绿灯系统"——物理上有多条路,但 STP 只让一条路通行,其余作为备用,路坏时自动切换。 7.6 以太网的拓扑结构 拓扑 说明 历史时期 总线型 所有设备共享一条同轴电缆,易发生碰撞 早期以太网(10BASE5/2) 星型 所有设备连接到中心交换机,点对点连接 现代以太网(10BASE-T 起) 树型 多级交换机级联,形成分层网络 大型局域网 环形 极少用于以太网(工业以太网偶尔使用) 特殊场景 八、常用上层协议 以太网帧中的 长度/类型 字段(即 EtherType)的作用就是:告诉接收方,帧的数据部分应该交给哪个协议来处理。 常见的 EtherType 值如下: EtherType 协议 所属层级 说明 0x0800 IPv4 网络层(L3) 互联网协议第四版 0x0806 ARP L2.5(介于 L2 与 L3 之间) 地址解析协议,将 IP 地址解析为 MAC 地址 0x86DD IPv6 网络层(L3) 互联网协议第六版 0x8100 VLAN (802.1Q) 数据链路层(L2) VLAN 标签协议 0x8863 / 0x8864 PPPoE 数据链路层(L2) 以太网上的点对点协议 0x888E EAPoL 数据链路层(L2) 局域网上的可扩展认证协议(802.1X) 特殊 BPDU STP (802.1D) 数据链路层(L2) 生成树协议,防止环路 注意:这些协议并非都是网络层协议。IPv4/IPv6 才是网络层(L3)的,ARP 介于 L2 与 L3 之间,而 VLAN、PPPoE、EAPoL、STP 都属于数据链路层(L2)。EtherType 只负责标识"帧里装的是什么",至于它属于哪一层,由协议本身决定。 九、IEEE 802 系列标准概览 以太网(802.3)只是 IEEE 802 标准家族中的一员。IEEE 802 委员会负责定义局域网(LAN)和城域网(MAN)的物理层与数据链路层标准,下面是一些主要成员: 标准编号 常见名称 说明 IEEE 802.1 高层局域网协议 桥接、VLAN(802.1Q)、生成树(802.1D)、链路发现(LLDP)、时间敏感网络(TSN)等 IEEE 802.3 以太网 有线局域网标准,涵盖从 10 Mbps 到 400 Gbps+ 的各种物理层和 MAC 规范 IEEE 802.11 Wi-Fi 无线局域网标准,包括 a/b/g/n/ac/ax/be 等物理层和 MAC 规范 IEEE 802.15 无线个域网 包括蓝牙(802.15.1)、Zigbee(802.15.4)、UWB、Thread 等 IEEE 802.16 WiMAX 宽带无线接入标准,曾用于固定无线宽带 IEEE 802.19 无线共存 不同无线标准之间的共存 IEEE 802.21 媒体独立切换 异构网络之间的无缝切换 IEEE 802.22 无线区域网 利用电视白频谱的无线区域网络 以太网在 802 族中的定位 IEEE 802 标准体系 ├── 802.1 — 桥接、VLAN、STP、TSN 等(高层控制与管理) ├── 802.3 — 以太网(有线 LAN) ├── 802.11 — Wi-Fi(无线 LAN) ├── 802.15 — 蓝牙、Zigbee 等(无线个域网) ├── 802.16 — WiMAX(宽带无线接入) └── 其他(802.19、802.21、802.22 等) 十、工业以太网 工业环境对实时性和可靠性要求更高,出现了多种基于以太网的工业协议: 协议 特点 EtherCAT 从站硬件处理帧,极低延迟,适合运动控制 PROFINET 支持实时(RT)和等时实时(IRT) EtherNet/IP 基于 TCP/IP,CIP 协议 Modbus TCP 简单易用,广泛用于 SCADA 和工业自动化 十一、优缺点 优点 成本低廉:硬件成熟,大规模生产,价格低。 速率高:从 10 Mbps 到 400 Gbps,持续演进。 易于扩展:通过交换机级联轻松扩展网络规模。 向后兼容:新标准通常兼容旧设备。 标准化程度高:IEEE 802.3 全球统一标准,互操作性强。 缺点 距离受限:双绞线理论最大 100 m(可使用光纤或中继器扩展)。 安全性一般:原生不支持加密(需上层协议如 IPsec、TLS 等)。 实时性有限:非确定性网络,不适合硬实时控制(工业以太网如 EtherCAT 为改进方案)。 广播风暴风险:大量广播帧可能导致网络拥塞(通过 VLAN 和 STP 缓解)。 十二、总结 一句话概括: 以太网(IEEE 802.3)是当今最主流的有线局域网技术,它通过 MAC 地址寻址 和 CSMA/CD(已淘汰)/全双工 机制,在物理介质(双绞线、光纤)上封装和传输数据帧。 # 要点 一句话说明 1 标准 IEEE 802.3,定义了物理层和数据链路层的规范 2 帧结构 前导码 → SFD → 目的MAC → 源MAC → 长度/类型(EtherType) → 数据(46~1500B) → FCS 3 MAC 地址 48 位全球唯一标识,交换机的转发依据 4 交换机和集线器 交换机基于 MAC 表定向转发,实现点对点全双工,消除碰撞 5 工作模式演变 半双工 CSMA/CD(需最小帧长 64B)→ 全双工交换网络(无碰撞) 区分易混淆概念: 以太网 ≠ 有线网络 — 除了以太网还有 PPP、CAN、InfiniBand 等 以太网 ≠ 互联网 — 互联网是 TCP/IP 协议族,以太网只是其底层承载之一