深入解析ARP协议工作原理

ARP协议

ARP协议,全程地址解析协议,它解决的是网路层地址和链路层地址之间的转换问题,因为一个IP数据包在物理上传输的过程总是需要知道下一挑该去往何处,但IP地址属于逻辑地址,而MAC地址才是物理地址,ARP协议解决了IP地址转MAC地址的一些问题

MAC地址:网络上各接口的唯一标识。

工作原理

ARP协议工作核心:ARP表

每个网络设备都维护一个ARP表,表中记录了某些其他网络设备的IP-MAC的映射关系,该映射关系以<IP, MAC, TTL>三元组形式存储,其中,TTL为该映射关系的生存周期,超过该时间,该条目就会被丢弃

ARP工作原理分两种场景讨论:

  1. 同一局域网内的MAC寻址

  2. 从一个局域网到另一个局域网中的网络设备的寻址

同一局域网MAC寻址

假设,主机A想给同一局域网内的主机B发送IP数据报文

 

当主机发送IP数据报文时,只知道目的地的IP地址,不知其MAC地址,ARP协议就是解决这一问题的

主机A通过ARP协议来获取主机B的MAC地址,并将IP报文封装成链路层帧,发送到下一跳,过程如下:

  1. 主机 A 检索自己的 ARP 表,发现 ARP 表中并无主机 B 的 IP 地址对应的映射条目

  2. 主机 A 将构造一个ARP查询分组 (用于查询目标主机MAC地址的报文),并将其广播到所在的局域网中。

    ARP 分组是一种特殊报文,ARP 分组有两类,一种是查询分组,另一种是响应分组,它们具有相同的格式。均包含发送和接收的IP地址、发送和接收的MAC地址。

    其中,ARP查询分组包含发送主机的IP地址和MAC地址,以及接收主机的IP地址,但没有接收主机的MAC地址(因为这是我们要查询的),而是一个特殊值FF-FF-FF-FF-FF-FF即广播地址

  3. 主机A将构造的查询分组广播到局域网中,局域网中的每个设备都会收到该分组,并检查分组中接收方的IP地址是否是自己的IP地址,如果是,则表示查询到主机B,否则丢弃

  4. 主机B确定是对自己的查询后:

    • 将主机A的IP地址和MAC地址记录到自己的ARP表

    • 会构造一个ARP响应分组,以单播的形式发送给主机A,告知自己的MAC地址

    响应报文包含主机B的IP地址和MAC地址,以及主机A的MAC地址,也就是报文的目的地址

  5. 主机A最后会接收到主机B的响应,提取出该分组中的IP地址和MAC地址,构造映射关系,记录到自己的ARP表

  6. 之后主机A就可以给主机B发送数据包了

 

  1. 如果主机 B 的 IP-MAC 映射信息已经存在于主机 A 的 ARP 表中,那么主机 A 无需广播,只需提取 MAC 地址并构造链路层帧发送即可。

  2. ARP 表中的映射信息是有生存周期的,典型值为 20 分钟。

  3. 目标主机接收到了问询主机构造的问询报文后,将先把问询主机的 IP-MAC 映射存进自己的 ARP 表中,这样才能获取到响应的目标 MAC 地址,顺利的发送响应分组

总结来说,ARP 协议是一个广播问询,单播响应协议

跨区域网寻址

当发送主机和接收主机不在同一个子网内时,就无法通过ARP协议直接获取接收主机的MAC地址,因为ARP协议不能跨网络使用,此时就需要路由器协助获取。

首先需要明确的是,路由器是有多个接口的,每个接口各自维护一个ARP表。工作流程如下:

  1. 主机 A 查询 ARP 表,期望寻找到目标路由器的本子网接口的 MAC 地址

    目标路由器指的是,根据目的主机 B 的 IP 地址,分析出 B 所在的子网,能够把报文转发到 B 所在子网的那个路由器

  2. 主机 A 未能找到目标路由器的本子网接口的 MAC 地址,将采用 ARP 协议,问询到该 MAC 地址,由于目标接口与主机 A 在同一个子网内,该过程与同一局域网内的 MAC 寻址相同

  3. 主机 A 获取到目标接口的 MAC 地址,先构造 IP 数据报,其中源 IP 是 A 的 IP 地址,目的 IP 地址是 B 的 IP 地址,再构造链路层帧,其中源 MAC 地址是 A 的 MAC 地址,目的 MAC 地址是本子网内与路由器连接的接口的 MAC 地址。主机 A 将把这个链路层帧,以单播的方式,发送给目标接口

  4. 目标接口接收到了主机 A 发过来的链路层帧,解析,根据目的 IP 地址,查询路由转发表,将该 IP 数据报转发到与主机 B 所在子网相连的接口上,此时,该帧就转移到目的主机所在的子网了

  5. 路由器接口查询 ARP 表,期望寻找到主机 B 的 MAC 地址

  6. 路由器接口如未能找到主机 B 的 MAC 地址,将采用 ARP 协议,广播问询,单播响应,获取到主机 B 的 MAC 地址

  7. 路由器接口将对 IP 数据报重新封装成链路层帧,目标 MAC 地址为主机 B 的 MAC 地址,单播发送,直到目的地

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值