深入链路层:报文 MAC 传输原理与 ARP 欺骗、中间人攻击全解析

深入数据链路层------核心作用以及报文字段详解

数据链路层在TCP/IP协议中扮演的角色

在 TCP/IP 四层模型中,数据链路层位于网络层之下、物理层之上 ,是主机与局域网通信的核心桥梁,它屏蔽了底层物理介质的差异,为网络层提供点到点的可靠 / 无可靠传输服务

它的核心定位可以概括为三点:

  1. 帧封装与解封装 把网络层传下来的 IP 数据包,加上帧头、帧尾封装成数据帧,交给物理层发送;接收时则剥离帧头帧尾,取出 IP 数据包上交网络层。

  2. 相邻节点间的数据传输 数据链路层只负责同一广播域内两个直连设备之间的数据传输,不关心跨网段路由,只关心 "下一跳是谁"。

  3. MAC 寻址与硬件标识 使用 MAC 地址 标识网卡设备,实现局域网内的精准寻址,这也是它与网络层 IP 地址的最大区别。

  4. 差错检测与流量控制通过校验和、CRC 等机制检测传输错误,部分协议还支持重传、滑动窗口等机制保证传输可靠性(如以太网只检错不纠错)。

简单总结:网络层负责 "去哪"(IP 寻址),数据链路层负责 "怎么去下一站"(MAC 寻址 + 帧传输)。

并且需要强调:数据帧的传输必须倚靠MAC地址,IP只是规划了整体路线,真正的数据帧传输必须要MAC地址定位。

数据链路层报文字段详解

我们以目前局域网最通用的 Ethernet II 以太网帧格式为例

字段 长度 作用
前导码 + 帧起始定界符 8B 用于同步时钟,标识帧开始
目的 MAC 地址 6B 接收方网卡的硬件地址
源 MAC 地址 6B 发送方网卡的硬件地址
类型 / 长度 2B 标识上层协议(0x0800=IPv4,0x0806=ARP)
数据字段 46~1500B 承载上层 IP 包或 ARP 报文
帧校验序列 FCS 4B CRC 校验,用于检测传输错误

重点字段说明:

  • MAC 地址 :全球唯一硬件地址,格式 XX:XX:XX:XX:XX:XX,标识物理设备。
  • 类型字段:决定帧交给上层哪个协议处理,是二层与三层解耦的关键。
  • FCS:接收方通过校验判断帧是否损坏,损坏则直接丢弃。

以太网帧特点:

  • 无连接、不可靠传输
  • 只做差错检测,不负责重传
  • 最大传输单元 MTU 通常为 1500 字节

从应用层到硬件层------网络传输的完整流程

当主机 A(客户端)想要与主机 B(服务器)通信时,数据会自上而下穿过所有协议层,再通过物理网络传输到目标主机,最后自下而上递交到应用程序。整个过程可以分为封装发送、网络转发、解封装接收三个阶段。

1. 应用层构建数据

用户在浏览器、APP 等应用中发起请求,应用层按照 HTTP、HTTPS、DNS 等协议构造应用数据。这一层只关心 "内容是什么",不关心如何传输。

2. 传输层分段与端口标识

应用数据交给传输层,由 TCP 或 UDP 处理:

  • 为数据加上源端口、目的端口,标识进程;
  • TCP 会进行分段、序号、确认、握手等可靠传输控制;
  • 传输层只关心 "端到端连接",不关心具体路径。

3. 网络层封装 IP 包,确定路由与下一跳

传输层段交给网络层,封装为 IP 数据报

  • 加上源 IP、目的 IP
  • 主机 A 首先判断:目的 IP 是否与自己在同一子网
    • 同一子网:直接访问,下一跳就是目标主机;
    • 不同子网(包括访问外网):下一跳是默认网关

这一步就是:IP 地址规划整体路线,确定 "下一跳交给谁"。

4. 数据链路层封装成帧,依赖 MAC 地址传输

无论下一跳是目标主机还是网关,都必须封装成以太网帧才能真正发送:

  • 加上源 MAC 地址(本机网卡地址);
  • 加上下一跳MAC地址(留疑问:如何知道?);

5. 物理层发送比特流

网卡将帧转为电信号 / 光信号,通过网线、Wi-Fi 等物理介质发送比特流,完成真正的硬件级传输。

ARP协议------只有目标IP地址,如何得知目标MAC地址?

在局域网通信中,最终必须使用 MAC 地址才能发送数据帧 。但应用层和网络层只知道目标 IP,不知道对方 MAC,这时就需要 ARP(Address Resolution Protocol,地址解析协议)ARP协议位于数据链路层,但是ARP 并不严格属于纯数据链路层,而是位于数据链路层之上、IP 网络层之下的 "夹层协议"。

  • 使用以太网帧 进行封装,依赖 MAC 地址广播传输,所以行为上非常像数据链路层
  • 但它的作用是为 IP 协议服务,完成 IP 地址到 MAC 地址的映射,又和网络层强相关。
  • 这里不属于同一层的概念也呼应数据链路层报头字段中的类型字段:若为0x8806就上交给ARP处理。

1. ARP 核心功能

通过目标 IP 地址,查询对应的 MAC 地址。

2.ARP报文格式

字段 长度 作用
硬件类型 2B 标识硬件接口类型(1 = 以太网)
协议类型 2B 标识上层协议(0x0800=IPv4)
硬件地址长度 1B MAC 地址长度(6B)
协议地址长度 1B IP 地址长度(4B)
操作类型 2B 1=ARP 请求,2=ARP 应答
发送方 MAC 地址 6B 发送方网卡地址
发送方 IP 地址 4B 发送方 IP 地址
目标方 MAC 地址 6B 请求时填 00:00:00:00:00:00,应答时填目标 MAC
目标方 IP 地址 4B 要解析的目标 IP 地址

3. ARP 工作流程

  1. 主机 A 想要与主机 B(已知 IP)通信,但 A 的 ARP 缓存中无 B 的 MAC。
  2. 主机 A 发送 ARP 请求广播帧
    • 目的 MAC:FF:FF:FF:FF:FF:FF(全网广播)
    • 内容:"谁是 IP 为 192.168.1.10 的主机?请告诉我你的 MAC!"
  3. 局域网内所有主机都会收到该广播,但只有主机 B 会响应。
  4. 主机 B 回复 ARP 单播应答
    • 告知自己的 MAC 地址
  5. 主机 A 收到应答后,将 IP<->MAC 映射存入 ARP 缓存,后续直接使用。

4. 关键特点

  • ARP 是数据链路层协议,只在同一局域网内有效
  • 有缓存机制,减少重复广播
  • 跨网段通信时,ARP 解析的是网关 MAC,而非目标主机 MAC

5.如何查看本地ARP映射表

  • Windows 系统:
    • 查看 ARP 缓存:arp -a
    • 清理 ARP 缓存:arp -d *
  • Linux 系统:
    • 查看 ARP 缓存:arp -nip neigh
    • 清理 ARP 缓存:ip neigh flush all

子话题:ARP欺骗与中间人攻击原理

ARP欺骗

ARP 协议设计简单高效,但没有认证机制,任何人都可以伪造 ARP 报文,这就导致了安全漏洞。

原理

通过上文ARP的缓存机制,攻击者发送伪造的 ARP 响应包,强制更新网关或其他主机的 ARP 缓存,让它们把错误的 MAC 地址与某个 IP 绑定。

常见两种欺骗:

  • 欺骗主机:告诉受害主机 "网关的 MAC 是我"
  • 欺骗网关:告诉网关 "受害主机的 MAC 是我"

最终效果:受害主机的流量本应发给网关,结果全部发给了攻击者。

典型现象
  • 断网、网速异常
  • 网页被篡改、弹窗广告
  • 账号密码被嗅探

中间人攻击

ARP 欺骗是中间人攻击的最常用入口

攻击流程
  1. 攻击者通过 ARP 欺骗,同时欺骗受害主机网关
  2. 受害主机 → 攻击者 → 网关
  3. 网关 → 攻击者 → 受害主机
  4. 攻击者在中间转发流量 ,同时可以:
    • 抓包窃取账号密码(HTTP/FTP 等明文协议)
    • 篡改网页内容
    • 劫持下载、植入恶意代码
    • 屏蔽、丢弃流量实现断网
防御思路
  • 配置静态 ARP
  • 使用 ARP 防火墙
  • 开启端口安全
  • 局域网使用 802.1X 认证
  • 重要业务使用 HTTPS/TLS 加密,避免明文传输
相关推荐
用户03284722207013 分钟前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
小宇宙Zz3 天前
Maven依赖冲突
java·服务器·maven
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
网络研究院3 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest3 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化