ARP(Address Resolution Protocol,地址解析协议)是一种用于将IP地址映射到物理MAC地址的协议;在计算机网络中,每个设备都有一个唯一的MAC地址,用于在局域网内进行数据通信。而IP地址则是用于在更大范围的网络中标识设备的地址。
ARP协议的作用
1.将IP地址解析为MAC地址 2.维护IP地址与MAC地址的映射关系的缓存,即ARP表项 3.实现网段内重复IP地址的检测
ARP相关数据报文
①ARP 请求报文:
-
ARP 请求报文是用来查询目标设备的 MAC 地址的。它包含了发送设备的 MAC 地址、IP 地址以及目标设备的 IP 地址。通常情况下,目标设备的 MAC 地址字段会被置为全 0。
-
在以太网上,ARP 请求报文的帧头目标地址会被置为广播地址(FF:FF:FF:FF:FF:FF),以确保所有设备都能收到这个请求。
②ARP 响应报文:
-
ARP 响应报文是对 ARP 请求的响应,它包含了目标设备的 MAC 地址。它的格式包含了发送设备的 MAC 地址、IP 地址以及目标设备的 MAC 地址和 IP 地址。
-
在以太网上,ARP 响应报文的帧头目标地址会被设置为发送 ARP 请求的设备的 MAC 地址,这样就确保了响应只会被发送 ARP 请求的设备接收到。
ARP的工作过程
此时有两个路由器R1和R2直连:R1的IP地址为192.168.8.10
,R2的IP地址为192.168.8.20
此时在设备上将IP地址配完后在R2设备上去ping
R1设备。(此时站在R2的视角,我们只知道R1设备的IP地址)
这个时候使用wireshark对R2
的e0/0
口进行抓包,查看此次ping操作产生的数据包;可以看到在ping的过程中不止产生ping操作相关的ICMP数据包还产生了ARP数据报文。
当一个设备R2知道了目标设备R1的IP地址,但不知道R1对应的MAC地址时,它会使用ARP协议发送一个广播消息到局域网中,询问谁有这个IP地址(192.168.8.10)对应的MAC地址?
,R1收到这个广播消息后,发现R2广播请求的IP与该自己的IP地址相匹配,就会回复包含自己MAC地址的消息;然后,R2收到回复后就会建立起IP地址与MAC地址的映射关系(R1和R2设备都会建立映射关系),往后就可以进行ICMP数据包的交互了(进行ping操作)。
IP、MAC地址映射表
思科、华为和华三设备查看ARP映射表
思科:Router>show ip arp
华为:<Huawei>display arp
华三:<H3C>display arp
操作系统中查看ARP映射表
1.Windows系统查看ARP映射表
arp –a
命令显示使用Windows操作系统的PC上所有接口的当前ARP表
arp -a -N ip_address
将arp命令的输出限制到单个接口
2.Linux系统查看ARP映射表
查看ARP缓存表,可以使用arp
命令
arp -a
这将显示系统当前的ARP缓存表,包括IP地址和相应的MAC地址。
总结:
ARP(Address Resolution Protocol)协议是一种用于将IP地址映射到物理MAC地址的协议,其工作流程包括以下步骤:
ARP请求:
当一个设备需要与另一个设备通信,但只知道目标设备的IP地址而不知道其MAC地址时,它会发送一个ARP请求消息(ARP Request)到局域网中。
ARP请求消息中包含了发起请求设备的IP地址、MAC地址(通常为广播地址FF:FF:FF:FF:FF:FF,表示发送给所有设备),以及目标设备的IP地址。
广播传播:
发送ARP请求的设备将该请求消息以广播的形式发送到局域网中的所有设备。
所有收到该广播消息的设备都会接收并检查消息的目标IP地址是否与自己相匹配。
ARP响应:
如果有设备发现自己的IP地址与ARP请求中的目标IP地址相匹配,则会向发起请求的设备发送一个ARP响应消息(ARP Reply)。
ARP响应消息中包含了目标设备的MAC地址以及发起请求设备的IP地址。
建立映射关系:
当发起请求的设备收到ARP响应消息后,就会将目标IP地址与MAC地址的映射关系存储在自己的ARP缓存中,以便将来进行通信时使用。
数据通信:
当发起请求的设备获得目标设备的MAC地址后,就可以使用该MAC地址来封装数据包,并将数据包发送到目标设备,实现数据通信。以后如果要与同一目标设备通信,发起请求的设备可以直接使用ARP缓存中存储的映射关系,而无需再次发送ARP请求。