🚀 学习笔记:通信 (9645) 🚀

未来的计算机科学家们,大家好!本章至关重要,因为它带领我们将目光从单台计算机的“内部运作”转向计算机之间的“沟通方式”——这正是整个互联网的基石!别担心“波特率(baud)”或“异步(asynchronous)”这些术语听起来很专业,我们将通过简单易懂的日常类比来拆解它们。让我们一起来看看数据是如何传输的吧!

3.14.1 通信

3.14.1.1 通信方式:数据是如何移动的

串行与并行数据传输

当计算机向另一台设备发送数据(比特序列,例如 10110010)时,主要有两种选择:

1. 并行传输 (Parallel Transmission):想象一条多车道的高速公路。

  • 数据通过多条导线同时发送(例如,8位数据在同一时刻通过8条独立的导线传输)。
  • 优点: 在短距离内非常快速,因为一个完整的字节可以在一个时钟周期内发送完毕。
  • 缺点: 长距离传输时,定时误差会成为主要问题。这被称为偏移(skew),即由于导线长度不完全相同,导致比特到达时间不一致。此外,它还需要更昂贵、更笨重的线缆。

2. 串行传输 (Serial Transmission):想象一条单行道。

  • 数据通过单根导线或通道每次发送一个比特
  • 优点: 长距离传输时高度可靠成本低廉。由于所有比特都在同一路径上传输,不会出现偏移。
  • 缺点: 在极短距离内,速度比并行传输慢。

💡 现实生活中的例子
你每天都在使用串行传输!USB(通用串行总线)就是一种串行技术。以太网电缆也是串行的。尽管看起来速度较慢,但其长距离传输的可靠性使其成为网络连接和外部设备的首选。

总结: 串行用于长距离和高可靠性场景;并行用于短距离的内部任务(如 CPU 向内部 RAM 发送数据)。

同步与异步数据传输

选择了使用多少根导线后,我们需要决定如何对数据传输进行“定时”。

1. 同步传输 (Synchronous Transmission)

  • 数据以大块或流的形式发送。
  • 发送方和接收方共享一个公共的时钟信号或定时参考。接收方根据这个时钟准确知道下一个数据块何时到达。
  • 数据块之间不需要额外的起始位或停止位,因此对于大容量数据传输非常高效
  • 类比: 花样游泳队。每个人都按照一个共同的节拍器移动。

2. 异步传输 (Asynchronous Transmission)

  • 数据以单个字节或小数据包的形式发送。
  • 发送方和接收方不共享公共时钟。每一份独立数据都有自己的定时。
  • 这需要额外的控制位(起始位 start bit停止位 stop bits)来封装数据。
  • 类比: 发送短信。每一条信息都是独立的,并被包裹在自己的寻址信息中。

起始位与停止位的作用

异步通信中,这些额外的位对于接收方正确解读数据至关重要:

  • 起始位 (Start Bit):这是一个在实际数据字节发送前发出的特殊信号(通常为 0)。其目的是让接收方的定时机制(内部时钟)立即与发送方的时钟保持同步。它告诉接收方:“一个新的数据字节现在正在到达!”
  • 停止位 (Stop Bit(s)):这是一个在数据字节后立即发出的信号(通常为 1 个或多个 1)。
    • 它告诉接收方:“这就是字节的结尾。”
    • 在较老或较慢的系统中,它还提供了一个必要的时间间隔,让接收方处理刚收到的字节,并为下一个可能的起始位做好准备。
💡 快速回顾: 串行/并行 vs 同步/异步

串行/并行 决定了使用“多少条”导线(物理配置)。

同步/异步 决定了数据如何“定时”(逻辑结构)。

3.14.1.2 通信基础:性能度量

讨论网络性能时,我们使用几个关键术语来衡量速度、容量和延迟。

关键定义

掌握这些术语的精确定义非常关键:

1. 协议 (Protocol)
一套商定的规则和标准,用于管理设备之间如何传输和接收数据。协议确保所有设备说同一种“语言”。
示例: TCP/IP, HTTP。

2. 波特率 (Baud Rate)
在传输介质上每秒发生的信号事件(或符号变化)次数。
类比: 交通信号灯每分钟变换颜色的次数。

3. 比特率 (Bit Rate)
每秒传输的比特数 (bps)。这衡量的是实际移动的数据量。
类比: 每秒通过某一点的车辆总数。

4. 带宽 (Bandwidth)
数据在网络路径上传输的最大速率。通常被想象为“管道的粗细”。
注意: 通常以每秒比特数 (bps) 为单位,代表容量上限。

5. 延迟 (Latency)
在发出数据传输指令后,数据传输开始之前的时间延迟。本质上是第一个比特从源点到达目的地所需的时间。
类比: 快递的配送时间——点击“发送”与收件人开始接收数据之间的延迟。

波特率与比特率:关键区别

这是同学们最容易混淆的地方。

核心区别在于:比特率可能高于波特率

  • 波特率 衡量信号状态“改变”了多少次。
  • 比特率 衡量实际承载了多少个“比特”。

为什么会有这种差异?先进的编码技术(如现代调制解调器所使用的)可以在一次信号变化(符号)中编码超过一个比特的数据。

示例: 如果一次信号变化承载 4 个比特的数据(例如通过使用 16 种不同的电压电平),且信号每秒变化 1000 次(1000 Baud):

比特率 = 1000 (Baud) $\times$ 4 (每信号变化的比特数) = 4000 bps。

记住: 始终关注比特率,将其作为衡量真实数据吞吐量的标准。如果没有特殊说明,1 Baud 通常等于 1 bps,但在高速通信中,比特率通常远高于波特率。

比特率与带宽的关系

比特率与带宽直接成正比

将带宽视为通信信道的理论最大容量。比特率则是实现的实际速度。更大的带宽允许更高的潜在比特率(每秒传输更多数据)。如果你增加了带宽(加粗“管道”),你就能提高比特率(输送更多数据)。

冷知识:
“Baud”一词源自埃米尔·博多 (Émile Baudot),他发明了早期的一种电报代码。这个词的存在时间比现代数字通信要长得多!

✅ 通信模块重点回顾

  • 串行传输是网络通信之王,因为它避免了长距离下的偏移(定时误差)。
  • 异步传输需要起始位/停止位来管理每个字节的定时。
  • 比特率 (bps) 是实际数据速度;波特率是信号变化速度。比特率 $\ge$ 波特率。
  • 带宽是容量,直接限制了可实现的比特率