目录
2.2 ARP协议的介绍
下面来学习ARP协议的相关知识。
1.ARP概述
在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的P地址解析成MAC地址,以便在交换机上通过MAC 地址进行通信。
如图所示,假设PC1发送数据给PC2需要知道PC2的MAC地址,可是PC1是如何知道 PC2的MAC地址呢?它不可能把全世界的MAC地址全部记录下来,所以当PC1访问PC2之前就要询问PC2的P地址所对应的MAC地址是什么,这时就需要通过ARP请求广播实现。
(1)如图所示,主机PC1想发送数据给主机PC2,它检查自己的ARP 缓存表,ARP缓存表是主机存储在内存中的一个IP地址和MAC地址一一对应的表。在Windows操作系统中可以使用arp-a命令来显示ARP缓存表。
Windows10系统中ARP缓存表的格式如下。
如果要查找的MAC地址不在表中,ARP会发送一个广播,从而找到目的地的MAC 地址。
经查看PC1的ARP缓存表中没有PC2的MAC地址,这时PC1会初始化ARP请求过程(发送一
个ARP请求广播)用于发现目的地的MAC 地址。
(2)主机PC1发送ARP请求信息,ARP请求是目的地址为MAC广播地址(FFFF-FF-FF-FF-FF)
的MAC地址广播帧,从而保证所有的设备都能够接收到该请求,在ARP请求信息中包括PC1的P
地址和 MAC 地址。
(3)交换机收到广播地址后,发现为MAC地址广播,所以将数据帧从除了接收口之外的所有接
口转发出去。各主机接收到数据帧后,进行IP地址的比较,如果目标P地址与自己的IP地址不同,
则会丢弃这个数据包,而只有PC2这台主机会在自己的ARP表中缓存PC1的IP地址和MAC 地址的
对应关系,同时发送一个ARP应答,来告诉PC1自己的MAC地址(这个数据帧是单播)。
(4)PC1在接收到这个回应的数据帧后,在自己的ARP表中添加PC2的IP地址和MAC 地址的对
应关系。在这个过程中,交换机已经学习到了PC1和PC2的MAC地址,之后传输数据时,PC1和PC2之间使用单播方式。
其实,路由器像其他网络设备一样收发数据,也保存着一张将P地址映射到MAC 地址的ARP
缓存表。路由器连接不同的网络,而通常的网络只具有本网络内部的IP地址到MAC地址的映射信息,对于其他网络的信息知之甚少。在路由器上会建立与之相连接的所有网络的ARP表,显示将不同网络上的IP地址映射为MAC地址