🔌 第二章 用电信号传输TCP/IP数据
📄 一句话概括

知道 IP 不知道 MAC 时发 ARP 广播:全网段都收到,目标机应答自己的 MAC;结果进 ARP 缓存(几分钟有效期)。

📝 本节和前面几节的关系

MAC 头要填下一跳的 MAC——本篇讲这个地址怎么问来。

一、广播问路

ARP 包发到广播地址(全 1),网段内所有设备都收; 只有 IP 对得上的那台应答【我是,MAC=…】。

二、缓存

问过一轮就存 ARP 缓存,几分钟内直接用; 过期重问——IP 可能被别家占走(DHCP 场景)。

三、动手 Demo:ARP 一问一答

问路剧本:

for s in ['本机: 广播【谁是 192.168.0.1?报上你的 MAC】',
          '网关: 应答【我是,MAC=aa:bb:cc:dd:ee:ff】',
          '本机: 记入 ARP 缓存(几分钟有效期)']:
    print(s)

实跑输出:

--------------------------------------------------------------------
ARP 一问一答
--------------------------------------------------------------------
  知道 IP 还不够,得问 MAC——广播出场:

    本机: 广播【谁是 192.168.0.1?报上你的 MAC】
    网关: 应答【我是,MAC=aa:bb:cc:dd:ee:ff】
    本机: 记入 ARP 缓存(几分钟有效期)

  缓存命中就不广播——同一次会话通常只问一回。

arp -a 可看本机缓存——同网段活跃设备一屏全出, 也是内网排查的第一命令。

30 秒实验

  1. arp -a 看缓存,再 ping 一个新地址看缓存新增。
  2. 想想 ARP 只在本网段有效——跨网段问谁(问网关)。
  3. 查查【ARP 欺骗】攻击利用了哪一步。

常见误区

  1. 以为 ARP 逐跳路由地问——只在本网段广播。
  2. 以为缓存永久有效——几分钟过期。
自测三问(点开对答案) 1. ARP 问的是什么? —— IP 对应的 MAC 地址。 2. 为什么用广播? —— 还不知道目标是谁,喊全网段。 3. ARP 缓存多久过期? —— 几分钟。

相关笔记