- ARP是地址解析协议,每台主机都有一个ARP缓存区,里边保存着同网络中IP地址到MAC地址的映射。他只能解析同一物理网络上的MAC地址。
下边举个例子来说明ARP协议的工作原理,假设A要向B发送数据,此时只知道B的IP地址,IP包总要通过物理网络传输,它需要知道目的主机的MAC地址。(⚠️IP地址并不标示一台主机而是标示一台主机与网络的一个连接)
- A首先从自己的ARP缓存表查询是否有B主机IP到MAC的映射,如果有那么向B发送数据即可
- 如果没有查询到那么A会向本网络的所有主机广播ARP请求报文,该数据包中包含A主机的IP、Mac地址以及B主机的IP地址
- 网络上所有主机接收该数据包,将数据包中的B主机的IP地址与自己进行比对,如果不同那么丢弃该数据包,如果相同则说明该主机是目的主机,B首先将A的IP和MAC地址保存到自己的ARP缓存表中,若已经存在则覆盖;然后将自己的MAC地址添加到数据包中作为响应报文单播发送给主机A。
- 主机A接收到B发送过来的响应报文,将其中的B主机的IP和Mac地址的额映射保存到自己的ARP缓存区中,然后向B发送数据
- RARP逆向地址解析协议。它应用于无盘机,用于实现MAC地址到IP地址的映射。
首先需要介绍一下无盘机的概念。一个网络中的所有主机都不安装硬盘,通过网络服务来启动,这些主机都不保存自己的IP地址,这样的网络叫做无盘网络,这些机器叫做无盘机或者无盘工作站,无盘网络主要为方便管理维护无盘机而存在。
- 在具有广播能力的网络中设置一个RARP服务器,里边保存着MAC-IP的映射,一台主机启动后获得自己的MAC地址,向网络中广播RARP请求报文,RARP服务器接收到请求报文后查询到该工作站的MAC-IP映射,封装到响应报文中返回给请求者。