解决的问题
地址解析协议ARP要解决的问题就是,在已知机器IP地址的情况下,如何找到其相应的MAC地址。
因此,ARP工作在网络层底层,基于IP地址找到MAC地址。
ARP协议的要点
IP地址和MAC地址由于格式不同,不存在简单的映射关系。ARP协议解决问题的方法是在主机的ARP高速缓存中存放一个从IP地址到MAC地址的映射表,并且这个映射表经常动态更新(新增或超时删除)。
ARP高速缓存:每台主机设有,里面存有本局域网上的各主机和路由器的IP地址到MAC地址的映射表。
ARP协议的工作原理
主机A在本局域网上向主机B发送IP数据报:
- 首先从ARP高速缓存中查看有无主机B的IP地址,若有,查找MAC地址,写入MAC帧
- 若没有,主机A运行ARP,ARP进程在本局域网上广播发送一个ARP请求分组,主要内容包括主机A的IP地址,MAC地址,请求IP地址为目的IP地址的主机MAC地址。
- 本局域网上所有主机上运行的ARP进程收到ARP请求分组
- 主机B的IP地址与ARP请求分组中要查询的IP地址一致,收下该ARP请求,并向主机A发送ARP相应分组,并在响应分组中写下MAC地址。其余主机不理睬该ARP请求。主机B会在高速缓存中记录主机A的IP地址和MAC地址,以便后续通信。
- 主机A收到B的ARP响应分组,在高速缓存中记录B的IP地址和MAC地址
ARP高速缓存的每个映射地址项目都设置生存时间,凡超过生存时间的项目就从高速缓存中删除掉。
理解ARP协议的作用
ARP协议是用于解决本局域网上的主机或路由器的IP地址和MAC地址的映射问题。
在实际使用,地址解析过程对主机用户是透明的。
全世界使用各式各样的网络,使用不同的MAC地址。要直接使用MAC地址通信,就要完成极其复杂的MAC地址转换工作。IP编址将这个复杂的问题解决了。
在进行跨网传输时,当源主机向目的主机发送数据时,源主机只需要知道最近的路由器MAC地址,并将数据报发送给路由器即可,剩下的工作进一步交给路由器,实现IP数据报的接力。
连接到互联网的主机只需要各自拥有IP地址,数据链路层的通信所需的MAC帧可以自动通过ARP进程获取,它们之间的通信如同连接在同一个网络一样。