Appearance
题目
在 ISO/OSI 参考模型中,实现两个相邻结点间流量控制功能的是( )。
错因
A
物理层只管比特级信号传输(电压、调制、码型),不感知"帧"的边界——更不会有"看到对方发太快、让对方放慢"这种逻辑。流量控制需要按帧 / 数据单元判断接收方处理能力,物理层做不了。
C
网络层关心的是端到端的路由选择——把分组从源主机送到目的主机的路径决策。但网络层不直接做流量控制:实际工程里也确实没有"网络层流量控制"协议(拥塞控制是传输层 TCP 的职责,与流量控制是两件事)。
D
传输层的流量控制是端到端的(如 TCP 的 rcvwnd 滑动窗口)——发送方根据接收方应用层缓冲区状况调速,而不是根据相邻链路的物理状况。题面问"两个相邻结点间"——这是链路两端的相邻关系,对应数据链路层。
总解析
OSI 各层流量控制对照:
| 层 | 流量控制范围 | 控制的是什么 |
|---|---|---|
| 1 物理层 | — | 不做流量控制 |
| 2 数据链路层 | 相邻结点间 | 链路两端,按帧 / 滑动窗口控制 |
| 3 网络层 | — | 不直接做(路由选择不是流控) |
| 4 传输层 | 端到端 | 整个 TCP 连接,按字节 / rcvwnd 控制 |
| 5+ | — | 不做流量控制 |
两个易混点:
- 链路层流控 vs 传输层流控:前者是"链路两端两台直接相连的设备"之间的速度协调(如 HDLC、PPP 的窗口);后者是"通信两端的应用进程"之间的协调(TCP rcvwnd)。两者完全独立、可以同时存在。
- 流量控制 vs 拥塞控制:前者管"接收方处理不过来"的问题;后者管"网络中间链路拥塞"的问题。考研里常考辨析,记住:流控是"端到端 / 链路两端",拥控是"网络全局"。
题面"两个相邻结点间"明确指向数据链路层——链路层的滑动窗口(GBN / SR)就是相邻结点流控的标准实现。
最终答案是 B(数据链路层)。
编者注(生僻术语):"相邻结点"在 OSI 语境里指数据链路层视角下直接通过物理介质相连的两台设备——两台主机之间隔了路由器的话,就不算"相邻",而是"端到端"。一对相邻结点共享一条链路(双绞线、光纤、无线等),链路层的协议(PPP、HDLC、以太网等)在它们之间运行。