# 数据传输
# 数据交换方式
假设主机 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 技术相比,令牌环更稳定,不可能发生冲突。
- 时分多路复用(TDM)