上学时,总觉得学习网络协议很枯燥,不好好学,总是记不住,不明白考试为何要考名词解释;工作后才发现掌握各种网络协议还是挺重要的,现在回过头来学习,用自己的方式记录下来,便于日后查看。【本文仅代表自己的理解,欢迎指正】
一、何为ARP协议?为什么需要ARP协议?
- ARP(Address Resolution Protocol), 地址解析协议
- 网络层IP报文中的源地址,目的地址都是IP地址,但是数据链路层MAC帧的目的地址及源地址是硬件地址;当发送数据时,网络层将IP报文交付给数据链路层,数据链路层在封装MAC帧时需要IP地址对应的硬件地址,因此就有了ARP的存在
二、ARP工作原理
贴一张自己画的图来说明整个流程
-
在局域网中,当主机A要向主机B发送数据时,首先会查找自己的ARP高速缓存,查找有无主机B的IP地址,如有,就在ARP高速缓存中找出IP地址对应的硬件地址,再把硬件地址写入MAC帧,然后通过局域网把该MAC帧发往此硬件地址。
-
若没找到,主机A就开始在局域网中广播发送一个ARP请求分组(例如:“我的IP是192.168.1.105,硬件地址是00-00-C0-15-AD-18,我在找IP地址为192.168.1.103的硬件地址”)
-
局域网上所有运行ARP进程的主机都会收到该ARP请求分组。
-
IP地址与ARP请求分组中要查询的IP不一致的主机忽略此报文;IP地址一致的主机B则收下该ARP请求分组报文,将主机A的IP地址到硬件地址的映射保存到自己的ARP高速缓存映射中;并在ARP响应分组中写入自己的硬件地址,以单播的形式发送给主机A
-
主机A收到ARP响应分组后,将主机B的IP地址到硬件地址的映射写入自己的高速缓存中。
-
ARP高速缓存是有生存时间的,超过生存时间就会从ARP高速缓存中删除
三、小结
ARP是解决同一局域网中,主机或路由器的IP地址和硬件地址的映射问题。
从IP地址到硬件地址的解析是自动进行的,用户无需知道,只需要知道对端IP地址即可。
一句话概括来说,就是同一局域网中,主机A广播查找某个IP地址对应的硬件地址,对应主机B将主机A的IP地址到硬件地址的映射写入本机的ARP高速缓存,并将自己的硬件地址以单播的形式发送给主机A,主机A将收到的硬件地址及IP保存到自己的ARP高速缓存。