# 协议

> CIE A-Level 计算机科学 · 9618
> 来源: https://www.owlsprep.com/zh/study/cie-9618-u2-protocols/

本子主题涵盖网络协议的核心目的、分层协议工作原理，以及TCP/IP栈各层的常见协议。你将学习协议如何实现标准化通信，以及主流互联网协议之间的关键区别。

**先修:** [基础TCP/IP分层网络模型](https://www.owlsprep.com/zh/study/cie-9618-u2-network-models/)

## 学习目标

- 解释网络协议的核心目的和功能
- 根据TCP/IP栈中的分层对常见协议进行分类
- 比较对比TCP和UDP的特性及其使用场景
- 描述常见应用层协议的功能
- 解释分层协议的工作原理和封装过程

## 网络协议核心原理

网络连接来自不同制造商、运行不同操作系统和软件的异构设备。如果没有共享的标准规则，设备无法相互解析接收到的数据。协议通过标准化网络通信的所有方面解决了这个问题。

**网络协议** — 一套正式的、厂商认可的规则，管理数据通信的所有阶段：数据格式化、传输顺序、错误检查、连接建立/拆除，以及接收数据的解析。

**例题:** 家用路由器从一台新笔记本接收到数据帧，但无法识别帧的格式。协议如何在功能正常的网络中防止这个问题发生？

1. 这个错误发生的原因是发送方笔记本和接收方路由器没有遵循相同的数据结构化规则。没有标准，路由器无法从帧中提取目的地址和有效载荷。
2. 协议通过强制执行独立于厂商的通用标准来避免这个问题。两个设备都实现了相同的约定协议，因此路由器知道在哪里查找目的地址，承载的有效载荷是什么类型，以及如何检查数据是否损坏。

> **tip**
>
> 一定要把标准化作为协议的核心目的提及，这是试卷1中常见的1分题。

> **考试提示:** 永远不要忘记提及协议能够实现不同设备和厂商之间的互操作性。

## 传输层协议：TCP vs UDP

传输层提供不同主机上应用之间的端到端通信。TCP/IP中两个核心传输协议是TCP（传输控制协议）和UDP（用户数据报协议），它们具有截然不同的特性和使用场景。

**方法对比**

核心特性对比如下：

- **TCP** — 面向连接，通过三次握手建立连接，保证所有数据的交付，重传丢失数据包，对乱序数据包重新排序，提供流量控制。
  - 优点: 完全可靠，有序交付，内置纠错
  - 缺点: 开销更高，握手和重传会带来更高延迟

- **UDP** — 无连接，不需要握手，发送独立数据报，不保证交付，不对丢失数据包进行重排序或重传。
  - 优点: 开销极低，延迟极小，没有连接建立延迟
  - 缺点: 没有可靠性，数据包可能丢失或乱序到达

**例题:** 开发人员正在构建一个实时互动视频通话应用，他们应该为视频流选择TCP还是UDP？证明你的答案。

1. 实时视频通话要求极低延迟才能维持实时互动。少量视频数据丢失是可以接受的，丢失的帧可以直接跳过，不会破坏用户体验。
2. TCP在这里不适用，因为它会重传丢失的数据包，导致延迟和缓冲，中断通话。三次握手也会增加不必要的开销。
3. UDP是正确选择。它具有极低延迟和极小开销，满足实时应用的核心需求。

> **考试提示:** 试卷1几乎总会要求你比较TCP和UDP，所以要记住它们的特性和常见使用场景。

## 常见应用层协议

应用层协议定义了终端用户应用之间通信的规则。每个协议使用特定的知名端口号向传输层标识自己。下表列出了你在CIE 9618考试中需要掌握的最常见协议：

| 协议名称 | 全称 | 知名端口 | 主要用途 |
| --- | --- | --- | --- |
| HTTP | Hypertext Transfer Protocol | 80 | 未加密网页传输 |
| HTTPS | HTTP Secure | 443 | 加密安全网络通信 |
| FTP | File Transfer Protocol | 21 | 主机之间文件传输 |
| DNS | Domain Name System | 53 | 将域名转换为IP地址 |
| SMTP | Simple Mail Transfer Protocol | 25 | 邮件服务器之间发送邮件 |

**例题:** 解释为什么网上银行交易需要HTTPS，而不是普通HTTP。

1. 普通HTTP将所有数据（包括用户名、密码和支付信息）以未加密的明文发送。任何截获网络流量的第三方都可以轻松读取这些敏感数据。
2. HTTPS使用TLS加密对传输中的数据进行加密。只有客户端设备和银行服务器能够解密数据，防止第三方窃听和篡改交易信息。
3. 这确保了敏感金融信息的保密性，且无法在传输中被修改，因此HTTPS对于安全的网上银行是必不可少的。

## 分层工作原理与封装

协议在分层栈中运行，每一层只与其直接相邻的上下层交互。当从源主机向目的主机发送数据时，数据从应用层沿栈向下传递到物理层，每一层都会添加自己的控制头部，这个过程称为封装。在目的端，数据沿栈向上传递，每一层移除对应的头部（解封装）以访问有效载荷。

**封装** — 数据沿协议栈向下传递、准备发送到下层时，添加分层专属控制信息（头部）的过程。

**例题:** 描述一封电子邮件从你的设备通过TCP/IP栈向下传递到网络时，如何进行封装。

1. 1. 应用层：邮件客户端按照SMTP规则格式化邮件，将原始邮件数据向下传递到传输层。
2. 2. 传输层：邮件被分割成更小的段。添加TCP头部，包含源/目的端口号、序列号，以及用于错误检查的校验和。
3. 3. 互联网层：每个TCP段被封装成IP数据包。添加IP头部，包含你的设备源IP地址和邮件服务器的目的IP地址。
4. 4. 链路层：每个IP数据包被封装成网络帧。添加链路层头部，包含默认网关的MAC地址和你的设备MAC地址，之后通过物理网络传输。

> **tip**
>
> 对于CIE 9618，你不需要记住协议头部的内容，只需要掌握封装的目的即可。

## 常见错误

- **错误做法:** 声称UDP是面向连接，TCP是无连接
  - 原因: 这和正确定义相反：TCP需要握手建立连接，而UDP没有连接状态
  - 正确做法: TCP = 面向连接，UDP = 无连接
- **错误做法:** 认为HTTPS是传输层协议，而不是应用层协议
  - 原因: HTTPS是加密的HTTP，工作在应用层，基于TCP运行
  - 正确做法: HTTPS是提供加密网络通信的应用层协议
- **错误做法:** 记错常见协议的知名端口，例如给HTTPS分配端口80
  - 原因: CIE考官经常在1分的选择题或简答题中考察常见端口的知识
  - 正确做法: 记住核心端口：80（HTTP）、443（HTTPS）、21（FTP）、53（DNS）、25（SMTP）
- **错误做法:** 声称封装发生在目的端数据沿协议栈向上移动时
  - 原因: 封装是源端数据沿栈向下移动时添加头部的过程。头部移除（解封装）发生在沿栈向上移动时
  - 正确做法: 封装 = 在发送方栈向下移动时添加头部，解封装 = 在接收方栈向上移动时移除头部
- **错误做法:** 声称TCP在所有应用中都优于UDP
  - 原因: TCP的可靠性伴随着大量开销和延迟，这使得它不适合实时场景
  - 正确做法: 根据需求选择协议：对可靠性要求高的场景用TCP，低延迟实时应用用UDP

## 速查表

| 协议类型 | 名称 | 关键特性 | 端口 |
| --- | --- | --- | --- |
| 传输层 | TCP | 面向连接、可靠、有序 | - |
| 传输层 | UDP | 无连接、不可靠、低延迟 | - |
| 应用层 | HTTP | 未加密网页传输 | 80 |
| 应用层 | HTTPS | 加密网页传输 | 443 |
| 应用层 | FTP | 主机间文件传输 | 21 |
| 应用层 | DNS | 域名 → IP转换 | 53 |
| 应用层 | SMTP | 发送邮件 | 25 |

## 下一步

理解协议是CIE 9618中所有网络通信主题的基础。协议支撑着网络的方方面面，从局域网到全球互联网，因此扎实掌握协议的目的、特性和常见例子将帮助你应对所有后续高级主题。接下来，你将探索IP寻址的工作原理，数据如何在不同网络之间路由，以及网络安全如何依赖正确实现的协议。你在这里学到的TCP/IP协议知识，对于理解常见网络安全威胁和缓解方式也必不可少，这是试卷1和试卷2的核心主题。

- [无线网络](https://www.owlsprep.com/zh/study/cie-9618-u2-wireless-networking/)
- [互联网技术](https://www.owlsprep.com/zh/study/cie-9618-u2-internet-technologies/)
- [电路交换与分组交换](https://www.owlsprep.com/zh/study/cie-9618-u2-circuit-and-packet-switching/)

---

来自 [OwlsPrep](https://www.owlsprep.com) —— A-Level / IB / AP / IGCSE 免费学习指南，依据官方考纲编写。原页面：https://www.owlsprep.com/zh/study/cie-9618-u2-protocols/
