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 表中缓存 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 概述
相关文章: