交换方式

掌握三种交换方式的发送方法,并且学会计算传输时延和传输时间,可能在选择题中考察。

交换

连接建立
A
B
C
D
数据传送
连接释放
电路交换
A
B
C
D
报文交换
A
B
C
D
分组交换
报文
报文
报文
报文
P
P
P
P
P
P
P
P
P
比特流直达终点
报文
报文
报文
分组
分组
分组
存储转发
存储转发

电路交换

电路交换(Circuit Switching)是一种传统的通信方法,其中在发送方和接收方之间建立一个专用的通信路径(电路),该路径在整个通信过程中保持不变。

电路交换的优缺点如下:

  • 优点:
    • 稳定性:一旦建立连接,通信是连续且稳定的。
    • 低延迟:由于路径是专用的,数据传输没有竞争,延迟较低。
  • 缺点:
    • 资源浪费:路径在整个通信过程中被独占,即使没有数据传输时,资源仍然占用。
    • 建立时延:建立连接需要时间,初始延迟较高。

报文交换

报文交换(Message Switching)不需要建立专用路径,整个报文作为一个单元传输,节点存储并转发整个报文。

报文交换主要用于早期的电报和一些数据网络中。

报文交换的优缺点如下:

  • 优点:
    • 灵活性:不需要建立专用线路,可以动态选择路径。
    • 适应性:适合于突发性的数据传输。
  • 缺点:
    • 高延迟:每个节点都需要存储和转发整个报文,增加了延迟。
    • 资源占用:大报文可能占用较多的存储资源。

分组交换

分组交换(Packet Switching)将数据分成小的分组(或数据包),每个分组独立传输,并可能通过不同路径到达目的地。

分组交换已经广泛应用于互联网,比如当前的 IP 协议就是分组交换的一种实现。

注意

报文(Message)和分组(Packet)的区别?

报文是一个完整的、不可再分的数据单元,通常包含一个完整的信息或者文件。

分组是将数据分割成较小的、固定大小的单位,每个单位可以独立传输。

如今互联网已经很少见到报文交换了,报文和分组时一种概念。IP 分组(Packet)就是分组的一种实现,如果没有网络层的话,UDP 的 Datagram 直接进入数据链路层,UDP 的 Datagram 就是一个报文(Message)。

分组交换是对报文交换的一种改进,它具备如下优点:

  • 高效性:网络资源按需分配,多个通信可以共享同一物理路径。
  • 鲁棒性:分组可以通过不同路径传输,网络故障时能自动选择替代路径。
  • 适应性强:适合于多种类型的数据传输(语音、视频、数据等)。

其缺点与报文交换类似,由于分组可能通过不同路径到达,可能导致抖动和延迟。

传输时间计算

电路交换 的传输时间包含 连接建立 和 数据传输的时间:

  1. 建立时间:在进行数据传输之前,需要建立一个专用的电路连接,这个过程会产生一定的延迟。设立连接时间为 $T_{\text{setup}}$。

  2. 传输时间:一旦电路建立,数据传输时间主要取决于数据量和带宽。传输时间 $T_{\text{transmission}}$ 可以用公式表示为:

    $$ T_{\text{transmission}} = \frac{\text{数据大小}}{\text{带宽}} $$

  3. 总传输时间:总传输时间包括建立时间和传输时间:

    $$ T_{\text{total}} = T_{\text{setup}} + T_{\text{transmission}} $$


报文交换分组交换 的场景更加复杂一些,我们需考虑多种时延 以及 不同链路之间的带宽差异。 但是两者的思路类似,不同点在于报文和分组的大小不同,这里以分组交换来进行说明。

A
B
C
D
传播时间
传输时间
排队时间
总时间
带宽
B1
B2
B3

下面举一个比较全面的例子来说明一下,网络中有 A、B、C、D 四个结点,其中链路的带宽分别为 $B_1$、$B_2$、$B_3$。 在从结点 A 发送分组至结点 D 的过程中,总时间主要包含三种时延:传播时延、传输时间 和 排队时间。

首先,假设信号传播速度为 $\text{speed}$,A 到 D 之间的距离为 $L$,则:

$$\text{传播时延} = \frac{L}{\text{speed}}$$

假设每个分组的大小为 $P$,则 A → B 的传输时间为 $P / B_1$,B → C 的传输时间为 $P / B_2$,C → D 的传输时间为 $P / B_3$。由下图可知,不同链路间的分组传输存在流水线的 overlap 现象,A 向 B 发送完第一个分组后即可发送第二个分组。 在这种情况下,如果 A 向 D 传输 $k$ 个分组的话,则总传输时间受限于带宽最低的链路,若 $B_1$ 为链路最低的带宽的话,则:

$$\text{总传输时间} = \frac{k \times P}{B_1} + \frac{P}{B_2} + \frac{P}{B_3}$$

上述公式是一种特殊的情况,如果 $B_{i} < B_{j} < B_{k} < \cdots$ 的话,则

$$\text{总传输时间} = \frac{k \times P}{B_i} + \frac{P}{B_j} + \frac{P}{B_k} + \cdots \text{(一般情况)}$$

一般排队时间在试题中都不需要考虑,所以总时间为传输时间和传播时延之和:

$$\text{总时间} = \frac{L}{\text{speed}} + \frac{k \times P}{B_1} + \frac{P}{B_2} + \frac{P}{B_3}$$

数据包和虚电路

结点A
结点D
结点D
结点C
结点E
结点F
结点G
主机A
主机B
结点A
结点D
结点D
结点C
结点E
结点F
结点G
主机A
主机B
P1
P2
P1
P1
P1
P1
P2
P2
P2
P2
ACK
ACK
ACK
ACK
ACK
数据报
虚电路
ACK
特性数据报虚电路
连接性无连接,每个分组独立处理有连接,建立虚电路后传输分组
路由每个分组独立路由虚电路建立后,沿着相同路径路由
通信开销较低,不需要建立和维护连接较高,建立连接需要额外开销
分组到达顺序不保证分组到达的顺序保证分组按照发送顺序到达
分组丢失可能出现分组丢失,需要上层协议处理较低的丢包率,可靠传输
带宽利用率不需要预留带宽,按需使用预留带宽,可能造成资源浪费
适用场景Internet中的IP数据包电路交换、ATM等有连接通信
例子Internet中的IP分组早期电话网络、ATM网络

数据报和虚电路是两种不同的通信服务模型,适用于不同的通信需求和网络类型。数据报适合于互联网等不保证可靠传输的环境,而虚电路适合于对可靠性要求较高的电路交换和ATM等网络。选择合适的通信模型取决于应用需求和网络设计。