计算机网络通讯的【系统性】扫盲——从“基本概念”到“OSI 模型”[1]基本概念

★基本概念

  为了足够通俗,俺先要介绍一些基本概念。

◇信道(channel

  这是通讯领域非常基本的概念,肯定要先聊聊它。
  通俗地说,信道就是“传送信息的通道”。

◇信道的类型

  首先,信道可以从广义上分为“物理信道 & 逻辑信道”。
  顾名思义,“物理信道”就是直接使用某种【物理介质】来传送信息;至于“逻辑信道”——是基于“物理信道”之上抽象出来的玩意儿(待会儿讲到“协议栈”的时候再聊)。

◇信道的带宽

  “带宽”指的是:某个信道在单位时间内最大能传输多少比特的信息。
  请注意:
  电气领域 & 计算机领域都有“带宽”这个概念,但两者的定义不太一样。电气领域所说的“带宽”指的是“模拟带宽”,单位是“赫兹/Hz”;计算机领域所说的“带宽”指“数字带宽”,单位是“比特率”或“字节率”。
  后续章节提到“带宽”,都是指计算机领域的术语。

◇带宽的单位——容易把外行绕晕

  “比特率”或“字节率”很容易搞混淆。用英文表示的话——大写字母 B 表示【字节】;小写字母 b 表示【比特】。

  由于带宽的数字通常很大,要引入“K、M、G”之类的字母表示数量级,于是又引出一个很扯蛋的差异——“10进制”与“2进制”的差异。
  【10进制】的 K 表示 1000;M 表示 1000×1000(1百万)
  【2进制】的 K 表示 1024(2的10次方);M 表示 1024×1024(2的20次方)
  为了避免扯皮,后来国际上约定了一个规矩:对【2进制】的数量级要加一个小写字母 i。比如说:Ki 表示 1024;Mi 表示 1024×1024 …… 以此类推。
  举例:
  1Kbps 表示“1000比特每秒”
  1KiBps 表示“1024字节每秒”

◇信道的工作模式:单工 VS 半双工 VS 全双工

  再来说说信道的工作模式。大致可以分为如下三种。为了让大伙儿比较好理解,俺对每一种都举相应的例子。

  单工(simplex)
  比如“电台广播”就是典型的【单工】。“电台”可以发信号给“收音机”,但“收音机”【不能】发信号给“电台”。

  半双工(half-duplex)
  比如“单条铁路轨道”,就是典型的【半双工】。火车在单条铁轨上,可以有两种运行方向;但对于同一个瞬间,只能选其中一个方向(否则就撞车了)。

  全双工(full-duplex)
  比如“光纤”就是典型的【全双工】。在同一根光导纤维中,可以有多个光束【同时相向】传播,互相不会干扰对方。

◇端点

  为了叙述方便,俺把参与通讯的对象(主体)称作“通讯端点”,简称“端点”。
  这里的“端点”是广义的,可以是硬件(比如某个网卡),也可以是软件(比如某个应用程序)。

◇单播、组播/多播、广播、选播

  对于“网络通讯”,至少得有 N 个端点参与,并且【N ≥ 2】才有意义。
  当 N 个端点构成一个网络,这时候就会涉及到“单播、组播、广播”这几个概念。
  通俗地说:
单播(unicast)——发送给网络中的指定的【单个】端点
组播/多播(multicast)——发送给网络中的指定的【多个】端点
广播(broadcast)——发送给网络中的【所有】端点
选播(anycast)——发送给网络中随机选择的【单个】端点

◇通讯协议(protocol)

  所谓的“通讯协议”就是:参与通讯的各方所采用的某种【约定】。只有大家都遵守这个约定,才有可能相互传递信息。
  打个比方:如果两个人要用自然语言交流,前提是:双方使用相同(或相互兼容)的自然语言。
  “通讯协议”就类似某种自然语言,参与通讯的多个端点,都必须能理解这个语言。


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注