第 7 章 · 物理层

这是全课篇幅最短的一章,我也不打算替它挽尊:物理层把比特变成信号搬上介质,工程上你几乎不会直接碰它,考试占比也小。但有两样东西值得带走:曼彻斯特编码解决的那个问题(同步),和两个定理算出来的那组数字(拨号上网的宿命)。

7.1 比特怎么变成信号:同步才是真问题

把 0/1 映射成电平、光脉冲或电磁波,看似随便定个高低就行,但马上会撞上同步问题:发送方连发十个 1,接收方收到的就是一段平平的电平,它凭什么知道这是十个比特而不是三个?时钟哪怕差千分之一,长帧累积下来的误差也能把比特边界数错。

曼彻斯特编码的解法很聪明:让每个比特中间必然发生一次跳变,跳变既携带数据,又携带时钟节拍,接收方靠它校准自己的比特边界:

比特:   1    0    1    1
      ┌──┐    ┌──┐ ┌──┐
   ───┘  └────┘  └─┘  └──    高→低 = 1,低→高 = 0(约定)

至于「高到低算 1 还是算 0」纯属约定,两套标准写法方向相反。约定依赖极性就留下隐患:两根线接反,整串全反。差分曼彻斯特更进一步,只看「比特边界处有没有跳变」来判断 0/1,和电平绝对方向无关,接反了照样解。代价是每比特至少一次跳变,带宽吃紧(10 Mbps 以太网需要 20 MHz 的信号带宽);后来的以太网改用 4B/5B 之类的块编码,把「保证足够跳变」的开销压到 25%,千兆以上再用更高效的 PAM 系调制,这条演化线知道存在即可。

基带传输把数字信号直接送上介质(以太网、光纤),频带传输先调制到高频载波再发(Wi-Fi、广播、ADSL),需要 modem(调制解调器,这名字就是这么来的)。

7.2 介质:三句话说完

双绞线便宜、易布设、抗干扰一般,百米封顶,局域网主力;光纤用光传信号,带宽近乎无限、抗电磁干扰、几十公里不中继,骨干与长距主力,且升级基本靠换两头的设备(波分复用一根纤跑几十个波长);无线胜在移动性,代价是共享空气、易受干扰。选型判断就一句:不动的往光纤走,要动的才用无线。

补一个值得记住的数字:光在光纤里大约 20 万公里每秒(真空光速的三分之二)。北京到洛杉矶的报文,光缆绕一万多公里,单程就是 60 ms 上下,这是任何技术都消不掉的物理下限,CDN 把内容搬到离你近的机房,本质就是在和这个数字作斗争。

7.3 两个定理:拨号上网的数学

「带宽」在物理层指频带宽度(Hz),别和「网速多少 Mbps」混为一谈。两个定理分别管两堵墙:

奈奎斯特定理,无噪声理想信道的数据率上限:

C=2Blog⁡2VC = 2B \log_2 V

BB 是带宽,VV 是信号离散电平数。它管的是符号率:每赫兹每秒最多传两个符号,电平数再多也救不了符号率本身。

香农定理,有噪声信道的数据率上限:

C=Blog⁡2(1+‘SNR‘)C = B \log_2(1 + \text`{SNR}`)

SNR 是信噪比,dB 换算:‘SNR‘‘dB‘=10log⁡‘10‘‘SNR‘\text`{SNR}`_`{\text{dB}}` = 10\log_`{10}`\text`{SNR}`。

拿老电话线算一笔账,这组数字我记了很多年。电话线可用带宽约 300 到 3400 Hz,取整 3000 Hz;信噪比大约 30 dB,换算成倍数约 1000。代入香农:

C=3000×log⁡2(1+1000)≈3000×9.97≈30‘kbps‘C = 3000 \times \log_2(1 + 1000) \approx 3000 \times 9.97 \approx 30 \text`{ kbps}`

拨号上网的 33.6 kbps 调制解调器,正是把电话线的香农极限榨到头的产物。后来的 56k 并没有把这堵墙推倒,它换了个游戏规则:局端设备数字直连、不再经过一段模拟线路,下行才敢冲 56k(上行照旧 33.6k)。而 33.6k 之前,各厂商就是按奈奎斯特加电平、按香农卡极限,在两堵墙之间跳舞。这个故事说明两个定理的关系:奈奎斯特说「电平堆再多,符号率有顶」,香农说「信噪比不动,数据率有顶」,实际系统两头都被卡。

练习

  1. 手算:带宽 4000 Hz、信噪比 20 dB 的信道,香农极限是多少?若想逼近它,按奈奎斯特至少需要多少个电平?
  2. 思考:光纤的「升级到更高速度」为什么比双绞线容易得多?从「换介质」和「换收发设备」的角度想。
  3. 思考:曼彻斯特编码把信号速率翻倍,换来了什么?如果让你为「噪声极小、距离极短」的芯片间总线选编码,你还会选它吗?