ARP(Address Resolution Protocol)地址解析协议
RARP(Reverse Address Resolution Protocol)逆地址解析协议
1、ARP协议
ARP协议将网络层的32位IP地址转化成数据链路层48位的MAC地址。
1.1 ARP报文
ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。
- 硬件类型:占两字节,表示ARP报文可以在哪种类型的网络上传输,值为1时表示为以太网地址。
- 上层协议类型:占两字节,表示硬件地址要映射的协议地址类型,映射IP地址时的值为0x0800。
- MAC地址长度:占一字节,标识MAC地址长度,以字节为单位,此处为6。
- IP协议地址长度:占一字节,标识IP得知长度,以字节为单位,此处为4。
- 操作类型:占2字节,指定本次ARP报文类型。1标识ARP请求报文,2标识ARP应答报文。
- 源MAC地址:占6字节,标识发送设备的硬件地址。
- 源IP地址:占4字节,标识发送方设备的IP地址。
- 目的MAC地址:占6字节,表示接收方设备的硬件地址,在请求报文中该字段值全为0,即00-00-00-00-00-00,表示任意地址,因为现在不知道这个MAC地址。
- 目的IP地址:占4字节,表示接受方的IP地址。
1.2 ARP缓存表
缓存了MAC地址和IP地址的映射关系。是ARP和RARP协议运行的关键。
- 如果在查询ARP缓存表的时候,对应的映射关系存在,则直接告知其对应的目的MAC地址,
- 如果在查询ARP缓存表的时候,映射关系不存在,则会广播目的IP的信息,收到广播的设备回应是否是其为该IP地址,如果是,则会记录下该IP地址以及其对应的MAC地址。
由于MAC地址是永久不变的,而IP地址是时常变化的,所以ARP缓存表不是永久有效的,存在一定期限。
问题:ARP协议属于那一层?
由于ARP协议使用到了IP地址,我们把ARP协议算作网络层内容。ARP是网络层和数据链路层配合使用的协议。
2、RARP协议
做ARP协议相反的工作,就是把MAC地址转化成IP地址。