【计算机网络】计算机网络体系结构与参考模型
目录
一、计算机网络分层结构
1. 网络体系结构定义
2. 分层基本原则(5 条)
3. 实体与对等层
4. 数据单元(PDU、SDU、PCI)
二、计算机网络协议、接口、服务的概念
1. 协议(“水平的” 通信规则)
2. 接口(层间 “逻辑门”)
3. 服务(“垂直的” 功能调用)
三、ISO/OSI 参考模型和 TCP/IP 模型
1. OSI 参考模型(7 层,“理论化” 分层)
2. TCP/IP 模型(4 层,“实用化” 分层)
3. 两者对比(OSI vs TCP/IP)
四、协议栈通信过程(以 “HTTP 请求” 为例)
五、总结
一、计算机网络分层结构
1. 网络体系结构定义
计算机网络的 **“层”(功能模块)与对应“协议”(通信规则)的集合,称为网络体系结构 **。
- 体系结构是抽象的:仅定义功能和协议的逻辑关系,不涉及具体硬件 / 软件实现。
- 实现是具体的:如路由器、交换机的硬件设计,TCP/IP 协议栈的软件代码,是体系结构的物理载体。
2. 分层基本原则(5 条)
| 原则 | 详细说明 | 实例 |
|---|---|---|
| 降低系统复杂度 | 每层仅负责一类独立功能,避免 “一损俱损” | 网络层只管路由,传输层只管端到端可靠,各司其职 |
| 接口自然清晰 | 相邻层之间的交互规则(如数据格式、调用方式)明确,减少层间依赖 | 传输层通过 “端口号” 向应用层提供服务,应用层无需关心传输层内部逻辑 |
| 功能定义独立于实现 | 层的功能仅定义 “做什么”,不限制 “怎么做” | 网络层的 “路由功能”,既可以用 OSPF 协议实现,也可以用 RIP 协议实现 |
| 上层单向使用下层服务 | 上层只能通过下层的 “接口” 调用服务,不能反向或跨层调用 | 应用层(如 HTTP)必须通过传输层(如 TCP)、网络层(如 IP)才能发送数据,无法直接操作物理层 |
| 促进标准化 | 分层后,每层的协议、接口可独立标准化,推动不同厂商设备互通 | 以太网(数据链路层标准)、IP(网络层标准)让全球设备能互联 |
3. 实体与对等层
- 实体:第n层中执行功能的活动元素(如软件模块、硬件组件)。
- 对等层:不同设备上的同一层(如主机 A 的网络层与主机 B 的网络层)。
- 对等实体:对等层中的实体(如主机 A 的 IP 模块与主机 B 的 IP 模块),通过协议实现逻辑通信。
4. 数据单元(PDU、SDU、PCI)
| 类型 | 定义 | 实例 | 关系公式 |
|---|---|---|---|
| 协议数据单元(PDU) | 对等层之间传送的完整数据单位,含 “本层控制信息 + 上层数据” | 物理层 PDU 是比特流,数据链路层是帧,网络层是分组(数据报),传输层是报文段 | n-SDU+n-PCI=n-PDU=(n−1)-SDU |
| 服务数据单元(SDU) | 层与层之间交换的 “用户数据”(即上层传递给下层的原始数据) | 传输层的 SDU 是应用层的 HTTP 报文,网络层的 SDU 是传输层的 TCP 报文段 | |
| 协议控制信息(PCI) | 本层协议的控制信息(如头部、尾部的标识、校验位等) | 以太网帧的 “MAC 地址、校验和” 是数据链路层的 PCI;IP 头部的 “源 / 目的 IP、TTL” 是网络层的 PCI |
二、计算机网络协议、接口、服务的概念
1. 协议(“水平的” 通信规则)
- 定义:网络中对等实体交换数据的规则、标准或约定。
- 三要素:
- 语法:数据与控制信息的格式、结构(如 “字段长度、编码方式”)。实例:TCP 报文段的 “源端口、目的端口、序列号” 字段格式由 TCP 语法定义。
- 语义:控制信息的含义、动作、应答逻辑(如 “收到该字段后执行什么操作”)。实例:TCP 头部的 “SYN” 位表示 “请求建立连接”,收到后需回发 “SYN+ACK”。
- 同步:操作的时序关系、执行条件(如 “先做什么、后做什么”)。实例:TCP 三次握手的时序(SYN→SYN+ACK→ACK)由同步定义。
2. 接口(层间 “逻辑门”)
- 定义:同一节点内相邻两层实体交换信息的逻辑接口,称为服务访问点(SAP)。
- 特点:仅能在紧邻层之间定义,不能跨层。
- 实例:传输层的 SAP 是端口号(如 HTTP 用 80 端口,FTP 用 21 端口),应用层通过端口号调用传输层服务。
3. 服务(“垂直的” 功能调用)
- 定义:下层为紧邻上层提供的功能调用,是 “垂直” 的依赖关系。
- 特点:
- 服务用户(上层)仅能看见服务,看不见下层协议(如 HTTP 只需知道 TCP 能传数据,无需关心 TCP 的三次握手)。
- 只有本层协议的实现,才能保证向上层提供服务(如 TCP 协议若未实现,传输层就无法给 HTTP 提供可靠传输服务)。
- 服务分类:
| 分类维度 | 类型 | 定义 | 实例 |
|---|---|---|---|
| 连接方式 | 面向连接 | 通信前需建立连接,分配资源(如缓冲区),通信后释放资源 | TCP(三次握手建立连接,四次挥手释放连接) |
| 无连接 | 无需建立连接,直接发送数据 | IP、UDP(数据包直接投递,无连接过程) | |
| 可靠性 | 可靠 | 有检错、纠错、应答机制,保证数据正确送达 | TCP(通过 ACK、重传、校验和实现可靠) |
| 不可靠 | 尽力而为,不保证数据正确 / 完整送达 | IP、UDP(仅做数据包转发,出错则丢弃) | |
| 应答方式 | 有应答 | 接收方收到数据后自动回送应答(由传输系统底层实现) | FTP 文件传输(上传后服务器自动回应答包) |
| 无应答 | 接收方收到数据后不自动应答,需高层应用实现应答逻辑 | WWW 服务(浏览器收页面后,无底层自动应答) |
三、ISO/OSI 参考模型和 TCP/IP 模型
1. OSI 参考模型(7 层,“理论化” 分层)
自下而上依次为物理层、数据链路层、网络层、传输层、会话层、表示层、应用层,每层功能、传输单位、关键机制如下:
| 层名 | 传输单位 | 核心功能 | 关键技术 / 设备 / 协议 |
|---|---|---|---|
| 物理层 | 比特 | 实现原始比特流在物理介质上的透明传输;定义接口的机械、电气、功能特性 | 双绞线、光纤、中继器;RS-232、以太网物理规范 |
| 数据链路层 | 帧 | 将物理层的 “不可靠连接” 改造为 “逻辑无差错链路”;实现差错控制、流量控制;封装网络层分组为帧 | 以太网帧(802.3)、PPP;网桥、交换机;CRC 校验、滑动窗口 |
| 网络层 | 分组(数据报) | 负责分组路由选择(选路到目标网络)、拥塞控制、网际互联;提供 “虚电路” 和 “数据报” 两种服务 | IP、ICMP、OSPF、RIP;路由器;IPv4/IPv6 |
| 传输层 | 报文段 | 负责进程间端到端通信;提供可靠传输、连接管理、复用 / 分用(多个应用共享传输层连接) | TCP、UDP;端口号(复用 / 分用的标识) |
| 会话层 | 会话单元 | 管理进程间会话的建立、维护、终止;通过 “检查点机制” 实现可靠会话(如断点续传) | 无特定协议(多为应用层协议集成该功能);FTP 断点续传 |
| 表示层 | 表示数据 | 处理信息的表示方式(如编码转换、数据压缩、加密 / 解密),使不同系统能互通 | ASCII/Unicode 编码转换;SSL 加密;ZIP 压缩 |
| 应用层 | 应用数据 | 用户与网络的接口,提供各类应用协议,满足特定网络应用需求 | HTTP、DNS、SMTP、FTP、Telnet |
2. TCP/IP 模型(4 层,“实用化” 分层)
自下而上依次为网络接口层、网际层、传输层、应用层,每层功能与 OSI 的对应关系如下:
| 层名 | 对应 OSI 层 | 传输单位 | 核心功能 | 关键协议 / 技术 |
|---|---|---|---|---|
| 网络接口层 | 物理层 + 数据链路层 | 帧 / 比特 | 负责 IP 分组与物理网络的交互(如以太网、令牌环网的适配);未定义具体协议,由物理网络决定 | 以太网、PPP;网桥、交换机 |
| 网际层 | 网络层 | IP 数据报 | 负责分组选路、网际互联,提供 “无连接不可靠” 的 IP 数据报服务 | IP(IPv4/IPv6)、ICMP、ARP;路由器 |
| 传输层 | 传输层 | 报文段 / 用户数据报 | 提供端到端通信,支持 “面向连接可靠”(TCP)和 “无连接不可靠”(UDP)两种服务 | TCP、UDP;端口号 |
| 应用层 | 会话层 + 表示层 + 应用层 | 应用数据 | 集成会话、表示层功能,提供各类应用协议 | HTTP、DNS、SMTP、FTP、Telnet、RTP |
3. 两者对比(OSI vs TCP/IP)
| 维度 | OSI 参考模型 | TCP/IP 模型 |
|---|---|---|
| 分层数量 | 7 层(物理、数据链路、网络、传输、会话、表示、应用) | 4 层(网络接口、网际、传输、应用) |
| 模型与协议的关系 | 先有模型,后设计协议(理论驱动) | 先有协议(如 ARPANET 的 TCP/IP),后总结模型(实践驱动) |
| 服务 / 协议 / 接口 | 明确定义 “服务、协议、接口” 三者的边界 | 未明确区分,协议即模型的体现 |
| 层功能合并 | 会话、表示层独立存在 | 会话、表示层功能合并到应用层 |
| 网络层服务 | 支持 “无连接(数据报)” 和 “面向连接(虚电路)” | 仅支持 “无连接(IP 数据报)” |
| 传输层服务 | 仅支持 “面向连接(可靠)” | 支持 “面向连接(TCP)” 和 “无连接(UDP)” |
| 实用性 | 过于理论化,实际部署少 | 全球广泛部署,是 “事实上的标准” |
四、协议栈通信过程(以 “HTTP 请求” 为例)
用户在浏览器中输入网址,数据会经历 **“逐层封装→传输→逐层拆封”** 的过程:
-
应用层封装:
- 应用层生成HTTP 请求报文(如 “GET /index.html HTTP/1.1”),这是应用层 SDU。
- 加上应用层 PCI(如 HTTP 头部的 “Host、User-Agent”),形成应用层 PDU(完整 HTTP 请求)。
-
传输层封装:
- 应用层 PDU 作为传输层 SDU,交给传输层(如 TCP)。
- 加上 TCP 头部(传输层 PCI,如 “源端口(随机)、目的端口(80)、序列号、SYN 位”),形成TCP 报文段(传输层 PDU)。
-
网络层封装:
- TCP 报文段作为网络层 SDU,交给网络层(IP)。
- 加上 IP 头部(网络层 PCI,如 “源 IP、目的 IP、TTL、协议类型(TCP)”),形成IP 数据报(网络层 PDU)。
-
数据链路层封装:
- IP 数据报作为数据链路层 SDU,交给数据链路层(如以太网)。
- 加上以太网头部(如 “源 MAC、目的 MAC”)和尾部(如 “CRC 校验”),形成以太网帧(数据链路层 PDU)。
-
物理层传输:以太网帧被转换为比特流,通过网线、光纤等物理介质传输。
-
接收方拆封(逆向过程):
- 物理层将比特流还原为以太网帧,数据链路层校验并拆帧,提取 IP 数据报。
- 网络层拆 IP 数据报,提取 TCP 报文段;传输层拆 TCP 报文段,提取 HTTP 请求。
- 应用层解析 HTTP 请求,最终交给服务器的 Web 服务处理。
五、总结
计算机网络体系结构采用分层设计原则,包括OSI七层模型和TCP/IP四层模型。分层通过定义各层功能、协议和接口降低系统复杂度,实现标准化。网络通信涉及协议(对等层通信规则)、接口(层间交互点)和服务(下层对上层功能支持)。数据在协议栈中经历逐层封装(添加头部控制信息)和拆封过程,如HTTP请求从应用层到物理层的完整传输流程。TCP/IP模型因实际应用广泛成为事实标准,而OSI模型更偏向理论指导。理解分层结构、协议数据单元(PDU)转换机制及模型差异是掌握网络通信原理的关键。
