arp请求消息的种类介绍

目录

1 Arp协议定义和作用:

2 Arp消息的结构:

3 Arp请求帧格式

4 Arp应答帧格式

5 Arp请求的种类:

5.1.二层广播arp请求

5.2 单播arp请求消息

5.3 Ip冲突探查arp请求

5.4arp宣告使用此ip地址


有图片,看不清的话,请调整浏览器显示比例为200%或者单击图片进行单独查看。

1 Arp协议定义和作用:

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。

地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;

发出的条件,是根据路由表,目的ip是直连路由的,才会用子网ip作为源ip发出arp请求消息。

如一个设备192.168.209.201要去ping192.168.209.141

查看路由表,符合直连路由表项

 arp  -a查询发现,命令执行后有新的arp表项生成,获得了对应ip的mac地址

 

抓包显示如下:

2 Arp消息的结构:

 

以太网报头中的前两个字段是以太网的源地址和目的地址。目的地址为全 1的特殊地址是

广播地址。

两个字节长的以太网帧类型表示后面数据的类型。对于 A R P请求或应答来说,该字段的

值为0 x 0 8 0 6。

硬件类型字段表示硬件地址的类型。它的值为 1即表示以太网地址。协议类型字段表示要

映射的协议地址类型。它的值为 0 x 0 8 0 0即表示I P地址。它的值与包含 I P数据报的以太网数据帧中的类型字段的值相同,这是有意设计的。

接下来的两个1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址

的长度,以字节为单位。对于以太网上 I P地址的A R P请求或应答来说,它们的值分别为6和4。

操作字段指出四种操作类型,它们是 A R P请求(值为1)、A R P应答(值为2)、R A R P请求(值为3)和R A R P应答(值为4)(我们在第5章讨论R A R P)。这个字段必需的,因为A R P请求和A R P应答的帧类型字段值是相同的。

接下来的四个字段是发送端的硬件地址(在本例中是以太网地址)、发送端的协议地址

(I P地址)、目的端的硬件地址和目的端的协议地址。

3 Arp请求帧格式

4 Arp应答帧格式

 

5 Arp请求的种类:

  1. 广播arp请求
  2. 单播arp请求
  3. Ip冲突探查arp请求
  4. 宣告arp请求

5.1.二层广播arp请求

应用场景:访问同网段ip,arp缓存里没有对应表项,就会发出二层广播arp消息,如

 

特点:arp请求消息体里,目的mac地址为空,全00,待目的设备填入自身值。

有对应的响应消息。二层目的mac为6个ff广播消息。

 应答消息为单播,源ip和源mac为请求的目的设备。

5.2 单播arp请求消息

 应用场景:

在arp缓存已有的对应表项,为检测对方是否在线,发出的单播arp探查消息

目的:

Unicast Poll -- Actively poll the remote host by 

periodically sending a point-to-point ARP Request o it, and delete the entry if no ARP Reply is received from N successive polls. Again, the timeout should be on the order of a minute, and typically N is 2。

当arp广播请求过程完成(其实就是主机收到了设备的ARP应答),双方都知道对方的IP--MAC映射,也会在自己的ARP表中生成这个映射;由于ARP老化机制第二种--单播轮询,主机会定期向设备发送点到点的单播ARP请求报文,用来确认对方是否存在,确认这条ARP缓存是该更新(主要是更新老化定时器)还是删除,同时,使用单播还可以减少网络中的ARP报文数量。

如下图:

Arp的缓存表现如下:

下图arp单播请求,隔一段时间发出,在广播消息后,不间断发出。

 应答消息为单播消息

5.3 Ip冲突探查arp请求

 应用场景,插拔网线,网卡激活或者dhcp获取ip后发出,用于探查广播域里是否有ip冲突的现象。一般发出三次(没冲突的情况下)。三次都没有响应,就进入下一个arp宣告,宣告正式使用这个ip地址。两者都是在没有请求的情况下发送的,因此它们是免费的。但从技术上讲,它们与免费ARP并不完全相同。

 特征:二层广播消息,arp消息体里,源ip和目的mac为空,全0。间隔1秒发三次。

注意,包中没有提供完整的映射。发送方IP被设置为全零,这意味着它不能映射到发送方MAC地址。目标器的MAC地址为全零,即不能映射到目标器的IP地址。这两者都是不确定广播域里是否存在,所以先为00。这是有意这样做的,因为发送ARP探测的原因是为了防止IP冲突。如果目标IP地址已经在使用中,那么网络上的其他主机会根据ARP探测的内容无意中更新它们的ARP缓存,这是非常不可取的。

修改ip为dhcp自动获取,发现获取地址后,有arp探查消息发出,获取地址为192.168.209.139

发出三次arp探查消息。

Ip冲突时,arp探查发出一次,有响应,就不用此地址,静态的话,会提示ip冲突,地址变成169.254.xx.xx。

如图:已知环境里存在ip为192.168.209.141,就把pc 的ip修改为209.141,看看抓包结果

 

 流程:修改ip后,发出arp探查,第一次就有响应,然后报ip冲突,使用本地链路地址169.254.240.20,同样三次探查消息发出,并用此ip请求网关mac地址,网关不处理此类地址的请求,所以不停发出arp消息。

 

 因为无法获得网关mac地址,所以无法上网。

 

5.4arp宣告使用此ip地址

应用场景:在插拔网线或者dhcp获取地址后,arp探查没有ip冲突,宣告

 特征:二层广播消息,源目的ip相同,目的mac地址为空。

猜你喜欢

转载自blog.csdn.net/wj31932/article/details/132326263