概念
地址解析协议ARP(Address Resolution Protocol)是一个网络层协议,用于将目标网络层地址转换成目标物理地址。在使用TCP/IP协议的以太网中,ARP负责将IP地址映射到MAC地址,主机使用ARP协议通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。
原理
ARP缓存
在每台安装有TCP/IP协议的电脑里都有一个ARP缓存表,记录着已经获取的MAC地址和IP地址的映射关系。如表5-1所示。
ARP缓存表采用了老化机制,在一段时间(一般15到20分钟)内如果表中的某一行没有使用,就会被删除,从而减少ARP缓存表的长度,加快查询速度。
ARP工作过程
1. 发送方在ARP缓存表中查找是否存在目标方MAC地址。
l 是:直接使用此MAC地址发送IP报文。
l 否:2
2. 发送方创建一个ARP请求报文,该报文包含发送方MAC地址、发送方IP地址和目标方IP地址。目标方MAC地址用0填充。
3. 该报文被传递到链路层,并在该层中用发送方MAC地址作为源地址,用物理广播地址作为目的地址,将其封装在一个帧中。
4. 同一链路中的每个主机或路由器都接收到该帧,并对帧中的IP地址信息进行识别。
5. 除了目标方以外的所有机器都丢弃该帧。目标方创建一个ARP响应报文,该报文包含目标方MAC地址。
6. 目标方向发送方发送ARP响应报文。
7. 发送方接收到该ARP响应报文,获取到目标方MAC地址,并记录到ARP缓存表中供以后使用。
8. 发送放使用目标方MAC地址向目标方发送IP报文。
ARP代理
ARP本身无法跨越不同网段。因此当数据要发往外部网络时,需要使用ARP代理来进行通信。ARP代理的作用是使网络内的主机误认为目标主机与自己处于同一网段内,从而达到透明化子网划分的目的。
ARP代理的工作原理:
当ARP请求从一个网络的主机发往另一个网络的主机时,启用了ARP代理的、连接这两个网络的路由器将回答该请求,使请求的发送者误以为此路由器就是目标主机,而将所有数据帧发送到此路由器。路由器在收到数据帧后,再将其转发到真正的目标主机。