1. 链路层寻址和 ARP

1.1 MAC 地址

  • 主机和路由器具有链路层地址(之前不是讲过主机和路由器具有网络层地址吗?)。为什么在网络层和链路层都需要地址呢?
  • 事实上 ,并不是主机或路由器具有链路层地址,而是它们的适配器(即网络接口)具有链路层地址
  • 重要的是注意到链路层交换机并不具有与它们的接口(这些接口是与主机和路由器相连的)相关联的链路层地址
    • 因为链路层交换机的任务是在主机与路由器之间承载数据报
    • 交换机透明地执行该项任务
    • 这就是说,主机或路由器不必明确地将帧寻址到其间的交换机
  • 链路层地址有各种不同的称呼: LAN 地址 (LAN address) 、物理地址( physical address) 或 MAC 地址 (MAC address)。MAC 地址的称呼较为常见
  • MAC 地址长度为 6 字节,每个字节被表示为一对十六进制数。eg:1A-2F-BB-76-09-AD
  • MAC 地址固化在 ROM 中不可改变,但有的也可以通过软件改变
  • 局域网中每块网卡都有一个唯一的 MAC 地址,这是怎么做到的呢?
    • IEEE 在管理着该 MAC 地址空间
    • 网卡生产商购买 MAC 地址空间(前 24 比特,唯一)
    • 公司自己为每个适配器生成后 24 比特的唯一组合
  • MAC 地址 vs IP 地址
    • MAC 类似于身份证号,IP 类似于邮政地址
    • MAC 地址是“平面” 地址,可“携带”,从一个 LAN 移到另一个 LAN
    • IP 地址是层次地址,不可“携带”,IP 地址依赖于结点当时连接到哪个子网
    • 就像一个人的邮政地址和身份证号码那样,一台主机具有一个网络层地址和一个 MAC 地址是有用的

1.2 ARP:地址解析协议

  • 网络层地址与链路层地址间需要进行转换。对于因特网而言,这是地址解析协议 (Address Resolution Protocol , ARP) 的任务。
  • ARP 将一个 IP 地址解析为一个 MAC 地址。 在很多方面它和 DNS 类似, DNS 将主机名解析为 IP 地址
    • 重要区别:DNS 为在因特网中任何地方的主机解析主机名;ARP 只为在同一个子网上的主机和路由器接口解析 IP 地址
  • 具体如何工作的?—— ARP 表
    • 每台主机或路由器在 其内存中具有一个 ARP 表
    • 这张表包含 IP 地址到 MAC 地址的映射关系
    • 表中还包含 一个寿命 (TTL) 值,它指示了从表中删除每个映射的时间,通常为 20 分钟

1.2.1 同一子网内

  • 例子:A 想要给在同一局域网内的 B 发送数据报
    • 如果 A 的 ARP 表具有 B 的表项,这个任务是很容易完成的
    • 如果 B 的 MAC 地址不在 A 的ARP 表中
      • A 利用广播帧发送 ARP 查询分组
        • 其中包含 B 的IP 地址
        • 目的地址为 FF-FF-FF-FF-FF-FF
        • LAN 中所有的结点都会接收 ARP 查询
      • B 接收 ARP 查询分组,IP 地址匹配成功,向 A 应答 B 的 MAC 地址
        • 利用标准帧向 A 发送相应 ARP 报文
      • A 在其 ARP 表中缓存 B 的 IP-MAC 地址对,直到超时
  • ARP 是 “即插即用” 协议,结点自主创建 ARP 表,无需干预

1.2.2 发送数据报到子网以外

  • 情形:当子网中的主机 A 要向子网之外(跨越路由器的另一个子网)的主机 B 发送网络层数据报
    计算机网络学习(十二) 链路层 Ⅱ
  • 过程:
    • A —— R左
      • A 构造 IP 数据报(源 IP 地址是 A 的 IP,目的 IP 地址是 B的 IP )
      • A构造链路层帧(源 MAC 地址是 A 的 MAC 地址,目的 MAC 地址是 R 的左接口的 MAC 地址)
      • 帧从 A 发送至 R,R 提取 IP 数据报,传输给上层 IP 协议
    • R右 —— B
      • R 通过查询路由器中的转发表来决定该数据报要被转发的正确接口
      • R 转发数据报(源和目的 IP 地址不变)
      • R 创建链路层帧(源 MAC 地址是 R的右接口 MAC 地址,目的 MAC 地址是 B 的 MAC 地址)
      • 最终达到目的地 B

2.以太网

2.1 概述

  • 以太网几乎占领着现有的有线局域网市场

相关文章: