【计算机网络】ARP欺骗

      ARP属于网络层的一个协议。首先看一下网络层4个协议之间的层次。如下图。
【计算机网络】ARP欺骗
【计算机网络】ARP欺骗

Arp协议为地址解析协议。是根据IP地址获得物理地址的一个TCP/IP协议。每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。

ARP请求如下:
【计算机网络】ARP欺骗

所谓ARP欺骗,则是其他主机(主机C)向主机A发送一个硬件地址,但是此硬件地址并不是主机A想通信的硬件地址。当主机B发送了响应分组之后,主机C再发送他的硬件地址。此时,主机A误认为主机C的地址是主机B的地址,于是将数据包发送到主机C。至此,主机C完成了ARP欺骗。截取了主机A想发送给主机B的数据包。

使用 ARP 的四种典型情况

发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。

逆地址解析协议 RARP

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。