📖 1.6.3 计算机网络体系结构分层思想举例
🎯 课程摘要:本节课通过用户在主机浏览器中访问 Web 服务器的常见网络应用实例,从五层原理体系结构的角度详细演示应用层数据层层封装、逐层向下交付、经路由器转发、对端逐层解封的完整分层处理过程。
📝 详细笔记
1. 应用实例场景
- 场景描述:主机属于网络 N1,Web 服务器属于网络 N2,N1 和 N2 通过路由器互联。用户在主机浏览器地址栏输入 Web 服务器的域名后,主机向 Web 服务器发送请求报文,Web 服务器执行操作后返回响应报文,主机浏览器解析渲染显示。
- 本质:主机与 Web 服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与 Web 服务器中的 Web 服务器应用进程之间基于网络的通信。
- ⚠️ 重点/考点:本例为简化的示意过程,重点是体系结构的分层处理方法,而非浏览器与 Web 服务器的详细交互过程。
2. 分层封装与传输过程(主机发送 HTTP 请求报文)
3. 各层封装详解(发送端)
| 层次 | 接收的上层数据 | 添加内容 | 封装后的协议数据单元 | 关键作用 |
|---|---|---|---|---|
| 应用层 | — | — | HTTP 请求报文 | 请求 Web 服务器执行操作 |
| 运输层 | HTTP 请求报文 | TCP 首部 | TCP 报文段 | 区分应用进程、实现可靠传输 |
| 网络层 | TCP 报文段 | IP 首部 | IP 数据报 | IP 寻址和路由 |
| 数据链路层 | IP 数据报 | 首部 + 尾部 | 帧 | MAC 寻址和帧校验 |
| 物理层 | 帧 | 前导码(以太网) | 比特流(电信号) | 时钟同步、接收准备 |
- ⚠️ 重点/考点:物理层不认识帧的结构,仅将其看作比特流,转换成相应电信号发送。对于以太网,物理层会在比特流前添加前导码,目的是使接收方时钟同步并做好接收准备。
4. 路由器转发过程
| 层次 | 路由器操作 | |---| | 物理层 | 将电信号转换成比特流,去掉前导码,将帧向上交付给数据链路层 | | 数据链路层 | 去掉帧首部和尾部,将 IP 数据报向上交付给网络层 | | 网络层 | 从 IP 数据报首部提取目的 IP 地址,查找转发表决定转发接口;修改首部中某些字段值(如生存时间 TTL);将 IP 数据报向下交付给数据链路层 | | 数据链路层 | 为 IP 数据报添加首部和尾部封装成帧,向下交付给物理层 | | 物理层 | 将帧看作比特流,添加前导码后转变成电信号发送出去 |
- ⚠️ 重点/考点:路由器工作在物理层、数据链路层和网络层,不涉及运输层和应用层。转发时要修改 IP 首部中的 TTL 等字段值。
5. 接收端解封过程(Web 服务器)
- Web 服务器收到数据包后,按网络体系结构自下而上的顺序逐层解封:
- 物理层:电信号 → 比特流;
- 数据链路层:去掉首部尾部 → IP 数据报;
- 网络层:去掉 IP 首部 → TCP 报文段;
- 运输层:去掉 TCP 首部 → HTTP 请求报文;
- 应用层:收到 HTTP 请求报文,执行相应操作。
- Web 服务器给主机发送 HTTP 响报文的过程与请求报文类似,需在 Web 服务器层层封装后发送,经路由器转发到达主机,主机自下而上逐层解封出 HTTP 响应报文。
6. 考研真题(2017 年计算机专业考研全国统考)
- 题目:应用层欲发送 400 字节数据(应用层 PDU),经表示层、会话层、运输层、网络层、数据链路层逐层封装,每层添加 20 字节首部,求数据传输效率。
- 分析:
- 应用层 PDU = 400 字节;
- 经下面五层逐层封装,每层引入 20 字节额外开销,共 5 × 20 = 100 字节;
- 实际发送数据量 = 400 + 100 = 500 字节;
- 数据传输效率 = 400 ÷ 500 = 80%。
- 助教补充:数据链路层一般添加首部和尾部,本题为简单起见将 20 字节额外开销全部看作首部。
- 答案:选项 A(80%)。
💡 核心总结
- 分层处理方法:发送端自上而下逐层封装(添加各自首部/尾部),接收端自下而上逐层解封,路由器在中间三层完成转发。
- 应用层 HTTP 报文 → 运输层加 TCP 首部成 TCP 报文段 → 网络层加 IP 首部成 IP 数据报 → 数据链路层加首部尾部成帧 → 物理层转比特流加前导码成电信号。
- 物理层不认识帧结构,仅处理比特流和前导码;路由器只工作在下三层,转发时修改 TTL 等字段。
- 数据传输效率 = 应用层数据量 ÷ 实际发送数据量;逐层封装引入开销会降低传输效率。
❓ 课后思考 / 经典考题
- 主机发送 HTTP 请求报文时,各层分别添加什么首部/尾部?封装后的协议数据单元分别叫什么?
- 路由器在转发数据包时,涉及哪几个层次?为什么要修改 IP 首部中的 TTL 字段?
- 物理层为何要添加前导码?物理层是否认识帧的结构?
- 2017 年考研题:应用层 400 字节数据经五层逐层封装每层加 20 字节首部,求数据传输效率。