ARP报文格式如图:
字段1:ARP请求的目的以太网地址,全1时,代表广播地址。
字段2:发送ARP请求的以太网地址。
字段3:以太网帧类型表示后面的数据类型,ARP请求和ARP应答此字段为:0x0806。
字段4:硬件地址类型,硬件地址不止以太网一种,是以太网类型时,值为1。
字段5:表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。
字段6和7:表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。
字段8:是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。
字段9:是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。
字段10:是发送ARP请求或应答的IP地址。
字段11和12:是目的端的硬件地址和IP地址。
由上至下内容依次为:
Hardware type 硬件类型:表示硬件地址的类型(其中,值为1表示以太网地址,其他还可能表示令牌环地址)。
Protocol type 协议类型:表示要映射的协议地址类型(其中,0x0800表示IP地址,其他还可能是ICMP/IGMP)。
Hardware size 硬件地址长度:指出该报文中硬件地址的长度(ARP报文中,它的值为6)。
Protocol size 协议地址长度:指出该报文中协议地址的长度(ARP报文中,它的值为4)。
Opcode op:操作字段,共有4种类型(1.ARP请求,2.ARP应答,3.RARP请求,4.RARP应答)。
Sender MAC address 发送者mac地址:发送方设备的硬件地址。
Sender IP address 发送者ip地址:发送方设备的IP地址。
Target MAC address 目的mac地址:接收方设备的硬件地址。
Target IP address 目的ip地址:接收方设备的IP地址。