☰
电路交换与分组交换:原理、延迟计算与选型指南
2026/10/15 8:21:26 网站建设 项目流程

1. 从一个经典问题说起:为什么打电话和刷网页的体验完全不同

你有没有想过一个很有意思的现象:同样是在网络上传输数据,为什么打电话的时候,声音几乎是实时连续的,哪怕网络稍微抖动一下,你顶多听到一点杂音,但通话不会断;而刷网页、看视频的时候,数据是一块一块加载出来的,偶尔还会转圈缓冲,但哪怕中间卡了几秒,恢复之后内容照样完整显示,不会因为中间断了就彻底废掉。

这背后其实就是两种截然不同的数据交换方式在起作用——电路交换和分组交换。这两个概念是计算机网络这门课里最基础、但也最容易被一笔带过的知识点。很多人考试能背出定义,但真到了实际工作中,比如做网络规划、排查延迟问题、设计实时通信方案的时候,脑子里并没有一个清晰的模型去指导决策。

我自己在做音视频传输和网络架构相关项目的过程中,反复跟这两个概念打交道。踩过的坑包括:用分组交换的思路去优化一个需要严格时序的采集系统,结果抖动大得没法用;也试过在带宽受限的场景下硬套电路交换的预留机制,导致资源利用率低得离谱。这些经验让我意识到,电路交换和分组交换不是两个死记硬背的名词,而是两套根本性的资源分配哲学,理解它们的差异,能直接帮你判断什么场景该用什么方案。

这篇文章我会从原理、实现细节、参数计算、实际选型几个维度,把这两个概念彻底拆开讲清楚。不管你是刚学网络基础的学生,还是已经工作几年但想把这部分知识补扎实的从业者,看完之后应该能建立起一个可以直接拿来用的判断框架。

2. 电路交换的核心原理与工作流程拆解

2.1 电路交换到底是什么:一条专属通道的建立与释放

电路交换(Circuit Switching)的核心思想非常朴素:通信之前,先在发送方和接收方之间建立一条专用的物理通路,这条通路在整个通信过程中被双方独占,直到通信结束才释放。最典型的例子就是传统电话网络。

你可以把它想象成两个人之间拉了一根专线。在通话开始之前,中间的交换机需要一级一级地把这条路径上的资源(比如某条链路上的一个时隙、某个频段)预留出来。一旦建立成功,这条路径就只属于这两个人,别人用不了。通话过程中,数据(也就是你的声音采样后的信号)沿着这条固定路径连续传输,中间不需要再做任何路由决策。

这个“建立—传输—释放”的三阶段模型是电路交换的灵魂。我把它拆成三个步骤来看:

  1. 连接建立阶段:主叫方发起请求,网络中的各个交换节点根据目标地址,逐跳选择一条可用路径,并在每一跳上预留资源。这个过程需要时间,也就是我们常说的“拨号后等待接通”的那几秒。
  2. 数据传输阶段:路径建立后,数据以连续流的形式传输。因为路径固定、资源独占,所以传输延迟非常稳定,几乎没有抖动。
  3. 连接释放阶段:通信结束后,逐跳释放之前预留的资源,供其他通信使用。

这里有个关键点很多人会忽略:电路交换预留的是“资源”,不是“带宽”这么简单。在传统的时分复用(TDM)电话网络里,每条链路被划分成很多个时隙,一个通话占用其中一个固定的时隙。这个时隙不管你说话还是沉默,都被你占着,别人无法使用。这就是为什么电路交换的资源利用率天然偏低——沉默期也是浪费。

2.2 为什么电路交换的延迟稳定但利用率低:资源独占的代价

电路交换最大的优点和最大的缺点,其实来自同一个特性:资源独占。

先说优点。因为路径固定、资源独占,数据从发送端到接收端的传输延迟是高度可预测的。中间没有排队等待,没有路由查找,没有竞争。对于语音这种对时延和抖动极其敏感的业务来说,这是天然的优势。传统电话网络能做到端到端延迟稳定在几十毫秒级别,靠的就是这个机制。

再说缺点。资源独占意味着,即使你没有数据要传,这条通道也不能给别人用。我做过一个粗略的估算:在典型的语音通话中,双方真正说话的时间大概只占整个通话时长的40%到50%,剩下的是倾听、思考、沉默。如果按电路交换的方式,那50%以上的资源就被白白浪费了。在早期电话网络时代这个问题还不算致命,因为业务单一,大家就是打电话。但到了数据通信时代,这种浪费就完全不可接受了。

还有一个隐藏成本:连接建立的时间开销。每次通信都要先建立路径,这个建立过程在长距离、多跳的网络中可能需要几百毫秒甚至更长。对于电话来说,几秒钟的接通等待可以接受;但对于计算机之间的短消息交互,这个开销就太大了。

注意:电路交换的“电路”不一定是物理上的一条独立电线,在TDM/FDM系统中,它是一条逻辑上的专用通道,但独占性是相同的。

2.3 电路交换的典型应用场景与参数计算

电路交换最经典的应用就是传统语音电话网络(PSTN)。我们来看一个具体的参数计算,帮你理解它的资源占用逻辑。

假设一条中继链路的总带宽是2.048 Mbps(这是典型的E1标准),采用TDM划分为32个时隙,每个时隙64 Kbps。其中时隙0用于同步,时隙16用于信令,剩下30个时隙用于语音通话。那么这条链路最多同时支持30路电话。

如果每路电话的平均通话时长是5分钟,每小时每路电话的平均呼叫次数是2次,那么根据Erlang公式,我们可以计算出在给定阻塞率下需要多少条中继。这个计算过程在实际网络规划中非常关键,但这里不展开。我想强调的是:电路交换的容量规划是确定性的,你占用的资源是实打实的,算得出来。

这种确定性在语音时代是优点,但在数据时代就成了枷锁。因为数据通信的突发性太强了——你可能几分钟不发一个包,然后突然要传一个几兆的文件。如果为每个数据连接都预留一条专用通道,那网络的资源会被瞬间耗尽。

3. 分组交换的设计哲学与关键机制

3.1 分组交换的核心思想:把数据切碎,各自找路

分组交换(Packet Switching)的思路完全反过来了。它不预留任何资源,而是把要传输的数据切成一个个小块,每个小块叫做一个“分组”(Packet)。每个分组独立地在网络中传输,经过一个个路由器,最终到达目的地。

这里的关键变化是:资源不再被某个通信独占,而是被所有通信共享。链路的带宽只有在真的有分组要传输的时候才被占用,传完就释放。这就好比从“包专车”变成了“坐公交”——大家共享同一辆车,谁有需求谁上车,没需求就不占位置。

分组交换的实现依赖于两个核心机制:存储转发和统计复用。

存储转发的意思是,路由器收到一个分组后,先把它完整地存下来,检查一下有没有错误,然后根据分组头里的目标地址查路由表,决定从哪个端口转发出去。这个过程会引入一定的处理延迟,但换来了极大的灵活性。

统计复用的意思是,链路的带宽根据实际到达的分组动态分配。如果某一时刻只有少量分组到达,链路就只传这些分组;如果大量分组同时到达,就排队等待。这种“按需分配”的方式让资源利用率大幅提升,但代价是可能产生排队延迟和拥塞。

3.2 分组交换的延迟构成:四个分量逐一拆解

分组交换的延迟不是一个单一的值,而是由四个部分叠加而成。理解这四个分量,是排查网络延迟问题的基本功。

  1. 处理延迟:路由器收到分组后,检查分组头、查路由表、决定转发端口所花的时间。这个时间通常在微秒级别,取决于路由器的处理能力和路由表规模。
  2. 排队延迟:分组在路由器的输出队列中等待发送的时间。这是四个分量中最不确定的一个,取决于当前的网络负载。网络空闲时排队延迟接近零,网络拥塞时可能达到几十甚至几百毫秒。
  3. 传输延迟:把分组的所有比特推送到链路上所需的时间。计算公式是:传输延迟 = 分组长度 / 链路带宽。比如一个1500字节(12000比特)的分组,在100 Mbps的链路上,传输延迟是12000 / 100000000 = 0.12毫秒。
  4. 传播延迟:信号在物理介质中传播所需的时间。计算公式是:传播延迟 = 链路长度 / 传播速度。电磁波在光纤中的传播速度大约是2×10^8 m/s,所以1000公里的光纤链路,传播延迟大约是5毫秒。

把这四个加起来,就是分组从发送端到接收端的总延迟。在实际排查网络问题时,我通常会先判断延迟主要来自哪个分量。如果是排队延迟占主导,说明网络拥塞,需要扩容或做流量调度;如果是传播延迟占主导,那是物理距离决定的,只能通过CDN或边缘计算来缓解。

3.3 分组交换的两大实现路径:数据报与虚电路

分组交换并不是只有一种实现方式,它内部还分为两大流派:数据报(Datagram)和虚电路(Virtual Circuit)。

数据报方式就是每个分组独立选路。同一个消息的不同分组可能走完全不同的路径,到达接收端的顺序也可能乱掉。IP网络就是典型的数据报方式。它的优点是极其灵活,某条链路断了,后续分组可以自动绕路;缺点是无法保证顺序和延迟,需要上层协议(比如TCP)来做重传和排序。

虚电路方式则是在通信开始前,先在网络中建立一条逻辑上的路径,所有分组都沿着这条路径传输。注意,这里的“虚”字很关键——它不像电路交换那样独占物理资源,只是在路由器的转发表里记录了一条路径。分组仍然要经过存储转发,仍然可能排队,但路径是固定的。ATM和帧中继就是虚电路方式的代表。

我个人的经验是:数据报适合短消息、突发性强的业务;虚电路适合长连接、需要稳定路径的业务。但现代互联网几乎全面倒向了数据报,因为它的扩展性和容错性太好了。虚电路的那套机制在互联网规模爆炸之后,维护成本变得不可接受。

4. 两种交换方式的深度对比与选型逻辑

4.1 从资源分配到延迟特性:一张表看清本质差异

我把电路交换和分组交换的核心差异整理成了一张表,方便你快速对照:

对比维度电路交换分组交换
资源分配通信前预留,独占按需使用,共享
延迟特性稳定,抖动小不确定,可能有排队延迟
带宽利用率低,沉默期浪费高,统计复用
连接建立需要,有建立延迟不需要(数据报方式)
故障容错差,路径断了就断好,可动态绕路
适用业务实时语音、固定速率流数据、网页、视频、突发业务
计费方式按时间/距离按流量

这张表里的每一行,背后都有大量的工程实践支撑。比如“故障容错”这一项,电路交换的路径是固定的,中间任何一条链路断了,通话就断了,需要重新建立。而分组交换的数据报方式,路由器可以自动选择备用路径,对上层几乎透明。

4.2 为什么互联网选择了分组交换:从效率到扩展性的全面胜出

互联网选择分组交换,不是偶然,而是多个因素共同作用的结果。

首先是效率。数据通信的突发性太强了,如果为每个连接预留资源,网络的利用率会低到无法接受。我做过一个模拟:在一个典型的办公网络中,如果按电路交换的方式为每个活跃连接预留10 Mbps带宽,那么一条1 Gbps的链路最多支持100个并发连接。但实际上,这100个连接的平均利用率可能只有5%到10%。分组交换可以让这条链路同时支持上千个连接,因为大家错峰使用。

其次是扩展性。分组交换的路由器只需要维护路由表,不需要维护每条连接的状态。这意味着网络的规模可以无限扩展,新增节点只需要更新路由信息即可。而电路交换的交换机需要维护每条连接的状态,连接数越多,交换机的负担越重,扩展成本呈指数级上升。

最后是灵活性。分组交换可以天然支持不同速率、不同业务类型的混合传输。一个分组可以承载语音,下一个分组可以承载文件数据,网络不需要为每种业务单独设计。这种“一网多用”的能力,是互联网能够统一通信世界的根本原因。

4.3 电路交换真的过时了吗:它在这些场景依然不可替代

虽然互联网全面倒向了分组交换,但电路交换并没有完全消失。在某些特定场景下,它依然有不可替代的优势。

第一是极低抖动要求的场景。比如专业音频制作中的数字音频传输,某些高端设备仍然使用电路交换式的专用通道,因为任何抖动都会导致音频失真。分组交换的排队延迟哪怕只有几毫秒的波动,在专业音频领域都是不可接受的。

第二是确定性延迟要求的工业控制场景。在一些工业自动化系统中,控制指令必须在严格确定的时间内到达,不能有任何不确定性。虽然现在有TSN(时间敏感网络)这样的技术在分组交换上模拟确定性,但最底层的某些环节仍然保留了电路交换的思路。

第三是资源预留明确的场景。比如某些专线服务,本质上就是电路交换的思路——你付了钱,这条通道就归你专用,不管你有没有数据在传。这种模式在需要带宽保障的业务中仍然有市场。

我的判断是:电路交换不会消失,但它的应用范围会越来越窄,集中在那些对确定性要求极高、且愿意为此付出资源利用率代价的场景。对于绝大多数通用业务,分组交换是更优解。

5. 实操中的关键问题与排查技巧

5.1 分组交换网络中的延迟抖动排查思路

在实际运维中,分组交换网络最常见的投诉就是“网络卡顿”和“延迟忽高忽低”。这通常是排队延迟在作怪。我总结了一套排查思路,按顺序执行:

  1. 先测基线延迟:用ping或类似工具测目标地址的往返延迟。如果基线延迟本身就很低(比如几毫秒),说明传播延迟和处理延迟正常,问题大概率出在排队。
  2. 再看延迟分布:连续ping几百个包,看延迟的分布。如果大部分包延迟很低,少数包延迟很高,说明存在间歇性拥塞。如果所有包延迟都高,说明链路本身有问题。
  3. 定位拥塞点:用traceroute逐跳查看,找出哪一跳的延迟突然增大。那一跳很可能就是拥塞点。
  4. 检查队列配置:登录到拥塞点的设备,查看接口的队列长度和丢弃统计。如果队列经常满,说明需要扩容或调整队列调度策略。
  5. 考虑流量整形:如果无法立即扩容,可以通过流量整形把突发流量削峰,减少排队。

这套流程我在多个项目中用过,基本能在半小时内定位到问题根源。关键是要有耐心,一步一步排除,不要一上来就怀疑最复杂的原因。

5.2 电路交换仿真中的常见配置错误

如果你在做电路交换的仿真或实验,有几个配置错误特别常见,我列出来帮你避坑:

  • 时隙分配冲突:在TDM仿真中,如果两个通话被分配到同一个时隙,会导致数据错乱。一定要确保时隙分配表是互斥的。
  • 信令通道配置错误:信令通道负责建立和释放连接,如果配置错了,连接根本建不起来。检查信令通道的带宽和协议是否匹配。
  • 释放逻辑缺失:很多仿真只实现了建立和传输,忘了实现释放。结果资源一直被占用,后续连接全部阻塞。
  • 阻塞率计算错误:Erlang公式的输入参数是呼叫到达率和平均通话时长,单位要统一。我见过有人把分钟和秒混用,算出来的结果差了60倍。

提示:做电路交换仿真时,建议先用一个最简单的两节点场景验证建立、传输、释放三个流程都正常,再扩展到多节点。

5.3 分组交换中的MTU与分片问题实录

分组交换中有一个非常实际的问题:MTU(最大传输单元)和分片。每个链路层技术都有自己的MTU,比如以太网是1500字节。如果一个IP分组的大小超过了链路的MTU,就需要分片。

分片带来的问题是:分片后的每个小分组都要独立传输,任何一个分片丢失,整个原始分组都要重传。而且分片会增加路由器的处理负担。我在实际工作中遇到过因为MTU配置不一致导致的分片问题:一条路径上某些链路MTU是1500,某些是1400,结果大分组在1400的链路上被分片,到了接收端重组时又因为某些分片丢失而失败。

解决办法是路径MTU发现(PMTUD):发送方先发一个不分片的大包,如果中间路由器发现包太大,会返回一个ICMP错误消息,告诉发送方应该用多大的MTU。发送方根据这个信息调整分组大小。但PMTUD依赖ICMP,有些网络会屏蔽ICMP,导致PMTUD失效。这时候就需要手动配置MTU,或者启用TCP MSS clamping。

这个坑我踩过不止一次,后来养成了一个习惯:在新网络环境中部署服务时,第一件事就是确认端到端的MTU。可以用ping命令带不同大小的包来测试,找出实际可用的最大MTU。

6. 从交换方式看网络架构的演进与个人体会

6.1 现代网络中的混合交换实践

虽然我们习惯把电路交换和分组交换对立起来,但在实际的大规模网络中,两者往往是混合使用的。最典型的例子是MPLS(多协议标签交换)。MPLS在某种程度上借鉴了虚电路的思想:它在网络边缘给分组打上标签,核心路由器根据标签转发,而不是查IP路由表。这大大加快了转发速度,同时还能做流量工程,为特定业务预留带宽。

另一个例子是光网络中的波长交换。在骨干网中,不同波长的光信号在同一根光纤中传输,每个波长本质上就是一条电路交换式的通道。虽然上层承载的是分组数据,但底层的传输仍然是电路交换的思路。

这种混合架构给我的启发是:没有绝对优劣的技术,只有适合场景的方案。分组交换在灵活性和效率上胜出,但在需要确定性保障的场景,我们仍然会借用电路交换的思路。理解这两种交换方式的本质,能帮你在设计网络架构时做出更明智的取舍。

6.2 我踩过的坑:用错交换思路的代价

说一个我自己的真实教训。早期我参与过一个实时数据采集系统的设计,需要从多个传感器节点持续采集数据并传到中心服务器。当时我第一反应是用分组交换的思路,每个节点独立发送数据包,中心服务器按到达顺序处理。

结果上线后发现,数据抖动非常大,某些关键的控制指令因为排队延迟,到达时间比预期晚了上百毫秒,导致整个控制系统不稳定。后来我们重新设计,借鉴了电路交换的思路:为每个传感器节点在时间轴上分配固定的时隙,节点只在属于自己的时隙内发送数据。这样虽然牺牲了一部分带宽利用率,但换来了确定性的延迟,系统立刻稳定了。

这个经历让我深刻理解了一件事:分组交换的统计复用优势,在需要确定性延迟的场景下会变成劣势。排队延迟的不确定性是分组交换的固有特性,你无法通过优化完全消除它,只能通过资源预留或优先级调度来缓解。如果业务对确定性要求极高,那就应该考虑电路交换式的方案,而不是硬扛分组交换的缺陷。

6.3 给不同阶段从业者的学习建议

如果你是刚开始学网络的学生,我的建议是:不要只背定义,要动手算一算。比如算一下一个1 MB的文件在电路交换和分组交换下分别需要多长时间传输,考虑建立延迟、传播延迟、传输延迟。算过之后,你对这两个概念的理解会深刻得多。

如果你已经工作,正在做网络规划或优化,我的建议是:先判断业务的延迟敏感度和突发性。延迟敏感且速率稳定的业务,考虑资源预留或专线方案;突发性强且能容忍一定延迟的业务,用分组交换的统计复用。不要一刀切,也不要盲目追求新技术。

如果你在做架构设计,我的建议是:把交换方式的选择作为一个显式的设计决策,而不是默认用分组交换。在系统设计文档里明确写出为什么选择这种交换方式,它的优势和代价是什么。这样在后续排查问题时,你能快速定位到是不是交换方式本身带来的限制。

最后分享一个我常用的判断口诀:要确定性,找电路;要效率,找分组;两者都要,做混合。这个口诀不是万能的,但能在你犹豫不决的时候,给你一个快速的思考起点。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询