你了解 ARP 和 RARP 吗?

举报
神的孩子在歌唱 发表于 2024/12/30 12:01:57 2024/12/30
【摘要】 你了解 ARP 和 RARP 吗? 前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。关注下面作者名回复 领取学习资料 可领取python,java,计算机基础和算法资料。作者:神的孩子都在歌唱ARP(Address Resolution Protocol,地址解析协议)和 RARP(Reverse Address Resolution Protocol,反向地...

你了解 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 的工作原理

  1. ARP 请求:当主机 A 想要与主机 B 通信时,主机 A 需要知道主机 B 的 MAC 地址。如果主机 A 仅知道主机 B 的 IP 地址,它会向局域网广播一个 ARP 请求消息,询问 "谁拥有这个 IP 地址?"。

  2. ARP 响应:主机 B 收到 ARP 请求后,会将自己的 MAC 地址发送回主机 A。这个响应包含了主机 B 的 IP 地址和 MAC 地址的映射。

  3. ARP 缓存:为了提高效率,主机 A 会将主机 B 的 IP 地址和 MAC 地址的映射关系缓存到自己的 ARP 缓存中,以避免频繁的 ARP 请求。

映射表如下

image-20241219210937814

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 的工作原理

  1. RARP 请求:设备 A(比如一个硬盘驱动器或嵌入式设备)通过广播 RARP 请求消息,要求网络中的 RARP 服务器告诉它自己对应的 IP 地址。

  2. RARP 响应:网络中的 RARP 服务器(通常是网络中的一台主机或路由器)接收到请求后,查找其 ARP 表或配置文件,找到设备 A 对应的 IP 地址,然后将这个 IP 地址通过 RARP 响应发送回设备 A。

  3. 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 地址
  1. 功能不同

    • ARP 用于将 IP 地址转换为 MAC 地址(请求方知道 IP 地址,目标是 MAC 地址)。

    • RARP 用于将 MAC 地址转换为 IP 地址(请求方知道 MAC 地址,目标是 IP 地址)。

  2. 使用场景

    • ARP 广泛用于正常的 IP 层数据传输过程中。

    • RARP 在早期的计算机网络中用于那些没有持久存储来保存 IP 地址的设备(如无盘工作站)获取 IP 地址,但已被 DHCP(动态主机配置协议)所替代。

  3. 协议应用

    • ARP 是用于局域网中设备之间的通信,网络中的每个设备都可以使用 ARP 解析其目标设备的物理地址。

    • RARP 主要用于特定设备(如硬盘或嵌入式设备)通过网络获取其 IP 地址,并且需要一个 RARP 服务器。

三. 总结

  • ARP(地址解析协议) 是用来将 IP 地址 映射为 MAC 地址 的协议,是局域网中不可或缺的一部分,主要用于主机间通信时获取目标设备的物理地址。

  • RARP(反向地址解析协议) 则是用来将 MAC 地址 映射为 IP 地址,通常用于没有配置 IP 地址的设备获取网络配置,但由于其局限性,RARP 已经被 DHCP 替代。

作者:神的孩子都在歌唱 本人博客:https://blog.csdn.net/weixin_46654114 转载说明:务必注明来源,附带本人博客连接。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。