ARP协议:地址解析协议
主要解决的是IP地址和物理地址动态映射的关系,在以前有RAPR逆地址解析协议,现在已经没有人单独的使用RARP。
解决方法是在ARPCache中放一个IP地址和物理地址映射的表,而此表在不断的动态更新(增加修改删除)。
举一个例子来说明主机是如何知道地址的:
比如A向本局域网某个主机B发送IP请求报数据,A先回在ARPCache中寻找是否有B主机的IP,如果有,在相应的查询B主机的物理地址,再将数据表包装到MAC帧里面发送给主机B
**如果没有:**A就运行ARP主动去寻找B的物理地址,需要执行一下步骤:
- A向本局域网内发布一个ARP请求分组,主要内容:“是我的IP是IPA,我的物理地址是add1,我需要IPB的物理地址”;
- 在本局域网运行的所有ARP都能收到该请求;
- 当然不是的就不会响应,此时主机B就会给主机A发送ARP响应,并写入自己的物理地址主要内容是:”我的IP是IPB,我的物理地址是add2“;
- 注意:ARP请求是一个数据链层的广播,但是ARP响应是数据链层的单波,即一个源地址发送到一个目的地址。
- A的ARPCache写入B的物理地址,发数据报就可以找到对应的主机。
- 与此同时,其他局域网内运行的ARP会相应的刷新自己的ARPCache,方便下次传输数据。
需要说明的是:ARPCache中的每一个映射地址都是具有生命周期的,防止不必要的资源的占用和浪费。