ARP协议是一个三层协议,工作在第二层(数据链路层)
ARP协议是一种地址解析协议,将一至IP地址解析为MAC地址,从而进行数据交互,ARP协议是一个2.5层协议
一,ARP协议
地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。
二,ARP协议工作流程
1.工作流程的两个阶段
ARP请求
ARP响应
主机发送信息时将包含目标 IP 地址的 ARP 请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回 ARP 应答后将该 IP 地址和物理地址存入本机 ARP 缓存中并保留一定时间,下次请求时直接查询 ARP 缓存以节约资源。
2.ARP协议的报文格式
目的 MAC | 源 MAC | 帧的 类型 | 硬件 类型 | 协议 类型 | 硬件 地址 长度 | 协议 地址 长度 | opcode 请求为1 相应为2 | 请求方 IP MAC | 目的方 IP MAC | 帧的校验 |
3.ARP缓存
ARP缓存主要目的:避免重复发送ARP请求
在windows命令行中可以使用arp -a查看缓存,同时使用arp -d清除缓存