wireshark中ARP协议的数据包分析

OSI模型将网络分为了七层,而IP地址为第三层(网络层),Mac地址为第二层(数据链路层)。在通过以太网发送IP数据包时,要首先封装第三层与第二层的报头,由于在发送时只知道目标IP地址,不知道Mac地址,又不能直接跨越二、三层,所以需要地址的解析协议。

ARP的功能就是将已知的IP地址解析成为Mac地址。

主机A在给主机B发送数据时,主机A会在自己的本地ARP缓存表中检查与主机B相匹配的Mac地址,如果未找到主机B的Mac地址,主机A就会将ARP的请求帧广播到本地网络上的所有主机上(此广播帧包含主机A的Mac与IP地址和主机B的IP地址),所有收到广播帧的所有主机就会检查自己的IP地址是否与请求的IP地址是否一致,如果不一致就会丢弃此请求帧。主机C与D就会丢弃。主机B就会将A的Mac与IP地址添加到自己的缓存表中,再单播回复给A一个ARP响应(此响应会包含自己的Mac和IP地址),主机A会将主机B的Mac地址和IP地址添加到自己的缓存表中,然后A就可以给主机B发送消息。

查看本机ARP缓存表:cmd 输入 arp -a

每行表示arp的条目,arp缓存表的默认周期为120s,过期后会重复上述过程。

 

Arp数据包的分析:

在wireshark中打开第一个arp的表

在frame的数据帧中其大小为42字节

打开第二层:全F代表以广播的方式传播到网络中,而非全F表示网络中只有一个对象主机,未采用广播发送到网络中。

打开第三层:

从上至下代表:硬件类型、协议类型、硬件长度、协议长度、操作码(为1表示arp的请求数据包)、发送方MAC、发送方IP地址、接收方Mac地址、接收方IP地址。

在此图中明显发现接收方的Mac地址为0(解析前主机会只有自己的Mac、IP和对端的IP,获取后才能得到对端的Mac地址)。

操作码为2:表示ARP响应的数据包

免费ARP:网络中设备的Mac地址一般是不会发生改变的,而IP地址是有可能会改变的,一旦出现IP地址发生改变,Mac地址与IP地址的映射就不在有效了,为防止映射失败产生的错误,免费的arp会发送到网络中,强制所有收到信息的设备使用新的Mac与IP地址。一般免费ARP会出现在系统引导期间进行接口配置或IP地址发生变化的过程中。

图中可以看出发送和接收方的IP地址一致,网络中的其他主机在收到数据包之后,会让这些主机使用新的Mac与IP地址映射关系来更新ARP缓存表,在这个图中ARP数据包是原主机未经请求主动发出的,并导致了目标主机更新了ARP缓存,因此称之为免费arp.

发布了20 篇原创文章 · 获赞 33 · 访问量 1328

猜你喜欢

转载自blog.csdn.net/qq_45331873/article/details/104411494