ARP协议详解

ARP协议详解

1、概述

在计算机网络中,地址解析协议(Address Resolution Protocol,简称ARP)是一个重要的协议,用于将网络层的IP地址解析为数据链路层的MAC地址。ARP在局域网(LAN)中广泛使用,是网络通信中不可或缺的一部分。本文将详细介绍ARP协议的工作原理、具体实现、常见问题及其解决方案。

2、ARP协议的基本概念

ARP是一种网络层协议【我们从它能看到IP地址的角度理解】,工作在OSI模型的第三层(网络层)和第二层(数据链路层)之间,用于在同一个局域网内将IP地址映射为MAC地址MAC地址是硬件地址,用于在以太网中标识网络接口,而IP地址是逻辑地址,用于标识网络中的主机。

  1. IP地址
    IP地址是一个逻辑地址,用于标识网络中的设备。IPv4地址由32位二进制数表示,通常以点分十进制形式表示(例如192.168.1.1)。

  2. MAC地址
    MAC地址是一个硬件地址,用于标识网络接口。MAC地址由48位二进制数表示,通常以六组十六进制数表示(例如00:1A:2B:3C:4D:5E)。

3、ARP协议的工作原理

ARP协议通过广播请求和单播响应的方式工作,主要包括以下步骤:

1)ARP广播请求:

当一个主机需要发送数据到另一个主机时,会首先检查自己的ARP缓存中是否有目标IP地址对应的MAC地址
如果缓存中没有对应的MAC地址,主机会发送一个ARP请求报文,该报文包含源IP地址、源MAC地址、目标IP地址,并以**广播方式【目的MAC为FF:FF:FF:FF:FF:FF】**发送到局域网中的所有设备。

2)ARP单播响应:

局域网上所有设备都会接收到ARP请求报文,但只有目标IP地址匹配的设备会回应
目标设备会发送一个ARP响应报文,该报文包含目标IP地址和对应的MAC地址,以及自己的IP地址和MAC地址,并以单播方式发送回请求的主机。同时,主机还会提取发送过来的IP地址和MAC地址信息,在自己的ARP表中构造一条IP-MAC的映射记录

3)缓存更新:

请求主机接收到ARP响应后会将目标IP地址和MAC地址映射关系存储在ARP缓存中,以便下次通信时直接使用,避免重复发送ARP请求。

4、以案例说明ARP协议的工作原理

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

假设当前有如下场景:IP 地址为137.196.7.23的主机 A,想要给同一局域网内的 IP 地址为137.196.7.14主机 B,发送 IP 数据报文。
为了实现这一过程,主机A将不得不通过 ARP 协议来获取主机 B 的 MAC 地址,并将 IP 报文封装成链路层帧,发送到下一跳上。在该局域网内,关于此将按照时间顺序,依次发生如下事件:

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

2.主机 A 将构造一个 ARP 查询分组,并将其广播到所在的局域网中。

ARP 分组是一种特殊报文,ARP 分组有两类,一种是查询分组,另一种是响应分组,它们具有相同的格式,均包含了发送和接收的 IP 地址、发送和接收的 MAC 地址。当然了,查询分组中,发送的 IP 地址,即为主机 A 的 IP 地址,接收的 IP 地址即为主机 B 的 IP 地址,发送的 MAC 地址也是主机 A 的 MAC 地址,但接收的 MAC 地址绝不会是主机 B 的 MAC 地址(因为这正是我们要问询的!),而是一个特殊值——FF-FF-FF-FF-FF-FF,之前说过,该 MAC 地址是广播地址,也就是说,查询分组将广播给该局域网内的所有设备

3.主机 A 构造的查询分组将在该局域网内广播。

理论上,每一个设备都会收到该分组,并检查查询分组的接收 IP 地址是否为自己的 IP 地址,如果是,说明查询分组已经到达了主机 B,否则,该查询分组对当前设备无效,丢弃之。

4.主机B收到查询分组后,进行验证是自己的问询,同时构造一条映射记录。

主机 B 收到了查询分组之后,验证是对自己的问询,接着构造一个 ARP 响应分组,该分组的目的地只有一个——主机 A,发送给主机 A(单播的形式)。同时,主机 B 提取查询分组中的 IP 地址和 MAC 地址信息,在自己的 ARP 表中构造一条主机 A 的 IP-MAC 映射记录

5. 主机 A 终将收到主机 B 的响应分组,提取出该分组中的 IP 地址和 MAC 地址后,构造映射信息,加入到自己的 ARP 表中。

在这里插入图片描述

2)不同局域网内的MAC寻址

更复杂的情况是,发送主机 A 和接收主机 B 不在同一个子网中假设一个一般场景,两台主机所在的子网由一台路由器联通。这里需要注意的是,一般情况下,我们说网络设备都有一个 IP 地址和一个 MAC 地址,这里说的网络设备,更严谨的说法应该是一个接口。路由器作为互联设备,具有多个接口,每个接口同样也应该具备不重复的 IP 地址和 MAC 地址。因此,在讨论 ARP 表时,路由器的多个接口都各自维护一个 ARP 表,而非一个路由器只维护一个 ARP 表。

同样,我们默认主机A与主机B都不知道对方的MAC,我们依然从最开始主机A发送问询报文开始讲解整个过程:

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 所在子网相连的接口上。

到此,该帧已经从主机 A 所在的子网,转移到了主机 B 所在的子网了。

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

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

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

在这里插入图片描述

5、ARP的应用

ARP协议在现代网络中具有广泛的应用,以下是几个常见的应用场景:

  • 局域网通信:
    在局域网中,ARP用于解析主机之间的IP地址和MAC地址,确保数据帧能够正确发送到目标设备。
  • 路由器通信:
    路由器使用ARP解析相邻路由器和主机的MAC地址,实现数据包的转发和路由选择。
  • 网络管理和监控:
    网络管理员使用ARP扫描工具(如arp-scan)发现和管理网络中的设备,进行故障排除和性能优化。

6、总结

ARP协议是网络层的重要组成部分,通过将IP地址解析为MAC地址,确保局域网内的设备能够正常通信。理解ARP的工作原理、报文格式和缓存机制,对于网络管理和故障排除具有重要意义。同时,面对ARP欺骗和缓存中毒等安全威胁,采取适当的防护措施,保障网络安全和稳定运行。

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值