1.什么是ARP协议
ARP协议(Address Resolution Protocol),即地址解析协议,是以太网中用于描述目标IP地址和目标主机MAC地址对应映射。
ARP仅用于IPv4协议,IPv6使用邻居发现协议**(NDP)**替代。
交换机、路由器、主机都有一张ARP缓存表,这个表中记录的就是IP与主机MAC的映射关系。
对于华为交换机来说,ARP表项默认老化时间为20分钟,这个值可以修改。
2.ARP的工作原理
如下图,主机PC1有IP数据报文发送给另一台主机PC2,它需要知道接收方的逻辑(IP)地址。但是IP地址必须封装成帧才能通过物理网络。这就意味着发送方必须有接收方的物理(MAC)地址,因此需要完成逻辑地址到物理地址的映射。而ARP协议可以接收来自IP协议的逻辑地址,将其映射为相应的物理地址,然后把物理地址递交给数据链路层。
上图中,我们从PC1发送一个Ping包到PC2:
1)PC1发送数据前会先检查自己的ARP缓存表,若有对应IP地址的MAC信息则直接封装到帧里进行发送,若没有则会通过ARP进行获取。
2)PC1会发送ARP Request报文来请求获取PC2的MAC地址。由于帧内没有目的MAC地址
是不可以进行传输的,所以ARP
报文内的目的MAC
地址为全F。
3)ARP Request目的MAC地址为FF-FF-FF-FF-FF-FF(广播数据帧),所以交换机收到后会直接对该帧进行泛洪(广播)操作,并且学习该IP的MAC地址以及端口号到交换机自己的MAC缓存表。
4)所有主机都接受到该ARP Request报文后,都会检查该帧的目的IP地址与自身的IP地址是否匹配,不匹配就直接丢弃,PC2发现与自己IP地址匹配,就会先把PC1的IP与MAC地址信息记录到自己的ARP缓存表之中,然后PC2就会发送ARP Reply报文来进行响应。
5)交换机收到单播数据帧以后,会对该帧进行转发操作,并且学习PC2的MAC地址和端口号到自己的MAC缓存表。
6)PC1收到PC2的ARP Reply报文后会检查目的IP与自己IP地址字段是否相同,如果匹配就将回应报文的源IP地址与MAC地址学习到自己的ARP缓存表之中,然后就可以传输信息进行通信。
3.ARP协议工作在哪一层
arp协议在TCP/IP模型中属于IP层(网络层),在OSI模型中属于链路层。
arp协议是属于链路层的协议。