ARP协议

  • Post author:
  • Post category:其他


Address Resolution Protocol(地址解析协议)是将IP地址解析为以太网MAC地址(物理地址)。ARP是一个独立的三层协议,ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议进行封装,在以太网中,会在ARP报文前加一个以太网帧头,形成以太网帧。

一、ARP报文

这里写图片描述

(1)硬件类型:占2字节,表示ARP报文在哪种类型的网络上传输,为1时表示以太网。

(2)协议类型:占2字节,表示硬件地址要映射的协议地址类型,映射IP地址时为0X0800。

(3)MAC地址长度:占1字节,标识MAC地址长度,此处为6。

(4)IP协议地址长度:占1字节,标识IP地址长度,此处为4。

(5)操作类型:占2字节,指定ARP报文类型,1表示ARP请求,2表示ARP应答,3表示RARP请求,4表示RARP响应。

(6)源MAC地址:占6字节,发送端的MAC地址。

(7)源IP地址:占4字节,发送端的IP地址。

(8)目的MAC地址:占6字节,接收端的MAC地址,在请求报文中全为0,表示任意地址。

(9)目的IP地址:占4字节,接收端的IP地址。

这里写图片描述

(1)目的MAC地址:占6字节,如果是ARP请求帧,因为它是一个广播帧,所以要填上广播地址FF-FF-FF-FF,其目标是网络上所有主机。

(2)源MAC地址:占6字节,发送ARP帧的节点MAC地址。

(3)帧类型:占2字节,用来标识帧封装的上层协议,因为本帧的数据部分是ARP报文,所以直接用ARP的协议号0x0806表示。

二、ARP地址解析原理

在局域网中,当主机A或其它网络设备有数据要发送给另一个主机或设备时,主机A首先检查自己的ARP表,如果ARP表中有主机B的IP地址和MAC地址映射关系,就直接利用表中的MAC地址对IP数据包进行封装,并将数据包发送给主机B,如果在ARP表中找不到对应的MAC地址映射表,则先缓存该数据报文,然后以广播方式(目的地址为广播地址FF-FF-FF-FF-FF-FF,同一网段中所有节点都收到)发送一个ARP请求报文,只有其IP地址和目的IP地址一致的主机才会对该请求进行处理,主机B将ARP请求报文中的发送端的IP地址和MAC地址存入自己的ARP表中,然后以单播方式向主机A发送一个ARP响应报文,应答报文中包含了自己的MAC地址,主机A在收到来自主机B的响应报文后,将主机B的MAC地址加入到自己的ARP表中,以用于后续报文的转发,同时将原来缓存的IP数据报再次修改,在目的地址字段填上主机B的MAC地址后发送出去。

三、ARP命令

arp -a:查看ARP缓存表。

arp -d:删除ARP缓存表。

arp -d IP地址:删除指定IP地址所在的行。

arp -s:手动绑定IP和MAC地址。

四、RARP

反向地址解析协议,主要用于无盘工作站,根据MAC地址查询IP地址。



版权声明:本文为rotedsj原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。