ARP地址解析协议

ARP概念及前置知识:

  1. 网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口。因此我们需要进行IP地址与物理地址之间的转化
  2. Mac地址由设备制造商定义/分配,每一个硬件设备都有一个链路层主地址(MAC地址),保存在设备的永久内存中。设备的mac地址不会改变(现在可以进行mac地址伪装)
  3. IP地址由用户配置给网络接口, 网络接口的IP地址是可以发生变化的(通过DHCP获取IP,变化速度比较快)

ARP协议报文格式

在这里插入图片描述


ARP缓存表
  1. 为了实现IP地址与MAC地址的查询与转换,ARP协议引入了ARP缓存表的概念。
  2. 每台主机或路由器在维护着一个ARP缓存表(ARP table),这个表包含IP地址到MAC地址的映射关系,表中记录了 <IP地址,MAC地址>对,我称之为ARP表项。
    在这里插入图片描述
  3. 如我们前面那张图所展示的一样,是主机最近运行时获得关于其他主机的IP地址到MAC地址的映射,当需要发送数据的时候,主机就会根据数据报中的目标IP地址信息,然后在ARP缓存表中进行查找对应的MAC地址,最后通过网卡将数据发送出去。
  4. ARP缓存表包含一个寿命值(TTL,也称作生存时间),它将记录每个ARP表项的生存时间,生存时间到了就会从缓存表中删除。

ARP协议工作原理
  1. 每个主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系。
  2. 主机(网络接口)新加入网络时(也可能只是mac地址发生变化,接口重启等), 会发送免费ARP报文把自己IP地址与Mac地址的映射关系广播给其他主机。
  3. 网络上的主机接收到免费ARP报文时,会更新自己的ARP缓冲区。将新的映射关系更新到自己的ARP表中。
  4. 某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送 ARP 数据包,该数据包包括的内容有:源主机 IP 地址,源主机 MAC 地址,目的主机的 IP 地址等。
  5. 当本网络的所有主机收到该 ARP 数据包时:
    (1)首先检查数据包中的 IP 地址是否是自己的 IP 地址,如果不是,则忽略该数据包。
    (2)如果是,则首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中,如果已经存在,则覆盖。
    (3) 然后将自己的 MAC 地址写入 ARP 响应包中,告诉源主机自己是它想要找的 MAC 地址。
  6. 源主机收到 ARP 响应包后。将目的主机的 IP 和 MAC 地址写入 ARP 列表,并利用此信息发送数据。如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

ARP协议工作过程:

ARP如何将 IP地址 转换为 MAC地址?

  1. 首先,主机A想要向主机B发送消息,但它不知道主机B的MAC地址,只知道主机B的IP地址。
    这时,主机A会在当前局域网下以广播的形式发送ARP请求数据报,表示主机A想知道主机B的MAC地址(注:广播时,以太网首部的目的地址为全f)。
    在这里插入图片描述
  2. 由于是广播,所以在本局域网上的所有主机都会受到主机A发送的ARP数据报,然后所有主机会把以太网首部这个报头给去掉,向上面的网络层发送ARP数据报。在这里我们便可以回答上面的问题了,以太网首部和ARP数据报内的MAC地址都不能少,一个是在数据链路层使用的,一个是在网络层使用的,因为两个层都不能看到互相的数据。
  3. 网络层首先会检查op字段,发现这时个ARP请求数据报,然后又会检查目的IP地址字段,检查完毕后,这时除了主机B外,在这个局域网内的其他主机都会把数据报丢弃,因为只有主机B的IP地址和目的IP地址是相同的
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值