概述
ARP为IP地址到对应的硬件地址之间提供动态映射。
RARP是被哪些没有磁盘驱动器的系统使用,它需要系统管理员进行手工设置。
ARP工作过程
- ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机。这个过程称为广播,ARP请求数据帧中包含目的主机的IP地址,表示“如果你是这个IP地址的拥有者,请回答你的硬件地址”。
- 目的主机的ARP层收到这份广播后,识别出这是发送端在询问它的IP地址,于是发送一个ARP应答。这个ARP应答包含IP地址和对应的硬件地址。
- 收到ARP应答后,使ARP进行请求-应答交换的IP数据报现在就可以传送了。
点对点链路(PPP)不使用ARP。
ARP高速缓存
这是ARP高效运行的关键:每个主机上都有一个ARP告诉缓存。这个高速缓存存放了最近Internet地址到硬件地址之间的映射记录。
使用“arp -a”查看系统中高速缓存的内容:
ARP报文格式
- 硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
- 协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制);
- 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
- 操作类型:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
- 发送方硬件地址(0-3字节):源主机硬件地址的前3个字节;
- 发送方硬件地址(4-5字节):源主机硬件地址的后3个字节;
- 发送方IP地址(0-1字节):源主机硬件地址的前2个字节;
- 发送方IP地址(2-3字节):源主机硬件地址的后2个字节;
- 目标硬件地址(0-1字节):目的主机硬件地址的前2个字节;
- 目标硬件地址(2-5字节):目的主机硬件地址的后4个字节;
目标IP地址(0-3字节):目的主机的IP地址。
ARP代理
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,这个过程称作委托ARP或ARP代理(Proxy ARP)。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。路由器的功能相当于目的主机的代理,把分组从其他主机转发给它。
RARP工作原理
1、网络上的每台设备都会有一个独一无二的硬件地址,通常是由设备厂商分配的MAC地址。PC1从网卡上读取MAC地址,然后在网络上发送一个RARP请求的广播数据包,请求RARP服务器回复该PC的IP地址。
2、RARP服务器收到了RARP请求数据包,为其分配IP地址,并将RARP回应发送给PC1。
3、PC1收到RARP回应后,就使用得到的IP地址进行通讯。
小结
在大多数TCP/IP实现中,ARP是一个基础协议,但是它的运行对于应用程序或系统管理员来说一般是透明的。ARP告诉缓存在它的运行过程中非常关键,我们可以用arp命令对高速缓存进行检查和操作。高速缓存中的每一项内容都有一个定时器,根据它来删除不完整和完整的表项。
参考资料: