返回
查看原链接原链接
Bilibili1小时9分39秒 · —

网络核心的数据交换方式:电路交换与分组交换

网络核心的数据交换方式:电路交换与分组交换

网络核心的主要作用是实现数据交换,即把原主机的数据正确传送到目标主机;实现方式包括电路交换和分组交换,互联网几乎都采用分组交换,因为分组交换按需共享网络资源,更适合具有强突发性的计算机通信。

核心要点

  • 网络核心由交换节点及其互联链路组成,其最基本功能是数据交换。
  • 实现数据交换有两种基本方式:电路交换(circuit switch)和分组交换(packet switch)。
  • 电路交换主要用于(传统)电话网络;分组交换被互联网和几乎所有计算机网络采用。
  • 引入电路交换进行介绍,是为通过与分组交换的对比,更清晰地理解分组交换的工作方式与原理。
  • 分组交换两种基本模式是数据报(datagram)与虚电路(virtual circuit)。

详细解析

网络核心的基本概念

网络核心,由交换节点和连接它们之间的链路构成,是整个网络中最核心的部分。交换节点与链路相连,组成网络中枢。

网络核心最主要的作用是数据交换:把原主机发出的数据,正确地传递到目标主机。

实现这种数据交换可归结为两类核心机制:

  • 电路交换(circuit switching)
  • 分组交换(packet switching)

电路交换的工作方式与特点

电路交换,也称线路交换,其工作流程是:

  1. 建立连接:通信前,主叫方与被叫方之间要事先建立起一条物理线路,需通过信令系统(控制信息,如拨号)完成。
  2. 独享通信:线路建立后,这段线路主要为这对通信双方保留,形成一条独享通路,双方可以开展双向通信。
  3. 释放连接:通信结束后释放该线路。

为支持多路并行通信,交换节点之间的链路可基于多种多路复用方式划分为若干“小片(pieces)”,通信双方占用的就是这些“小片”组织成的整条通路:

  • 频分复用(FDM):分成不同频段的小片;
  • 时分复用(TDM):按时间片划分链路通信能力;
  • 波分复用(WDM):用于光纤通信,把可用波段分成多个小波段(小片);
  • 码分复用(CDM/CDMA):主要应用于接入网(如3G移动通信),在涉及核心网的讨论中提到较少。

例如,一条带宽为1.536Mbps的链路,若用TDM分为24个时隙,则每一个时隙对应的带宽为 1.536Mbps ÷ 24 = 64Kbps。通信前要从每一段链路上选一个空闲时隙,在若干节点间串联,从而构建出端到端的独享链路。

独享的好处:性能有保障

一旦建立了64Kbps独享线路,双方就能以不超过64Kbps的速率发送和接收,因为没有其他人共享这条链路,也就不存在竞争的不确定性,因此性能可以得到保障。如果带宽是共享的,就无法保证实际可用带宽(共享必然会带来不确定性)。

独享的代价:资源浪费

当线路接通而双方没有说话(不通信)时,这条链路中的资源仍然是被占用的,这部分资源就被白白浪费。即使电话接通却没有通话,电信公司也要计费,原因是链路资源已经被独占占用,无法被其他用户使用。

建立时间的代价

电话通信场景中建立线路的时间相对通话时长占比很小(长途几秒到十几秒,国内通话通常一两秒即建立,而通话往往持续数分钟甚至数小时)。但对计算机通信而言,若传送仅需1毫秒,却要耗费500毫秒去建立连接,则这种开销完全不划算。

电路交换不适合计算机通信的原因

综合分析电路交换后,可以得到如下结论:

  1. 需要较长的连接建立时间:建立时间为秒级,对计算机通信而言这个开销过大。
  2. 计算机通信具有强突发性:计算机通信行为不持续发生(例如浏览网页时点链接才产生流量),大部分时间不占用网络。按电路交换方式建好后,如果不通信,已建立连接的空闲资源无法被其他通信使用,浪费严重。
  3. 可靠性不高(有待后文进一步探讨):核心交换设备需要维护大量主机对之间的映射关系(如电话网可达十万级)。一旦中心节点宕机,受影响的主机对数量极大,影响范围广。

分组交换的工作方式与原理

分组交换的核心思想与电路交换存在本质差别,主要体现为:

  1. 不细分链路:节点间的通信链路不再被划分为固定小片(pieces)。数据通过某条链路时使用其全部带宽,而不限于某个分割出来的固定小片。
  2. 数据分成组:主机之间的通信数据被拆分为一个个分组(packet)。
  3. 存储转发:每个分组以存储转发的方式逐跳传输。每个交换节点把收到的整个分组完整收下存储起来,再根据情况向下一个节点转发。
为什么要存储转发

若节点不完整存储整个分组而是收到即转发(流水式直通处理),就等同于在整条端到端链路上独占使用每一跳链路的全部带宽,而同一时间里其他主机对将无法使用这些链路,这仍接近电路交换或独占方式的思路,无法实现网络的共享性。

分组交换的存储转发机制允许不同主机对的数据可以在不同链路上同时传输并彼此复用:当某一对通信正在使用一段链路时,另一段链路可为另一对通信使用。这样就实现了共享性而不是独享,从而实现了“哪里需要、哪里使用”的目的。

分组交换的特点与代价

优点:

  • 按需使用:主机有数据发时占用网络资源,没有数据时不占用;
  • 网络共享性好,在通信具突发性时,可比电路交换支持更多用户对。

缺点:

  • 在每个交换节点,必须等待整个分组完成存储,之后才能转发;这带来了节点级的额外存储延迟。
  • 在输出链路发生竞争时,需要排队等待,产生排队延迟——而排队延迟并不是固定的,具有随机性和可变性。
  • 若某节点输出队列已经排满(队列容量有限),新到达的分组会被丢弃(drop/discard),因此分组可能“飞着飞着就没了”,即分组可能发生丢失。

排队延迟和分组丢弃都是分组交换为了换取网络共享性所必须付出的代价。凡是共享就存在竞争,凡是竞争就可能排队或丢弃;凡事均有两面性。

分组交换链路上的时间片使用:统计多路复用

当两个相邻节点之间的链路被不同分组占用时,时间资源是动态分配的:一段时间内传A的分组,另一段时间内传B的分组,也可能存在空闲。由于分组交换使用链路的时间片是不固定的、随机的(不同于TDM那样固定周期分配),这种复用方式被称为统计多路复用(statistical multiplexing)。

电路交换与分组交换在传输时间上的对比

为说明分组交换存储转发与电路交换在时延上的差异,原文给出了一个非常典型的对比例子:

场景条件:主机A和主机B之间需要传输一个大小为7.5兆比特(Mbits)的分组。路径上经过2台路由器,即三段链路;每段链路的带宽相同,均为R = 1.5Mbps。

  • 电路交换方式:占用线路后,传输时间只需一段链路的传输时间:

\( 7.5\text{Mbits} / 1.5\text{Mbps} = 5 \) 秒

  • 分组交换方式(存储转发,共三段链路,每段单独传输):

每段链路的传输时间是 5 秒,三段链路的总传输时间为 5×3 = 15 秒。

需要注意的计算原则:发送端把一个比特流“放”到链路上需要持续的时间为 数据量÷带宽;而接收端在同时也在接收这些比特数据。发送和接收是一个事情的两个侧面,在计算数据传输总时间时只能计一次,不能把“发送要5秒”和“接收也要5秒”叠加成10秒。

分组交换优于电路交换的定量分析示例

前提与条件

一种简单情形,但条件极具代表性:

  • 一条共享链路带宽为 1Mbps;
  • 每个用户在活动(活跃)时需要 100Kbps,但只有10%的时间处于活动(活跃状态);
  • 即每个用户活动的概率 p = 0.1,空闲概率 = 0.9。
电路交换可支持的用户数

电路交换中,由于链路带宽按用户独享方式划分,即使某用户90%时间空闲,也必须为其预留一个 100Kbps 的固定时隙。因此 1Mbps ÷ 100Kbps = 10,即电路交换最多仅支持10个用户。

分组交换(TDM复用不同于固定分配)可支持的用户数

若采用分组交换,当出现多个用户同时活跃时,所有活跃用户分享带宽,但需避免活跃用户总数过多而发生拥塞。

设有35个用户接入。因为每个用户活跃概率0.1,空闲概率0.9,那么在既定的某一时刻,活跃用户个数≤10的概率为:

\[ P(\text{活跃用户数} \le 10) = \sum_{n=0}^{10} \binom{35}{n} (0.1)^n (0.9)^{35-n} \]

计算所得为 99.6%。也就是说,35个用户时,系统有 99.6% 的时间可以正常按需工作;仅 0.4% 的可能性出现活跃用户超过10个(即超过11个及以上),此时所有用户合计需要带宽超过1Mbps,系统拥塞或无法全部满足。

但需要注意:0.4%的超载时段可以通过队列缓冲来缓解——节点将瞬时超出带宽的流量暂存排队,等流量空闲后再“消化”掉积压的分组。若把35这个用户数量增大(比如35,000),出现拥塞的可能性将远远超过0.4%,因此分组交换也并非可以无限度增加用户数量,过度复用将导致网络拥塞。为应对拥塞,网络需要设计相应机制进行恢复和调节。

为什么选用9个时隙(而不是10)作为容量基准

在前述例子中计算概率时,原文强调“是9而不是10”,并给出的解释是:当进入的流量速率等于输出链路的带宽时,流量强度(traffic intensity)等于1,按照流量理论这样的网络是要“挂掉”的。所以分母规模相应放大时,不应按刚好饱和来估算,而需要留下余量(不要走极端)。

电路交换与分组交换的综合对比

对比维度电路交换分组交换
连接方式通信前需建立连接(呼叫),建立后独享一条通路无连接建立过程,数据即传即用(数据报模式)
资源占用独享路径,专用带宽,空闲时仍占用资源按需使用;空闲时不占用资源
性能保障高,有带宽上限保证较低,取决于瞬时负载与排队情况
节点维护状态交换节点需维护每对通信方的映射关系(关系量大,可达10万级)基本上不需要维护逐对通信的状态(无状态)
时延表现有建链时延;传数据时低且可预期有存储与排队时延,排队时延可变不可预测
丢包通常不会因拥塞丢包网络拥塞时,队列满会导致分组被丢弃
适用场景传统电话网络,需恒定带宽保障的连接互联网/计算机通信,数据突发性强
分组交换在现实世界的对应与局限

互联网上的多媒体应用(如流媒体)常需要稳定的带宽保障,类似电路交换的服务质量特性。但现今互联网基于分组交换构建,因此“让分组交换网络在某些时候表现得像电路交换”是重要研究方向,这一话题会在多媒体网络相关章节专门展开。

分组交换:数据报与虚电路

分组交换根据网络层是否引入连接概念,可分为两种类型:

数据报方式
  • 原主机发送的每个分组(数据报,datagram)都携带目标主机的完整地址。
  • 分组在交换节点中依据该目的地地址做存储转发。
  • 通信开始前无需握手,不建立连接。
  • 每个分组独立传送,同一对主机的连续分组也可能因路由变化走不同路径。
  • 网络中路由器不维护主机–主机通信状态信息,即路由器是“无连接的”“无状态的”,只根据分组携带的目标地址查路由表逐跳转发。
  • 举例类比:传统邮政寄信,每一封信都独立填写收件人完整地址并单独处理。
虚电路方式
  • 通信前先需经过握手/信令过程,建立一条“虚电路”(virtual circuit, VC)。
  • 中间经过的所有交换节点上,都要保存相应的状态信息(虚电路表项),即连接不仅涉及端系统,还体现于每个中继节点上。
  • 建立后,主机发送的数据分组不再携带完整目标地址,而是携带“虚电路号(VC号)”。
  • 每到一个节点,节点根据输入接口的虚电路号和虚电路表,查找到输出接口以及新的虚电路号,再把分组转发到下一节点。虚电路号在路径上每一跳可能变化。
  • 所有分组沿同一条预先建立的虚电路路径转发。
  • 举例类比:打电话。先建立好通路,然后按通路内部标识传送所有语音信息。
  • 需要特别辨析:
  • TCP是面向连接的服务,但TCP的连接仅存在于端系统(原主机与目标主机的TCP实体)之间,路由器不维护这种连接状态。
  • 而这里网络层的虚电路(VC)是“有连接”的,连接不仅存在于端主机上,而且贯穿所有经过的交换节点。

网络核心的其他基本功能:路由与转发

在采用分组交换的互联网(IP网络)中,网络核心的主要作用可归纳为两种:

  1. 转发(forwarding):这是本地的动作——当一个分组从一个端口到达路由器时,路由器在本地查转发表(路由表),确定该分组应从哪个接口端口转发出去,从而实现局部选路。
  2. 路由(routing):这是全局层面的活动——路由器上要运行路由协议,与相邻路由器交换路由信息,根据自己的路由算法计算出完整的路由表。

路由表由路由模块产生;转发过程依据路由表完成。正因为这两者配合,网络核心才能把原主机的分组逐跳、正确地传送到目标主机。

案例与数据

案例一:电路交换文件传输时间

文件大小:640Kbits; 链路带宽:1.536Mbps; TDM时隙数:24,每个用户可获得时隙带宽: \[ 1.536 \times 10^6 \div 24 = 64\text{Kbps} \] 连接建立时间:500ms。

对应的传输过程时间轴如下:

  • 连接建立耗时:0.5秒
  • 文件发送耗时(用户实际占用的带宽为64Kbps):

\[ 640\text{Kbits} \div 64\text{Kbps} = 10\text{s} \]

  • 总时间:0.5s + 10s = 10.5s,即A把这文件最后一个比特送出的时刻为第10.5秒。

但A在第10.5秒发送完毕,不等于B已在第10.5秒全部收到。电磁波跨越空间距离还需要额外时间,即传播延迟。传播延迟按物理距离除以光速计算:

  • 局域网距离短时(几公里内)可以忽略;
  • 广域网(如卫星链路,几十万公里量级)则传播延迟不可忽略。

此外,比特的传输不是瞬间完成的:

一个比特的持续时间等于1/带宽(例如64Kbps时每个比特延续 1/64000 秒),这个比特在空间上占据的长度还要乘以电磁波的传播速率(通常上限为光速30万公里/秒)。在有形介质中传播速率会打折扣,上限是真空光速。

案例二:共享链路上分组交换的共享性定量分析数据

条件:1Mbps共享链路,每个用户活跃时需100Kbps,用户活跃概率p=0.1。

场景分工电路交换分组交换
可支撑最大活跃用户数量10(固定分配)35(可动态承载)
无法同时支撑的概率不支持超过10用户同时接入;多于10则无法工作超过10个用户同时活跃的概率为0.4%(即99.6%工作正常)
应对超额时间无法工作偶发超额流量可通过交换机队列排队缓冲来缓解

因此,以同样的网络拓扑和节点带宽,分组交换能支持的通信对数量更多,充分体现了分组交换是面向突发数据的“胜利者”。

限制与待确认问题

  • 原课件未对电路交换的“可靠性不高”做出完整展开说明,仅提出这一论断并补充“将在后文介绍”更多方案,因此可靠性问题在现有内容中属于半开放讨论。
  • 关于“流量强度=1时网络会挂”的原理,在此仅提及概念名称,并未给出数学推导或具体分析过程,正式的建模会在网络层部分的后续学习中再展开。
  • 35个用户的概率模型是简化示范,模型本身不足以精准刻画真实复杂网络行为,但足以揭示两种交换在突发通信下的本质差异。原讲法也承认“这网络建模粗糙”,模型的价值在于观察事物运转本质,而非追求百分之百精确刻画。
  • 让分组交换“表现得像电路交换”(如多媒体带宽保障)的具体方案,是后续“多媒体”章节的内容,本段只记录了存在这一需求。

总结

网络核心通过数据交换实现从原主机到目标主机的正确、可靠的信息传送。在实现这种数据交换时,电路交换与分组交换代表着完全不同的思考路径与设计权衡:

  • 电路交换依赖预先建立连接、为通信双方保留独享通路来保证性能和确定性的时延,但代价是建立时间开销和空闲资源浪费,它同计算机通信突发性特点不匹配。
  • 分组交换以网络资源共享和按需使用为目标,通过逐跳存储转发的机制,让网络带宽在所有主机之间实现统计复用。虽然它带来了排队延迟、分组丢失等不确定性,但在突发数据通信占主导的互联网场景中仍是最优取舍,也是互联网采用分组交换的核心理由。
  • 在分组交换实现方面,数据报方式与虚电路方式分别对应无连接和有连接的两种网络层操作风格,影响着交换节点是否维护通信状态、分组所携带地址的类型以及路径的确定程度。
  • 数据报方式与TCP的“面向连接”特征存在差异:后者只在端系统上维护连接状态,路由器不参与;虚电路方式的连接状态则贯穿于中间所有交换节点。