🚩本篇内容
阅读这篇文章内容,可以了解到:ARP 地址解析协议的有关内容,包括:
ARP的基础原理
ARP的通信过程
ARP协议的报文分析
路由设备环境下的ARP封包抓取
ARP请求报文分析
ARP应答报文分析
📋本文小结
🚩结尾ARP的基础原理
ARP:地址解析协议(Address Resolution Protocol)
源端设备给目的端设备发送数据时,必须知道目的端设备的IP地址(由网络层来提供),同时也需要目的地址的MAC地址,这样IP数据报文封装成帧才能通过数据链路进行发送。ARP协议就是通过目的地址来获取目的MAC地址用的。
总的来说,ARP协议所需要实现的基本功能为知道目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。它是IPv4中网络层必不可少的协议,不过在IPv6中已不再适用,并被邻居发现协议(NDP)所替代。
落实到网络环境中,这里用两台路由器PING命令验证ARP包的作用。在网络设备的第一次连接通信时,控制台显示为 “.!!!!”。
我们知道“ !”表示两台设备之间的通信是正常的,而这里的第一个“ . ”是在建立ARP协议的通信过程,目的是完善设备的ARP表项,将源端和对端通信的MAC地址和IP进行相互对应,如上图所示的arp表项将网络设备的物理MAC地址与设备进行网络通信的IP地址建立了对应关系,只有网络设备间的ARP表项健全了,才能够实现,网络设备之间的网络通信。
ARP的通信过程
假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:
(1) 主机A首先查看自己的ARP表,如果ARP表中含有主机B对应的ARP表项,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。
(2) 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。
(3) 主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。
(4) 主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。
ARP协议的报文分析
使用Wireshark抓包工具抓取本机与百度服务器的ARP封包。
抓包的过滤命令:
arp && ip.dst==14.119.104.189
ARP报文如下图所示
路由设备环境下的ARP封包抓取
图中显示的是一对ARP请求和ARP应答。
从ARP数据包的描述可以看出:
- ARP请求报文是以广播的形式发出的,目的是为了搜寻到IP地址为12.12.12.2的网络设备。
- ARP应答报文是以单播的形式应答的,告知请求设备与12.12.12.2对应的网络设备的物理地址为cc02.51fc.0000,R1接收到应答报文后完善自身的ARP表项,为下一次通信做准备。
ARP请求报文分析
1. 中给出的是发出ARP请求报文网络设备的二层信息,可以看到是要从源MAC地址发送一个广播的ARP报文。
2. 中显示的为ARP请求报文中给出的源IP地址/源MAC地址,与目标MAC地址/目标IP地址的报文信息,由于不知到目的设备的MAC地址,所以MAC地址默认记录为00:00:06_00:00:06 (00:00:00:00:00:00)。
ARP应答报文分析
1. 中给出的是发出ARP响应报文网络设备的二层信息,可以看到是要从源MAC地址(cC:02:51:fc:00:00)发送一个单播的ARP报文。目的MAC地址为(cC:01:31:68:00:00)。
2. 中显示的为ARP应答报文中给出的源IP地址/源MAC地址,与目标MAC地址/目标IP地址的报文信息,此时我们可以看到网络设备的二层MAC地址和三层IP地址的信息已经健全了。
📋本文小结
阅读完这篇文章,你应该可以学会学习和掌握了分析抓取到的网络封包中数据内容,初步认识到如何通过抓取分析网络封包中的数据内容以了解网络通信的阶段流程。
进一步学习ARP 地址解析协议的有关内容:ARP的基础原理,Wireshark ARP 报文分析,ARP的通信过程等内容。并且学会在网络封包中认识OSI七层模型的架构原理 ,以及基于特定协议------ARP协议,数据封包的主要数据结构,结合在网络协议架构课程中学习到的有关知识,更好的了解到了网络环境下的底层原理。