📖 1.6.2 计算机网络体系结构分层的必要性
🎯 课程摘要:本节课按照由简单到复杂的顺序,分析实现计算机网络所面临的主要问题,并将这些问题逐层划归到五层原理体系结构(物理层、数据链路层、网络层、运输层、应用层),阐明分层可将庞大复杂问题转化为较小局部问题的设计思想。
📝 详细笔记
1. 分层的设计理念
- 概念定义:计算机网络是非常复杂的系统,早在 ARPANET 设计初期就提出了分层的设计理念。
- 原理解析:分层可将庞大而复杂的问题转化为若干较小的局部问题,而这些较小的局部问题更容易研究和处理。
- ⚠️ 重点/考点:分层思想体现软件工程中高内聚低耦合的概念——将问题划分到不同模块中逐个编程实现,而非全部放在一个模块中。
2. 物理层面临的问题
最简单情况:两台计算机通过一条链路连接,需考虑以下问题:
| 问题 | 内容 | |---| | 采用什么传输媒体 | 同轴电缆、双绞线电缆、光纤和光缆、自由空间等 | | 采用什么物理接口 | 如计算机主板上的 RJ-45 以太网接口 | | 使用怎样的信号表示比特 0 和 1 | 如数字基带信号:高电平表示 1,低电平表示 0 |
⚠️ 重点/考点:严格来说,传输媒体并不属于物理层范畴,不包含在计算机网络体系结构之中。教学中举例简单的数字基带信号是为降低理解难度,实际网络中传输的信号并非如此简单。
3. 数据链路层面临的问题
背景:在已解决物理层问题(主机间可通过信号传送比特 0 和 1)后,多台计算机互联成网络(如总线型网络)产生新问题。
需要解决的问题:
| 问题 | 说明 | |---| | 主机编址(标识各主机) | 网卡上固化的 MAC 地址,发送数据时附加源地址和目的地址 | | 数据包封装格式 | 目的主机如何从比特流中区分出地址和数据 | | 协调各主机征用总线(碰撞问题) | 多主机同时使用总线发送数据会造成信号碰撞 | | 差错检测 | 检测数据传输过程中是否出现误码 | | 传输差错处理 | 检测到误码时直接丢弃或重传(可靠传输 / 不可靠传输服务) | | 流量控制 | 接收方控制发送方注入网络的数据量(如接收方来不及取走时通知停止发送) |
⚠️ 重点/考点:
- 总线型网络早已淘汰,现常用以太网交换机将多台主机互联成交换式以太网,多对主机可同时通信而不产生碰撞,其原理是以太网交换机自学习和转发帧。
- 有线网络(交换式以太网)很少出现数据误码,无线网络较易出现误码,因此差错检测对无线网络尤为重要。
小结:只要解决物理层和数据链路层各自的问题,就可以实现数据包在一个网络上传输。
4. 网络层面临的问题
背景:因特网由非常多的网络和路由器互联而成,仅解决物理层和数据链路层问题不能正常工作。
需要解决的问题:
| 问题 | 说明 | |---| | 网络和主机共同编址 | IP 地址,网络号标识网络,主机号标识网络中的主机 | | 路由器转发数据包与路由选择 | 源主机到目的主机路径往往不止一条,需决定转发接口和选择路径 |
IP 地址举例:
- 网络 N1(网络号 192.168.0):主机 H1(主机号 1)、主机 H2(主机号 2)、路由器 R1 接口(主机号 254),网络号相同、主机号各不相同。
- 网络 N2(网络号 192.168.1):与 N1 网络号不同,因为是不同的网络。
⚠️ 重点/考点:同一网络中各设备接口的 IP 地址网络号相同、主机号各不相同;不同网络的网络号不同。
小结:解决物理层、数据链路层、网络层各自的问题,可以实现数据包在多个网络之间传送。
5. 运输层面临的问题
背景:计算机网络应用需考虑进程间通信问题。
需要解决的问题:
| 问题 | 说明 | |---| | 标识与网络通信相关的应用进程 | 如主机 H3 同时运行浏览器进程和 QQ 进程,收到数据后需交付给正确进程(使用端口号区分) | | 传输差错处理 | 数据包因误码或路由器繁忙被丢弃,需处理传输差错 |
小结:解决物理层、数据链路层、网络层、运输层各自的问题,可以实现进程之间基于网络的通信。
6. 应用层面临的问题
背景:在进程间基于网络通信的基础上,制定各种应用协议并编写应用程序。
需要解决的问题:
| 问题 | 说明 | |---| | 特定网络应用的协议 | 支持 WWW 的 HTTP 协议、支持电子邮件的 SMTP 协议、支持文件传送的 FTP 协议等 | | 会话管理 | 应用进程基于网络通信时的会话管理问题 | | 数据表示 | 应用进程基于网络通信时的数据表示问题 |
7. 五层原理体系结构总览
| 层次 | 解决的问题 | |---| | 物理层 | 使用何种信号表示比特 0 和 1 | | 数据链路层 | 数据包在一个网络或一段链路上传输 | | 网络层 | 数据包在多个网络之间传输和路由 | | 运输层 | 进程之间基于网络的通信 | | 应用层 | 通过应用进程的交互实现特定网络应用 |
💡 核心总结
- 分层可将庞大复杂问题转化为较小局部问题,体现高内聚低耦合思想。
- 物理层解决信号表示比特问题;数据链路层解决一个网络上的传输(编址、封装、碰撞、差错、流控);网络层解决多网络间的传输和路由(IP 编址、路由选择);运输层解决进程间通信(端口号、差错处理);应用层解决特定网络应用。
- 传输媒体不属于物理层范畴;总线型网络已淘汰,现用交换式以太网。
- 解决物理层和数据链路层可实现单网络传输,再加网络层可实现多网络传输,再加运输层可实现进程间通信,再加应用层可实现网络应用。
❓ 课后思考 / 经典考题
- 计算机网络体系结构为什么要分层?分层体现了软件工程中的什么概念?
- 物理层、数据链路层、网络层、运输层、应用层各自需要解决的核心问题是什么?
- 同一网络中各设备接口 IP 地址的网络号和主机号有何规律?
- 2013、2019、2021 年计算机专业考研全国统考计算机网络部分相关题目。