地址解析协议ARP
ARP协议不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议。
ARP协议的用途是:为了从网络层使用的IP地址解析出在数据链路层使用的硬件地址。可以说,ARP协议建立了IP地址与MAC地址的映射关系。
ARP协议的作用
网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址。数据包首先是被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与本机不符,则直接丢弃。因此,在通讯前,必须获得目的主机的硬件地址。
ARP协议的工作流程
下面举一个例子来解释:
- 主机A在该局域网内广播发送一个ARP请求报文,表达的内容是:我想要与IP地址为127.20.1.2的主机通信,但我不知道你的MAC地址是多少,麻烦你告诉我你的MAC地址。
- 在本局域网上的所有主机上允许的所有的ARP进程都收到此ARP请求。
- 只有与该请求报文中所要查询的IP地址一致的主机才会将该ARP请求收下,并向其返回一个ARP响应报文,告诉主机A 自己的MAC地址。其他主机也收到了该ARP报文,但它们经过解析,发现它找的不是自己,所以将该报文丢弃。
- 主机A 收到主机B的请求响应后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射。
- 主机