<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ARP on CrashMemo | IT运维经验站</title><link>https://crashmemo.com/tags/arp/</link><description>Recent content in ARP on CrashMemo | IT运维经验站</description><generator>Hugo -- gohugo.io</generator><language>zh</language><lastBuildDate>Tue, 23 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://crashmemo.com/tags/arp/index.xml" rel="self" type="application/rss+xml"/><item><title>网络修炼笔记：ARP 协议与局域网通信原理</title><link>https://crashmemo.com/p/arp-protocol-lan-communication/</link><pubDate>Tue, 23 Jun 2026 00:00:00 +0000</pubDate><guid>https://crashmemo.com/p/arp-protocol-lan-communication/</guid><description>&lt;h2 id="实验环境准备"&gt;实验环境准备
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;测试设备：笔记本电脑（Windows 11，IP &lt;code&gt;192.168.2.162&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;对端设备：手机（Android/iOS，IP &lt;code&gt;192.168.2.215&lt;/code&gt;）&lt;/li&gt;
&lt;li&gt;测试工具：Wireshark、CMD 终端&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2 id="实验一局域网初始状态通信双向互通"&gt;实验一：局域网初始状态通信（双向互通）
&lt;/h2&gt;&lt;h3 id="操作步骤"&gt;操作步骤
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;打开 PC 命令行，执行 &lt;code&gt;arp -d&lt;/code&gt; 清空本地 ARP 缓存表。&lt;/li&gt;
&lt;li&gt;打开 Wireshark 并选择当前使用的网卡开始抓包。&lt;/li&gt;
&lt;li&gt;在 PC 上执行连续 PING 测试：&lt;code&gt;ping 192.168.2.215 -t&lt;/code&gt;。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="wireshark-报文分析"&gt;Wireshark 报文分析
&lt;/h3&gt;&lt;p&gt;在两端设备首次建立连接时，捕获到完整的 ARP 与 ICMP 报文交互：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;span class="lnt"&gt;3
&lt;/span&gt;&lt;span class="lnt"&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;13	0.257829	AzureWav_ef:e8:22	Broadcast	ARP	42	Who has 192.168.2.215? Tell 192.168.2.162
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;22	0.512216	46:44:9a:bd:52:aa	AzureWav_ef:e8:22	ARP	42	192.168.2.215 is at 46:44:9a:bd:52:aa
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;23	0.512296	192.168.2.162	192.168.2.215	ICMP	74	Echo (ping) request id=0x0001, seq=630/30210, ttl=128 (reply in 32)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;32	1.023984	192.168.2.215	192.168.2.162	ICMP	74	Echo (ping) reply id=0x0001, seq=630/30210, ttl=64 (request in 23)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;ARP 请求（No. 13）：由于二层封装缺少目的 MAC 地址，PC 发起二层广播（&lt;code&gt;Broadcast&lt;/code&gt;），询问谁拥有该 IP。&lt;/p&gt;
&lt;p&gt;ARP 应答（No. 22）：手机收到广播后，以单播形式回应自己的 MAC 地址（&lt;code&gt;bee7945506be&lt;/code&gt;）。&lt;/p&gt;
&lt;p&gt;ICMP 交互（No. 23\32）：获取 MAC 地址并写入本地 ARP 缓存表后，三层 ICMP 报文成功封装二层帧头并发送，Ping 成功。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Wireshark ping 截图" class="gallery-image" data-flex-basis="1163px" data-flex-grow="484" height="520" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-11-07.webp" srcset="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-11-07_hu_48bf8ea8c5463ebf.webp 800w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-11-07_hu_8f20ce43c4f8bf93.webp 1600w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-11-07_hu_7f287abd91b4a1c6.webp 2400w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-11-07.webp 2520w" width="2520"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="实验二突发链路故障下的协议栈行为分析"&gt;实验二：突发链路故障下的协议栈行为分析
&lt;/h2&gt;&lt;h3 id="操作步骤-1"&gt;操作步骤
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;在上述 &lt;code&gt;ping -t&lt;/code&gt; 过程中，突然断开手机的 Wi-Fi 连接（模拟对端物理断开关机）。&lt;/li&gt;
&lt;li&gt;观察 PC 终端提示并持续记录 Wireshark 抓包。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="报文分析与行为规律"&gt;报文分析与行为规律
&lt;/h3&gt;&lt;p&gt;在对端断开后，实验现象呈现明显的两个阶段：&lt;/p&gt;
&lt;h4 id="arp-缓存存活期有表状态"&gt;ARP 缓存存活期（有表状态）
&lt;/h4&gt;&lt;p&gt;对端刚断开时，终端立刻提示&amp;quot;请求超时&amp;quot;，但 Wireshark 中依然能看到 ICMP Request 发出：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt;1
&lt;/span&gt;&lt;span class="lnt"&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;147	6.684261	192.168.2.162	192.168.2.215	ICMP	74	Echo (ping) request id=0x0001, seq=646/34306, ttl=128 (no response found!)
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;235	11.520937	192.168.2.162	192.168.2.215	ICMP	74	Echo (ping) request id=0x0001, seq=647/34562, ttl=128 (no response found!)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;原理：Windows 协议栈在封装数据时优先读取本地 ARP 缓存。只要缓存未老化，即使对端不回应，PC 依然会根据表项中的 MAC 强行完成二层封装并送入网线。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Wireshark ICMP Request 截图" class="gallery-image" data-flex-basis="5008px" data-flex-grow="2086" height="121" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-31-05.webp" srcset="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-31-05_hu_35b208cebe52744b.webp 800w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-31-05_hu_2324ddfae7be9e83.webp 1600w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-31-05_hu_628d0b308474949d.webp 2400w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-31-05.webp 2525w" width="2525"&gt;&lt;/p&gt;
&lt;h4 id="arp-缓存老化失效期无表状态"&gt;ARP 缓存老化失效期（无表状态）
&lt;/h4&gt;&lt;p&gt;持续一会超时后，终端提示由&amp;quot;请求超时&amp;quot;转变为&amp;quot;目标主机不可达&amp;quot;或直接停止发送 ICMP，抓包中 ICMP 报文完全消失，只剩下 ARP 广播。&lt;/p&gt;
&lt;p&gt;&lt;img alt="Wireshark ARP Broadcast 广播的截图" class="gallery-image" data-flex-basis="797px" data-flex-grow="332" height="694" loading="lazy" sizes="(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px" src="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-37-42.webp" srcset="https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-37-42_hu_4cc2595d435d0645.webp 800w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-37-42_hu_f9d6ae65cb5ceca3.webp 1600w, https://crashmemo.com/p/arp-protocol-lan-communication/PixPin_2026-06-23_14-37-42.webp 2306w" width="2306"&gt;&lt;/p&gt;
&lt;p&gt;原理：当本地 ARP 表项老化删除，或者操作系统触发探测机制后，协议栈在二层封装时无法获取&amp;quot;目的 MAC&amp;quot;。由于二层帧头残缺，三层数据包（ICMP）无法向下传递，导致报文无法发出，PC 只能持续发送 ARP 广播尝试修复连接。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="结论"&gt;结论
&lt;/h2&gt;&lt;ol&gt;
&lt;li&gt;网络通信，二层先行：三层协议（IP/ICMP等）能够发出的物理前提，是二层以太网帧必须具备合法的目的 MAC 地址。&lt;/li&gt;
&lt;li&gt;ARP 表决定封装行为：只要 ARP 表项存在，设备就会执行封装并发包（即使对方已挂）；ARP 表项缺失，数据包在本地即被阻断，转化为 ARP 寻址行为。&lt;/li&gt;
&lt;/ol&gt;</description></item></channel></rss>