6计算机网络:自顶向下方法(原书第8版)

无线网络和移动网络

移动时代的网络

WiFi802.11蜂窝网络移动IP漫游

🎯 AI 时代的学习建议:不要只读理论。理解这一章的设计动机(为什么需要这个概念?)和边界条件(什么情况下会失效?)。当 AI 生成的代码涉及这些概念时,你能判断它是否用对了场景。AI 能帮你总结内容,但无法替代你亲手阅读、思考、建立直觉的过程。

第6章:链路层和局域网(The Link Layer and LANs)

一、导读

6.1 本章学习目标

链路层负责在相邻节点之间传输数据。本章讲解差错检测技术、多路访问协议、以太网、交换机以及数据中心网络。

本章的核心学习目标包括:

  • 掌握差错检测技术:奇偶校验、CRC
  • 理解多路访问协议:ALOHA、CSMA、CSMA/CD
  • 掌握以太网:帧格式、MAC 地址、交换机
  • 理解 VLAN:虚拟局域网
  • 了解数据中心网络:叶脊架构
  • 掌握 ARP 协议:IP 地址到 MAC 地址的映射

6.2 为什么链路层如此重要

链路层是网络的基础。所有的网络通信最终都要通过链路层传输。理解链路层的工作原理,对于理解网络性能、调试网络问题至关重要。

链路层运行在"节点到节点"的范围内:一个节点(主机或路由器)通过链路层协议与直接相连的另一个节点通信。虽然 IP 负责端到端的分组传输,但每一跳的实际传输都由链路层完成。

6.3 核心问题引导

在阅读本章时,请带着以下问题思考:

如何检测数据在传输过程中是否出错?

多个节点如何共享同一条通信信道?

以太网帧的格式是什么?MAC 地址有什么作用?

交换机是如何工作的?它与集线器有什么区别?

VLAN 的作用是什么?如何实现跨交换机的 VLAN 通信?


二、核心概念详解

2.1 差错检测

2.1.1 奇偶校验

在数据后添加一个校验位,使得 1 的个数为偶数(偶校验)或奇数(奇校验)。

数据:1011001
偶校验:1011001 0(1的个数为4,偶数)

奇偶校验只能检测奇数个比特错误,不能检测偶数个比特错误,也不能纠正错误。二维奇偶校验可以检测并纠正单比特错误。

2.1.2 CRC(循环冗余校验)

CRC 将数据视为多项式,除以一个生成多项式,余数作为校验码。

数据:1011001
生成多项式:1001
CRC:1011001 001

CRC 的检错能力非常强:可以检测所有单比特错误、所有双比特错误(只要生成多项式选择得当)、所有奇数个比特错误、以及大部分突发错误。以太网使用的 CRC-32 生成多项式是 IEEE 标准定义的。

2.2 多路访问协议

多路访问协议解决多个节点共享同一信道的问题。

2.2.1 ALOHA

  • 纯 ALOHA:随时发送,冲突后随机等待。效率最高约 18%。
  • 时隙 ALOHA:在时隙开始时发送。效率最高约 37%。

ALOHA 是最简单的多路访问协议,虽然效率低,但它是理解更复杂协议的基础。

2.2.2 CSMA(载波侦听多路访问)

发送前先监听信道:

  • 信道空闲:发送
  • 信道忙碌:等待

CSMA 比 ALOHA 效率高得多,但由于传播时延的存在,仍然可能发生冲突。

2.2.3 CSMA/CD(带冲突检测的 CSMA)

以太网使用的协议。发送时继续监听,检测到冲突就停止发送,等待随机时间后重试。

CSMA/CD 的退避算法采用二进制指数退避:第 n 次冲突后,从 {0, 1, ..., 2^n - 1} 中随机选择一个数 K,等待 K 个时隙。这种机制使得冲突后的重传时间自适应增长。

2.3 以太网

以太网是最常见的局域网技术。

2.3.1 以太网帧格式

字段长度功能
前导码8 字节同步时钟
目的 MAC6 字节接收方地址
源 MAC6 字节发送方地址
类型2 字节上层协议
数据46-1500 字节载荷
FCS4 字节CRC 校验

以太网帧的最小长度为 64 字节,这个限制与 CSMA/CD 的冲突检测有关:确保发送方在发送完帧之前能够检测到冲突。

2.3.2 MAC 地址

MAC 地址是 48 位的硬件地址,全球唯一。

格式:XX:XX:XX:XX:XX:XX
示例:00:1A:2B:3C:4D:5E

MAC 地址由 IEEE 分配给厂商,厂商负责分配唯一地址。MAC 地址的前 24 位是 OUI(组织唯一标识符),标识厂商。

2.4 交换机

交换机工作在链路层,根据 MAC 地址转发帧。

2.4.1 自学习

交换机自动学习 MAC 地址与端口的映射:

记录源 MAC 地址和输入端口

查表转发:如果目的 MAC 在表中,转发到对应端口

泛洪:如果目的 MAC 不在表中,向所有端口(除输入端口)泛洪

交换机的自学习机制使得它不需要任何配置即可工作。交换表(也称为转发表或 MAC 地址表)有一个老化时间(通常 300 秒),超过老化时间的条目会被删除。

2.4.2 生成树协议(STP)

STP 防止交换机之间的环路。它通过阻塞某些端口,将网络拓扑转换为一棵树。STP 的选举过程包括:选择根桥、选择根端口、选择指定端口。虽然 STP 会浪费一些链路带宽,但它提供了冗余路径——当活动链路故障时,STP 可以重新计算生成树。

2.5 VLAN

VLAN(虚拟局域网)在逻辑上将一个物理局域网分成多个广播域。

交换机1                    交换机2
┌─────────┐              ┌─────────┐
│ VLAN 10 │──Trunk──→──│ VLAN 10 │
│ VLAN 20 │              │ VLAN 20 │
└─────────┘              └─────────┘

VLAN 的好处包括:隔离广播流量、增强安全性、灵活的网络管理。跨交换机的 VLAN 通信使用 Trunk 链路和 802.1Q 标签。VLAN 间的通信需要路由器或三层交换机。

2.6 数据中心网络

现代数据中心采用叶脊(Leaf-Spine)架构:

  • 叶交换机:连接服务器
  • 脊交换机:连接叶交换机
  • ECMP:等价多路径,负载均衡

叶脊架构的优势是:任意两个叶交换机之间的距离相同(两跳),所有路径的带宽相同。这使得负载均衡更加简单,网络性能更加可预测。


三、深入分析

3.1 ARP(地址解析协议)

ARP 将 IP 地址转换为 MAC 地址:

广播 ARP 请求:谁有 IP X.X.X.X?

目标单播回复:我有,我的 MAC 是 XX:XX:XX:XX:XX:XX

ARP 是链路层和网络层之间的桥梁。ARP 表有缓存机制,缓存条目有老化时间。ARP 也存在安全隐患:ARP 欺骗(ARP spoofing)攻击可以伪造 MAC 地址映射。

3.2 以太网 vs WiFi

特性以太网WiFi
协议CSMA/CDCSMA/CA
介质有线无线
冲突检测有无(使用 RTS/CTS)
速度1G/10G/40G/100G最高 Wi-Fi 6 (9.6Gbps)

WiFi 不使用 CSMA/CD 是因为无线环境中冲突检测不可靠(隐藏终端问题)。WiFi 使用 CSMA/CA 和 RTS/CTS 机制来避免冲突。

3.3 MPLS(多协议标签交换)

MPLS 使用标签而不是 IP 地址进行转发,提高转发效率。MPLS 在链路层和网络层之间工作,被称为"2.5 层"协议。MPLS 支持流量工程和虚拟专用网络(VPN)。在 MPLS 网络中,入口路由器为每个分组打上标签,后续路由器根据标签进行转发,出口路由器移除标签。这种方式使得路由器可以使用固定长度的标签进行查表转发,而不需要解析变长的 IP 首部。

3.4 链路层与网络层的关系

链路层和网络层的关系是"逐跳"与"端到端"的关系。IP 协议负责将分组从源主机端到端地传输到目的主机,但每一跳的实际传输由链路层完成。当分组到达一个路由器时,网络层决定下一跳的 IP 地址,链路层负责将分组实际发送到下一跳。ARP 协议是连接这两层的桥梁:它将网络层的 IP 地址转换为链路层的 MAC 地址。


四、实践案例

4.1 案例一:使用 arp 和 ip 命令分析链路层

bash
# 查看 ARP 表
arp -a

# 查看 MAC 地址
ip link show

# 手动添加 ARP 条目(防止 ARP 欺骗)
arp -s 192.168.1.1 00:11:22:33:44:55

通过 ARP 表可以了解本地网络中的设备。如果 ARP 表中出现异常的 MAC 地址映射,可能是 ARP 欺骗攻击的迹象。

4.2 案例二:使用 Wireshark 分析以太网帧和 ARP

启动 Wireshark,过滤 eth 或 arp

观察以太网帧的格式

分析 MAC 地址和 ARP 请求/响应

观察交换机的自学习过程

通过 Wireshark 可以直观地看到 ARP 请求的广播特性和 ARP 响应的单播特性。


五、常见误区

5.1 误区一:"交换机比路由器快"

交换机和路由器工作在不同层次,不能简单比较。现代路由器的转发速度也可以达到线速。选择交换机还是路由器取决于网络需求,而非速度。

5.2 误区二:"MAC 地址可以路由"

MAC 地址只在局域网内有效,不能跨网络路由。跨网络通信需要 IP 地址。MAC 地址用于同一链路内的节点通信,IP 地址用于端到端的通信。

5.3 误区三:"VLAN 是物理隔离"

VLAN 是逻辑隔离,不是物理隔离。同一 VLAN 的设备可能在同一台交换机上,也可能在不同的交换机上。VLAN 间的通信需要三层设备。

5.4 难点:理解生成树协议

STP 的选举过程(根桥、根端口、指定端口)比较复杂,需要理解端口代价和桥 ID。根桥是桥 ID 最小的交换机;根端口是到根桥代价最小的端口;指定端口是每个链路上到根桥代价最小的端口。RSTP(快速生成树协议)是 STP 的改进版本,能够更快地收敛(通常在几秒内完成),现代交换机默认使用 RSTP。MSTP(多生成树协议)则允许在不同 VLAN 上使用不同的生成树实例,实现负载均衡。


六、本章小结

第6章讲解了链路层的核心技术:

差错检测 使用 CRC 校验

多路访问协议 解决共享信道问题

以太网 是最常见的局域网技术

交换机 根据 MAC 地址转发帧

VLAN 逻辑上划分广播域

数据中心网络 采用叶脊架构

后续章节将讲解无线网络和移动网络。链路层技术从有线以太网发展到无线 WiFi,再到移动通信,每一代技术都在带宽、延迟和覆盖范围上取得了显著进步。


七、思考题

假设一个以太网使用 CRC-32 校验。如果传输过程中恰好有 32 个比特出错,CRC 能否检测到这些错误?为什么?

比较 CSMA/CD 和 CSMA/CA 的区别。为什么 WiFi 不使用 CSMA/CD?什么是隐藏终端问题和暴露终端问题?

一个交换机有 24 个端口,每个端口连接一台主机。如果主机 A 向主机 B 发送一个帧,而交换机的转发表中没有主机 B 的 MAC 地址,交换机会怎么做?如果主机 B 的 MAC 地址在表中呢?

VLAN 的作用是什么?如果两个 VLAN 之间需要通信,需要什么设备?为什么?

比较叶脊架构和传统三层架构的优缺点。为什么现代数据中心倾向于使用叶脊架构?


6/9无线网络
0%