ARP地址解析协议
一、概述
-
地址解析协议 (Address Resolution Protocol, ARP) 是通过解析网络层地址来找寻数据链路层地址的一个在网络协议包中极其重要的网络传输协议,通过网络地址(例:IPv4)来定位MAC地址
(上面提到每个名词都附上了搜狗百科的解释,不清楚的话,可以直接跳转到相应的界面查看)
-
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
-
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
-
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
二、ARP协议解析
- ARP报文格式
- 字段3以太网帧类型表示的是后面的数据类型
- 硬件类型:指明了发送方想知道的硬件接口类型,以太网的值为1;
- 协议类型:指明了发送方提供的高层协议类型,IP为0800(16进制);
- 硬件地址长度和协议长度:指明了硬件地址和高层协议地址的长度,这样ARP报文就可以在任意硬件和任意协议的网络中使用;
- 操作类型op:用来表示这个报文的类型,ARP请求为1,ARP响应为2,RARP请求为3,RARP响应为4;
我们可以使用如下指令来查看我们计算机的ARP缓存表:
-
arp -a或arp –g : 用于查看缓存中的所有项目。
-
arp -a IP : 当有多个网卡,可以只显示与该接口相关的ARP缓存项目。
-
arp -s IP 物理地址 :可以向ARP缓存中人工输入一个静态项目。
-
arp -d IP :人工删除一个静态项目。
实例
- 如图,我们会向路由器发单播询问,谁的IP是xxx.xxx.xxx.xxx,路由器收到后。然后发送广播向所有设备询问,对应的设备发现哎,这个IP不就我吗?然后会发送单播给到路由器,说:xxx.xxx.xxx.xxx对应xx:xx:xx:xx:xx:xx。
- ARP request
- ARP reply