Appearance
题目
OSI 参考模型中,自下而上第一个提供端到端服务的层次是( )
错因
A
数据链路层提供的是相邻节点间(节点-节点)服务——只管"链路两端",不管全程。错的根源:把"端到端"和"节点到节点"混淆。链路层只解决一段电缆 / 链路上的问题。
C
会话层(OSI 第 5 层)确实是端到端的,但不是自下而上第一个——传输层(第 4 层)已经提供端到端服务,会话层只是更上层的端到端。错的根源:忽略"第一个"的限定。
D
应用层(第 7 层)也是端到端的,但更不是第一个——它在传输层、会话层、表示层之上。错的根源:同 C 一样忽略"第一个"。
总解析
第一步:理清各层的服务对象
| 层 | 服务对象 | 范围 |
|---|---|---|
| 1 物理层 | 比特流传输 | 物理链路 |
| 2 数据链路层 | 帧传输 | 相邻节点(点对点) |
| 3 网络层 | 分组传输 | 逐跳路由(不是端到端) |
| 4 传输层 | 报文段传输 | 端到端(源进程 → 目的进程) |
| 5 会话层 | 会话管理 | 端到端(基于传输层) |
| 6 表示层 | 数据表示 | 端到端 |
| 7 应用层 | 应用 | 端到端 |
第二步:"端到端"的含义
"端到端"(end-to-end)= 从源主机的发送进程直接到目的主机的接收进程,不关心中间过了几个路由器、走了哪条路径。具体包括:
- 端口号识别进程
- 顺序保证
- 可靠性(如 TCP)
- 流量控制
- 拥塞控制
网络层为什么不算端到端:
网络层做"逐跳路由"——每经过一个路由器都要查路由表、选下一跳。它的服务对象是"主机到主机"(不到进程级),且每个分组在中间路由器被独立处理。这是"hop-by-hop"语义,不是"端到端"。
传输层为什么算端到端:
传输层加端口号,把"主机到主机"细化为"进程到进程";TCP 三次握手在两端之间建立逻辑通道,所有可靠性 / 顺序保证全在两端实现,中间路由器完全不感知。
第三步:核对
题问"自下而上第一个提供端到端服务":
- 物理层 / 链路层 / 网络层都不是端到端
- 传输层是第一个
最终答案是 B(传输层)。
编者注(生僻术语):"端到端原则"(End-to-End Principle)是 Internet 架构的指导思想——把"可靠性、状态、复杂性"都放在端点(传输层及以上),让网络中间设备只做最简单的事(路由 + 转发)。本题是对这一原则的概念考察。