6 计算机网络体系结构
约 4460 字大约 15 分钟
2025-05-28
本节主要介绍计算机网络体系结构的概念和必要性,以及 OSI 参考模型和 TCP/IP 参考模型等常见的体系结构。
1.6.1 常见的三种计算机网络体系结构
1. OSI 参考模型
OSI 参考模型 (Open Systems Interconnection Reference Model): 一种理论上的参考模型,由国际标准化组织 (ISO) 提出,分为七层:应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。

OSI 体系结构是法律上的国际标准,它试图达到一种理想境界,即全世界的计算机网络都遵循这个统一的国际标准,进而使全世界的计算机能够很方便地进行互连和交换数据。然而到了 20 世纪 90 年代初期,尽管整套的 OSI 国际标准都已经制订出来了,但这时因特网已抢先在全世界覆盖了相当大的范围。因特网从 1983 年开始使用 TCP/IP 协议族,并逐步演变成 TCP/IP 参考模型。OSI 只获得了一些理论研究的成果,但在市场化方面却输给了 TCP/IP 标准。OSI 失败的原因有以下几点:
- 专家没有实际经验,完成标准时没有商业驱动力。
- 协议实现过分复杂,运行效率很低。
- 标准的制定周期太长,产品无法及时进入市场。
- 层次划分不太合理,有些功能在多个层次中重复出现。
2. TCP/IP 参考模型
TCP/IP 参考模型: 一种实际应用的模型,是因特网的基础,分为四层:应用层、传输层、网际层和网络接口层。

TCP/IP 体系结构相当于将 OSI 体系结构的物理层和数据链路层合并为了网络接口层,将会话层和表示层合并到了应用层,如图所示:

大多数网络用户每天都有使用因特网的需求,这就要求用户的主机必须使用 TCP/IP 体系结构。在用户主机的操作系统中,通常都带有完整的 TCP/IP 协议族。而因特网中用于网络互连的路由器,就其所需完成的网络互连这一基本任务而言,只包含 TCP/IP 的网络接口层和网际层即可,因此我们一般认为路由器的网络体系结构的最高层为网际层(网络层),如图下所示:

TCP/IP 体系结构各层包含的主要协议如下:
- TCP/IP 体系结构的网络接口层并没有规定什么具体的内容,这样做的目的是可以互连全世界各种不同的网络接口,例如有线的以太网接口、无线局域网的 Wi-Fi 接口,而不限定仅使用一种或几种网络接口。因此,TCP/IP 体系结构在本质上只有上面的三层。
- 网际协议 IP 是 TCP/IP 体系结构网际层的核心协议。
- 传输控制协议 (Transmission Control Protocol, TCP) 和用户数据报协议 (User DatagramProtocol, UDP) 是 TCP/IP 体系结构运输层的两个重要协议。
- TCP/IP 体系结构的应用层包含了大量的应用层协议,例如超文本传送协议 (HyperText Transfer Protocol, HTTP)、简单邮件传送协议 (Simple Mail Transfer Protocol, SMTP)、域名系统 (Domain Name System, DNS) 以及实时运输协议 (Real-time Transport Protocol, RTP) 等。

从上图可以看出,IP 协议可以将不同的网络接口进行互连,并向其上的 TCP 协议和 UDP 协议提供网络互连服务。TCP 协议在享受 IP 协议提供的网络互连服务的基础上,可向应用层的某些协议提供可靠传输的服务。UDP 协议在享受 IP 协议提供的网络互连服务的基础上,可向应用层的某些协议提供不可靠传输的服务。IP 协议作为 TCP/IP 体系结构中的核心协议,一方面负责互连不同的网络接口,也就是 IP over everything;另一方面为各种网络应用提供服务,也就是 Everything over IP。
由于 TCP/IP 协议体系中包含大量的协议,而 IP 协议和 TCP 协议是其中非常重要的两个协议,因此用 TCP 和 IP 这两个协议来表示整个协议大家族,常称为 TCP/IP 协议族。
3. 原理体系结构
原理体系结构: 为了方便教学,将 OSI 参考模型和 TCP/IP 参考模型进行融合,分为五层:应用层、运输层、网络层、数据链路层和物理层。

五层协议的原理体系结构将 TCP/IP 体系结构的网络接口层又重新划分为物理层和数据链路层:
1.6.2 计算机网络体系结构分层的必要性
计算机网络是一个非常复杂的系统。“分层”可将庞大复杂的问题转化为若干较小的局部问题,降低系统的复杂性,提高系统的可维护性和可扩展性。
下面按照由简单到复杂的顺序,来看看实现计算机网络要面临哪些主要问题,以及如何将这些问题划分到五层原理体系结构的相应层次,以便层层处理。
- 物理层:
- 采用什么传输媒体(介质)
- 采用什么物理接口
- 采用什么信号来表示比特 0 和 1
- 数据链路层:
- 标识网络中各主机(主机编址,例如 MAC 地址)
- 从比特流中区分出地址和数据(数据封装格式)
- 协调各主机争用总线(媒体接入控制)
- 以太网交换机的实现(自学习和转发帧)
- 检测数据是否误码(差错检测)
- 出现传输差错如何处理(可靠传输和不可靠传输)
- 接收方控制发送方注入网络的数据量(流量控制)
- 网络层:
- 标识网络和网络中的各主机(网络和主机共同编址,例如 IP 地址)
- 路由器转发分组(路由选择协议、路由表和转发表)
- 运输层
- 进程之间基于网络的通信(进程的标识,例如端口号)
- 出现传输差错如何处理(可靠传输和不可靠传输)
- 应用层
- 通过应用进程间的交互来完成特定的网络应用
- 进行会话管理和数据表示
至此,我们将实现计算机网络所需要解决的各种主要问题,分别划归到了物理层、数据链路层、网络层、运输层以及应用层。
五层原理体系结构各层的主要功能分别是:
- 物理层解决使用何种信号来表示比特 0 和 1 的问题。
- 数据链路层解决数据包在一个网络或一段链路上传输的问题。
- 网络层解决数据包在多个网络之间传输和路由的问题。
- 运输层解决进程之间基于网络的通信问题。
- 应用层解决通过应用进程的交互来实现特定网络应用的问题。

1.6.3 计算机网络体系结构分层思想举例
以用户在主机中使用浏览器访问 Web 服务器为例,具体过程如下:
- 用户在浏览器地址栏中输入 Web 服务器的域名。
- 主机向 Web 服务器发送一个 HTTP 请求报文。
- Web 服务器收到请求报文后,执行相应的操作,然后给主机发送响应报文。
- 主机收到响应报文后,由浏览器负责解析和渲染显示。
主机和 Web 服务器之间基于网络的通信,实际上是主机中的浏览器应用进程与 Web 服务器中的 Web 服务器应用进程之间基于网络的通信。我们从五层原理体系结构的角度来分析其具体过程。
1. 主机对数据包的处理过程
- 应用层: 根据 HTTP 协议的规定,构建一个 HTTP 请求报文,用来请求 Web 服务器执行相应的操作。应用层将构建好的 HTTP 请求报文向下交付给传输层。
- 传输层: 给 HTTP 请求报文添加一个 TCP 首部,将其封装成 TCP 报文段。TCP 首部的主要作用是区分应用进程和实现可靠传输。传输层将封装好的 TCP 报文段向下交付给网络层。
- 网络层: 为 TCP 报文段添加一个 IP 首部,将其封装成 IP 数据报。IP 首部的主要作用是 IP 寻址和路由。网络层将封装好的 IP 数据报向下交付给数据链路层。
- 数据链路层: 为 IP 数据报添加一个首部和一个尾部,将其封装成帧。帧首部和尾部的主要作用是 MAC 寻址和帧校验。数据链路层将封装好的帧向下交付给物理层。
- 物理层: 物理层并不识别帧的结构,仅仅将其看作比特流,以便将比特流转换成相应的电信号进行发送。对于以太网,物理层还会在比特流前添加前导码,目的是使接收方的时钟同步,并做好接收准备。

2. 路由器对数据包的处理过程
- (接收口) 物理层: 将接收到的电信号转换为比特流,去除前导码后,将数据帧向上交付给数据链路层。
- (接收口) 数据链路层: 去掉数据帧的首部和尾部后,将 IP 数据报向上交付给网络层。
- (网络层): 网络层从 IP 数据报的首部中提取出目的 IP 地址,根据该地址查询本地转发表,以确定转发该 IP 数据报的接口。同时,还需要对首部中的某些字段值(例如生存时间 TTL 字段的值)进行必要的修改,然后将此 IP 数据报向下交付给数据链路层。
- (转发口) 数据链路层: 为 IP 数据报添加相应的数据链路层首部和尾部,将其封装成数据帧,然后将该帧向下交付给物理层。
- (转发口) 物理层: 将数据帧视为比特流,为其添加前导码,并将其转换为相应的电信号发送出去。

3. Web 服务器对数据包的处理过程
Web 服务器收到数据包后,按网络体系结构自下而上的顺序对其进行逐层解封,解封
出 HTTP 请求报文。

4. Web 服务器给主机发送 HTTP 响应报文的过程
Web 服务器的应用层收到 HTTP 请求报文后执行相应的操作,然后给主机发送包含有浏览器请求内容的 HTTP 响应报文。与浏览器发送 HTTP 请求报文的过程类似,HTTP 响应报文需要在 Web 服务器层层封装后才能发送。数据包经过路由器的转发到达主机。主机对收到的数据包按网络体系结构自下而上的顺序逐层解封,解封出 HTTP 响应报文。

1.6.4 计算机网络体系结构中的专用术语
1. 实体和对等实体
实体和对等实体:实体是指任何可发送或接收信息的硬件或软件进程,对等实体是指通信双方相同层次中的实体。

2. 协议
协议:协议是控制两个对等实体在“水平方向”进行“逻辑通信”的规则的集合。
- 物理层对等实体使用物理层协议进行逻辑通信,例如传统以太网使用曼彻斯特编码。
- 数据链路层对等实体使用数据链路层协议进行逻辑通信,例如传统以太网使用
CSMA/CD
协议。 - 网络层对等实体使用网络层协议进行逻辑通信,例如
IP
协议。 - 运输层对等实体使用运输层协议进行逻辑通信,例如
TCP
协议或UDP
协议。 - 应用层对等实体使用应用层协议进行逻辑通信,例如
HTTP
协议、FTP
协议以及SMTP
协议等。

协议有三个要素:
- 语法
- 语义
- 同步
3. 服务
服务:在协议的控制下,两个对等实体在水平方向的逻辑通信使得本层能够向上一层提供服务。要实现本层协议,还需要使用下面一层所提供的服务。
- 物理层对等实体在物理层协议的控制下进行逻辑通信,并向数据链路层提供服务。
- 数据链路层对等实体使用物理层提供的服务,并在数据链路层协议的控制下进行逻辑通信,从而向网络层提供服务。
- 网络层对等实体使用数据链路层提供的服务,并在网络层协议的控制下进行逻辑通信,从而向运输层提供服务。
- 运输层对等实体使用网络层提供的服务,并在运输层协议的控制下进行逻辑通信,从而向应用层提供服务。
- 应用层对等实体使用运输层提供的服务,并在应用层协议的控制下进行逻辑通信,向其上层(即用户)提供服务。

协议是“水平”的,而服务是“垂直”的。实体看得见下层提供的服务,但并不知道实现该服务的具体协议。下层的协议对上层的实体是“透明”的。这就好比我们肯定看得见手机为我们提供的各种服务,但是我们只是享受这些服务,而没有必要每个人都弄懂手机的工作原理。
在同一系统中相邻两层的实体交换信息的逻辑接口称为服务访问点 SAP,它被用于区分不同的服务类型。例如,数据链路层的服务访问点为帧的“类型”字段、网络层的服务访问点为 IP 数据报的“协议”字段,运输层的服务访问点为“端口号”字段。
上层要使用下层所提供的服务,必须通过与下层交换一些命令,这些命令称为服务原语。

在计算机网络体系结构中,通信双方交互的数据包也有专门的术语。
- 对等层次之间传送的数据包称为该层的协议数据单元(Protocol Data Unit,PDU)。
- 同一系统内层与层之间交换的数据包称为服务数据单元(Service Data Unit,SDU)。
