网络知识总库

Book Notes · 07 / 14 · 综合进阶

数据与计算机通信
精读笔记

Stallings 的书厚在通信基础:信号会衰减、噪声会限制容量、比特必须先变成能在介质上活下来的波形。 第 10 版覆盖面很宽,本笔记不逐章跟读,而按六块抽出仍然值得带走的骨架—— 从传输与编码,走到链路、复用、局域网,最后扫一眼广域与无线。

作者 William Stallings 难度 中等偏厚 建议用时 约两周(精华) 笔记形式 主题精华

精华骨架:先让比特在介质上活下来

和自顶向下教材相反,Stallings 坚持从物理现象往上走。 读它不是为了再背一遍 HTTP,而是为了在排障时能区分: 这是信噪比问题、编码问题、链路重传问题,还是上层协议问题。

① 信号与介质→ ② 编码调制→ ③ 检错与 ARQ→ ④ 复用交换→ ⑤ 局域网→ ⑥ 广域 / 无线
FIG.0 — 六块精华:越往下越靠近波形,越往上越靠近网络结构
容量先于协议

奈奎斯特和香农给出的是物理上限。协议再聪明,也跳不出带宽与信噪比划定的盒子。

模拟 / 数字是两轴

数据可以是模拟或数字,信号也可以是模拟或数字。编码与调制处理的是这四种组合,不是一个「数字化」口号。

链路层补物理层

介质会出错。检错发现它,ARQ 恢复它。把恢复做成停等还是滑动窗口,取决于时延带宽积。

01

数据传输与信号 —— 介质决定上限

任何协议最终都要变成随时间变化的物理量。 这一块建立词汇:时域和频域、衰减和噪声、有线与无线介质、以及信道到底能装多少比特。

时域、频域与损伤

周期信号可以用频率、幅度和相位描述;非周期的数据信号则占有一段频谱。 信道只让一部分频率较好地通过,于是「带宽」首先是物理带宽,其次才是我们口头上的比特率。

信号在路上会遇到几类损伤。衰减让幅度随距离下降,且常常随频率变化,于是波形被拉歪。 延迟畸变让不同频率分量不同时到达。 噪声至少要分热噪声、互调、串扰和脉冲噪声:前几种相对连续,后一种是突然的尖峰,对数字信号特别伤。

衰减幅度下降;常随频率和距离变 延迟畸变不同频率走速不同,脉冲展宽 热噪声与温度、带宽有关的背景底噪 脉冲噪声突发尖峰;数字传输的主要敌人之一

有线与无线介质

导向介质把能量关在导体或光纤里:双绞线便宜、易受干扰;同轴屏蔽更好、部署更笨; 光纤带宽大、衰减小、不怕电磁噪声,但端接和有源器件更贵。 非导向介质是无线电、微波、红外与可见光:灵活,却要和干扰、法规频谱、视距一起谈判。

介质选择很少是「哪个更快」的单选题,而是距离、电磁环境、成本和是否要供电的组合。 同一套上层协议,换介质往往先换的是编码、功率和中继策略。

信源→ 发射机→ 介质 + 损伤→ 接收机→ 信宿
FIG.1 — 通信的最小图:协议栈全部发生在两端的发射机与接收机里

信道容量:两个上限

无噪声信道里,给定带宽,符号速率仍有上限,多电平可以在每个符号里塞更多比特——这是奈奎斯特给出的方向。 有噪声时,可区分的电平不能无限增加,香农用带宽和信噪比给出信息论上限。

工程上的数据率永远低于香农限。提高功率能改善信噪比,但会增加干扰和能耗; 加带宽能提高容量,频谱却是稀缺品。 读 Stallings 这一段,是为了以后看到「再加一种编码就能无限加速」时知道该在哪里刹车。

易混淆:赫兹带宽和比特率不是同一个量。 前者是信道放行的频率范围,后者是数字系统每秒送出的比特。 调制效率决定两者如何换算。把「百兆带宽」和「百兆比特每秒」混用,后面所有容量讨论都会串味。
02

编码与调制 —— 四种组合,不是一种「数字化」

数据有模拟和数字,信号也有模拟和数字。 编码与调制处理的是这张 2×2 表:数字数据如何变成数字信号或模拟信号,模拟数据如何被采样或被搬到载波上。

数字数据,数字信号

最朴素的做法是用高电平表示 1、低电平表示 0。 它实现便宜,但连续的 0 或 1 会让接收方丢失时钟,也有直流分量,不利于某些信道。

改进方向大致三类:在比特中间强制跳变以便提取时钟;用正负交替去掉直流; 先把若干比特映射成更利于传输的码字(块编码),再送到线上。 每多一层约束,就多一点冗余,换来的是同步和检错。

NRZ 一类简单;时钟与直流是弱点 曼彻斯特一类跳变带时钟;效率换同步 双极性 / AMI交替极性;利于抑制直流 块编码用冗余码字改善传输特性

数字数据,模拟信号

当信道是电话线路或无线频段这类「只认模拟波形」的管道时,数字比特必须去调制载波。 可以改幅度、改频率、改相位,或把幅度和相位一起改。 星座图越密,每符号比特越多,对噪声和失真也越敏感。

自适应调制让发送方按当前信噪比换档:信道好就走密星座,信道差就退回稀疏但更稳的点。 这是后面无线章里「速率会自己变」的物理根源。

比特→ 符号映射→ ASK / FSK / PSK / QAM→ 载波→ 模拟信道
FIG.2 — 数字进、模拟出:每符号塞得越多,对噪声越挑剔

模拟数据的数字化与模拟调制

语音一类模拟数据要进数字网,先采样再量化。 采样率必须高到能抓住最高关心频率,量化比特数决定量化噪声。 脉冲编码调制是这条路的代表;差分一类方法则只传变化,省比特、对误差累积更敏感。

模拟数据也可以继续走模拟信道:调幅、调频、调相把基带搬到合适的频段。 广播和传统电视走这条路。数字通信并没有消灭模拟调制,它只是常常把「要保护的对象」先变成比特。

易混淆:编码(数字信号之间的映射)和调制(用数字去改变模拟载波)经常被口语混成一个「调制编码」。 排障时要分开:线路码是给基带数字链路用的,载波调制是给带通信道用的。 搞错对象,会去调一个并不存在的载波,或抱怨一条本来就没有时钟恢复设计的 NRZ 链路。
03

差错控制与数据链路 —— 发现错误,再决定怎么办

物理层会交出带伤的比特。数据链路要成帧、检错,并在需要时请求重传。 Stallings 把这一段写得很「通信」:先有冗余理论,再有 ARQ 的三种节奏。

检错:从奇偶到循环冗余

奇偶校验最便宜,只能稳妥地抓住奇数个翻转。 因特网式的反码和覆盖面更宽,实现也简单,对突发错误仍然心有余而力不足。

循环冗余校验把比特串当作多项式,用双方约定的生成多项式去除,余数随帧发送。 生成式选得好,可以抓住大量突发错误。 它仍然是检错:发现了通常整帧丢掉,把恢复交给重传或上层。 前向纠错则多加冗余,让接收方就地修若干比特,适合重传太贵或时延不能忍的信道。

成帧→ CRC / 校验和→ ACK / NAK→ 停等/ 回退 N/ 选择重传
FIG.3 — 链路控制:先发现,再按管道粗细选择重传节奏

ARQ 的三种节奏

停等:发一帧,等确认。实现极简,时延带宽积一大就浪费管道。 回退 N:窗口向前滑,出错则从出错处整段重来,发送方简单,重传可能浪费。 选择重传:只补缺失序号,接收方要乱序缓存,带宽更省。

选择哪一种,看往返、出错率和实现预算,不是看谁「更先进」。 流量控制在链路层同样存在:接收方用窗口或就绪信号防止被淹没。 它和检错重传缠在一起,但保护对象是对端缓存,不是信道噪声。

面向比特的链路协议轮廓

经典的面向比特协议用标志定界、用位填充避免数据伪装成标志,用监督帧做确认和探询。 后来的点到点协议把封装、链路建立和网络层协商拆开,更适合在多种链路上承载 IP。

读这些协议不要陷进历史帧格式。要带走的是:成帧、透明传输、确认编号、连接建立与拆除, 是任何可靠链路都要回答的同一组问题。换了名字,问题还在。

易混淆:链路层 ARQ 和运输层重传看起来很像,时间尺度和失败范围不同。 前者对付一跳误码,往返通常很短;后者对付整条路径的丢失,往返可以跨洲。 两层都做,会重复;只做运输层,一跳误码会变成昂贵的端到端重传。
04

复用与交换 —— 把昂贵管道切开、再接起来

一根光纤或一条中继,很少只服务一对用户。 复用决定如何切开容量,交换决定如何把切开的容量在节点之间重新接上。

复用:频、时、统计、光

频分把频谱切成并行通道,简单、隔离好,不灵活。 时分把时间切成帧和时隙,适合数字中继;同步时分按计划给槽,空闲也占着。 统计时分只在有数据时才占用时隙,利用率高,要面对排队和溢出。

波分是光域里的频分:不同波长并行走在一根光纤里。 数字用户线一类接入技术则在普通铜线上切出上下行频段,把高频数据叠在语音之上—— 这是「复用发生在最后一公里」的日常例子。

FDM切频率;模拟友好;保护带浪费 TDM切时间;同步槽位可预测 统计复用按需占槽;换来排队 WDM切波长;光纤的并行之道

交换:电路、分组、信元

电路交换先建立专用通路再通话,时延稳定,空闲浪费容量。 分组交换把报文切块,按地址或标签转发,共享更好,时延变随机。 历史上还有把分组切成固定短信元的做法,动机是让语音和数据在同一套交换结构里获得更可预期的时延。

Stallings 用通信视角强调:交换结构本身也有内部阻塞、调度和信令。 「网络会转发」在实现上是一堆端口、一张表、一套争用规则。 这和教材里画一个云是两回事。

用户流→ 复用进干线→ 交换节点→ 再复用→ 对端拆出
FIG.4 — 广域网的日常:先切片,再在节点上重新拼接

为什么因特网站在分组这一边

数据突发、会话众多、路径要能绕开故障时,分组交换更划算。 语音和专线业务曾经把电路当作默认,后来也大量改走分组加优先调度。 复用与交换的组合决定了一张网的经济性,协议只是运行在这个经济性之上。

易混淆:统计复用和「尽力而为」常被说成一回事,其实一层是资源切法,一层是服务承诺。 可以在统计复用的管道上再做分类和预约,得到软一点的保证; 也可以在电路上跑尽最大努力的数据。把两者绑死,会看不懂运营商网络里的混合部署。
05

局域网 —— 短距离上的共享与交换

局域网的经典问题是:许多站点靠近,如何公平且高效地共用介质,以及后来如何用交换机把共享变成点对点。 拓扑、介质访问、以太网演进,是这一块的三条筋。

拓扑与介质访问

总线、环、星形各有故障域和布线含义。 今天物理上几乎都是星形(站点连到交换机),逻辑上仍要理解总线时代留下的访问算法—— 因为无线局域网还在共享介质。

访问算法仍是那三类:划分、随机、轮转。 有线共享以太网选择载波侦听加冲突检测;交换式全双工让冲突从日常里消失; 令牌环用轮转换公平,实现更重,最终在市场上让位。

共享总线→ 集线器→ 学习型交换机→ VLAN / 全双工
FIG.5 — 局域网主线:从「大家抢一根线」到「每端口一条线」

以太网为什么成为默认

以太网把帧格式保持得足够稳,同时把物理层速率和介质一换再换。 交换机自学 MAC 与端口的对应,未知则泛洪,已知则单播; VLAN 把广播域从物理机箱里切开。

成功的原因不全是算法最优,而是:实现便宜、演进兼容、与 IP 的配合足够薄。 Stallings 用它说明标准如何在技术与市场之间互相塑造——这和只讲 CSMA/CD 公式不是同一门课。

无线局域网接在同一张图上

把有线那套冲突检测搬到无线上会失败:自己发的时候听不清别人,隐藏终端让「空闲」不可信。 于是冲突避免、确认帧、可选的短控制帧预约,成为 802.11 的骨架。 基础设施模式让接入点桥到有线以太网,局域网的边界由此从「一栋楼的网线」扩成「一块频谱加一座桥」。

易混淆:交换机默认不隔离广播。 把冲突域切碎之后,ARP、DHCP 和错误的环路仍能淹没整个二层域。 局域网设计里「已经交换化」不等于「已经分层隔离」。
06

广域与无线概览 —— 距离和移动把约束改写

最后一块只抓仍然有用的结构,不追已过时的专有广域技术细节。 距离拉长之后,信令、计费、移动性和频谱政策会挤进本来只关心波形的图里。

广域:接入、汇聚、核心

广域网通常分成用户接入、城域汇聚和长途核心。 接入决定最后一公里的介质与认证,汇聚把大量用户统计复用进干线,核心追求高容量和可恢复的交换。

电路、分组和标签交换在不同年代占据过核心。 今天更常见的图景是:边缘仍然多样,核心趋向分组,用流量工程和优先调度去补偿电路曾经免费提供的可预期性。 读到过时的专有缩写可以跳,层次结构不要跳。

接入铜、纤、蜂窝;认证与计费在这里发生 汇聚统计复用;故障域开始变大 核心高容量交换;恢复比单链路速率更关键 互联运营商之间在交换点把路由接起来

蜂窝:有牌照的共享介质

蜂窝网把覆盖切成小区,用频率或码字的复用换容量,用切换保持移动中的会话。 和 Wi-Fi 比,它更中心化:频谱授权、用户鉴权、移动性锚点和计费都在运营商核心里。

世代演进改的是空口效率和核心网拆分方式,不是「移动性」这个需求本身。 对上层应用,可见差异往往是时延分布、NAT 行为和计费,而不是调制阶数。

终端→ 基站 / 接入点→ 接入网→ 核心 / 鉴权→ 因特网
FIG.6 — 广域与无线共用的骨架:接入、鉴权、再进入分组核心

和协议栈怎么接回去

Stallings 的通信基础一旦读完,应能把故障重新分类。 误码高、协商速率乱跳,先看信号与调制; 一跳内大量重传,先看链路 ARQ; 跨网丢包和乱序,再去运输层; 名字或内容出问题,才轮到应用。

这本书不替代 Kurose 或 Peterson,它补的是那两本常常一笔带过的物理与链路厚度。 精华读法就是:六块骨架能口头复述,细节公式留给需要算链路预算的那一天。

时代注记:第 10 版里仍有不少已被市场边缘化的广域专有技术。 跳过具体设备名并不亏,留下「接入—汇聚—核心」和「电路/分组/无线」的对照即可。 把过时缩写背全,反而会挤掉对容量和损伤的直觉。

读后自测 · 7 题

1. 为什么香农限不能靠「再换一种线路码」随便突破?
香农限由带宽和信噪比决定,是信息论上限。线路码和调制只是在逼近这个上限时做不同的工程折中。换编码可以改善同步、直流或实现成本,不能让信道在同样的物理约束下无限加速。
2. 数字数据和数字信号、数字数据和模拟信号,各用什么手段?
前者是线路编码:把比特映射成基带电平或码字。后者是载波调制:用比特去改变模拟载波的幅度、频率或相位。信道是基带数字链路还是带通模拟管道,决定走哪一条。
3. CRC 发现错误之后,链路通常做什么?
通常整帧丢弃,再靠确认与重传恢复。CRC 是检错不是自动纠错。若重传代价太高,才会改用前向纠错,用更多冗余换就地恢复。
4. 停等、回退 N、选择重传,选谁主要看什么?
看时延带宽积、出错率和实现预算。管道细或往返极短,停等就够;管道粗还用停等会空转。回退 N 省发送方状态,选择重传省重传带宽、费接收缓存。
5. 同步时分和统计复用差在空闲用户身上。
同步时分按计划给槽,用户沉默时槽位仍被占着。统计复用只在有数据时占槽,利用率高,但必须处理排队和偶尔的溢出。一个换可预期,一个换效率。
6. 为什么交换机普及后,CSMA/CD 反而变成历史知识?
全双工点对点链路不再共享碰撞域,边发边听、冲突后退没有用武之地。算法没有「被证明错误」,是介质和拓扑变了。同一套思想在无线共享介质里仍以冲突避免的形式活着。
7. 蜂窝网和 Wi-Fi 都是无线, Stallings 为什么仍要分开讲?
一个走授权频谱和运营商核心,移动性、鉴权、计费都在网内;一个通常走免许可频谱,接入点桥到局域网,移动性弱得多。空口都要对付衰减和干扰,网络架构不是同一张图。