ARP(Address Resolution Protocol)是一种通过网络地址(IP)来定位机器MAC地址的协议。它通过解析网络层地址(IP)来找寻数据链路层地址(MAC)的网络传输协议。
ARP已经在很多网路层和数据链接层之间得以实现。不过在IPv6中用邻居发现协议(NDP)代替地址解析协议(ARP)。
ARP协议类似编程中的底层系统函数,一般用户用不到,或者没有太多单独使用场景。它一般结合着上层的协议使用,比如上层的TCP、UDP协议在发包的时候,都必须要得到一些通信参数,比如本机IP,本机MAC,目标IP,目标MAC,如果在缺失MAC地址的时候,就会自动调用ARP协议,ARP会去自动获取到对方的MAC地址,并填充回来。
ARP协议的目的是根据IP地址获取到机器的MAC地址。IP地址和MAC地址是两个关键的通信参数,没有他俩就做不了。
IP地址的主要作用是在跨越不同网络的情况下进行通信时对设备进行寻址,以便把数据包正确地发送到目标计算机。IP地址是逻辑地址,用于在网络层寻址和路由选择。IP地址可以分为公共IP地址和私有IP地址。私有IP地址是在局域网中使用的,只在局域网内部有效,用于在局域网中进行内部通信。
MAC地址在网络接口控制器(NIC)中预设,一般由设备制造商分配,具有全球唯一性。在局域网中,设备之间的通信通常是通过MAC地址实现的,而不是通过IP地址。
ARP协议的工作原理主要分为三个步骤:广播找MAC过程、缓存IP、MAC过程和更新缓存过程。
广播找MAC过程是指ARP向路由(或交换机)广播一条消息,以获取目标IP的MAC地址。缓存IP、MAC过程是指当非目标机器收到消息时,直接丢弃;而目标IP机器收到消息后,回复一条消息,告知自己的MAC地址,源IP机器收到目标机器的MAC地址后,将其缓存。更新缓存过程是指当有一台或多台机器的IP发送了改变,它们会在局域网内发送一个特殊ARP包,通知其他机器更新缓存。
ARP协议的攻击原理主要包括ARP缓存投毒攻击、ARP欺骗网关攻击、ARP泛洪攻击和IP地址冲突攻击。
针对ARP攻击,常见的攻击软件包括Ettercap和WireShark。为了防范ARP投毒攻击,可以使用静态ARP表项、启用ARP检查、部署ARP防护软件、进行网络隔离、加强网络监控、使用VPN、及时更新系统补丁、教育用户、使用安全协议和定期安全审计等方法。
如果需要了解更多ARP协议的相关内容,可以观看视频:
一条视频讲清楚什么是ARP协议-ARP攻击
。