零基础入门计算机网络:一文搞懂体系结构与分层思想
计算机网络是现代互联网的基石,但它的复杂性常常让初学者望而却步。其实,计算机网络的核心设计哲学非常优雅 ——分层。通过将庞大复杂的问题拆解为若干个小问题,每层专注解决特定任务,整个系统变得清晰易懂且易于维护。
本文将带你从零开始,系统学习计算机网络体系结构的核心知识,所有重点内容都整理成了表格,方便你快速查阅和记忆。
一、三种常见的计算机网络体系结构
为了实现不同厂商、不同类型计算机之间的互联互通,历史上出现了两种主要的网络体系结构标准,以及一种用于教学的原理性结构。
体系结构对比表
体系结构类型 | 层数 | 各层名称(从下到上) | 地位 | 核心特点 | 文档重点标注 |
OSI 参考模型 | 7 层 | 物理层、数据链路层、网络层、运输层、会话层、表示层、应用层 | 法律上的国际标准 | 理论完善但过于复杂 | 1977 年由 ISO 提出;因缺乏商业驱动力、实现复杂、周期过长而失败 |
TCP/IP 参考模型 | 4 层 | 网络接口层、网际层、运输层、应用层 | 事实上的国际标准 | 简单实用,市场主导 | 1983 年开始使用;网络接口层无具体内容,可互联各种网络接口 |
五层原理体系结构 | 5 层 | 物理层、数据链路层、网络层、运输层、应用层 | 教学用标准 | 综合 OSI 和 TCP/IP 优点 | 将 TCP/IP 的网络接口层重新划分为物理层和数据链路层 |
核心要点:
OSI 模型是理论上的完美标准,但从未被大规模商用
TCP/IP 模型是互联网的实际标准,"能够占领市场的就是标准"
五层结构是为了教学方便而提出的折中方案,也是本文后续讲解的重点
二、为什么要分层?各层的核心任务
计算机网络是一个极其复杂的系统,分层设计的本质是分而治之。我们按照从简单到复杂的顺序,看看实现计算机网络需要解决哪些问题,以及这些问题如何被分配到不同层次。
五层结构各层任务表
层次 | 解决的核心问题 | 主要功能 | 关键技术 / 概念 | 文档重点标注 |
物理层 | 使用何种信号表示比特 0 和 1 | 传输比特流 | 传输媒体、物理接口、信号编码 | 传输媒体不属于物理层;举例用方波信号是为了简化理解 |
数据链路层 | 分组在一个网络 / 一段链路上的传输 | 主机编址、帧封装、介质访问控制 | MAC 地址、以太网帧、冲突检测 | 解决 "谁发给谁" 和 "如何避免冲突" 问题 |
网络层 | 分组在多个网络间的传输和路由 | 网络编址、路由选择、分组转发 | IP 地址、路由器、路由表 | 解决 "跨网络传输" 问题;IP 协议是网际层核心 |
运输层 | 进程之间基于网络的通信 | 进程标识、可靠 / 不可靠传输 | 端口号、TCP、UDP | 解决 "数据交给哪个应用程序" 问题 |
应用层 | 通过应用进程交互实现特定网络应用 | 提供各种网络服务 | HTTP、SMTP、FTP、DNS | 直接面向用户的网络应用 |
核心要点:
分层将庞大复杂的问题转化为若干较小的局部问题
每层只关心自己的任务,不需要知道其他层的实现细节
下层为上层提供服务,上层使用下层提供的服务
三、分层思想实战:一次 HTTP 请求的完整旅程
理论讲完了,我们通过一个最常见的例子 —— 用浏览器访问网页,来看看各层是如何协同工作的。这个过程被称为封装与解封装。
HTTP 请求处理过程表
阶段 | 设备 | 处理层次 | 操作内容 | 生成的数据单元 | 文档重点标注 |
发送请求 | 主机 | 应用层 | 按 HTTP 协议构建请求报文 | HTTP 请求报文 | 包含请求方法、URL、协议版本等信息 |
运输层 | 添加 TCP 首部 | TCP 报文段 | 首部包含源端口和目的端口,用于区分应用进程 | ||
网络层 | 添加 IP 首部 | IP 数据报 | 首部包含源 IP 和目的 IP,用于路由转发 | ||
数据链路层 | 添加以太网首部和尾部 | 以太网帧 | 首部包含源 MAC 和目的 MAC;尾部用于差错检测 | ||
物理层 | 添加前导码,转换为电信号 | 比特流 | 前导码用于让目的主机做好接收准备 | ||
转发请求 | 路由器 | 物理层 | 将信号转换为比特流,去掉前导码 | 比特流 | 逐层解封装到网络层 |
数据链路层 | 去掉以太网首部和尾部 | IP 数据报 | |||
网络层 | 解析 IP 首部,查找路由表,确定转发端口 | IP 数据报 | 核心是路由选择 | ||
数据链路层 | 添加新的以太网首部和尾部 | 以太网帧 | 源 MAC 变为路由器出接口 MAC,目的 MAC 变为服务器 MAC | ||
物理层 | 添加前导码,转换为电信号 | 比特流 | |||
接收请求 | 服务器 | 物理层 | 将信号转换为比特流,去掉前导码 | 比特流 | 逐层解封装到应用层 |
数据链路层 | 去掉以太网首部和尾部 | IP 数据报 | 检查尾部的差错检测码 | ||
网络层 | 去掉 IP 首部 | TCP 报文段 | 检查 IP 地址是否匹配 | ||
运输层 | 去掉 TCP 首部 | HTTP 请求报文 | 根据端口号交给对应应用进程 | ||
应用层 | 解析 HTTP 请求,生成响应报文 | HTTP 响应报文 | 包含状态码、响应头和响应体 |
核心要点:
发送方是自上而下逐层封装,每一层都添加自己的首部(和尾部)
接收方是自下而上逐层解封装,每一层都去掉对应层的首部(和尾部)
路由器只处理到网络层,不关心运输层和应用层的内容
四、必须掌握的核心术语
计算机网络中有很多专用术语,它们都来源于 OSI 七层模型,但同样适用于 TCP/IP 模型和五层结构。
核心术语汇总表
术语类别 | 术语 | 定义 | 关键说明 | 文档重点标注 |
实体 | 实体 | 任何可发送或接收信息的硬件或软件进程 | 可以是硬件(如网卡),也可以是软件(如浏览器进程) | |
对等实体 | 通信双方相同层次中的实体 | 例如主机 A 的应用层进程和服务器的应用层进程 | 通信双方的网卡和正在通信的应用进程都是对等实体 | |
协议 | 协议 | 控制两个对等实体进行逻辑通信的规则的集合 | 协议是 "水平的",只在对等实体之间起作用 | 逻辑通信是假设的,目的是方便单独研究某一层 |
语法 | 定义通信双方所交换信息的格式 | 规定数据的字段、长度和顺序 | 协议三要素之一 | |
语义 | 定义通信双方所要完成的操作 | 规定收到信息后应该做什么 | 协议三要素之一 | |
同步 | 定义通信双方的时序关系 | 规定操作的先后顺序和状态转换 | 协议三要素之一;不是指时钟频率同步 | |
服务 | 服务 | 本层向上一层提供的功能 | 服务是 "垂直的",下层为上层提供服务 | 上层实体看得见下层的服务,但看不见实现服务的具体协议 |
服务访问点 (SAP) | 同一系统中相邻两层实体交换信息的逻辑接口 | 用于区分不同的服务类型 | 数据链路层:帧类型字段;网络层:协议字段;运输层:端口号 | |
服务原语 | 上层使用下层服务时交换的命令 | 是层间交互的接口 | ||
数据单元 | 协议数据单元 (PDU) | 对等层次之间传送的数据包 | 不同层有不同名称:物理层 - 比特流;数据链路层 - 帧;网络层 - IP 数据报;运输层 - TCP 报文段 / UDP 用户数据报;应用层 - 应用报文 | |
服务数据单元 (SDU) | 同一系统内层与层之间交换的数据包 | 多个 SDU 可以合并为一个 PDU,一个 SDU 也可以划分为几个 PDU |
核心要点:
协议是水平的,服务是垂直的
下层协议对上层实体是透明的,就像我们使用手机不需要懂手机的工作原理一样
协议三要素(语法、语义、同步)是理解任何网络协议的基础
总结
计算机网络体系结构的核心是分层思想,它将复杂的网络通信问题分解为五个相对独立的层次:
物理层:传输比特流
数据链路层:同一网络内的帧传输
网络层:跨网络的分组路由
运输层:进程间的端到端通信
应用层:提供具体的网络应用服务
通过本文的学习,你应该已经对计算机网络体系结构有了整体的认识。这些知识是后续学习 TCP/IP 协议、HTTP 协议、网络安全等内容的基础。随着学习的深入,你会越来越体会到分层设计的精妙之处。
