Appearance
题目
下列选项中,不属于网络体系结构所描述的内容是( )。
错因
A
"网络的层次" 是网络体系结构最核心的内容——OSI 七层、TCP/IP 四层都是先定义"分几层"。错的根源:把"层次"误以为是协议规范的副产品,实际它就是体系结构本身。
B
"每一层使用的协议" 是体系结构定义的关键内容——HTTP 在应用层、TCP 在传输层、IP 在网络层、PPP 在链路层等。这些协议与每层绑定是体系结构的标准描述。错的根源:忽略协议是分层的具体载体。
D
"每一层必须完成的功能" 也是体系结构的标准内容——网络层做路由、传输层做端到端可靠传输、链路层做帧成帧等。功能定义是体系结构的服务规约。错的根源:混淆"功能"和"实现"——前者是体系结构的事,后者不是。
总解析
第一步:明确"网络体系结构"的定义
网络体系结构(Network Architecture)= 分层结构 + 各层功能 + 各层协议——它是对外可见的规范,不涉及具体实现。
包括:
| 内容 | 是否在体系结构里 |
|---|---|
| 网络分几层(A) | ✅ |
| 每层用什么协议(B) | ✅ |
| 每层提供什么功能(D) | ✅ |
| 协议给上下层的接口 | ✅ |
| 协议内部具体实现(C) | ❌ 不在 |
第二步:为什么"实现细节"不属于体系结构
体系结构描述的是对外可见的规范:
- 协议怎么响应消息(行为)
- 数据格式(消息字段定义)
- 时序流程(事件顺序)
但怎么实现这些规范——用什么数据结构、什么算法、什么编程语言——是实现者的私事,不影响互操作性。
例子:TCP 的滑动窗口可以用环形数组、链表、跳表实现,实现方式不同但都能正确实现 TCP 协议。Linux 内核 TCP 和 BSD TCP 的实现细节差异很大,但对外呈现的行为完全一致——这正是因为体系结构只规定行为,不规定实现。
第三步:核对
| 选项 | 内容 | 是否属于体系结构 |
|---|---|---|
| A | 网络的层次 | ✅ 是 |
| B | 每层使用的协议 | ✅ 是 |
| C | 协议的内部实现细节 | ❌ 不是 |
| D | 每层必须完成的功能 | ✅ 是 |
最终答案是 C(协议的内部实现细节)。
编者注(生僻术语):网络体系结构的"规范 vs 实现"分离是软件工程的"接口与实现分离"原则在协议领域的体现——
- 规范(specification):RFC、IEEE 标准等公开文档,定义协议的行为
- 实现(implementation):开源项目(如 Linux 内核、Wireshark)、商业产品(思科 IOS)等,具体编码
多个厂商可以独立实现同一规范、彼此互通——这是 Internet 能由全球数千家公司共同建设的基础。