学习指南

协议

CIE A-Level 计算机科学· 第二单元:通信,主题2:协议· 15 分钟阅读

1. 网络协议核心原理★★☆☆☆⏱ 5 min

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

📘 定义

网络协议

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

📐 例题

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

  1. 1

    这个错误发生的原因是发送方笔记本和接收方路由器没有遵循相同的数据结构化规则。没有标准,路由器无法从帧中提取目的地址和有效载荷。

  2. 2

    协议通过强制执行独立于厂商的通用标准来避免这个问题。两个设备都实现了相同的约定协议,因此路由器知道在哪里查找目的地址,承载的有效载荷是什么类型,以及如何检查数据是否损坏。

Exam tip:

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

2. 传输层协议:TCP vs UDP★★★☆☆⏱ 6 min

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

方法对比

核心特性对比如下:

TCP

面向连接,通过三次握手建立连接,保证所有数据的交付,重传丢失数据包,对乱序数据包重新排序,提供流量控制。

+ 优点: 完全可靠,有序交付,内置纠错

− 缺点: 开销更高,握手和重传会带来更高延迟

UDP

无连接,不需要握手,发送独立数据报,不保证交付,不对丢失数据包进行重排序或重传。

+ 优点: 开销极低,延迟极小,没有连接建立延迟

− 缺点: 没有可靠性,数据包可能丢失或乱序到达

📐 例题

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

  1. 1

    实时视频通话要求极低延迟才能维持实时互动。少量视频数据丢失是可以接受的,丢失的帧可以直接跳过,不会破坏用户体验。

  2. 2

    TCP在这里不适用,因为它会重传丢失的数据包,导致延迟和缓冲,中断通话。三次握手也会增加不必要的开销。

  3. 3

    UDP是正确选择。它具有极低延迟和极小开销,满足实时应用的核心需求。

Exam tip:

试卷1几乎总会要求你比较TCP和UDP,所以要记住它们的特性和常见使用场景。

3. 常见应用层协议★★★☆☆⏱ 5 min

应用层协议定义了终端用户应用之间通信的规则。每个协议使用特定的知名端口号向传输层标识自己。下表列出了你在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. 1

    普通HTTP将所有数据(包括用户名、密码和支付信息)以未加密的明文发送。任何截获网络流量的第三方都可以轻松读取这些敏感数据。

  2. 2

    HTTPS使用TLS加密对传输中的数据进行加密。只有客户端设备和银行服务器能够解密数据,防止第三方窃听和篡改交易信息。

  3. 3

    这确保了敏感金融信息的保密性,且无法在传输中被修改,因此HTTPS对于安全的网上银行是必不可少的。

4. 分层工作原理与封装★★★★☆⏱ 7 min

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

📘 定义

封装

数据沿协议栈向下传递、准备发送到下层时,添加分层专属控制信息(头部)的过程。

📐 例题

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

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

5. 常见陷阱

错误做法:

声称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

6. 速查表

协议类型

名称

关键特性

端口

传输层

TCP

面向连接、可靠、有序

传输层

UDP

无连接、不可靠、低延迟

应用层

HTTP

未加密网页传输

80

应用层

HTTPS

加密网页传输

443

应用层

FTP

主机间文件传输

21

应用层

DNS

域名 → IP转换

53

应用层

SMTP

发送邮件

25

7. 常见问题

考试中我需要记住知名端口号吗?

CIE 9618要求你记住主要常见协议的端口:80(HTTP)、443(HTTPS)、21(FTP)、53(DNS)、25(SMTP)。冷门端口几乎不会考。

协议和协议栈有什么区别?

单个协议定义了一种特定通信功能的规则。协议栈是分层的协议集合,这些协议共同工作,实现端到端的网络通信,例如TCP/IP栈。

真题中的出现

AI 根据考纲规律估算的考点位置,请对照官方真题核实准确性。仅作复习重点参考。

  • 2022 · 12

    比较TCP和UDP的特性

  • 2023 · 11

    描述HTTP和HTTPS的功能

  • 2024 · 22

    解释网络协议的目的

深入阅读

下一步

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