交换方式
交换
交换方式 是指在通信网络中,数据从发送方传输到接收方时,网络节点(如交换机、路由器)处理和转发数据的方式。它决定了数据传输的路径、资源分配和效率。交换方式是通信网络设计的核心,直接影响网络的性能、时延和资源利用率。
电路交换、报文交换和分组交换是三种主要方式,其中分组交换又可以进一步分为 数据报和虚电路 两种方式:
电路交换
电路交换(Circuit Switching)是一种传统的通信方法,其中在发送方和接收方之间建立一个专用的通信路径(电路),该路径在整个通信过程中保持不变,其过程如下:
- 连接建立:发送方发起请求,通过交换设备(如电话交换机)在网络中为通信双方寻找并分配一条固定路径,建立端到端的专用电路。这需要信令系统协调。
- 数据传输:电路建立后,数据(语音、视频等)通过这条固定路径连续传输。整个通信期间,路径保持独占,即使没有数据传输,资源也不会释放。
- 连接释放:通信结束后,发送方或接收方发出终止信号,交换设备拆除电路,释放占用的资源(如带宽、端口)供其他用户使用。
电路交换的典型应用是 传统电话网络(PSTN)。其优缺点如下:
- 优点:
- 稳定性:一旦建立连接,通信是连续且稳定的。
- 低延迟:由于路径是专用的,数据传输没有竞争,延迟较低。
- 缺点:
- 资源浪费:路径在整个通信过程中被独占,即使没有数据传输时,资源仍然占用。
- 建立时延:建立连接需要时间,初始延迟较高。
报文交换
报文交换(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}$$
数据报和虚电路
在 分组交换 中,根据分组的路由和连接方式,分组交换分为数据报(Datagram)和虚电路(Virutal Circiut)两种模式:
- 数据报:一种 无连接 的分组交换方式,每个分组(数据报)独立传输,包含完整的源地址和目标地址,网络根据每个分组的头部信息动态选择路由路径。
- 虚电路 :一种 面向连接 的分组交换方式,在通信开始前建立一条逻辑路径(虚电路),所有分组沿此路径传输,模拟电路交换的稳定连接。
电路交换和虚电路的区别
- 电路交换:在通信开始前,为发送方和接收方建立一条 专用物理电路,整个通信期间独占该路径。数据通过固定路径连续传输,资源不共享。
- 虚电路:在 分组交换 网络中,模拟电路交换 的行为,通过逻辑路径(虚电路)传输数据。虚电路并非物理独占,而是通过协议在分组交换网络中建立的逻辑连接。
下表对比了数据报和虚电路的特性:
特性 | 数据报 | 虚电路 |
---|---|---|
连接性 | 无连接,每个分组独立处理 | 有连接,建立虚电路后传输分组 |
路由 | 每个分组独立路由 | 虚电路建立后,沿着相同路径路由 |
通信开销 | 较低,不需要建立和维护连接 | 较高,建立连接需要额外开销 |
分组到达顺序 | 不保证分组到达的顺序 | 保证分组按照发送顺序到达 |
分组丢失 | 可能出现分组丢失,需要上层协议处理 | 较低的丢包率,可靠传输 |
带宽利用率 | 不需要预留带宽,按需使用 | 预留带宽,可能造成资源浪费 |
适用场景 | Internet 中的 IP 数据包 | 电路交换、ATM 等有连接通信 |
例子 | Internet 中的 IP 分组 | 早期电话网络、ATM 网络 |
数据报和虚电路是两种不同的通信服务模型,适用于不同的通信需求和网络类型。数据报适合于互联网等不保证可靠传输的环境,而虚电路适合于对可靠性要求较高的电路交换和 ATM 等网络。选择合适的通信模型取决于应用需求和网络设计。