ARP 协议抓包分析
ARP(Address Resolution Protocol)- 地址解析分析
ARP 协议是根据IP地址获取物理地址的一个TCP/IP协议。
当PC1 想与 PC2 进行通信时,需要同时知道PC2的IP地址和MAC地址,相当于既要知道“房间号”(相当于IP),也要知道“住户的身份证号”(相当于MAC地址),这样才能保证准确无误
的通信。
ARP工作流程:(以Ping 的方式演示)
1. 首先是一个ARP请求过程,由于此时只有IP,没有MAC地址,将使用广播的方式发出,此时以太网帧头部将会将目标MAC地址设为0xFF:FF:FF:FF:FF:FF,使其目标为当前局域网的所有主机,实现广播。而ARP请求协报文中会将MAC地址设为00:00:00:00:00:00,表示MAC不确定。
2. 当非当前IP的PC收到此ARP请求时,会检查请求中的target IP 是否时自己,如果不是,将会丢弃掉这个包。
3. 当是当前IP的PC收到此ARP请求时,会在自己的ARP缓存表中记录此请求的Sender IP和Sender MAC的映射,方便查询使用;
4. 由于已有请求方的IP及MAC地址,此时会选择单播通信,只会想对应的IP发包,告诉对方我的MAC地址
从图中可以看出,发送方单独给我方响应了一个数据包,包含对方的MAC地址,同时也会记录在我方的ARP缓存表中(可通过命令 arp -a 查看)
5. 通过ARP通信完成后,就可以看到Ping的请求和回应的流程了。
本文作者:明月照江江
本文链接:https://www.cnblogs.com/gradyblog/p/8972109.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】