Skip to content

电路交换、报文交换与分组交换


在网络核心部分起重要作用的是路由器(Router),它对收到的分组进行存储转发来实现分组交换。要了解分组交换的原理,首先要学习电路交换和报文交换的相关概念。

电路交换

最典型的电路交换网是传统电话网,其电路交换示意图如图所示。


HTML 初体验

从通信资源分配的角度看,交换就是按照某种方式动态地分配传输线路的资源。

电路交换分为三步:

  • 建立连接:开始占用通信资源
  • 传输数据:一直占用通信资源
  • 释放连接:归还通信资源

在进行数据传输前,两个用户之间必须先建立一条专用的物理通信路径(由通信双方之间的交换设备和链路逐段连接而成)。在数据传输过程中,这一物理通信路径始终被两个用户独占,直到通信结束后才被释放。

在电路交换中,电路建立后,除源节点和目的节点外,电路上的任何节点都采取“直通方式”发送数据和接收数据,即不存在存储转发所耗费的时间。在电路交换的整个通信阶段,比特流连续地从源节点直达目的节点,就好像在一个管道中传送。


优点:

  • 通信时延小 因为通信线路为通信双方专用,数据直达,所以传输速率高。
  • 有序传输 双方通信时按发送顺序传送数据,不存在失序问题。
  • 没有冲突 不同的通信双方拥有不同的信道,不会出现争用物理信道的问题。
  • 实时性强 通信双方之间的物理通路一旦建立,双方就可随时通信。

缺点:

  • 建立连接时间长 电路交换的平均连接建立时间对计算机通信来说太长。
  • 线路利用率低 物理通路被通信双方独占,即使线路空闲,也不能供其他用户使用。
  • 灵活性差 物理通路中的任何一点出现故障,就必须重新拨号建立新的连接。
  • 难以实现差错控制 中间节点不具备存储和检验数据的能力,无法发现并纠正错误。

计算机之间的数据传送往往是突发式(高频、少量)的,当使用电路交换来传送数据时,已被用户占用的通信线路资源在绝大部分时间里都是空闲的,其利用率往往不到 10% 甚至 1% 。

报文交换

数据交换的单位是报文,用户数据加上源地址、目的地址等信息后,后封装成报文(Message)。

报文交换采用存储转发技术,整个报文先传送到相邻的节点,全部存储后查找转发表,转发到下一个节点,如此重复,直至到达目的节点。每个报文都可单独选择到达目的端的路径。

优点:

  • 无建立连接时延 通信前无须建立连接,没有建立连接时延,用户可随时发送报文。
  • 灵活分配线路 交换节点存储整个报文后,选择一条合适的空闲线路,转发报文。若某条传输路径发生故障,则可重新选择另一条路径传输数据。
  • 线路利用率高 报文在一段链路上传送时才占用这段链路的通信资源。
  • 支持差错控制 交换节点可对缓存下来的报文进行差错检验。

缺点:

  • 转发时延高 交换节点要将报文整体接收完后,才能查找转发表转发到下一个节点。
  • 缓存开销大 报文的大小没有限制,这就要求交换节点拥有较大的缓存空间。
  • 错误处理低效 报文较长时,发生错误的概率相对更大,重传整个报文的代价也很大。

分组交换

分组交换也采用存储转发技术,但解决了报文交换中报文过长的问题。若报文太长,则对交换节点的缓存容量就有很大的需求,在错误处理方面也比较低效。

源主机在发送之前,先把较长的报文划分成若干较小的等长数据段,在每个数据段前面添加一些由必要控制信息(如源地址、目的地址和编号信息等)组成首部,构成分组(Packet),如图所示。


HTML 初体验

源主机将分组发送到分组交换网中,分组交换网中的分组交换机收到一个分组后,先将其缓存,然后从其首部中提取目的地址,据此查找自己的转发表,再后将分组转发给下一个分组交换机。经过多个分组交换机的存储转发后,分组最终到达目的主机。


除继承报文交换的优点外,还有如下优点:

  • 方便存储管理,存储转发开销小 因为分组的长度固定,所以相应缓冲区的大小也固定。
  • 传输效率高 分组是逐个传输的,可以使后一个分组的存储操作与前一个分组的转发操作并行,这种流水线方式减少了报文的传输时间。
  • 减少了出错概率和重传代价 因为分组较短,其出错概率必然减小,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,还减小了传输时延。

缺点:

  • 存在存储转发时延 尽管分组交换比报文交换的传输时延小,但相对于电路交换仍存在存储转发时延,且其节点交换机必须具有更强的处理能力。
  • 需要传输额外的信息量 每个小数据段都要加上控制信息以构成分组,这使得传送的信息量增大了 5% ~ 10%,进而使得控制复杂,降低了通信效率。
  • 当分组交换网采用数据报服务时,可能出现失序、丢失或重复分组的情况 分组到达目的主机时,要对分组按编号进行排序等工作,而这些工作很麻烦。若采用虚电路服务,则虽然没有失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。

下图给出了三种交换方式的比较。当要连续传送大量的数据,且其传送时间远大于连接建立时间时,采用电路交换较为合适。从提高整个网络的信道利用率看,报文交换和分组交换优于电路交换,其中分组交换比报文交换的时延小,也更为灵活,尤其适合突发式数据传送。


HTML 初体验

Last updated:

本站源代码可在 Github 查看与贡献。