交换方式
交换
电路交换
电路交换(Circuit Switching)是一种传统的通信方法,其中在发送方和接收方之间建立一个专用的通信路径(电路),该路径在整个通信过程中保持不变。
电路交换的优缺点如下:
- 优点:
- 稳定性:一旦建立连接,通信是连续且稳定的。
- 低延迟:由于路径是专用的,数据传输没有竞争,延迟较低。
- 缺点:
- 资源浪费:路径在整个通信过程中被独占,即使没有数据传输时,资源仍然占用。
- 建立时延:建立连接需要时间,初始延迟较高。
报文交换
报文交换(Message Switching)不需要建立专用路径,整个报文作为一个单元传输,节点存储并转发整个报文。
报文交换主要用于早期的电报和一些数据网络中。
报文交换的优缺点如下:
- 优点:
- 灵活性:不需要建立专用线路,可以动态选择路径。
- 适应性:适合于突发性的数据传输。
- 缺点:
- 高延迟:每个节点都需要存储和转发整个报文,增加了延迟。
- 资源占用:大报文可能占用较多的存储资源。
分组交换
分组交换(Packet Switching)将数据分成小的分组(或数据包),每个分组独立传输,并可能通过不同路径到达目的地。
分组交换已经广泛应用于互联网,比如当前的 IP 协议就是分组交换的一种实现。
注意
报文(Message)和分组(Packet)的区别?
报文是一个完整的、不可再分的数据单元,通常包含一个完整的信息或者文件。
分组是将数据分割成较小的、固定大小的单位,每个单位可以独立传输。
如今互联网已经很少见到报文交换了,报文和分组时一种概念。IP 分组(Packet)就是分组的一种实现,如果没有网络层的话,UDP 的 Datagram 直接进入数据链路层,UDP 的 Datagram 就是一个报文(Message)。
分组交换是对报文交换的一种改进,它具备如下优点:
- 高效性:网络资源按需分配,多个通信可以共享同一物理路径。
- 鲁棒性:分组可以通过不同路径传输,网络故障时能自动选择替代路径。
- 适应性强:适合于多种类型的数据传输(语音、视频、数据等)。
其缺点与报文交换类似,由于分组可能通过不同路径到达,可能导致抖动和延迟。
传输时间计算
电路交换 的传输时间包含 连接建立 和 数据传输的时间:
建立时间:在进行数据传输之前,需要建立一个专用的电路连接,这个过程会产生一定的延迟。设立连接时间为 $T_{\text{setup}}$。
传输时间:一旦电路建立,数据传输时间主要取决于数据量和带宽。传输时间 $T_{\text{transmission}}$ 可以用公式表示为:
$$ T_{\text{transmission}} = \frac{\text{数据大小}}{\text{带宽}} $$
总传输时间:总传输时间包括建立时间和传输时间:
$$ T_{\text{total}} = T_{\text{setup}} + T_{\text{transmission}} $$
报文交换 和 分组交换 的场景更加复杂一些,我们需考虑多种时延 以及 不同链路之间的带宽差异。 但是两者的思路类似,不同点在于报文和分组的大小不同,这里以分组交换来进行说明。
下面举一个比较全面的例子来说明一下,网络中有 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}$$
数据包和虚电路
特性 | 数据报 | 虚电路 |
---|---|---|
连接性 | 无连接,每个分组独立处理 | 有连接,建立虚电路后传输分组 |
路由 | 每个分组独立路由 | 虚电路建立后,沿着相同路径路由 |
通信开销 | 较低,不需要建立和维护连接 | 较高,建立连接需要额外开销 |
分组到达顺序 | 不保证分组到达的顺序 | 保证分组按照发送顺序到达 |
分组丢失 | 可能出现分组丢失,需要上层协议处理 | 较低的丢包率,可靠传输 |
带宽利用率 | 不需要预留带宽,按需使用 | 预留带宽,可能造成资源浪费 |
适用场景 | Internet中的IP数据包 | 电路交换、ATM等有连接通信 |
例子 | Internet中的IP分组 | 早期电话网络、ATM网络 |
数据报和虚电路是两种不同的通信服务模型,适用于不同的通信需求和网络类型。数据报适合于互联网等不保证可靠传输的环境,而虚电路适合于对可靠性要求较高的电路交换和ATM等网络。选择合适的通信模型取决于应用需求和网络设计。