【网络基础】ARP协议

目录

  1. ARP协议
  2. ARP数据包格式
  3. ARP工作过程
  4. ARP请求
  5. ARP响应
  6. 免费ARP

1.ARP定义

ARP协议:地址解析协议,数据链路层在进行数据封装时,需要目的MAC地址,通过目的IP地址获取目的MAC地址的过程是由ARP协议实现的。

2. ARP数据包格式

在这里插入图片描述

  • Hardware type:硬件地址类型(一般来说是以太网类型)
  • Protocol type:三层协议(一般来说是IP协议)
  • Hardware length:硬件地址长度(也就是MAC地址长度)
  • Protocol length:IP地址长度
  • Operation code:选项编码
  • Source Hardware Address:源MAC地址
  • Source Protocol Address:源IP地址
  • Destination Hardware Address:目的MAC地址
  • Destination Protocol Address:目的IP地址

ARP报文不能穿越路由器,不能被转发到其他广播域。

3. ARP工作过程

在这里插入图片描述

  1. 主机A要与主机C进行通信,已知主机C的IP地址,需要获取他的MAC地址。
  2. 主机A查看自己的ARP表,有没有主机C的IP地址和MAC地址的对应关系,如果没有,他就会发送一个ARP request(广播)。主机B收到后会丢弃。
  3. 主机C收到后,将主机A 的IP地址和MAC地址的对应关系放在自己的ARP表当中
  4. 主机C发送一个ARP reply给主机A,主机A将主机C的IP地址和MAC地址的对应关系放在自己的ARP表中。

4. ARP请求

在这里插入图片描述
主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会发送ARP Request来获取目的MAC地址。ARP Request报文封装在以太帧里。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址FF-FF-FF-FF-FF-FF。ARP Request报文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址,其中目的MAC地址的值为0。ARP Request报文会在整个网络上传播,该网络中所有主机包括网关都会接收到此ARP Request报文。网关将会阻止该报文发送到其他网络上。

5. ARP响应

在这里插入图片描述
所有的主机接收到该ARP Request报文后,都会检查它的目的协议地址字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP Request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。
主机C会向主机A回应ARP Reply报文。ARP Reply报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,目的MAC地址是主机A的MAC地址,源MAC地址是自己的MAC地址,同时Operation Code被设置为Reply。ARP Reply报文通过单播传送。

6. 免费ARP

主机被分配了IP地址或者IP地址发生变更后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP Request报文来进行地址冲突检测。
主机A将ARP Request广播报文中的目的IP地址字段设置为自己的IP地址,且该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应ARP Reply报文。通过这种方式,主机A就能探测到IP地址冲突了。

发布了30 篇原创文章 · 获赞 9 · 访问量 1120

猜你喜欢

转载自blog.csdn.net/TKE_Yolanda/article/details/105446049