在软考网络工程师、网络规划设计师的历年真题里,有一类题目看似简单,却常年保持着稳定的失分率,那就是对分组交换两种实现方式的辨析。命题人习惯把"虚电路交换"和"数据报交换"放在一起,再混入"电路交换""报文交换"等干扰项,让考生在"是否需要建立连接""是否预分配带宽""是否保证按序交付"这几个问题上反复栽跟头。本文从交换技术的演进脉络出发,把这两种方式的概念定义、底层运行机制、应用场景、常见误区与历年真题陷阱一次性讲透,帮助考生彻底理清这条容易被低估的知识线。
要准确理解虚电路交换与数据报交换,必须先回到"交换"这个词本身。在通信网络中,当端到端之间存在多条可达路径时,数据单元从源节点到目的节点的传输,需要由中间的交换节点决定"沿哪条路走、以什么方式走",这个决策与转发的过程就是交换。按照技术演进的时间顺序,交换方式先后经历了电路交换、报文交换和分组交换三个主要阶段,其中分组交换又进一步分化为虚电路方式与数据报方式两条技术路线。
电路交换是最早出现的交换方式,它的典型代表是传统的电话交换网络。在电路交换中,通信双方在正式传输数据之前,必须先通过信令过程在物理路径上建立一条独占的、固定的连接,这条连接在通话期间始终为这一对用户所独占,即使中途没有说话,占用的信道资源也不会释放给其他用户。电路交换的核心特征可以概括为三个:连接独占、传输时延稳定、资源利用率低。由于通话期间信道被独占,当业务呈现突发特性时,大量带宽被白白浪费,这正是电路交换难以适应计算机数据通信需求的根本原因。
报文交换是为了解决独占资源问题而提出的改进方案。在报文交换中,发送方把整个数据作为一个完整的"报文"交给网络,中间节点采用存储转发的方式,先把报文完整接收下来并存储,再根据路由信息转发到下一跳。报文交换不再需要预先建立连接,信道资源可以被多个通信过程共享,但它的代价是引入了较大的存储转发时延,而且报文长度不固定、可能非常长,导致中间节点需要较大的缓存空间,转发时延抖动明显,难以满足实时交互类业务的需求。
分组交换则是在报文交换基础上的一次关键改进:它把待传输的数据分割成一个个长度受限的"分组"(也称包),每个分组独立地携带地址信息在网络中传输,中间节点同样采用存储转发,但由于分组的长度短且相对固定,存储转发的时延大幅降低,缓存占用也更容易控制。分组交换一经提出,便成为现代计算机网络数据通信的基础,今天我们使用的互联网,其核心交换方式就是分组交换。
在分组交换这个大框架之下,根据分组转发的机制差异,又分化出虚电路方式和数据报方式两种实现。所谓虚电路方式,是指在分组传输之前,先在源节点与目的节点之间通过呼叫建立过程确定一条逻辑上的传输路径,后续属于同一通信过程的所有分组都沿着这条预先确定的路径依次传输;所谓数据报方式,则是每一个分组都独立地携带完整的源地址与目的地址,各自独立地在网络中选路转发,不同分组可能经过不同的路径到达目的端。需要特别强调的是,虚电路方式的"虚"字点明了它的本质:这条路径是逻辑上的、共享的,而非电路交换那种物理上独占的连接,这是理解虚电路交换与电路交换区别的关键落点。
在教材与标准文档的正式表述中,虚电路交换通常被描述为"面向连接的分组交换",数据报交换则被描述为"无连接的分组交换"。这一对术语直接对应了两种方式在连接管理上的根本差异,也是软考命题人最常用来设题的切入点。理解了这一层,后续的原理机制和真题分析就有了牢固的起点。
要真正吃透虚电路与数据报的区别,不能停留在"一个面向连接、一个无连接"的口诀层面,必须深入到两者的底层运行机制中去,看清楚它们在连接建立、分组转发、地址携带和资源分配上的具体差异。
虚电路方式的完整生命周期由三个阶段构成:虚电路建立、数据传输和虚电路释放。
在虚电路建立阶段,源节点向目的节点发送一个呼叫请求分组,该分组携带目的地址,沿着网络中的路由算法选定的路径逐跳转发。在转发的过程中,每一个经过的中间节点都会为这条虚电路分配一个本地唯一的虚电路标识号(虚电路号),并记录"入链路与入标识"到"出链路与出标识"的对应关系,即在转发表中写入一条映射表项。当呼叫请求分组到达目的节点并得到确认、确认分组沿原路返回源节点后,一条端到端的逻辑连接便宣告建立,后续的数据传输阶段即可开始。
在数据传输阶段,属于这条虚电路的每一个数据分组不再需要携带完整的目的地址,而只携带一个较短的虚电路号。中间节点收到分组后,根据分组到来的链路和其携带的虚电路号,查表找到对应的出链路和新的虚电路号,替换后继续转发。由于所有分组都沿同一条已建立的路径传输,分组能够按照发送顺序依次到达目的端,网络层自然实现了顺序交付。
在虚电路释放阶段,数据传输完成后,源节点或目的节点发送释放请求分组,沿途各中间节点逐一删除相应的转发表项,释放为该虚电路分配的资源。至此,一个完整的虚电路生命周期结束。
数据报方式则完全不存在连接建立与释放的过程。每个数据报分组在发送时,源节点都要为其填上完整的源地址和目的地址。每个分组在进入网络后,各中间节点都根据分组携带的目的地址,独立地运行路由算法,实时地为该分组选择下一跳。由于网络状态是动态变化的,同一通信过程中的不同分组完全可能经过不同的路径到达目的端,到达的顺序也因此可能发生颠倒。
数据报方式的这一特性带来两个直接后果:其一,转发时延因路径不同而存在差异,分组到达目的端后可能需要重新排序;其二,网络对每个分组平等对待,任何一个分组都可以独立地在网络中存活、转发,不依赖先前分组的"开路"工作,网络的健壮性因此更强。
虚电路方式中有一个细节最容易让考生混淆,那就是虚电路号的作用范围。虚电路号只在相邻两个节点之间的链路上具有本地意义,而不是一个端到端全局统一的值。同一条虚电路,在不同的链路段上可能被赋予不同的虚电路号。中间节点在转发时,要做的是"入链路入标识到出链路出标识"的转换,这正是虚电路转发表的核心内容。理解了这个逐跳映射的本质,就能明白为什么虚电路的数据分组可以只携带较短的标识而非完整地址,也能明白为什么中间节点需要为每条虚电路维护一条转发表项——虚电路建立的代价,本质上就体现在这些沿途表项的创建与维护上。
相比之下,数据报方式的中间节点维护的是路由表而非逐虚电路表项。路由表以目的网络为索引,指向下一跳,其表项数量与网络规模相关,而与同时活跃的连接数量无关。这两种转发表结构上的差异,直接反映了虚电路与数据报在可扩展性上的不同取向。
在理清底层机制之后,需要把两种方式放到更宏观的视野下,看看它们在多个维度上的特征差异,以及这些差异如何决定了它们各自的适用场景。
从连接管理的角度看,虚电路方式需要经历建立、数据传输、释放三个阶段的完整流程,而数据报方式没有连接管理开销,分组可以直接发送。从转发依据的角度看,虚电路方式的数据分组依据虚电路号查表转发,数据报方式的分组则依据完整目的地址独立选路。从地址携带的角度看,虚电路方式的分组只需携带较短的虚电路号,数据报方式的分组必须携带完整的源地址与目的地址,头部开销更大。从顺序交付的角度看,虚电路方式天然保证同一虚电路的分组按序到达,数据报方式则不保证顺序。从路由决策时机的角度看,虚电路方式的路由选择只在建立阶段进行一次,数据报方式则对每个分组都要独立进行路由决策。从可靠性角度看,虚电路方式的中间节点需要维护连接状态,一旦某个节点或链路故障,途经的虚电路会全部失效,需要重建;数据报方式则因为每个分组独立选路,对节点和链路故障具有更强的适应性,网络健壮性更优。从资源分配的角度看,虚电路方式建立的是逻辑连接而非物理独占,不会为每条虚电路预留固定的信道带宽,这一点与电路交换有着本质区别,也是命题人反复设陷阱的考点
本篇完!