地址解析协议(Address Resolution Protocol,ARP)是通过解析 IP 地址得到数据链路层地址的,是一个在网络协议包中极其重要的网络传输协议。
ARP的作用
将 IP 地址转换为 MAC 地址,ARP 协议在网络层被应用,它是网络层与链路层连接的重要枢纽。
ARP可以将32位IP地址映射为48位的MAC地址。
以太网发数据要知道对方的MAC地址,而在IP层中只知道目标主机的IP地址,这时候使用APR就可以将IP地址转化为MAC地址顺利的发出去。 |
---|
ARP的工作流程
每台主机或路由器中有一张表,表里面包含着IP地址到MAC地址的映射关系,这张表就叫ARP缓存表。
其运作过程大致可以理解为:
1. 如果主机 A 想发送数据给主机 B,主机 A 首先会检查自己的 ARP 缓存表,查看是否有主机 B 的 IP 地址和 MAC 地址的对应关系,如果有,则会将主机 B 的MAC 地址作为源 MAC 地址封装到数据帧中。如果本地 ARP 缓存中没有对应关系,主机 A 就会向局域网中广播 ARP 请求(包括发送方的 IP 地址、MAC 地址、接收方的 IP 地址),每台主机接收到 ARP 请求后都检查自己的 IP 地址是否与ARP 请求中的接收方 IP 地址相同,若不相同则丢弃 ARP 请求包。
2. 当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
3. 当主机 B 接受到此数据帧后,会校对 IP 地址是否是自己的,并将主机 A 的 IP 地 址和 MAC 地址的对应关系记录到自己的 ARP 缓存表中,同时会发送一个 ARP 响应,其中包括自己的 MAC 地址。
4. 主机 A 在收到这个回应的数据帧之后,在自己的 ARP 缓存表中记录主机 B 的 IP地址和 MAC 地址的对应关系。而此时交换机已经学习到了主机 A 和主机 B 的MAC 地址了。
ARP缓存表
当需要发送 IP 数据的时候,主机就会根据目标 IP 地址到 ARP 缓存表中进行查找对应的 MAC 地址,然后通过网卡将数据发送出去。
Win10查看ARP表的命令:arp -a
ARP缓存表的特点
具有寿命性,每个表项的寿命为10分钟,一旦寿命达到就会被删掉。
问题
发送数据包时,没有找到IP地址对应MAC地址,ARP的操作。 |
---|
- 电脑会先在局域网上广播一个 ARP 请求(目标 MAC 地址为 FF-FF-FF-FF-FF-FF) - 广播的 ARP 请求发出后,处于同一局域网内的所有主机都会接收到这个请求 - 如果目标 IP 地址与主机自身 IP 地址吻合就会返回一个 ARP 应答,告诉请求者自身的 MAC 地址 - 当我的电脑收到这个 ARP 应答后,就去更新 ARP 缓存表,并且重新将数据发送出去。 |