上一章讲解了 IP 协议,IP 协议具有定位功能。通过 IP 协议,我们就能够在广域网中找到主机的位置。ARP 协议则是已知 IP 地址,找到 MAC 地址的协议。在我们知道 MAC 地址之后就可以在网络的链路上传送数据帧。RARP 被称为反地址解析协议,即已知 MAC 地址,找到 IP 地址,现在已经用得比较少了。

ARP(地址解析协议)

ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络 IP 地址转化为物理 MAC 地址。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。在每台安装有TCP/IP 协议的电脑里都有一 个 ARP 缓存表,表里的 IP 地址与 MAC 地址是一一对应的。

不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

ARP:即通过 IP 地址找 MAC 地址的协议,电脑中会有一张 ARP 缓存表。

逻辑地址 IP

物理地址 MAC

网络级

物理级

全局唯一性

本地唯一性

软件实现

硬件实现

32位

48位

根据ip地址获取mac地址 java 根据ip获取mac地址的协议_硬件地址

根据ip地址获取mac地址 java 根据ip获取mac地址的协议_IP_02

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。

ARP 高速缓存的作用

  • 为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将 自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。
  • 当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射 写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数 据报时就更方便了。

应该注意的问题

  • ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。
  • 如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下 的工作就由下一个网络来做。
  • 从 IP 地址到硬件地址的解析是自动进行的,主机的用户对这种地址 解析过程是不知道的
  • 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由 器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要 的硬件地址
  • 默认情况下ARP缓存的超时时限是两分钟

ARP 相关命令

  • arp –d清除本机arp缓存表
  • arp –a查看本机当前arp表
  • arp –s绑定arp地址(注意:本次机器生效,下次重启后会全部失效)

RARP(反向地址解析协议)

根据ip地址获取mac地址 java 根据ip获取mac地址的协议_硬件地址_03

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道 其 IP 地址。这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。