跳到主要内容

ARP 与 ICMP

在网络层中,除了核心的 IP 协议外,还有两个至关重要的辅助协议:ARP(地址解析协议)和 ICMP(互联网控制消息协议)。

ARP (Address Resolution Protocol)

什么是 ARP?

IP 地址用于在逻辑上标识网络中的设备,但在局域网(以太网)中,实际的数据传输需要依靠 MAC 地址(物理地址)。ARP 的作用就是:将 IP 地址解析为对应的 MAC 地址

工作流程

  1. 请求 (ARP Request): 当主机 A 想要发送数据给同局域网的主机 B,但只知道 B 的 IP 地址时,它会发送一个以太网广播包,询问:“谁拥有这个 IP 地址?请告诉我你的 MAC 地址。”
  2. 响应 (ARP Reply): 主机 B 收到广播后,发现 IP 匹配,会向主机 A 发送单播包,告知自己的 MAC 地址。
  3. 缓存 (ARP Cache): 主机 A 收到响应后,会将 IP 和 MAC 的映射关系存入自己的 ARP 缓存表中,以便下次直接使用。

代理 ARP 与 动态 ARP 检测 (DAI)

  • 代理 ARP: 允许路由器为不在同一网段的主机代答 ARP 请求。
  • ARP 攻击 (ARP Spoofing): 攻击者伪造 ARP 响应,告诉受害者自己就是网关,从而截获流量。

ICMP (Internet Control Message Protocol)

什么是 ICMP?

ICMP 用于在 IP 主机、路由器之间传递控制消息,用于报告错误或检测网络状况。

常见的 ICMP 消息类型

类型 (Type)描述应用场景
8 / 0回显请求/响应 (Echo Request/Reply)ping 命令
3终点不可达 (Destination Unreachable)路径断开或端口关闭
11超时 (Time Exceeded)TTL 减至 0,常用于 tracert
5重定向 (Redirect)告知更好的路由路径

核心应用

1. Ping

通过发送 Echo Request 并等待 Echo Reply 来测试主机的可达性、延迟和丢包率。

2. Traceroute (Windows 下为 tracert)

通过故意设置从 1 开始逐渐增加的 IP 数据包 TTL (Time To Live) 值,强制沿途的每个路由器在丢弃包时返回 Time Exceeded 消息,从而探测数据包经过的完整路径。

ICMP 安全

由于 ICMP 消息可以被滥用于拒绝服务攻击 (DoS),许多现代防火墙会限制或禁用 ICMP。