📚 第三章 数据链路
📄 一句话概括

模拟电话线的带宽只有 4 kHz,却跑出了 56 kbps——这是绕过香农极限的经典案例。 它绕的办法不是把频带变宽,是「去掉一次数模转换」。

📝 本节和前面几节的关系

这一节开始讲公共网络。第一个要讲的不是新技术,是最老的那条线:电话线。 3.7.3 的 ADSL 也跑在这条线上,区别只在「用哪个频段、用什么调制」。

一、先算理论极限

电话线给数据留的带宽是 4 kHz(人声的主要成分),上限由香农定理决定:

C = W * log2(1 + S/N)

W = 4000 Hz
S/N = 30 dB -> 1000 倍
C = 4000 * log2(1001) = 39.9 kbps

把信噪比换几档算一遍:30 dB 给 39.9 kbps,35 dB 给 46.5,40 dB 给 53.2。 每 3 dB 容量差不多翻一倍,这是香农公式里那个对数的直接后果。 而电话线的信噪比是固定的:它由线径、距离、接头氧化程度决定,你没法「调大」 (把功率开大只会串到隔壁那对线上,叫串音)。 所以 33.6 kbps 已经是「贴着极限跑」了—— 当年调制解调器的广告写「33.6K」,那不是随便挑的数,是算出来的。 这也解释了一个老现象: 同一个 Modem,在有的电话线上能连到 33.6,在有的线上只能连到 28.8 甚至 14.4。 不是设备坏了,是那条线的信噪比不够。 所以当年有个仪式性动作:拨号之前先「听一下线路有没有杂音」。

二、56k 是怎么突破的

如果两端都要做模数转换,理论上就到不了 56k。 所以 56k 的办法是「让其中一段全程走数字」:

方式 信号路径 上限
普通拨号 V.34 模 → 数 → 模 33.6 kbps
56k 下行 只有数 → 模 56 kbps
56k 上行 仍要模数转换 33.6 kbps

第二行是关键:如果 ISP 那一端全程是数字的(直接接在电话局的数字交换机上), 那么下行就少了一次「量化」的损失,理论上能到 64 kbps。 实际到 56,是因为还要留几个控制位、还要避开一路 8 kHz 采样的边角。 第三行说明了它为什么叫「不对称」:上行仍然要经过用户侧的模数转换,所以还是 33.6。 这大概是我们第一次见到「下载比上传快」的宽带——比 ADSL 还早,比有线电视宽带也早。 所以「56k 突破香农极限」这个说法要修正: 它没有突破 4 kHz 上的极限,它是「换了一条路径」—— 在那条路径上,信号根本没经过「模拟到数字」的那一步。 这是工程上很典型的一招:算不过去,就换一条路。

三、那段时间留下的习惯

算一下当年有多慢,就知道那些习惯是怎么来的:

速率 传 1 MB 折合
14.4 kbps 582.5 秒 9.7 分
33.6 kbps 249.7 秒 4.2 分
56 kbps 149.8 秒 2.5 分

传一张 1 MB 的照片,56k 要两分半钟;而今天传 1 GB 也就几秒。 这两个数放一起,就是「带宽」这三十年变化的全部体感。 当年的设计习惯全是被这个数逼出来的: 网页默认不显示图片、能用纯文字就不用图、一张图要压到 10 KB 以内、「省流量」是个正经需求。 今天的「移动端优先」「懒加载」其实是同一套思路的延续—— 只不过当年省的是电话费,现在省的是流量包和电池。 还有一个更隐蔽的遗产:按时间计费。 拨号上网是「一分钟多少钱」,所以「下线」是个动作。 今天已经没有「下线」这个概念了——「永远在线」是从 ADSL 包月才开始的。 技术变了,收费方式跟着变,使用习惯才跟着变。

四、动手 Demo:拨号上网的 56k 是怎么来的

先用香农公式算 4 kHz 电话线的理论上限,再算传 1 MB 要多久。 注意 30 dB 只能给 39.9 kbps,而 33.6k 的 Modem 已经贴着它跑了。

import math

for snr in (30, 35, 40):
    cap = 4000 * math.log2(1 + 10 ** (snr / 10.0))
    print('信噪比 %d dB -> 香农极限 %5.1f kbps' % (snr, cap / 1000))

for rate in (14400, 33600, 56000):
    sec = 8 * 1024 * 1024 / rate
    print('%5.1f k -> 传 1 MB %6.1f 秒(%.1f 分)' % (rate / 1000.0, sec, sec / 60))

实跑输出:

--------------------------------------------------------------------
拨号上网的 56k 是怎么来的
--------------------------------------------------------------------
**模拟电话线的带宽只有 4 kHz(话音频段),却在上面跑出了 56 kbps。**
**这件事在 1948 年香农就证明了「不可能」——所以 56k 只能靠一个巧妙的作弊。**

**先算「理论极限」**:
**信噪比 30 dB 时,香农极限是 39.9 kbps。**
**信噪比 35 dB 时,香农极限是 46.5 kbps。**
**信噪比 40 dB 时,香农极限是 53.2 kbps。**

**三分贝就能让容量翻倍**,可电话线的信噪比是固定的,
**所以「在 4 kHz 上做到 33.6 kbps」已经是极限附近了。**
**那 56k 是怎么突破的?靠「跳过一次数模转换」**:
  方式                 信号路径                        上限
  -------------------------------------------------------------------
  普通拨号(V.34)     **模拟 → 数字 → 模拟**          **33.6 kbps**
  56k(V.90 下行)     **只有数字 → 模拟(下行)**     **56 kbps**
  56k(V.90 上行)     仍然要模数转换                  **33.6 kbps**

**第二行说的是:如果一端(ISP 那边)全程是数字的**,
**那就少了一次「量化」的损失,理论上能到 64 kbps。**
**实际到 56,是因为还要留一点控制位。**
**这是「绕过理论极限」的经典案例**——**不是把 4 kHz 变宽了,是把「多余的转换」去掉了。**
**算一下当年有多慢**:
  速率      传 1 MB      折合
  ------------------------------
  14.4k     582.5 秒     9.7 分
  33.6k     249.7 秒     4.2 分
  56k       149.8 秒     2.5 分

**传一张 1 MB 的照片,56k 要两分半钟**:**而今天传 1 GB 也就几秒。**
**这两个数字放一起,就是「带宽」这三十年变化的全部体感。**
**还有一个细节值得记住**:**拨号上网是「按时间计费」的**,
**所以「省流量」这件事在当年是刚需**——
**图片默认不显示、网页尽量纯文字,都是被 56k 逼出来的设计习惯。**

「30 dB 得 39.9」这个数要记住:它说明「4 kHz 的线,理论上装不下 56k」。 所以凡是看到「56k 拨号」,第一反应应该是「它一定少了一段转换」。 这个推理路径比记住「56k 是 V.90」有用得多。 香农公式里那个对数有个实际后果:信噪比要涨 3 dB(功率翻一倍),容量才涨一倍。 所以「加大发射功率」这条路性价比极低—— 这也是为什么现代通信都在「换调制方式」和「加天线」上做文章,而不是一味加大功率。 56k 还有一个物理前提容易被忽略:整条路径上只能有「一次」模数转换。 如果中间经过老式载波电话设备(多一次转换),56k 就退化成 33.6。 所以 V.90 的 Modem 会先「探测」线路,发现对方不是纯数字接入,就自动降级。 「设备自己能协商」这件事,从那个年代就开始了。

30 秒实验

  1. 算一下:信噪比 25 dB 时,4 kHz 的线上限是多少?
  2. 想一下:为什么 56k 的上行还是 33.6,不能也做到 56?
  3. 查一下你家里的宽带是「光纤到户」还是「光纤到楼再走电话线」。

常见误区

  1. 以为「56k 突破了香农极限」。 没有突破,它换了一条少一次模数转换的路径。
  2. 以为「加大功率就能提速」。 每 3 dB 才翻一倍,而且会串音,性价比极低。
  3. 以为「拨号慢是因为设备差」。 4 kHz 的带宽摆在那儿,33.6 已经贴着理论上限。
自测三问(点开对答案) 1. 4 kHz、30 dB 的线,理论上限是多少? —— **约 39.9 kbps**,所以 33.6k 的 Modem 已经接近极限。 2. 56k 是怎么做到的? —— **让 ISP 侧全程数字,下行少一次模数转换**,理论上能到 64k,实际留控制位后是 56k。 3. 为什么上行只有 33.6? —— **上行仍然要经过用户侧的模数转换**,所以还是老极限。

下一节看移动通信:每一代到底差多少。

相关笔记