📅  最后修改于: 2023-12-03 15:08:06.964000             🧑  作者: Mango
地址解析协议(ARP,Address Resolution Protocol)是一种在计算机网络中用来将IP地址(IPv4或IPv6)解析成对应的物理地址(MAC地址)的协议。ARP通常运行在数据链路层,因此它仅对于本地网络有效。
ARP的作用是用一个32位的IP地址来表示网络上的一台计算机,而这台计算机具体的物理地址(MAC地址)则是由ARP协议进行解析得到的。其作用可简述如下:
ARP的实现机制可大致分为以下两部分:
当一个计算机需要将IP地址解析为MAC地址时,它会向网络上广播一个ARP请求消息,请求所有其他计算机告知自己需要查找的IP地址对应的MAC地址。ARP请求的具体格式如下:
ARP请求消息格式:
-------------------------------------
| 类型 | 硬件类型 | 协议类型 | 长度 |
-------------------------------------
| 1字节 | 2字节 | 2字节 | 1字节|
-------------------------------------
| 发送方MAC地址(6字节) |
-------------------------------------
| 发送方IP地址(4字节) |
-------------------------------------
| 目标MAC地址(6字节) |
-------------------------------------
| 目标IP地址(4字节) |
-------------------------------------
通过发送ARP请求,计算机可以得到网络上指定IP地址对应的MAC地址。如果网络上有多台计算机使用相同的IP地址,可能会引起冲突,这时需要使用DHCP动态分配IP地址或手动配置IP地址等方式来解决。
当网络上有一台计算机接收到ARP请求时,如果它的IP地址与请求消息中的目标IP地址匹配,那么它会向请求方回复一个ARP应答消息,包含自己的MAC地址。ARP应答的具体格式如下:
ARP应答消息格式:
-------------------------------------
| 类型 | 硬件类型 | 协议类型 | 长度 |
-------------------------------------
| 1字节 | 2字节 | 2字节 | 1字节|
-------------------------------------
| 发送方MAC地址(6字节) |
-------------------------------------
| 发送方IP地址(4字节) |
-------------------------------------
| 目标MAC地址(6字节) |
-------------------------------------
| 目标IP地址(4字节) |
-------------------------------------
通过接收ARP应答,计算机可以得到指定IP地址对应的MAC地址,并更新自己本地的ARP缓存表(即地址解析表),缓存IP地址和对应的MAC地址,以便后续的访问。
由于ARP消息是以广播形式发送的,因此有可能会被嗅探器截获,从而导致安全问题。ARP欺骗攻击(ARP Spoofing)就是一种基于ARP协议实现的网络攻击方式,攻击者可以通过操纵ARP消息中的IP地址和MAC地址,欺骗目标计算机与其通信,进而窃取机密信息,或者进行中间人攻击等操作。
为了防止ARP欺骗攻击,可以采用以下措施: