你了解 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)