ARP功能:从逻辑internet地址(IP地址)到对应的物理硬件地址(以太网地址)之间的转换
ARP工作原理:
(1)首先每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP和MAC间的对应关系
(2)当源主机要发数据时,先检查ARP列表中是否有对应IP地址的目的主机的MAC地址。若有则直接发;若无就向本网段的所有主机发ARP数据包,内容有:源IP,源MAC,目的IP。
(3)当本网络的所有主机收到该ARP数据包时,首先检查数据包中IP是否是自己的IP。若不是,则忽略;若是,则首先从数据包中取出源主机的IP和MAC地址写入到ARP列表中,若已存在则覆盖,然后将自己的MAC写入ARP响应包,告诉源主机自己是它想要找的MAC地址。
(4)源主机收到ARP响应包后。将目的主机的IP和MAC地址写入ARP列表,并利用此信息发送数据。若源主机一直没有收到ARP响应数据包,表示ARP查询失败。
总结:广播ARP请求,单播ARP响应。
ARP高速缓存:
ARP高效运行的关键在于每个主机上都有一个ARP高速缓存。
高速缓存中完整的表项的生存时间一般为20分钟;而不完整表项的生存时间一般为3分钟
注:可使用arp -a命令显示高速缓存中所有的内容
ARP的分组格式:
ARP代理:
如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答该请求,此过程称为ARP代理。这样可以欺骗发起ARP请求的发送端,使它误以为路由器就是目的主机,而事实上目的主机是在路由器的“另一边”。
免费ARP:
免费ARP是指:主机发送ARP查找自己的IP地址
免费ARP的两个方面的作用:
1)一个主机可以通过它来确定另一个主机是否设置了相同的IP地址
2)若发送免费ARP的主机正好改变了硬件地址(有可能是主机关机了,并换了一块接口卡,然后重启),那么这个分组就可以使其他主机高速缓存中旧的硬件地址进行相应的更新
arp命令:
arp -a 显示ARP高速缓存中的所有内容
arp -d 删除ARP高速缓存中的某一项内容
arp -s 增加高速缓存中的内容。(新增加的内容是永久性的,除非在命令行的末尾附上关键字temp)
RARP协议:
RARP协议是许多无盘系统在引导时用来获取IP地址;
广播RARP请求,它在分组中标明发送端的硬件地址,以请求相应IP地址的响应;单播RARP应答;