1. 以太网帧结构深度解析
以太网作为局域网中最主流的通信协议,其帧结构设计蕴含着丰富的工程智慧。Ethernet Ⅱ型帧(又称DIX 2.0帧)是目前应用最广泛的以太网帧格式,让我们拆解它的每个组成部分:
1.1 物理层同步机制
前导码(Preamble)和帧开始定界符(SFD)这对"黄金搭档"承担着重要的物理层同步功能:
- 7字节前导码:固定模式0xAA(二进制10101010),实际传输时由于低位先发变为0x55
- 1字节SFD:固定模式0xAB(二进制10101011),传输时为0xD5
这个设计源于早期以太网的曼彻斯特编码需求。8字节的交替信号能让接收端完成:
- 时钟同步 - 通过规律跳变建立比特同步
- 增益调整 - 自动增益控制电路稳定信号幅度
- 载波侦听 - 检测信道是否被占用
实际抓包时这些字段通常被网卡过滤,这就是为什么Wireshark看不到前导码的原因
1.2 MAC地址字段解析
MAC地址字段采用6字节(48位)格式,包含三个关键信息:
plaintext复制| 字节位置 | 含义说明 |
|----------|----------------------------|
| 0-2 | OUI(厂商识别码) |
| 3-5 | 设备唯一标识(由厂商分配) |
特殊MAC地址需特别注意:
- 广播地址:FF:FF:FF:FF:FF:FF
- 组播地址:第0字节最低位为1(如01:00:5E开头的IPv4组播)
1.3 类型/长度字段的双重身份
以太网帧中的2字节字段存在语义歧义:
- 当值≤1500时:表示后续数据长度(IEEE 802.3标准)
- 当值≥1536时:表示上层协议类型(Ethernet II标准)
常见协议类型值:
- 0x0800:IPv4
- 0x0806:ARP
- 0x86DD:IPv6
1.4 数据载荷与MTU限制
标准规定的46-1500字节数据区对应着著名的MTU值:
- 最小64字节:确保冲突检测(CSMA/CD)正常工作
- 14字节头部 + 4字节FCS + 46字节数据
- *最大1518字节
