计算机网络学习站

kp-003 · 01-网络基础与体系结构

分层体系结构:OSI 与 TCP/IP

入门 约 20 分钟 OSITCP/IP分层协议
我的进度:

注:本文基于模型知识整理,建议结合权威教材与 RFC 原文核对细节。

一句话定义

分层体系结构把复杂的网络通信功能按层组织:每层向上层提供服务,通过协议与对端的同层实体通信;OSI 七层模型是教学与描述的参考框架,TCP/IP 模型则是被全球实际部署的事实标准。

为什么重要

没有分层,网络协议将纠缠成不可维护的整体。分层带来关注点分离、模块化与独立演进——接入方式从 Wi-Fi 4 换到 Wi-Fi 6,上层应用毫无感知。它是阅读协议文档、设计协议、定位网络故障的共同语言;工程讨论中的「第几层问题」都以它为参照系。

前置知识

建议先读 kp-001《计算机网络与因特网概览》,了解端系统、网络核心与协议的基本概念。

核心概念

  • 协议三要素:语法(syntax,数据与控制信息的格式结构)、语义(semantics,各字段的含义与应完成的动作)、时序(timing,事件顺序与速率匹配)。
  • 实体(entity):任何可发送或接收信息的硬件或软件进程;不同机器上位于同一层次的实体互为对等实体(peer entity)。
  • 服务(service):下层向上层提供的能力,通过层间接口交付,接口上的交互点称为服务访问点(SAP,Service Access Point)。
  • 关键区分:服务是垂直的(下层向上层),协议是水平的(对等实体之间)。
  • PDU(Protocol Data Unit,协议数据单元):各层传输的数据单元,命名规则详见 kp-004。

图示

 发送主机                                       接收主机
┌────────────┐                         ┌────────────┐
│   应用层   │ ─────── 对等协议 ─────→ │   应用层   │
├────────────┤        (逻辑通信)      ├────────────┤
│   运输层   │ ─────── 对等协议 ─────→ │   运输层   │
├────────────┤                         ├────────────┤
│   网络层   │ ─────── 对等协议 ─────→ │   网络层   │
├────────────┤                         ├────────────┤
│ 数据链路层 │ ─────── 对等协议 ─────→ │ 数据链路层 │
├────────────┤                         ├────────────┤
│   物理层   │ ══════ 实际比特流 ════→ │   物理层   │
└────────────┘                         └────────────┘
 垂直方向:下层经服务访问点(SAP)向上层提供服务

原理与机制

分层的价值在于:功能内聚、接口稳定,任一层内部实现可替换而不影响相邻层(独立演进);复杂问题被分解为多个可分别设计、测试与标准化的小问题;排错时可逐层收缩范围。层间关系是「垂直的服务调用」:第 N 层利用第 N−1 层的服务,为第 N+1 层服务;同层关系是「水平的对等协议」:两端按同一协议交换 PDU,逻辑上直接对话,物理上必须经下层传递。

OSI 七层自下而上的职责各一句话:物理层——在传输介质上透明传送比特流;数据链路层——在相邻结点间成帧、差错检测与流量控制;网络层——为分组选路,实现主机到主机的交付;运输层——提供端到端的进程间通信(TCP 可靠、UDP 尽力而为);会话层——建立、管理与同步会话;表示层——数据格式转换、加密与压缩;应用层——为用户应用提供网络服务接口。

TCP/IP 四层与教学五层模型的对照如下表:

教学五层对应 OSI 七层对应 TCP/IP 四层典型协议/设备
应用层应用层 + 表示层 + 会话层应用层HTTP、DNS
运输层运输层运输层TCP、UDP
网络层网络层网际层IP、路由器
数据链路层数据链路层网络接口层以太网、交换机
物理层物理层网络接口层IEEE 802.3 物理层规范

OSI 与 TCP/IP 之争:ISO 于 1984 年发布 OSI 参考模型(ISO/IEC 7498-1),采取「标准先行」策略,协议尚未成熟便试图一统天下;七层划分复杂,会话层与表示层功能空洞,厂商实现缓慢。TCP/IP 则源自 ARPANET 的工程实践,是先运行、后成文的「事实标准」,随 BSD Unix 免费进入学术界,生态迅速形成。叠加政治与经济背景(欧洲电信阵营支持 OSI,美国研究网络阵营拥抱 TCP/IP),最终 TCP/IP 赢得部署,OSI 模型保留为教学与描述语言的参考框架——「用 OSI 的语言,讲 TCP/IP 的现实」是今天教科书的标准姿势。

分层模型的局限:严格层间接口可能牺牲性能,实践中存在跨层优化(如无线网络联合调整链路层与运输层参数);同一层内也常有多个协议并存,层次与实现并非一一对应。

实例分析

以「网页打不开」的排错为例展示分层思想:先查应用层(DNS 解析是否成功、HTTP 状态码);再查运输层(目标端口是否可达);然后查网络层(能否 ping 通目标 IP、路由是否正常);再查链路层(默认网关的 ARP 是否解析成功);最后查物理层(网线、Wi-Fi 信号与无线关联状态)。逐层收缩范围,远比盲目重启高效,这正是分层模型在工程上的直接兑现。

常见误区

  • 以为网络上运行的是 OSI 协议栈:OSI 是参考模型,实际部署的是 TCP/IP 协议族。
  • 混淆协议与服务:协议是同层对等实体间的规则(水平),服务是下层向上层提供的能力(垂直);本层协议的实现要依赖下层提供的服务。
  • 认为五层/七层必须严格映射到具体实现:模型是抽象工具,真实协议栈(如 Linux 内核)的层次边界更灵活。
  • 把 TCP/IP 的「网络接口层」当成单一协议:它实际涵盖以太网、Wi-Fi、PPP 等多种异构链路技术。

自测题

  1. 协议三要素是什么?各解决什么问题?<br>答案要点: 语法(数据格式与结构)、语义(字段含义与应执行的动作)、时序(事件顺序与速率匹配);三者共同保证对等实体可互操作。
  2. 服务与协议的区别是什么?<br>答案要点: 服务是垂直的,下层经接口(SAP)向上层提供能力;协议是水平的,同层对等实体之间遵守的通信规则;本层协议利用下层服务来实现本层功能。
  3. 写出 OSI 七层自下而上的名称,并说明运输层的核心职责。<br>答案要点: 物理、数据链路、网络、运输、会话、表示、应用;运输层负责端到端(进程到进程)的传输,提供可靠(TCP)或尽力而为(UDP)两种风格。
  4. 为什么 OSI 在与 TCP/IP 的竞争中失利?<br>答案要点: OSI 标准先行、协议晚熟且复杂(七层划分繁琐、会话/表示层功能薄弱);TCP/IP 源于工程实践、随 Unix 免费普及,先成事实标准,工程节奏与生态占优。
  5. TCP/IP 四层与教学五层模型的差异在哪里?

答案要点: 教学五层把 TCP/IP 的网络接口层拆分为数据链路层与物理层以便教学,其余三层一致。

延伸阅读

  • 谢希仁《计算机网络》(第 8 版),第 1 章体系结构部分。
  • ISO/IEC 7498-1《信息技术 开放系统互连 基本参考模型:第 1 部分 基本模型》。
  • Kurose & Ross《计算机网络:自顶向下方法》(第 8 版),第 1 章。
  • RFC 1122《Requirements for Internet Hosts — Communication Layers》:TCP/IP 分层与各层职责要求的权威表述。