题目
什么是 ARP 协议?其工作原理是什么?
答案
@[toc] --- ## 什么是 ARP **ARP(Address Resolution Protocol )地址解析协议**:实现由 IP 地址到 MAC 地址的转换 ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210102152640.png) ## ARP 的工作原理 ARP 的工作原理:是借助 **ARP 请求与 ARP 响应**两种类型的包确定 MAC 地址的。并且每个主机都有一个 **ARP 高速缓存**,里面有本局域网上的各主机和路由器的 **IP 地址到 MAC 地址的【映射表】**。 如下图所示,假定主机 A 向同一链路上的主机 B 发送 IP 数据报,已知主机 A 和主机 B 的 IP 地址,它们互不知道对方的 MAC 地址: ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20210123213052.png) 1)首先,主机 A 为了获得主机 B 的 MAC 地址,它会先去查询自己的 ARP 高速缓存中有没有主机 B 的相关记录; 2)**如果主机 A 的 ARP 高速缓存中没有主机 B 的 IP 地址到 MAC 地址的映射,主机 A 就会通过广播的方式发送 ARP 请求包**(该包携带自己的 IP 地址 和 MAC 地址 以及 目标主机 B 的 IP 地址),表明自己想要获得主机 B 的 MAC 地址; 3) 由于广播请求可以被同一个链路上的所有主机或路由器接收,因此如果这条链路上某个主机或路由的 IP 地址与这个 ARP 请求包中包含的目标主机的 IP 地址相同,那么这个节点就将自己的 MAC 地址塞入 **ARP 响应包**中返回给主机 A; 4)主机 A 在收到主机 B 发过来的 ARP 响应包后,向其 ARP 高速缓存中写入主机 B 的 IP 地址到 MAC 地址的映射。 ![](https://cs-wiki.oss-cn-shanghai.aliyuncs.com/img/20200427210248.png) 当然,缓存是有一定期限的,超过这个期限,缓存的内容将被清空。这也使得即使 MAC 地址和 IP 地址的映射关系发生了变化,也依然能够正确的将数据包发送给目标地址。