为什么需要ARP协议?
无论是主机到主机的通信,还是主机到路由器的通信,实质都是网卡之间的数据传递。为了传输成功,需要在已知IP地址的前提下获取目的网卡地址,这就是ARP(Address Resolution Protocol)协议所做的事情,获得某个IP的MAC地址。
ARP表
在每个IP节点(主机或路由器)的每个接口都有一个ARP模块,内有一个缓存表,这就是ARP表。在ARP表中记录了局域网内的一些节点的IP/MAC的映射关系。
Windows下,输入arp -a
命令查看ARP缓存表:
- ARP表中的每一条映射记录都有动态和静态之分,静态类型设定之后就不会变化了,而动态的记录会在超过TTL后过期删除,实时更新。
- ARP表具备自学习的能力。
地址解析的过程
-
查表:发送方A查找ARP表,如果查询到了IP所对应的MAC则结束,如果没有查到,进行第二步。
-
询问:以广播的形式(目的MAC地址为ff:ff:ff:ff:ff:ff)向LAN中的所有节点发送ARP请求包,询问拥有目的IP的主机的MAC。
-
学习:所有收到ARP请求包的主机都会将主机A的IP和MAC的映射关系存到自己的ARP表