Appearance
题目
假设 OSI 参考模型的应用层欲发送 400 B 的数据(无拆分),除物理层和应用层之外,其他各层在封装 PDU 时均引入 20 B 的额外开销,则应用层数据传输效率约为( )。
错因
B
漏算了 1 层封装开销——只算了 4 层每层 20 B 共 80 B:。错的根源:把 OSI 七层中"除物理层和应用层之外"的中间 5 层(表示 / 会话 / 传输 / 网络 / 数据链路)数错成 4 层。
C
漏算了 2 层——只算 3 层封装:。错的根源:把"中间 5 层都加 20 B"误算成只有 3 层加,或者把 OSI 模型层数记错。
D
漏算了 3 层——只算 2 层封装:。错的根源:可能只考虑了"传输层 + 网络层"两层封装,忽略了 OSI 模型里还有表示层、会话层、数据链路层都会引入开销。
总解析
第一步:理清 OSI 七层封装路径
应用层数据从上往下走,每经过一层各封装一次首部 / 尾部:
| 层 | 封装动作 | 本题开销 |
|---|---|---|
| 7 应用层 | 产生原始数据 | 0(题面排除) |
| 6 表示层 | 加 PH(Presentation Header) | 20 B |
| 5 会话层 | 加 SH(Session Header) | 20 B |
| 4 传输层 | 加 TH(如 TCP / UDP 头) | 20 B |
| 3 网络层 | 加 NH(如 IP 头) | 20 B |
| 2 数据链路层 | 加 DLH + DLT(帧头帧尾) | 20 B |
| 1 物理层 | 比特流,无开销 | 0(题面排除) |
中间 5 层共加 B 开销。
第二步:算总传输字节数
第三步:算传输效率
第四步:核对
| 选项 | 算式 | 漏算几层 |
|---|---|---|
| A | 400 / 500 | 0(正确) |
| B | 400 / 480 | 漏 1 层 |
| C | 400 / 460 | 漏 2 层 |
| D | 400 / 440 | 漏 3 层 |
最终答案是 A(80%)。
编者注(生僻术语):"PDU"(Protocol Data Unit,协议数据单元)是 OSI 各层封装数据的统称——每层都把上一层传下来的 PDU 看作"载荷",加上自己的首部 / 尾部,形成本层 PDU。各层 PDU 有专门名字:传输层 segment / datagram,网络层 packet,链路层 frame,物理层 bit。本题考的就是各层封装开销在总传输字节中的占比。