ARP协议(地址解析协议)

文章目录

  • ARP协议(地址解析协议)
    • MAC地址
    • ARP协议
      • ARP具体实现
        • 同一链路
        • 不同链路
      • ARP 缓存
        • 缓存查询
      • APR请求/响应报文

ARP协议(地址解析协议)

MAC地址

MAC 地址的全称是 Media Access Control Address,即媒体访问控制地址,它是网络上以太网或网络适配器的唯一标识符。MAC 地址能够区分不同的网络接口,并用于多种网络技术,尤其是大多数 IEEE 802 网络。

MAC 地址也称为物理地址,硬件地址和老化地址。主要用于识别数据链路中互联的节点。

MAC 地址长 48 bit,MAC 地址中第1位确定单播地址(0)/多播地址(1),第2位确定全局地址(0)/本地地址(1),的 3 - 24 位表示厂商识别码,每个 NIC 厂商都有特定唯一的识别数字。25 - 48 位是厂商内部为识别每个网卡而用

ARP协议

ARP 协议的全称是Address Resolution Protocol(地址解析协议),它是一个通过用于实现从 IP 地址到 MAC 地址的映射,即询问目标 IP 对应的 MAC 地址 的一种协议。ARP 协议在 IPv4 中极其重要。

ARP 就是一种解决地址问题的协议,它以 IP 地址为线索,定位下一个应该接收数据分包的主机 MAC 地址。如果目标主机不在同一个链路上,那么会查找下一跳路由器的 MAC 地址。

ARP具体实现

同一链路

  1. 主机 A 想要获取主机 B 的 MAC 地址,通过主机 A 会通过广播的方式向以太网上的所有主机发送一个ARP 请求包,这个 ARP 请求包中包含了主机 A 想要知道的主机 B 的 IP 地址的 MAC 地址。
  2. 主机 A 发送的 ARP 请求包会被同一链路上的所有主机/路由器接收并进行解析。
  3. 每个主机/路由器都会检查 ARP 请求包中的信息,如果 ARP 请求包中的目标 IP 地址 和自己的相同,就会将自己主机的 MAC 地址写入响应包返回主机 A

不同链路

通常 ARP 会被路由器隔离,但是采用**代理 ARP (ARP Proxy) **的路由器可以将 ARP 请求转发给临近的网段。使多个网段中的节点像是在同一网段内通信

ARP 缓存

ARP 高效运行的关键就是维护每个主机和路由器上的 ARP 缓存(或表)。这个缓存维护着每个 IP 到 MAC 地址的映射关系。通过把第一次 ARP 获取到的 MAC 地址作为 IP 对 MAC 的映射关系到一个 ARP 缓存表中,下一次再向这个地址发送数据报时就不再需要重新发送 ARP 请求了,而是直接使用这个缓存表中的 MAC 地址进行数据报的发送。每发送一次 ARP 请求,缓存表中对应的映射关系都会被清除。通过 ARP 缓存,降低了网络流量的使用,在一定程度上防止了 ARP 的大量广播。MAC 地址的缓存有一定期限,超过这个期限后,缓存的内容会被清除。

缓存查询

在 Linux 中使用 arp 查询缓存

查询结果主要包含五项:

  • 主机名 — 对应一个 IP 地址
  • 硬件地址类型
  • 硬件地址
  • 标志
  • 本地网络接口

标志主要分为三类: C 、M 或 P,C 表示的是由 ARP 协议动态学习。M 类可以通过 arp -s 增加一条。P 类表示的是发布,对于任何 P 类项目,主机对输入的 ARP 请求都返回一个 ARP 响应。这个选项用于配置代理 ARP。

APR请求/响应报文

下面是在以太网中转换一个 IPv4 的地址常用的 ARP 请求或响应的报文格式。

ARP协议(地址解析协议)_第1张图片

前面 14 个字节构成标准以太网的首部,前两个字段 DST 和 SRC 分别表示 以太网的目的地址以太网的源地址,以太网的目的地址如果是 ff:ff:ff:ff:ff:ff 全部为 1 表示广播地址,在同一广播域中的所有以太网接口可以接收这些帧。后面紧跟着的是 ARP 请求的长度/类型,ARP 请求 和 ARP 应答这个值为 0x0806

  • 硬件类型表示硬件地址的类型,硬件地址常见的有 MAC 物理或者以太网地址,对于以太网来说,此值为 1。
  • 协议类型指出映射的协议地址类型,对于 IPv4 地址,这个值是0x0800
  • 硬件大小协议大小分别指出硬件地址和协议地址的字节数。对于以太网中使用 IPv4 的 ARP 请求或应答,它们的值分别是 6 和 4。
  • Op字段指出如果是 ARP 请求,Op = 1,ARP 应答 ,Op = 2,RARP 请求 Op = 3,RARP 应答,Op = 4。
  • 紧跟在 Op 之后的是发送方硬件地址(MAC 地址)发送方的协议地址(IPv4 地址)目的硬件地址目的协议地址

你可能感兴趣的:(网络,智能路由器)