ARP(Address Resolution Protocol,地址解析协议)用于将网络层的IP地址解析为数据链路层地址。IP地址只是主机在网络层中的地址,如果要将网络层中数据包传送给目的主机,必须知道目的主机的数据链路层地址(比如以太网络MAC地址)。因此必须将IP地址解析为数据链路层地址。 ARP协议用于将IP地址解析为MAC地址,并在主机内部维护一张ARP表,记录最近与本主机通信的其它主机的MAC地址与IP地址的对应关系。当主机需要与陌生主机通信时,首先进行ARP地址解析,ARP地址解析过程如图所示:
-
A在自己的ARP表中查询是否存在主机B的IP地址和MAC地址的对应条目。若存在,直接向主机B发送数据。若不存在,则A向整个局域网中广播一份称为“ARP请求”的数据链路帧,这个请求包含发送端(即主机A)的IP地址和MAC地址以及接收端(即主机B)的IP地址。
-
局域网的每个主机接收到主机A广播的ARP请求后,目的主机B识别出这是发送端在询问它的IP地址,于是给主机A发出一个ARP应答。这个应答包含了主机B的MAC地址。
-
主机A接收到主机B发出的ARP应答后,就将主机B的IP地址与MAC地址的对应条目添加自己的ARP表中,以便后续报文的转发。