一、ARP协议的基本概念
ARP(Address Resolution Protocol,地址解析协议),其作用是根据IP地址来查找mac地址
二、ARP报文格式
1,ARP报文头的长度固定为28字节
- 硬件类型:2个字节,用来定义运行ARP的网络类型。以太网的类型为1。
- 协议类型:2个字节,用来定义使用的协议。例如:对IPv4协议这个字段是0800。ARP可用于任何高层协议
- 硬件长度:1个字节,用来定义MAC地址的长度,以字节为单位。例如:对于以太网的值为6。
- 协议长度:8位字段,用来定义IP地址的长度,以字节为单位。例如:对于IPv4协议的值为4。
- 操作码:16位字段,用来定义报文的类型。已定义的分组类型有两种:ARP请求(1),ARP响应(2)。
- 源MAC地址:这是一个可变长度字段,用来定义发送方的物理地址。例如:对于以太网这个字段的长度是6字节。
- 源IP地址:这是一个可变长度字段,用来定义发送方的IP地址。例如:对于IP协议这个字段的长度是4字节。
- 目的MAC地址:这是一个可变长度字段,用来定义目标的物理地址,例如,对以太网来说这个字段位6字节。对于ARP请求报文,这个字段为全0,因为发送方并不知道目标的硬件地址。
- 目的IP地址:这是一个可变长度字段,用来定义目标的IP地址,对于IPv4协议这个字段的长度为4个字节。
三、免费ARP
普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。
免费 ARP 的作用:
- 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
- 可用于检测 IP 地址冲突。DHCP刚获取到地址时、该修改完的电脑地址时,会发arp报文进行地址冲突检测,当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。