ARP协议
文|Seraph
ARP(Address Resolution Protocol),地址解析协议,根据IP地址获取物理地址的一个TCP/IP协议。
1. 为什么需要ARP协议
在局域网内,网络中实际传输的是“帧”,数据的传输所依懒的是MAC地址而非IP地址,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。而ARP协议的工作即是将已知的IP地址转换为MAC地址。
2. ARP机制
主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。
2. ARP协议过程解析
-
查看ARP缓冲表
arp -a命令
每台安装TCP/IP协议的电脑里,都有一个ARP缓冲表,表里的IP地址与MAC地址是一一对应的。
可使用arp -a命令查看当前缓冲表
-
假设主机A要和主机B通信
主机A先从自己的ARP缓冲表中寻找是否有主机B的IP地址,如果有也就知道了对方的MAC地址,也就可以直接通信了。
但如果未找到,主机A会在局域网内发送一个广播,目标MAC地址为“FF:FF:FF:FF:FF:FF",目标IP地址为主机B的IP地址,只有主机B会回应此广播。
当主机A接收到主机B回应后,会更新自己的ARP缓存表。 -
ARP缓存表
dynamic记录表示动态产生,static表示静态产生。
ARP缓冲表具有老化机制,一段时间某行没有使用,则会被删除,可以减少ARP缓冲表的长度,加快查询速度。
arp -s 与netsh命令都可实现IP/MAC绑定(即写ARP缓存表)
通常,arp -s 用于较简单情况下,netsh用于更为复杂的环境,功能更为强大;
二者明显的区别在于:
arp -s只能实现临时性IP/MAC绑定,重启系统后,绑定失效;
netsh则可实现永久性IP/MAC绑定,重启系统后任有效,并且可以指定网络接口。
4. 反向地址转换协议(RARP:Reverse Address Resolution Protocol)
反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。不是所有主机都会响应RARP协议,需要安装RARP服务器才能响应。
RARP应用会比较少,网络上的无盘工作站就是一个应用,设备不知道它自己的IP地址,但是知道自己的物理地址。