在实际的应用当中我们会遇到这样的问题,比如:我们直到一个机器得IP地址,但不知道相应的硬件地址。地址解析协议就是用来解决这样的问题
地址解析协议ARP解决这个问题的方法是在主机ARP高速缓冲中存放一个从IP地址到硬件地址的映射表,并且这个映射表在不断的更新。
过程:
当主机A需要向本局域网上的B主机发送数据,就需要在APR高速缓冲中查找B的IP地址,如果有就在ARP高速缓冲中查找其硬件地址,再把硬件地址写入MAC帧,然后通过局域网把该MAC帧发往硬件地址。
如果没有的话:主机A就会自动运行ARP,然后按照一下步骤找到主机B的硬件地址。
1.ARP进程在本局域网上广播一个ARP请求分组,主要内容:我的IP是xxx,硬件地址是yyy,我想知道IP地址为zzz主机的硬件地址。
2.在本局域网上所有的主机运行的ARP进程都会受到这个请求
3.主机B发现自己的IP和运行的ARP请求分组中的IP一致,就收下这个请求,并且向A主机发出ARP响应报文,同时在这个ARP响应报文中写入自己的硬件地址。响应的内容:我的IP是zzz,我的硬件地址为aaa。
注意:请求报文是广播,响应报文是单播。
4.主机A收到主机B的ARP响应报文,就在自己的高速缓冲中写入主机B的IP地址到硬件地址的映射。