1、引言
说明:
ARP的作用,解决了什么问题:
以太网中的链路层,可能会采用不同的网络技术,而且不以ip作为路由依据。
链路层以mac地址作为路由依据。
ARP的功能是在32 bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。
注:
1. 以太网地址就是mac地址。
2. 每个网络接口都有唯一的硬件地址。
3. 尽管ARP请求是广播的,但ARP应答是直接送到请求端主机的,而不是广播的。
4. 一般情况下,当系统收到ARP请求或发送ARP应答时,都要把请求端的硬件地址和IP地址存入 ARP高速缓存。
5. 在ARP高速缓存中的表项一般都要设置超时值。从伯克利系统演变而来的系统一般对完整的表项设置超时值为20分钟,而对不完整的表项设置超时值为3分钟。
注:点对点链路不使用ARP。
2、例子
3、ARP高速缓存
ARP高效运行的关键是由于每个主机上都有一个ARP高速缓存。
高速缓存中每一项的生存时间一般为20分钟,起始时间从被创建时开始算起。
arp -am命令查询高速缓存
4、ARP的分组格式
在以太网上解析IP地址时,ARP请求和应答分组的格式如图4-3所示。
注意:ARP也可以用于其他类型的网络,可以解析IP地址以外的地址。
ARP分组说明:
(1)前两个字段是以太网的源地址和目的地址。目的地址为全1的地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。
(2)以太网帧类型表示后面数据的类型。对于ARP请求或应答来说,该字段的值为0x0806。
(3)硬件类型字段表示硬件地址的类型。它的值为1即表示以太网地址。
(4)协议类型字段表示要映射的协议地址类型。它的值为0x0800即表示IP地址。
(5)硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4。
(6)操作字段指出四种操作类型,它们是ARP请求(值为1)、ARP应答(值为2)、RARP请求(值为 3)和RARP应答(值为4)。
请求应答流程:
对于一个ARP请求来说,除目的端硬件地址外的所有其他的字段都有填充值。当系统收到一份目的端为本机的ARP请求报文后,它就把硬件地址填进去,然后用两个目的端地址分别替换两个发送端地址,并把操作字段置为2,最后把它发送回去。