ARP(Address Resolution Protocol)地址解析协议
是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;
也就是说它是一种将IP地址转化成物理地址的协议。ARP具体说来就是将网络层的地址解析为数据链路层的物理地址(物理地址并不一定指MAC地址)。
收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;
我的理解
可能我想象的ARP就是相当于公安局,比如说有一个小朋友走丢了,然后他的父母去报警,这个时候警察收集的信息就是相当于目标ip,如果说在父母报警之前就已经有人看到这个小朋友并告诉了警察叔叔,而且警察叔叔这里已经有了记录,那么警察叔叔会先从记录里面查找有关的信息,这个记录就是相当于ARP缓存,而如果这个小朋友没有走丢的记录,那么警察叔叔可能会发布消息,这个发布消息的过程就相当于把目标ip告诉了网络上的所有主机,这样如果有人看到这个小朋友(物理地址)那么就会告诉这个家长(发送信息的主机),这个告诉家长的过程就是返回消息的过程,这样这个家长就和孩子相互找到了,然后这个案子就成功破解了。
ARP命令
ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。
ARP欺骗
在局域网中,黑客通过收到ARP Request广播包,能够偷听到其它节点的 (IP, MAC) 地址, 黑客就伪装为A,告诉B (受害者) 一个假地址,使得B在发送给A 的数据包都被黑客截取,而B 浑然不知。
由于局域网的网络流通不是根据IP地址进行,而是根据MAC地址进行传输。所以,MAC地址在A上被伪造成一个不存在的MAC地址,这样就会导致网络不通,A不能Ping通B!这就是一个简单的ARP欺骗。