1. 什么是ARP?
ARP (Address Resolution Protocol) 是个地址解析协议。最白的说法是:在IP-以太网中,当一个上层协议要发包时,有了节点的IP地址,ARP就能提供该节点的MAC地址。
2. 为什么要有ARP?
OSI 模式把网络工作分为七层,彼此不直接打交道,只通过接口(layre interface). IP地址在第三层, MAC地址在第二层。协议在发生数据包时,得先封装第三层 (IP地址),第二层 (MAC地址)的报头, 但协议只知道目的节点的IP地址,不知道其地址,又不能跨第二、三层,所以得用ARP的服务。
3. 什么是ARP cache?
ARP cache 是个用来储存(IP, MAC)地址的缓冲区。当ARP被询问一个已只IP地址节点的MAC地址时,先在ARP cache 查看,若存在,就直接返回MAC地址,若不存在,才发送ARP request向局域网查询。
4. ARP 有什么命令行?
常用的包括:(格式因操作系统、路由器而异,但作用类似)
- 显示ARP cache: show arp; arp -a
- 清除ARP cache: arp -d
5. 路由器有ARP cache吗?
有的。路由器若有接口连接到局域网,就会有ARP cache。 如果路由器的接口都是点对点的接口(serial interface), 就不会有ARP cache.
6. 路由器怎么使用ARP cache
路由器在转发数据包到下一站时,得用下一站的MAC地址来封装链路报头 (Link header),它向ARP查询这个地址。如果ARP cache里没有这个地址,路由器的ARP会发送ARP Request去查询。
7. ARP 和Ping 有什么关系?
Ping是个常用的网络工具,检查远程主机、路由器是否在线。
从源主机到目的主机,一路上ping可能被几个路由器转发,只要有一个ARP cache里没有下一站的MAC地址,路由器就会把ping丢弃 (称为ARP Miss)。由于ARP Miss而掉包,是个常见的掉包原因。