一、协议介绍
ARP 协议介绍
在计算机网络的复杂体系里,ARP 协议(Address Resolution Protocol)宛如一座关键桥梁,紧密连接着网络层与数据链路层,保障数据顺畅传输。
ARP 协议工作在网络层与数据链路层之间,它主要协助网络层完成数据包向数据链路层的传递,虽然从严格意义上的五层协议(物理层、数据链路层、网络层、传输层、应用层)划分来看,它并不完全归属某一层,但其核心功能与网络层紧密相关,是网络层向下对接数据链路层的重要支撑机制。
RARP协议
RARP(Reverse Address Resolution Protocol)即逆地址解析协议。它的主要作用是将硬件地址(如以太网MAC地址)转换为 IP 地址。这与 ARP(Address Resolution Protocol)协议的功能正好相反,ARP 是将 IP 地址转换为硬件地址。
RARP协议在早期的网络环境中被广泛使用,但随着网络技术的发展,DHCP协议(Dynamic Host Configuration Protocol)因其更灵活和安全的特点逐渐取代了RARP。DHCP不仅可以动态分配IP地址,还提供了其他网络配置信息,因此在现代网络中,RARP的使用已经非常少见。
二、ARP协议的工作原理和流程
2.1、ARP工作原理
- ARP 缓存表:每个主机和路由器都维护着一个 ARP 缓存表。这个表存储了 IP 地址和 MAC 地址的映射关系。当一个设备需要发送数据给另一个设备时,它首先会在自己的 ARP 缓存表中查找目标 IP 地址对应的 MAC 地址。
- ARP 请求过程:如果在 ARP 缓存表中没有找到对应的 MAC 地址,发送设备就会构造一个 ARP 请求广播帧。这个广播帧包含了发送设备自己的 IP 地址、MAC 地址以及目标设备的 IP 地址。然后,这个广播帧会在本地网络(如以太网局域网)中进行广播。
- ARP 应答过程:网络中的所有设备都会收到这个 ARP 请求广播帧。每个设备会检查广播帧中的目标 IP 地址是否是自己。如果是,该设备就会向发送 ARP 请求的设备发送一个 ARP 应答帧。这个 ARP 应答帧包含了自己的 MAC 地址。发送 ARP 请求的设备收到 ARP 应答帧后,就会将目标设备的 IP 地址和 MAC 地址的映射关系添加到自己的 ARP 缓存表中,以便后续通信使用。
2.2、为什么网络传输有了IP,还需要MAC
从上面ARP的工作原理中,我们可以知道ARP协议主要是根据IP查找到MAC地址,那么,为什么网络传输中有了IP,还需要网卡的MAC地址呢?
IP地址的功能:
- 逻辑寻址: 为网络设备提供逻辑上的唯一标识符。
- 路由选择: 确保数据包能够从源地址到达目的地址。
- 网络隔离: 通过子网划分实现网络的逻辑隔离。
MAC地址的功能:
- 物理标识: 为网络设备提供物理上的唯一标识符。
- 链路层通信: 实现同一局域网内设备间的直接通信。
- 设备识别: 在网络管理中用于识别和管理网络设备。
IP地址是逻辑地址,用于网络层,实现跨网络的通信和路由;而MAC地址是物理地址,用于数据链路层,实现局域网内的直接通信和数据传输
IP地址确保数据包能够跨越多个网络到达目的网络,而MAC地址则确保数据帧在目的网络内能够正确地传送到目的设备。
在实际的网络通信中,IP地址负责路由选择和跨网络通信,而MAC地址负责局域网内的数据传输。在发送数据时,需要通过ARP(地址解析协议)将IP地址转换为MAC地址,以便在局域网内进行直接通信
2.3、局域网内ARP工作流程
sequenceDiagram
participant SourceHost as 源主机
participant TargetHost as 目标主机
participant OtherHosts as 其他主机
SourceHost->>SourceHost: 需发送数据给目标主机,检查ARP缓存表是否有目标IP对应MAC地址
alt 缓存表中有对应MAC地址
SourceHost->>TargetHost: 使用缓存中MAC地址封装数据帧并发送
else 缓存表中无对应MAC地址
SourceHost->>OtherHosts: 构造并广播ARP请求帧(含源IP、源MAC、目标IP等信息)
OtherHosts->>OtherHosts: 收到ARP请求帧,检查目标IP是否为本机
alt 是目标主机
TargetHost->>SourceHost: 单播发送ARP应答帧(含自身MAC地址等信息)
else 不是目标主机
OtherHosts->>OtherHosts: 丢弃ARP请求帧
end
SourceHost->>SourceHost: 收到ARP应答帧,将目标IP与对应MAC地址记录到ARP缓存表
SourceHost->>TargetHost: 使用获取的MAC地址封装数据帧并发送
end
四、RARP协议的工作流程
DHCP协议更加灵活,因此在现代网络中,RARP的使用已经非常少见。对于RARP协议的工作流程了解即可,无需深究。
sequenceDiagram
participant Client as 客户端(如无盘工作站)
participant RARP_Server as RARP服务器
participant OtherDevices as 其他设备
Client->>OtherDevices: 启动时,发送RARP请求广播包(包含自身MAC地址)
OtherDevices->>OtherDevices: 收到广播包,其他设备忽略(非RARP服务器)
RARP_Server->>RARP_Server: RARP服务器收到请求,查找配置表中与请求MAC地址对应的IP地址
alt 找到对应IP地址
RARP_Server->>Client: 向客户端发送RARP应答数据包(包含客户端IP地址)
else 未找到对应IP地址
RARP_Server->>Client: 不做响应(实际应用中可按特定机制处理错误情况等)
end
Client->>Client: 若收到应答,获取IP地址用于后续网络通信