计算机网络之电路交换、报文交换、分组交换

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

       1. 电路交换:最典型的电路交换网是传统电话网。从通信资源分配的角度看,交换就是按照某种方式动态地分配传输线路的资源。 电路交换分为三步:连接建立、数据传输和连接释放。 在进行数据传输前,两个结点之间必须先建立 一条专用(双方独占)的物理通信路径(由通信双 方之间的交换设备和链路逐段连接而成),该路径可能经过许多中间结点。在数据传输过程中, 这一物理通信路径始终被用户独占,直到通信结束后才被释放。在电路交换的整个通信阶段,比特流连续地从源点直达终点,就好像在一个管道中传送。 

电路交换技术的优点如下:

1)通信时延小。因为通信线路为通信双方专用,数据直达,所以传输时延非常小。

2)有序传输。双方通信时按发送顺序传送数据,不存在失序问题。

3)没有冲突。不同的通信双方拥有不同的信道,不会出现争用物理信道的问题。

4)适用范围广。电路交换既适用于传输模拟信号,又适用于传输数字信号。

5 ) 实时性强。通信双方之间的物理通路一旦建立,双方就可随时通信。

6)控制简单。电路交换的交换设备(交换机等)及控制均较简单。
        电路交换技术的缺点:

1)建立连接时间长。电路交换的平均连接建立时间对计算机通信来说太长。

2)线路利用率低。物理通路被通信双方独占,即使线路空闲,也不能供其他用户使用。

3)灵活性差。物理通路中的任何 一 点出现故障,就必须重新拨号建立新的连接。

4)难以规格化。不同类型、不同规格、不同速率的终端很难相互进行通信。

5)难以实现差错控制。中间结点不具备存储和检验数据的能力,无法发现并纠正错误。
        注意,在电路交换中,电路建立后,除源结点和目的结点外,电路上的任何结点都采取“直通方式”接收数据和发送数据,即不存在存储转发所耗费的时间。

        2. 报文交换数据交换的单位是报文,用户数据加上源地址、目的地址等信息后,后封装成报文(message) 。报文交换采用存储转发技术,整个报文先传送到相邻的结点,全部存储后查找转发表,转发到下一个结点,如此重复,直至到达目的结点。每个报文都可单独选择到达目的结点的路径。

        报文交换技术的优点:

1)无须建立连接。通信前无须建立连接,没有建立连接时延,用户可随时发送报文。 

2)动态分配线路。交换设备存储整个报文后,选择一条合适的空闲线路,转发报文。 

3)线路可靠性高。若某条传输路径发生故障,则可重新选择另一条路径传输数据。

4)线路利用率高。报文在哪段链路上传送时才占用这段链路的通信资源。

5)提供多目标服务。一个报文可以同时发送给多个目的地址。
        报文交换技术的缺点:

1)转发时延高。交换结点要将报文整体接收完后,才能查找转发表转发到下一个结点。 

2)缓存开销大。报文的大小没有限制,这就要求交换结点拥有较大的缓存空间。

3)错误处理低效。报文较长时,发生错误的概率相对更大,重传整个报文的代价也很大。

        3. 分组交换:分组交换也采用存储转发技术,但解决了报文交换中报文过长的问题。若报文太长,则对交换结点的缓存容量就有很大的需求,在错误处理方面也比较低效。源结点在发送之前,先把较长的报文划分成若干较小的等长数据段,在每个数据段前面添加一些由必要控制信息(如源地址、 目的地址和编号信息等)组成的首部,构成分(Packet)。源结点将分组发送到分组交换网中,分组交换网中的分组交换机收到一个分组后,先将其缓 存,然后从其首部中提取目的地址,据此查找自己的转发表,再后将分组转发给下一个分组交换机。经过多个分组交换机的存储转发后,分组最终到达目的结点。
        分组交换技术的优点:

1)无建立时延。通信前无须建立连接,没有建立连接时延,用户可随时发送分组。

2)线路利用率高。分组在哪段链路上传送时才占用这段链路的通信资源。相比采用电路交换传送突发式的计算机数据,分组交换的通信线路利用率大大提高。

3)简化了存储管理 (相对于报文交换)。因为分组的长度固定,相应缓冲区的大小也固定, 在交换结点中存储器的管理通常被简化为对缓冲区的管理,相对比较容易。

4)加速传输。分组是逐个传输的,可以使后一个分组的存储操作与前一个分组的转发操作并 行,这种流水线方式减少了报文的传输时间。此外,传输一个分组比传输一次报文所需的 缓冲区小得多,这样,因缓冲区不足而等待发送的概率及时间必然也少得多。

5)减小了出错概率和重发数据量。因为分组较短,其出错概率必然减小,所以每次重发的数据量也就大大减少,这样不仅提高了可靠性,而且减小了传输时延。
        分组交换技术的缺点:

1)存在存储转发时延。尽管分组交换比报文交换的传输时延小,但相对于电路交换仍存在存储转发时延,且其结点交换机必须具有更强的处理能力。

2)需要传输额外的信息量。每个小数据段都要加上控制信息以构成分组,这使得传送的信息量增大了5%~10%,进而使得控制复杂,降低了通信效率,增大了处理的时延。

3)当分组交换网采用数据报服务时,可能出现失序、丢失或重复分组的情况。分组到达目的结点时,要对分组按编号进行排序等工作,而这些工作很麻烦。若采用虚电路服务,则虽然没有失序问题,但有呼叫建立、数据传输和虚电路释放三个过程。当要传送的数据量很大且其传送时间远大于呼叫时间时,采用电路交换较为合适。当端到端的通路由多段链路组成时,采用分组交换传送数据较为 合适。从提高整个网络的信道利用率看,报文交换和分组交换优于电路交换,其中分组交换比报 文交换的时延小,尤其适合计算机之间的突发式数据通信。

### 电路交换报文交换分组交换的概念及区别 #### 1. 电路交换 电路交换是一种基于物理连接的通信方式,其核心思想是在通信双方之间建立一条专用的物理信道。这种信道在数据传输期间被独占使用,直到通信结束时才释放。电路交换分为三个主要阶段:连接建立、数据传输连接释放[^4]。 - **连接建立**:通信双方通过网络中的交换设备动态分配资源,形成一条专用的物理路径。 - **数据传输**:一旦连接建立完成,数据可以以连续比特流的形式从源点直达终点,类似于在一个管道中传送。 - **连接释放**:通信结束后,释放所占用的物理信道资源。 电路交换的优点在于数据传输延迟低,适合实时性要求较高的应用,例如电话通信。然而,它的缺点是资源利用率较低,尤其是在数据传输量较小时,专用信道可能会造成浪费。 #### 2. 报文交换 报文交换是一种存储转发的通信方式,其中发送方将数据封装为一个完整的报文,然后通过网络中的节点逐跳转发到接收方。每个节点会暂时存储报文,并根据路由选择将其转发到下一个节点[^2]。 - **优点**:不独占通信线路,提高了通信线路的利用率;支持多点传输。 - **缺点**:由于需要在每个节点存储整个报文,因此对节点的存储空间要求较高;同时,由于存储转发的过程,报文交换的时延较大[^2]。 报文交换适用于非实时性要求较高的应用场景,例如电子邮件或文件传输。 #### 3. 分组交换 分组交换是对报文交换的一种改进,它将原始报文分割为若干个较小的分组,每个分组独立地在网络中进行传输。分组交换也采用存储转发机制,但每个节点只需缓存当前分组即可[^2]。 - **特点**:分组可以随时发送,无需事先建立连接;分组在网络中逐跳传输时,可能会经过不同的路径到达目的地。 - **优点**:资源利用率高,适合突发性数据传输;能够更好地适应网络负载变化。 - **缺点**:由于分组可能经过不同路径,可能导致分组到达顺序错乱,需要额外的重排序机制[^2]。 分组交换是现代计算机网络(如互联网)的基础,广泛应用于数据通信领域。 #### 区别总结 | 特性 | 电路交换 | 报文交换 | 分组交换 | |---------------|----------------------------------|----------------------------------|----------------------------------| | **资源分配** | 独占物理信道 | 不独占信道 | 不独占信道 | | **数据单位** | 连续比特流 | 完整报文 | 小型分组 | | **传输方式** | 实时传输 | 存储转发 | 存储转发 | | **时延** | 较低 | 较高 | 中等 | | **适用场景** | 语音通信、实时视频 | 非实时数据传输 | 数据通信、互联网 | ### 示例代码:模拟分组交换过程 以下是一个简单的 Python 模拟代码,展示如何将一个报文分割为多个分组并逐一发送: ```python def packetize_message(message, packet_size): packets = [message[i:i+packet_size] for i in range(0, len(message), packet_size)] return packets def send_packets(packets): for i, packet in enumerate(packets): print(f"Sending packet {i+1}: {packet}") # 示例 original_message = "This is a test message for packet switching." packet_size = 10 packets = packetize_message(original_message, packet_size) send_packets(packets) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值