网络层提供的两种服务:虚电路与数据报
分组交换网根据其通信子网向端点系统提供的服务,可进一步分为面向连接的虚电路服务和无连接的数据报服务,这两种服务方式都由网络层提供。互联网选了数据报,所以本章之后讲的 IP 全是数据报;虚电路在这里讲完就不再出现。
本页 3 道错题,全部卡在同一个问题上:虚电路里什么是”虚”的。 虚电路借用了电路交换”先建立、再通信、后释放”的流程,但它仍然是分组交换:不占用物理线路、不预留带宽、分组照样存储转发。把这一点想清楚,这类判断题就只剩逐项核对。
机制
虚电路
在虚电路方式中,两台计算机进行通信时,应当先建立网络层的连接,也就是建立一条逻辑上的虚电路(Virtual Circuit,VC)。连接一旦建立,就固定了虚电路对应的物理路径。与电路交换类似,整个通信过程分为三个阶段:虚电路建立、数据传输与虚电路释放。
每次建立虚电路时,将一个未用过的虚电路号(VCID)分配给该虚电路,以区别于本系统中的其他虚电路,然后双方就沿着已建立的虚电路传送分组。分组的首部仅在连接建立时使用完整的目的地址,之后每个分组的首部只需携带这条虚电路的编号。在虚电路网络中的每个节点上都维持一张虚电路表,表中每项记录一个打开的虚电路的信息,包括在接收链路和发送链路上的虚电路号、前一节点和下一节点的标识,它是在虚电路建立过程中确定的。
sequenceDiagram participant A as 主机 A participant N as 中间节点(A→B→C→D) participant B as 主机 B A->>N: 呼叫请求(带完整目的地址) N->>B: 呼叫请求 B-->>N: 呼叫应答 N-->>A: 呼叫应答 Note over A,B: 虚电路建立完成,路径固定 A->>N: P1、P2(只带虚电路号) N->>B: P1、P2(按发送顺序到达) B-->>A: ACK A->>B: 释放请求 B-->>A: 释放应答
图中数据传输阶段是有确认的传输,B 收到分组后要发回相应的确认。虚电路服务具有如下特点:
- 虚电路通信链路的建立和拆除需要时间开销,对交互式应用和少量的短分组情况显得很浪费,但对长时间、频繁的数据交换效率较高。
- 虚电路的路由选择体现在连接建立阶段,连接建立后,就确定了传输路径。
- 虚电路提供了可靠的通信功能,能保证每个分组正确且有序到达;还可以对两个端点的流量进行控制,接收方来不及接收时,可以通知发送方暂缓发送。
- 虚电路有一个致命的弱点:当网络中的某个节点或某条链路出现故障而彻底失效时,所有经过该节点或该链路的虚电路都将遭到破坏,必须重新建立。
- 分组首部不包含目的地址,包含的是虚电路号,相对于数据报方式,其开销小。
虚电路之所以是”虚”的,是因为这条电路不是专用的:每个节点到其他节点之间的链路可能同时有若干条虚电路通过,也可能同时在多个节点之间建立虚电路。
虚电路按持续时间分两种:永久性虚电路(PVC)是提前定义好的、基本上不需要任何建立时间的端点之间的连接;交换型虚电路(SVC)是端点之间的临时性连接,只持续所需的时间,会话结束时就取消。
数据报
网络在发送分组前不需要先建立连接。源主机的高层协议将报文拆成若干较小的数据段,并加上地址等控制信息后构成分组;中间节点存储分组很短一段时间,找到最佳的路由后,尽快转发每个分组。网络层不提供服务质量的承诺,也不提供端到端的可靠传输服务,这使得网络中的路由器比较简单,且造价低廉。
例如主机 A 向主机 B 发送分组 P1、P2:A 先将分组逐个发往与它直接相连的交换节点 A,节点 A 缓存收到的分组后查找转发表;因为不同时刻的网络状态不同,转发表的内容可能不完全相同,于是 P1 可能经节点 C 转发、P2 可能经节点 D 转发,各节点类似地转发,直到分组最终到达主机 B。当分组正在某一链路上传送时,分组并不占用网络其他部分的资源;因为采用存储转发技术,资源是共享的,所以主机 A 在发送分组时,主机 B 也可同时向其他主机发送分组。
数据报服务具有如下特点:
- 发送分组前不需要建立连接,发送方可随时发送分组,网络中的节点可随时接收分组。
- 网络尽最大努力交付,传输不保证可靠性,分组可能出错或丢失;网络为每个分组独立地选择路由,转发的路径可能不同,因此分组不一定按序到达。
- 发送的分组中要包括发送方和接收方的完整地址,以便可以独立传输。
- 分组在交换节点存储转发时需要排队等候处理,会带来一定的时延;网络拥塞时这种时延会大大增加,交换节点还可根据情况丢弃部分分组。
- 网络具有冗余路径,当某个交换节点或一条链路出现故障时,可相应地更新转发表,寻找另一条路径转发分组,对故障的适应能力强。
- 收发双方不独占某条链路,资源利用率较高。
两种服务的比较
| 比较项 | 数据报服务 | 虚电路服务 |
|---|---|---|
| 连接的建立 | 不需要 | 必须有 |
| 目的地址 | 每个分组都有完整的目的地址 | 仅在建立连接阶段使用,之后每个分组使用长度较短的虚电路号 |
| 路由选择 | 每个分组独立地进行路由选择和转发 | 属于同一条虚电路的分组按照同一路由转发 |
| 分组顺序 | 不保证有序到达 | 保证有序到达 |
| 可靠性 | 不保证,由用户主机来保证 | 由网络保证 |
| 对网络故障的适应性 | 出故障的节点丢失分组,其他分组路径选择发生变化时可以正常传输 | 所有经过故障节点的虚电路均不能正常工作 |
| 差错处理和流量控制 | 由用户主机进行 | 可由分组交换网负责,也可由用户主机负责 |
边界
虚电路是逻辑连接,数据传输前建立的不是物理连接。 它和电路交换一样要”先建立连接”,但电路交换建立的是独占的物理通路,虚电路只是在沿途节点的虚电路表里各写了一项。
错题复盘:虚电路也是存储转发的分组交换;数据报的每个分组都带源地址和目的地址
王道 4.1.6 第 13 题:下列关于虚电路和数据报的叙述中,正确的是(A. 虚电路是一种分组交换技术,但不能按照存储转发的方式工作 B. 虚电路的连接是临时性连接,当会话结束时就释放这种连接 C. 数据报服务不提供可靠传输,但可以保证分组的有序到达 D. 数据报服务中,每个分组都必须携带源地址和目的地址)。答案 D。
四个选项各错在一个”但”或”只”上:
- A:虚电路是分组交换技术,可以采用存储转发的方式工作——它和数据报的区别在于路由何时选定,不在于转发方式。
- B:虚电路不只是临时性的。**交换型虚电路(SVC)**会话结束就取消,**永久性虚电路(PVC)**是提前定义好、基本不需要建立时间的连接。B 只说对了 SVC。
- C:数据报服务既不保证可靠,也不保证有序——每个分组独立选路,后发的可能先到。
- D:数据报的分组要独立传输,所以每个都要带完整的源地址和目的地址;虚电路建立连接后,分组只需携带虚电路标识。
错题复盘:虚电路本身能做差错控制,建立后分组只带虚电路号,共享链路也不冲突
王道 4.1.6 第 14 题:下列关于虚电路的说法中,正确的是(A. 虚电路依赖其他协议实现差错控制 B. 采用虚电路方式发送分组时,分组首部都必须包含目的地址 C. 虚电路结合了电路交换的思想,适合对实时性要求较高的长时间通信 D. 多站点同时使用一段物理链路实行虚电路交换会产生冲突,无法正常通信)。答案 C。
- A:虚电路提供的是可靠的通信服务,本身就可实现差错控制,不必依赖其他协议。依赖上层(TCP)保证可靠的是数据报。
- B:“都必须”错。分组仅在连接建立时才需要完整的目的地址,之后每个分组只携带这条虚电路的编号。
- D:多站点同时使用一段物理链路不会冲突,每个分组都有虚电路号标识它属于哪条虚电路——这正是”虚”的含义:一条链路上同时跑多条虚电路。
- C:建立连接的开销只付一次,之后路径固定、分组有序,长时间、频繁的通信摊薄了建立开销,所以正确。
这里的”冲突”是第 3 章广播信道的概念。虚电路网络中的链路是点对点的,分组在节点里排队等待发送,不存在两个信号在介质上相撞的问题。
错题复盘:虚电路不需要为每条虚电路预分配带宽
2020 年统考真题(王道 4.1.6 第 20 题):下列关于虚电路网络的叙述中,错误的是(A. 可以确保数据分组传输顺序 B. 需要为每条虚电路预分配带宽 C. 建立虚电路时需要进行路由选择 D. 依据虚电路号(VCID)进行数据分组转发)。答案 B。
在建立虚电路的阶段,分组才需要携带完整的目的地址,以进行路由选择(C 对);之后每个分组只需携带短的虚电路号(D 对),属于同一条虚电路的分组按照同一路由转发,到达终点的顺序与发送顺序相同(A 对)。虚电路只是一条逻辑上的连接,并不是一条物理上的连接,因此不需要为每条虚电路预分配带宽。
预分配带宽是电路交换的特征。把”建立连接”等同于”占用资源”,就会误选 B 为正确。
数据报”不保证有序”,但 TCP 可以恢复顺序。 数据报网络上的可靠、有序由高层协议(如 TCP)实现,这是”由用户主机保证可靠性”的具体含义(5.3.4 TCP 可靠传输)。
故障率高时选数据报。 虚电路一旦中间节点故障,所有经过它的虚电路都要重建;数据报每个分组独立选路,故障后可以改走别的路径(王道 4.1.6 第 9 题)。
同一报文的分组可以走不同路径的,只有数据报。 电路交换和虚电路方式下路径都在通信前确定。
口径差异:虚电路一定"可靠"吗
教材口径:虚电路服务由网络保证可靠性,能保证每个分组正确且有序到达。
工程口径:这描述的是 X.25 一类逐跳确认、重传的虚电路网络。后来的帧中继和 ATM 同样面向连接、按虚电路号转发,但出错的帧或信元直接丢弃,不在网络内重传,只保证有序、不保证不丢。今天运营商网络中的 MPLS 标签交换路径沿用了”建立时选路、之后只带短标签”的思路,也不保证可靠。
考试按教材口径作答:虚电路 = 面向连接 + 可靠 + 有序。
对照速查
| 说法 | 对错 |
|---|---|
| 虚电路和数据报都是分组交换,都由网络层提供 | ✅ |
| 虚电路在数据传输前要建立物理连接 | ❌(逻辑连接) |
| 虚电路需要为每条虚电路预分配带宽 | ❌(2020) |
| 虚电路建立后,分组首部只需携带虚电路号 | ✅ |
| 虚电路的分组按发送顺序到达 | ✅ |
| 虚电路中间节点故障后,可以沿其他路径继续通信 | ❌(须重新建立) |
| 数据报服务中,同一报文的分组可以走不同路径 | ✅ |
| 数据报服务保证分组有序到达 | ❌ |
| 数据报的每个分组都携带源地址和目的地址 | ✅ |
| 由网络负责差错控制和流量控制、分组按序递交的是虚电路分组交换 | ✅ |
| 在故障率很高的系统中,选择虚电路更合适 | ❌(数据报) |
考点
- 虚电路三阶段:建立、传输、释放;建立时选路,之后按虚电路号转发(2020)
- 虚电路:逻辑连接、不预分配带宽、可靠、有序;故障则所有经过的虚电路失效
- PVC 与 SVC
- 数据报:无连接、独立选路、不保证可靠与有序、每个分组带完整地址、对故障适应能力强
- TCP/IP 网络层选择了数据报(2011)
链接
- 🏠 返回总览:计算机网络第 4 章:网络层总览
- ⬅️ 上一节:4.1.1~4.1.2 异构网络互连、路由与转发
- ➡️ 下一节:4.1.4 SDN 的基本概念
- 🔗 1.1.4 电路交换、报文交换与分组交换:电路交换、报文交换、分组交换(1.1.4)
- 📖 名词库:第 4 章名词库