【网络】7.数据链路层:MAC 帧与 ARP 协议详解

目录

[一、MAC 帧协议](#一、MAC 帧协议)

[1. 网络通信的三层结构](#1. 网络通信的三层结构)

[2. 以太网](#2. 以太网)

[3. MAC 帧报头结构](#3. MAC 帧报头结构)

[4. MTU 与 MSS](#4. MTU 与 MSS)

[二、ARP 协议(地址解析协议)](#二、ARP 协议(地址解析协议))

[1. 局域网内通信](#1. 局域网内通信)

[2. 数据碰撞](#2. 数据碰撞)

[3. ARP 协议的作用](#3. ARP 协议的作用)

[4. ARP 协议报头结构](#4. ARP 协议报头结构)

[5. ARP 请求的发送过程](#5. ARP 请求的发送过程)

[6. ARP 应答的返回过程](#6. ARP 应答的返回过程)

[7. ARP 缓存](#7. ARP 缓存)

[8. 通信过程中的 ARP](#8. 通信过程中的 ARP)


一、MAC 帧协议

1. 网络通信的三层结构

把数据从不同公网的主机 A 传到主机 B,本质是由不同局域网间的主机通信构成的。

层级 协议 作用
传输层 TCP 确保可靠性,处理丢包问题
网络层 IP 长距离传输,指明大概方向
数据链路层 MAC 帧 每个局域网内具体怎么传

2. 以太网

以太网不是具体的某个网络,而是一种标准(IEEE 802.3 系列)。

数据链路层的两个基本功能

  • 分离:通过固定长度的协议头,将报头和有效载荷分离

  • 分用:通过帧类型字段,将数据交给上层对应的协议

3. MAC 帧报头结构

text

复制代码
[ 目的MAC地址 ][ 源MAC地址 ][ 类型 ][ 数据 ][ CRC ]
   6字节         6字节       2字节  46-1500字节 4字节

字段说明

  • 目的 MAC 地址(6 字节):接收方的物理地址

  • 源 MAC 地址(6 字节):发送方的物理地址

  • 类型(2 字节):上层协议类型

    • 0x0800:IP 协议

    • 0x0806:ARP 协议

  • 数据(46-1500 字节):上层传下来的有效载荷

  • CRC(4 字节):循环冗余校验,检测数据是否损坏

MAC 地址

  • 用于数据链路层的节点识别

  • 出厂时设定,全球唯一(理论上)

4. MTU 与 MSS

MTU(最大传输单元)

  • 以太网规定数据帧的大小范围:46 ~ 1500 字节

  • 小于 46 字节需要填充

  • 大于 1500 字节需要分片

为什么要有下限 46 字节?

  • 以太网是共享介质,存在数据碰撞

  • 为了检测碰撞,帧需要足够长

  • 太短的帧可能无法检测到碰撞

MSS(最大分段大小)

  • MSS = MTU - IP 报头 - TCP 报头

  • 典型值:1500 - 20 - 20 = 1460 字节

  • 对于 UDP:1500 - 20 - 8 = 1472 字节

分片位置

  • 分片不一定只发生在主机中

  • MTU 较小的路由器也可能对数据报进行分片

  • 由于 IP 报头中有偏移量和标志位,无论怎么分片,最终都可以重组

TCP 的优化

  • TCP 三次握手时,双方会在选项字段中携带自己的 MSS 大小

  • 双方取较小的 MSS 作为发送上限

  • 这样 TCP 层就能控制向下传递的数据大小,减少 IP 层分片

  • 注意:IP 层不知道 MSS,它只是被动地执行分片任务;MSS 是 TCP 层的概念

二、ARP 协议(地址解析协议)

1. 局域网内通信

当局域网内的主机 A 要发送数据到主机 E 时:

  1. A 将数据发送给路由器

  2. 路由器向局域网广播

  3. B、C、D 等主机收到后自动丢弃

  4. E 主机接收并处理

2. 数据碰撞

  • 局域网是一个碰撞域,同一时刻只能有一个设备发送数据

  • 多个设备同时发送,会产生数据碰撞

  • 碰撞发生后,需要采用**重发、退避(休眠)**等机制恢复

帧大小的限制

  • 从碰撞角度考虑,单个主机占用网络的时间越短越好

  • 但帧太短可能无法检测到碰撞

  • 因此以太网规定了帧的上下限:46 ~ 1500 字节

3. ARP 协议的作用

问题:MAC 帧通信需要目标 MAC 地址,但第一次通信时不知道对方的 MAC 地址。

解决方案:ARP 协议

ARP 的作用:通过 IP 地址获取 MAC 地址

工作过程

  1. 主机知道目标 IP,但不知道目标 MAC

  2. 在局域网内广播一个 ARP 请求:"谁的 IP 是 x.x.x.x?请告诉我你的 MAC 地址"

  3. 目标主机收到后,单播回复 ARP 应答,告知自己的 MAC 地址

协议层次

  • ARP 协议和 MAC 帧协议都在数据链路层

  • 但 ARP 是 MAC 的上层协议

  • ARP 报文需要先被 MAC 帧封装,然后发送

4. ARP 协议报头结构

ARP 报头固定 28 字节

text

复制代码
[ 硬件类型 ][ 协议类型 ][ 硬件地址长度 ][ 协议地址长度 ][ OP ][ 发送方MAC ][ 发送方IP ][ 目标MAC ][ 目标IP ]
   2字节      2字节        1字节           1字节        2字节    6字节       4字节      6字节      4字节

字段说明

字段 长度 说明
硬件类型 2 字节 链路层网络类型,以太网为 1
协议类型 2 字节 上层协议类型,IP 协议为 0x0800
硬件地址长度 1 字节 MAC 地址长度,一般为 6
协议地址长度 1 字节 IP 地址长度,一般为 4
OP 2 字节 操作类型:1=ARP 请求,2=ARP 应答
发送方 MAC 6 字节 发送方的物理地址
发送方 IP 4 字节 发送方的 IP 地址
目标 MAC 6 字节 目标物理地址(请求时填 0)
目标 IP 4 字节 目标的 IP 地址

填充问题

  • MAC 帧协议 14 字节 + ARP 协议 28 字节 = 42 字节

  • 小于以太网规定的 46 字节下限

  • 因此会在数据后面补足随机数据,凑够 46 字节

5. ARP 请求的发送过程

发送 ARP 请求

  • OP 字段 = 1(请求)

  • 目标 MAC 地址填 FF:FF:FF:FF:FF:FF(广播地址)

  • 被 MAC 帧封装时,MAC 报头的目标地址也是 FF:FF:FF:FF:FF:FF

接收处理

  1. 局域网内所有主机都会收到这个 MAC 帧

  2. 网卡发现目标 MAC 是广播地址,向上传递给 ARP 协议

  3. ARP 协议解析报文:

    • 如果 OP = 1 且目标 IP 是自己 → 发送 ARP 应答

    • 如果目标 IP 不是自己 → 直接丢弃

6. ARP 应答的返回过程

发送 ARP 应答

  • OP 字段 = 2(应答)

  • 目标 MAC 地址填写请求方的 MAC(已经从请求报文中获得)

  • 被 MAC 帧封装时,MAC 报头的目标地址就是请求方的 MAC

接收处理

  1. 只有请求方主机会收到这个 MAC 帧(其他主机在 MAC 层就会丢弃)

  2. 请求方解析 ARP 报文,获得目标主机的 MAC 地址

广播与应答的区别

  • 请求时:MAC 层广播,所有主机都收到,ARP 层判断是否是自己

  • 应答时:MAC 层单播,只有目标主机收到,ARP 层直接处理

7. ARP 缓存

为了提高效率,主机会维护一个 ARP 缓存表,记录最近通信过的 IP 地址与 MAC 地址的映射关系。

为什么不永久保存?

  • MAC 设备可能更换(网卡坏了换新网卡)

  • IP 地址是动态分配的(DHCP),可能变化

  • 因此缓存会设置过期时间(通常是几分钟到几十分钟)

查看 ARP 缓存:

复制代码
arp -a

8. 通信过程中的 ARP

ARP 不仅发生在主机和路由器之间,在路由器与路由器之间也会触发。

在整个通信过程中,ARP 会一直触发:

  • 每经过一个路由器,都需要知道下一跳的 MAC 地址

  • 因此 ARP 是网络通信的基础机制

相关推荐
网络研究院1 小时前
LastPass 发布紧急安全预警:针对主密码的活跃网络钓鱼攻击正在进行中
网络·安全·黑客·攻击·漏洞·风险·钓鱼
向夏威夷 梦断明暄3 小时前
【高效管理token成本】OpenClaw精细化分库管理memory以减少token成本的方案的可行性研究
网络
aixingkong9216 小时前
AI超节点Scale Up域总线各层优化设计
linux·服务器·网络
瓦学妹9 小时前
为什么您的AI总是显示“不支持的区域”?如何解决?
大数据·网络·人工智能
优化Henry9 小时前
5G站点软件错误告警与资源激活超时两类典型告警分析与处理
网络·笔记·学习·5g·信息与通信
coward919 小时前
千兆以太网卡(Ethernet)驱动初始化完成,但是无法udhcpc获取ip
服务器·网络·嵌入式硬件·tcp/ip
逸Y 仙X10 小时前
跨语言RPC框架Thrift实战
网络·网络协议·rpc·thrift
软件技术员11 小时前
SSL.com 证书:免费单域名 90 天证书
网络·网络协议·ssl
腾霄星月11 小时前
内网横向移动全套实操重点知识总结
网络·安全·网络安全
茉莉玫瑰花茶11 小时前
IP 分片和组装的具体过程
服务器·网络·tcp/ip