网络接口层基础:以太网帧结构、MAC地址与ARP协议
网络接口层是TCP/IP四层模型中最底层的一层,它直接面对物理传输介质,负责将上层(网络层)交付的IP数据报封装成能够在链路上传输的帧,并完成差错检测、介质访问控制等任务。理解这一层,关键在于掌握三个核心概念:以太网帧的封装格式、MAC地址的寻址机制,以及ARP协议如何将IP地址解析为MAC地址。这三者构成了局域网通信的基础逻辑。
2.1 以太网帧结构:数据链路层的“信封”
以太网是目前应用最广泛的局域网技术。当IP数据报需要发送时,网络接口层会为其添加帧头和帧尾,形成完整的以太网帧。一个标准的以太网帧(DIX Ethernet II格式)结构如下:
| 字段 | 长度(字节) | 作用说明 |
|---|---|---|
| 前导码(Preamble) | 7 | 同步时钟,用于收发双方时钟对齐 |
| 帧起始定界符(SFD) | 1 | 标志帧的开始 |
| 目的MAC地址 | 6 | 接收方网卡的物理地址 |
| 源MAC地址 | 6 | 发送方网卡的物理地址 |
| 类型/长度(Type/Len) | 2 | 0x0800表示IPv4,0x0806表示ARP |
| 数据(Payload) | 46~1500 | 上层协议数据(如IP数据报) |
| 帧校验序列(FCS) | 4 | CRC校验,检测传输错误 |
帧的最小长度为64字节(不含前导码),如果上层数据不足46字节,则需填充(Padding)。最大帧长为1518字节,这被称为MTU(最大传输单元),超过该值的数据包会被分片。
2.2 MAC地址:网卡的“身份证”
MAC地址(Media Access Control Address)是烧录在网卡ROM中的48位物理地址,通常表示为12位十六进制数,如 AA:BB:CC:00:11:22。前24位(OUI)由IEEE分配给厂商,后24位由厂商自行分配,理论上全球唯一。
MAC地址具有以下重要特性:
- 固化于硬件:出厂时写入,一般不可更改(部分网卡支持软件修改)。
- 工作在数据链路层:用于同一局域网内的设备寻址,不跨路由传播。
- 三种类型:单播地址(第1字节最低位为0)、组播地址(最低位为1)、广播地址(全1,即
FF:FF:FF:FF:FF:FF)。
2.3 ARP协议:IP地址到MAC地址的“翻译官”
网络层使用IP地址进行逻辑寻址,但实际数据在链路上传输时,必须依赖MAC地址完成物理交付。ARP(Address Resolution Protocol,地址解析协议)正是解决这一矛盾的桥梁。其核心功能是:根据已知的目的IP地址,解析出对应的MAC地址。
ARP协议的工作流程可以概括为以下四个步骤:
- 查询ARP缓存:发送方首先检查本机ARP缓存表,若存在目的IP对应的MAC条目,则直接使用,无需发送广播。
- 发送ARP请求:若缓存未命中,主机在局域网内广播一个ARP请求报文,内容为“谁是IP地址X?请将你的MAC地址告诉发送者”。
- 目标主机应答:只有IP地址匹配的主机才会响应,向请求方单播发送ARP应答报文,包含自己的MAC地址。
- 更新缓存并通信:请求方收到应答后,将IP-MAC映射写入ARP缓存(通常保留几分钟),随后即可封装以太网帧发送数据。
2.4 案例与场景:一次典型的局域网通信
假设主机A(192.168.1.10)首次向主机B(192.168.1.20)发送数据。此时A的ARP缓存为空,通信过程如下:
# 主机A的ARP缓存初始状态(Linux中查看)
$ ip neigh show
# 输出为空,表示无任何邻居条目
# 主机A发送ARP请求(广播帧)
# 目的MAC = FF:FF:FF:FF:FF:FF
# 请求内容:Who has 192.168.1.20? Tell 192.168.1.10
# 主机B收到请求后,回复ARP应答(单播帧)
# 目的MAC = AA:BB:CC:00:11:22(主机A的MAC)
# 应答内容:192.168.1.20 is at CC:DD:EE:00:33:44
# 主机A收到应答,更新ARP缓存
$ ip neigh show
192.168.1.20 dev eth0 lladdr cc:dd:ee:00:33:44 REACHABLE
此后,主机A向B发送的所有数据帧,目的MAC地址都直接填写 CC:DD:EE:00:33:44,不再触发ARP广播。当缓存条目老化(通常2~5分钟)后,若再次通信,则重新执行ARP解析。
2.5 误区与复盘:ARP协议的安全隐患
ARP协议设计之初未考虑安全性,导致其成为局域网攻击的常见目标。以下是最典型的两个问题:
复盘一个典型的ARP欺骗攻击过程:
- 攻击前提:攻击者与目标主机处于同一广播域(同一交换机或无线网络)。
- 攻击步骤:攻击者持续发送伪造ARP应答,将网关IP(如192.168.1.1)映射到自己的MAC地址。
- 攻击后果:目标主机发往互联网的所有数据包先到达攻击者,攻击者嗅探或篡改后再转发给真实网关,用户毫无感知。
- 防御手段:在交换机上配置动态ARP检测(DAI)、使用静态ARP表项、部署IPSec加密通信等。
arp -a(Windows)或 ip neigh show(Linux)查看缓存,重点检查网关IP对应的MAC地址是否为真实网关的MAC。若发现多个IP对应同一MAC,或网关MAC频繁变化,则极有可能遭受ARP攻击。
理解以太网帧结构、MAC地址和ARP协议,是掌握网络接口层的关键。帧结构定义了数据封装的标准格式,MAC地址提供了物理寻址的基础,而ARP协议则打通了IP逻辑地址与MAC物理地址之间的转换通道。三者协同工作,才使得局域网内的数据通信能够高效、有序地进行。