《计算机网络》深入学:虚电路

在计算机网络的分组交换(Packet Switching)技术中,存在两种基本的网络层架构设计思路:数据报网络(Datagram Network)虚电路网络(Virtual Circuit Network)。虽然现代互联网(Internet)主要基于数据报模式(即 IP 协议),但在核心骨干网、电信级传输网络以及现代数据中心网络中,虚电路的设计思想依然占据着至关重要的地位。

本文将从原理机制、工作流程、与数据报的对比以及现代演进(如 MPLS)四个维度,深入剖析虚电路技术。

1. 虚电路的定义与核心思想

虚电路(Virtual Circuit, VC) 是一种面向连接(Connection-Oriented)的分组交换服务。它的核心思想是:在数据传输开始之前,必须在源主机和目的主机之间建立一条逻辑上的连接(即虚电路)。

这里的"虚"字非常关键,它用于区分传统的电话网络中的"电路交换"(Circuit Switching):

  • 电路交换:在物理层通过频分复用(FDM)或时分复用(TDM)预留固定的物理带宽资源。
  • 虚电路 :在链路层或网络层建立逻辑路径。分组依然采用 存储-转发(Store-and-Forward) 机制,但在转发时不需要为每个分组独立进行路由决策,而是沿着预先建立的路径传输。

2. 虚电路的工作机制

虚电路网络的工作过程严格遵循三个阶段:建立连接(Setup)数据传输(Data Transfer)连接释放(Teardown)

2.1 虚电路标识符 (VCI)

在虚电路网络中,分组不需要携带完整的源 IP 地址和目的 IP 地址,而是携带一个简短的标识符,称为虚电路标识符(Virtual Circuit Identifier, VCI)

关键科学特性 :VCI 具有链路本地性(Link-Local Scope)

这意味着 VCI 的数值仅在一段特定的链路上有效,而不是全局唯一的。当分组从一台交换机转发到下一台交换机时,其 VCI 通常会被修改。


虚电路标识符的链路本地性示意图

2.2 转发表与标签交换

虚电路交换机维护着一张转发表(Forwarding Table),也被称为 VC 表。与数据报网络中基于"目的地址"的最长前缀匹配不同,虚电路交换机基于"入接口 + 入 VCI"进行精确匹配。

转发表的每一项通常包含四个字段:
{Input Interface,Input VCI,Output Interface,Output VCI} \{ \text{Input Interface}, \text{Input VCI}, \text{Output Interface}, \text{Output VCI} \} {Input Interface,Input VCI,Output Interface,Output VCI}

转发逻辑如下:

  1. 分组到达交换机的输入接口 IinI_{in}Iin,携带 VCI 为 VinV_{in}Vin。
  2. 交换机查询转发表,找到匹配项 (Iin,Vin)(I_{in}, V_{in})(Iin,Vin)。
  3. 交换机将分组的 VCI 重写为表项中对应的 VoutV_{out}Vout。
  4. 将分组转发到输出接口 IoutI_{out}Iout。

这种机制被称为标签交换(Label Swapping)

2.3 三个阶段的详细流程

  1. 建立连接 (Setup)

    • 源主机发送一个"呼叫请求"(Call Request)分组。
    • 该分组包含目的地址。网络中的交换机根据路由算法选择路径,并在沿途每台交换机的转发表中创建条目,分配未使用的 VCI。
    • 资源预留:在此阶段,高级的虚电路网络可以预留带宽、缓冲区等资源,从而保证服务质量(QoS)。
  2. 数据传输 (Data Transfer)

    • 所有数据分组仅携带 VCI。
    • 分组严格按照建立的路径顺序到达,不会乱序。
    • 路由器无需进行复杂的路由查找,只需进行简单的查表和替换操作,转发效率极高。
  3. 连接释放 (Teardown)

    • 通信结束后,源主机发送"释放请求"。
    • 沿途交换机删除对应的转发表条目,释放 VCI 和预留的资源。

3. 虚电路与数据报网络的科学对比

为了严谨地理解虚电路,必须将其与数据报(Datagram)模式进行对比:

特性 虚电路 (Virtual Circuit) 数据报 (Datagram)
连接方式 面向连接 (Connection-Oriented) 无连接 (Connectionless)
状态信息 交换机需维护每条连接的状态 (Stateful) 交换机无连接状态 (Stateless)
分组头部 开销小 (仅含 VCI) 开销大 (含完整源/目地址)
路由决策 仅在建立连接时进行一次 每个分组独立进行路由
分组顺序 保证按序到达 可能乱序,需上层重组
故障适应性 弱:若节点故障,经过该节点的虚电路全部中断 强:节点故障后,分组可自动绕行其他路径
QoS 支持 易于实现 (可预留资源) 较难实现 (尽力而为服务)

深入分析

虚电路的致命弱点在于状态信息的维护。在核心网络中,如果有数百万条并发连接,交换机需要维护巨大的状态表,且一旦设备重启,所有经过的连接都会断开。这违背了互联网设计初期追求的"生存性"原则,因此 IP 协议选择了数据报模式。

4. 虚电路的现代演进与应用:从 ATM 到 MPLS

虽然纯粹的虚电路网络(如历史上的 X.25 和 ATM)在与 IP 的竞争中失去了通用网络层的主导地位,但虚电路的思想在现代核心网技术中得到了重生和升华。

4.1 历史背景:ATM (Asynchronous Transfer Mode)

在 20 世纪 90 年代,ATM 被视为下一代网络核心技术。它是一种典型的虚电路技术,使用固定的 53 字节信元(Cell)。ATM 试图将电信网的 QoS 优势与计算机网的灵活性结合,但因协议过于复杂(被称为"该死的复杂技术")且 IP 技术飞速发展而未能普及到终端。

4.2 现代应用:MPLS (Multiprotocol Label Switching)

MPLS 是虚电路思想在现代 TCP/IP 网络中的完美应用。

MPLS 位于第 2 层(链路层)和第 3 层(网络层)之间,通常被称为"2.5 层协议"。

  • 标签即 VCI:MPLS 给 IP 分组加上一个 32 位的标签头(Label Header)。这个标签在功能上等同于虚电路中的 VCI。
  • LSR 即虚电路交换机:MPLS 的路由器称为标签交换路由器(LSR),通过查找标签转发表(LFIB)进行转发,通过标签分发协议(LDP)或 RSVP-TE 来建立路径。
  • 流量工程 (Traffic Engineering):IP 路由通常基于最短路径优先(SPF),这可能导致某些链路拥塞而其他链路空闲。MPLS 允许网络管理员显式地建立一条跨越网络的"虚电路"(称为 LSP,标签交换路径),强制流量走指定的路径,从而优化网络资源利用率。

MPLS 标签交换路径示意图

4.3 软件定义网络 (SDN) 中的流表

在现代 SDN 架构(如 OpenFlow)中,虽然不一定显式使用 VCI 术语,但其"流(Flow)"的概念与虚电路异曲同工。控制器下发流表项,交换机对匹配特定"流"的数据包执行统一动作。这也是一种逻辑上的连接建立与转发分离的思想。

5. 总结

虚电路不仅仅是一个历史名词,它代表了一种高效、可控的数据转发哲学。

  1. 核心机制:通过连接建立、资源预留和标签交换(VCI),实现高效转发。
  2. 科学权衡:以维护网络状态为代价,换取了更低的分组头部开销和更强的 QoS 保证能力。
  3. 技术演进 :虽然纯 IP 网络赢得了边缘接入,但在互联网的骨干核心,基于虚电路思想的 MPLSSegment Routing 依然是支撑全球流量调度的基石。

对于专业学习者而言,理解虚电路不仅是为了了解 X.25 或 ATM 的历史,更是为了掌握 MPLS、VPN 以及现代数据中心流量调度背后的底层逻辑。

相关推荐
BingoGo10 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack10 小时前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
Sinclair1 天前
简单几步,安卓手机秒变服务器,安装 CMS 程序
android·服务器
JaguarJack1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo1 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
Rockbean2 天前
用40行代码搭建自己的无服务器OCR
服务器·python·deepseek
茶杯梦轩2 天前
CompletableFuture 在 项目实战 中 创建异步任务 的核心优势及使用场景
服务器·后端·面试
JaguarJack2 天前
告别 Laravel 缓慢的 Blade!Livewire Blaze 来了,为你的 Laravel 性能提速
后端·php·laravel
郑州光合科技余经理3 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
海天鹰3 天前
【免费】PHP主机=域名+解析+主机
服务器