2.1 - 网络协议 - ARP协议原理,报文解析,抓包实战

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

ARP协议

ARP(Address Resolution Protocol)是 「地址解析协议」,可以根据IP地址获取Mac地址。

「Mac地址」是计算机的「唯一标识」,数据从网络层传输到链路层时,只知道IP地址,但不知道Mac地址,因此需要使用ARP协议将IP地址解析成Mac地址,才能通信。

1、ARP协议原理

ARP协议规定:每台计算机和路由器都维护一个「ARP缓存表」,用来保存IP和Mac地址的映射关系。

arp -a可以查看ARP地址缓存表

通信的时候,计算机就根据目的IP判断是不是「同网段IP」,如果是同网段,就在当前局域网内查询。

  1. 先查自己的「ARP缓存表」,如果有,就直接跟Mac地址对应的计算机通信。
  2. 如果没有,就发「ARP广播」,报文里携带目的IP地址,局域网内的所有主机都会收到广播。
  3. 收到广播的主机会看目的IP是不是自己,如果不是,就什么也不做。
  4. 如果是,就响应一个「ARP单播」,把自己的Mac地址发回去。
  5. 计算机收到响应的单播,就跟报文里的Mac地址通信,然后把IP和Mac地址保存到自己的ARP缓存表里,下次就直接查表,不用广播了。

如果目的IP「不是同网段」,就通过路由器发给目标局域网的路由器。

  1. 路由器先查自己的ARP缓存表,如果有,就把Mac地址发回去。
  2. 如果没有,就广播,收到单播的Mac地址,保存到自己的ARP缓存表里,然后把Mac地址发回去。

2、ARP协议报文

  • Hardware type:硬件类型【2字节】
  • Protocol type:协议类型【2字节】
  • Hardware size:硬件地址长度【1字节】
  • Portocol size:协议长度【1字节】
  • Opcode:操作类型【2字节】request表示请求,reply表示响应
  • Sender Mac address:发送方Mac地址【6字节】
  • Sender IP address:发送方IP地址【4字节】
  • Target MAC address:目标Mac地址【6字节】
  • Target IP address:目标IP地址【4字节】

3、ARP协议抓包分析

1)cmd 获取局域网内所有主机,注意把第三位IP地址改成自己的网段

代码的意思是:ping 192.168.0.1192.168.0.255 之间的所有IP

powershell 复制代码
for /L %i IN (1,1,254) DO ping -w 2 -n 1 192.168.31.%i

2)arp -a 查看本网段的IP

3)记录一个本网段的IP,然后 arp -d 清空ARP表

4)Wireshark开启抓包后,ping 那个本网段的IP

5)显示过滤器中输入:arp,过滤ARP协议的数据包

  • 第一个包是ARP协议的广播请求包,我的电脑(7a:d3:8e:0e:32:4f)发送了一个广播(Broadcast)报文:"谁是192.168.31.118?告诉192.168.31.121(我的IP)"
  • 第二个包是ARP协议的单播响应包,有个电脑响应我: "192.168.31.11874:b5:87:db:06:ac"

第一个包的数据中,request表示这是ARP请求包,包里源、目的IP、源Mac都有值,但目的Mac没有值。意思是:我不知道这个IP的Mac地址。

第二个包的数据中,reply表示这是ARP响应包,包里源、目的IP,源、目的Mac都有值了。接收方可以从这里获取Mac地址。

4、ARP自主学习

1)arp -d 清空ARP表。

2)ping 前面记录的那个IP,模拟一次ARP寻址。

3)arp -a 查看ARP表,可以看到那个IP被缓存了。

4)Wireshark开启抓包,再ping一次那个IP。

查看ARP请求包的目的MAC地址,不再是空的了。因为这是第二次访问,ARP缓存表李有记录了,就不再广播了。

相关推荐
大霞上仙1 天前
trae solo模式demo--用例管理平台
人工智能
严谨的麻辣烫1 天前
Linux sysctl 网络参数调优实战:高并发与长连接场景下的内核配置
linux·网络·php
2601_958352901 天前
接上USB,焊上麦,通话瞬间安静——WX-0813如何用AI降噪+100dB消回音,把嘈杂通话变成“金子“般清晰
人工智能·算法·语音识别·硬件开发·语音模块·降噪消回音
Shockang1 天前
Agentic AI 工程实战
人工智能
To_OC1 天前
从 0 到 1:Milvus + 大模型打造私人记忆知识库
人工智能·node.js·llm
ii_best1 天前
更新!移动端开发软件按键安卓版&手机助手v5.1.0上线!本地AI识别全面解锁,脚本开发再升级
android·人工智能·ios·按键精灵
火山引擎开发者社区1 天前
数据库问题不用再找专家,问 DBCopilot 就行 —— 一图看懂你的数据库 AI 副驾
人工智能
ms365copilot1 天前
PPT新模型Claude Opus 5
人工智能·microsoft·powerpoint·copilot
孙启超1 天前
【AI应用开发】 RAG篇(四):Prompt 工程与进阶技术
人工智能·llm·embedding·rag·向量化·chunking·文档切分
我要见SA姐11 天前
AI提示词遇见精密算法:TimeGuessr如何用数学魔法打造文化游戏新体验
人工智能·算法·游戏