首页 > 代码库 > 链路层寻址与 ARP

链路层寻址与 ARP

一、 MAC 地址

不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址。因此,具有多个网络接口的主机或路由器将具有与之相关联的多个链路层地址。
然而,链路层交换机并不具有与它们接口相关联的链路层地址。这是因为链路层交换机的任务是在主机与路由器之间承载数据报;交换机透明地执行该项任务,也就是说,主机或路由器不必明确地将帧寻址到其间的交换机。
技术分享?
尽管 MAC 地址被设计为永久的,但用软件改变一块适配器的 MAC 地址是可能的。

二、地址解析协议

因为存在网络层地址和链路层地址,因此需要在它们之间进行转换。对于因特网来说,这个协议就是 ARP 协议。
DNS 和 ARP 协议的一个重要区别是,DNS 为因特网中任何地方的主机解析主机名,而 ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址。
每台主机或路由器在其内存中具有一个 ARP表 (ARP table),这张表包含 IP 地址到 MAC 地址的映射关系。这张表中也包含了一个寿命 (TTL) 值。从一个表项放置到某 ARP 表中开始,一个表项通常的过期时间是 20 分钟。
技术分享?
ARP协议的几点:

  1. 查询 ARP 报文是在广播帧中发送的,而响应 ARP 报文是在一个标准帧中发送的。
  2. ARP 是即插即用的。
    也就是说一个 ARP 表是自动建立的,不需要系统管理员来配置。
    并且如果某主机与子网断开连接,它的表项最终会从留在子网的结点的表中删除掉。
  3. 可以把 ARP 协议看成是跨越链路层和网络层边界两边的协议
    ARP 帧封装在链路层帧中,因此在链路层之上。此外,一个 ARP 分组具有包含链路层地址的字段。

三、发送数据报到子网以外

技术分享?
主机必须把数据报首先发给第一跳路由器,因此发出的链路帧的 MAC 地址是路由器接口的 MAC 地址。
如何获得这个 MAC 地址呢?当然是通过 ARP 协议。

链路层寻址与 ARP