你了解 ARP 和 RARP 吗?
前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。
关注下面作者名回复 领取学习资料 可领取python,java,计算机基础和算法资料。
作者:神的孩子都在歌唱
ARP(Address Resolution Protocol,地址解析协议)和 RARP(Reverse Address Resolution Protocol,反向地址解析协议)是两种常用于计算机网络中的协议。它们主要用于在网络中进行设备的地址转换,帮助主机在物理地址(MAC 地址)和逻辑地址(IP 地址)之间进行映射。尽管这两种协议在功能上有一些相似之处,但它们的用途和工作方式有所不同。
一. 什么是 ARP?
ARP(Address Resolution Protocol,地址解析协议)是一个用于将 IP 地址 映射到 MAC 地址 的协议。由于网络通信通常依赖于物理地址(MAC 地址),但我们通常使用的是逻辑地址(IP 地址),因此在局域网中,设备必须知道目标设备的 MAC 地址才能进行数据传输。ARP 就是用来实现这一转换的。
1.1 ARP 的工作原理
- 
ARP 请求:当主机 A 想要与主机 B 通信时,主机 A 需要知道主机 B 的 MAC 地址。如果主机 A 仅知道主机 B 的 IP 地址,它会向局域网广播一个 ARP 请求消息,询问 "谁拥有这个 IP 地址?"。 
- 
ARP 响应:主机 B 收到 ARP 请求后,会将自己的 MAC 地址发送回主机 A。这个响应包含了主机 B 的 IP 地址和 MAC 地址的映射。 
- 
ARP 缓存:为了提高效率,主机 A 会将主机 B 的 IP 地址和 MAC 地址的映射关系缓存到自己的 ARP 缓存中,以避免频繁的 ARP 请求。 
映射表如下:

1.2 ARP 消息格式
ARP 请求和响应都使用固定的消息格式。每个 ARP 包 包含以下字段:
- 
硬件类型(Hardware Type):表示网络的类型,Ethernet 通常为 1。 
- 
协议类型(Protocol Type):表示要解析的协议类型,IPv4 为 0x0800。 
- 
硬件地址长度(Hardware Address Length):MAC 地址长度,通常为 6 字节。 
- 
协议地址长度(Protocol Address Length):IP 地址长度,通常为 4 字节。 
- 
操作(Operation):表示请求或响应,1 表示 ARP 请求,2 表示 ARP 响应。 
- 
发送者硬件地址(Sender Hardware Address):发送者的 MAC 地址。 
- 
发送者协议地址(Sender Protocol Address):发送者的 IP 地址。 
- 
目标硬件地址(Target Hardware Address):目标设备的 MAC 地址(请求时为空)。 
- 
目标协议地址(Target Protocol Address):目标设备的 IP 地址。 

以上图片来源于网络
1.3 ARP 的常见应用
- 
网络通信:在局域网中,主机间的数据传输需要依赖 MAC 地址,ARP 协议通过提供 IP 地址与 MAC 地址之间的映射来实现数据包的正确转发。 
- 
ARP 缓存攻击:ARP 协议存在一定的安全风险,攻击者可以通过伪造 ARP 响应(ARP 欺骗),将错误的 MAC 地址映射到合法的 IP 地址,导致中间人攻击(MITM)。 
二. 什么是 RARP
RARP(Reverse Address Resolution Protocol,反向地址解析协议)是与 ARP 功能相反的协议。RARP 主要用于 将 MAC 地址转换为 IP 地址。这种协议通常用于那些无法自行配置 IP 地址的设备,特别是在早期的计算机和嵌入式设备中,它们可能没有持久存储空间来保存配置的 IP 地址,需要通过网络动态获取。
2.1 RARP 的工作原理
- 
RARP 请求:设备 A(比如一个硬盘驱动器或嵌入式设备)通过广播 RARP 请求消息,要求网络中的 RARP 服务器告诉它自己对应的 IP 地址。 
- 
RARP 响应:网络中的 RARP 服务器(通常是网络中的一台主机或路由器)接收到请求后,查找其 ARP 表或配置文件,找到设备 A 对应的 IP 地址,然后将这个 IP 地址通过 RARP 响应发送回设备 A。 
- 
IP 地址分配:设备 A 收到响应后,可以使用该 IP 地址继续进行通信。 
2.2 RARP 的局限性
- 
RARP 的不足:RARP 只能将 MAC 地址映射到 IP 地址,并且只支持从设备请求 IP 地址,它无法提供 IP 地址的管理、分配等功能,因此它已经被更先进的 DHCP(动态主机配置协议)所取代。 
- 
依赖服务器:RARP 需要一个 RARP 服务器来完成 IP 地址的分配,服务器必须提前配置好每个设备的 MAC 地址与 IP 地址的映射。 
2.3 ARP 和 RARP 的区别
| 特性 | ARP | RARP | 
|---|---|---|
| 功能 | 将 IP 地址映射到 MAC 地址 | 将 MAC 地址映射到 IP 地址 | 
| 应用场景 | 用于正常的 IP 地址到 MAC 地址的转换 | 用于没有配置 IP 地址的设备,通过 MAC 地址请求 IP 地址 | 
| 协议类型 | 网络中的设备之间请求和响应地址映射 | 用于从服务器请求设备的 IP 地址 | 
| 使用方式 | 广播请求并接收设备的 MAC 地址 | 广播请求并接收 IP 地址 | 
- 
功能不同: - 
ARP 用于将 IP 地址转换为 MAC 地址(请求方知道 IP 地址,目标是 MAC 地址)。 
- 
RARP 用于将 MAC 地址转换为 IP 地址(请求方知道 MAC 地址,目标是 IP 地址)。 
 
- 
- 
使用场景: - 
ARP 广泛用于正常的 IP 层数据传输过程中。 
- 
RARP 在早期的计算机网络中用于那些没有持久存储来保存 IP 地址的设备(如无盘工作站)获取 IP 地址,但已被 DHCP(动态主机配置协议)所替代。 
 
- 
- 
协议应用: - 
ARP 是用于局域网中设备之间的通信,网络中的每个设备都可以使用 ARP 解析其目标设备的物理地址。 
- 
RARP 主要用于特定设备(如硬盘或嵌入式设备)通过网络获取其 IP 地址,并且需要一个 RARP 服务器。 
 
- 
三. 总结
- 
ARP(地址解析协议) 是用来将 IP 地址 映射为 MAC 地址 的协议,是局域网中不可或缺的一部分,主要用于主机间通信时获取目标设备的物理地址。 
- 
RARP(反向地址解析协议) 则是用来将 MAC 地址 映射为 IP 地址,通常用于没有配置 IP 地址的设备获取网络配置,但由于其局限性,RARP 已经被 DHCP 替代。 
作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)