# 数据传输

# 数据交换方式

  • 假设主机 A 与主机 B 之间建立了通信线路(即信道),主机 B 与主机 C 之间建立了通信线路。则主机 A 与主机 C 不能直接通信,但可以经过主机 B 转发,从而间接通信。

  • 计算机网络中,通常存在大量节点。每个节点既可以为了自己发送、接收数据,也可以帮忙转发其它节点的数据。

  • 下面介绍计算机网路中,数据传输(又称为数据交换)的几种常见方式。

  • 电路交换(Circuit Switching)

    • :又称为线路交换。早期的计算机网络,采用这种交换方式。
    • 原理:
      • 在通信之前,先给通信双方建立一条直接的物理线路。
    • 优点:
      • 该线路不会被第三方使用,不会被干扰、泄密。
    • 缺点:
      • 需要事先建立信道,存在成本、耗时。
      • 双方不通信时,这条专用线路就浪费了。
  • 报文交换(Message switching)

    • 原理:
      • 不要求通信双方之间建立直接信道,而是允许经过第三方转发。
      • 以报文为单位传输数据。
      • 每个报文中,记录了源地址、目标地址等信息,告诉第三方将该报文转发到哪个节点。
      • 网络中每个节点,转发数据的流程:先接收一整个报文,临时存储在本机,然后转发给其它节点。
  • 分组交换(Packet switching)

    • :又称为包交换。
    • 原理:
      • 在报文交换的基础上,做了优化。
      • 将一个长报文,分成多个较短的分组,逐个传输。
    • 优点:
      • 降低了传输延迟。因为不必等收到整个报文才转发,而是收到一个分组就可以转发。
      • 降低了出错率。因为每个分组的内容少,不容易出错。
    • 缺点:
      • 每个分组都要记录源地址、目的地址等信息,导致网络传输的数据量更大。

# 传输顺序

  • 假设使用一个信道,发送 1 byte 即 8 bit 的数据,则通常有两种顺序:
    • 串行通信
      • :先发送第 1 个 bit ,然后发送第 2 个 bit ,以此类推,依次发送 8 个 bit 。
    • 并行通信
      • :同时发送 8 个 bit 。
      • 有的信道很窄,同时只能发送 1 个 bit ,因此只支持串行通信。
      • 有的信道可以同时发送 8 个 bit ,因此既支持串行通信,也支持并行通信。

# 传输方向

  • 假设主机 A 与主机 B 通过一条信道连接,那么允许往哪个方向传输数据?
    • 单工通信
      • :永远只能往一个方向传输数据。
      • 比如只允许主机 A 发送数据给主机 B ,不允许主机 B 发送数据。
    • 半双工通信
      • :可以双向传输,但同一时间只能往一个方向传输。
    • 全双工通信
      • :可以随时双向传输。
      • 如果一个信道提供了全双工通信的功能,那么它也可以进行单工通信、半双工通信。

# 传输速率

  • 比特率
    • :每秒传输的比特数,单位为 bps 。
    • 1 Bytes/s = 8 kbps
    • 1 kbps = 1*1024/8 Bytes/s = 128 Bytes/s
  • 波特率
    • :每秒传输的码元数,单位为 Baud 或 symbol/s 。
    • 数字通信中,通常用时间间隔相同的符号,作为一个码元,来表示一个二进制值,该时间间隔称为码元长度。
    • 如果数据经过了压缩,则一个码元可能表示多个二进制位,因此波特率不一定等于比特率。
  • 电路中的带宽,是指频带宽度,又称为频宽。而通信中的带宽,是指信道的最大传输速率,即每秒最多传输的比特数。
    • 例如:信道的带宽为 1 Mbps 时,网速最高为 1*(1024/8) = 128 KB/s ,不过实际传输速率通常低一些。

# 介质访问控制

  • 当多个网络节点共享一个通信介质(或者说信道)时,可能不止一个节点同时发送信号,产生冲突。为了避免这种情况,人们研发了多种介质访问控制(Media Access Control,MAC)技术,又称为信道访问控制。例如:
    • 时分多路复用(TDM)
      • :将信道的使用时长,分为多份。每个节点轮流使用信道一段时间。
    • 频分多路复用(FDM)
      • :将信道按频带分为多个子信道,从而可以同时传输多路信号。
    • 带冲突检测的载波监听多路访问(CSMA/CD)
      • 每个节点发送数据之前,要进行载波监听:
        • 检查信道是否空闲,如果其它节点正在发送数据,则等待信道变为空闲。
      • 每个节点发送数据的同时,要进行冲突检测:
        • 如果数据帧的长度,小于理论的最小长度,则说明发生了冲突,需要等待一段时间,重新发送数据。
      • 多路访问,是指在信道空闲时,每个节点都有权发送数据。
    • 令牌环(Token Ring)
      • 同时只能有一个主机能用令牌发送数据,此时其它主机只能接收数据。
      • 优点:与 CSMA/CD 技术相比,令牌环更稳定,不可能发生冲突。