规则与协议¶
Abstract
- 网络协议 (Network Protocols): 通信的语言和规则。
- 参考模型 (Reference Models): 理解网络分层的框架。
- 标准化 (Standardization): 确保互操作性的基础。
- 策略 (Policies): 网络行为的高级指导方针。
- 度量 (Metrics): 衡量网络性能的指标。
1. 网络设计目标 (Design Goals)¶
a) 可靠性 (Reliability)¶
定义
可靠性是指网络从错误、故障或失效中恢复的能力。
- 实现方式:
- 差错控制: 通过添加冗余信息(如校验码),实现对数据的错误检测 (Error Detection) 和错误纠正 (Error Correction)。
- 动态路由: 当某条链路或路由器损坏时,路由算法 (Routing Algorithms) 能够自动地重新规划路径,绕开故障点。
b) 资源分配 (Resource Allocation)¶
定义
资源分配旨在解决多个用户如何公平、高效地共享共同且有限的网络资源(如带宽、交换机缓存等)的问题。一个好的设计必须是可扩展的 (Scalable),即在网络规模急剧增大时依然能良好工作。
- 关键机制:
- 统计多路复用 (Statistical Multiplexing): 根据用户需求的统计特性,动态地共享网络带宽,而非固定分配,从而提高资源利用率。
- 流量控制 (Flow Control): 接收方通过反馈机制告知发送方自己的处理能力,以调整发送速率,防止因接收方处理不过来而导致数据丢失。
- 拥塞控制 (Congestion Control): 当网络发生拥塞(过载)时,要求网络中的主机主动降低其资源需求(如发送速率),以缓解网络压力。
- 服务质量 (Quality of Service - QoS): 通过特定机制来协调竞争性的资源需求,以满足不同应用的服务等级要求。
QoS 示例:实时视频 vs. 文件下载
一个网络如何同时满足实时视频会议(要求低延迟)和后台大文件下载(要求高吞吐量)这两种相互冲突的需求?这就是 QoS 需要解决的核心问题。
c) 可演化性 (Evolvability)¶
定义
可演化性是指网络架构应支持协议的增量式部署和升级,允许网络技术随时间不断发展。
- 关键思想:
- 协议分层 (Protocol Layering): 将复杂的网络问题分解为多个独立的层次,每一层隐藏其实现细节。这样,对某一层协议的修改不会影响到其他层。
- 寻址/命名 (Addressing/Naming): 提供一种机制来唯一标识通信中的发送方和接收方。
- 互联网络 (Internetworking): 制定统一的规则来规定消息的顺序和大小,使得不同的网络可以互相连接。
d) 安全性 (Security)¶
定义
安全性旨在保护网络免受各种类型的攻击。其核心支柱通常被称为 CIA 三元组。
- 核心组成:
- 机密性 (Confidentiality): 防止通信内容被窃听。
- 身份验证 (Authentication): 防止攻击者冒充他人。
- 完整性 (Integrity): 防止消息在传输过程中被篡改。
2. 协议分层 (Protocol Layering)¶
核心思想
为了降低网络设计的复杂性,绝大多数网络都组织为一系列的层次 (Layers)。
- 每一层都构建于其下一层之上。
- 每一层都向其上一层提供特定的服务 (Service),同时隐藏实现该服务的具体细节。这就像一个“虚拟机”,上层只需调用下层提供的功能,无需关心其内部工作原理。
2.1 关键概念定义¶
- 协议 (Protocol): 通信双方就如何进行通信而达成的一系列约定。
- 第 n 层协议 (Layer n Protocol): 两台机器上对等的第 n 层之间进行“对话”时所使用的规则和约定。
分层模型中的重要术语
- 对等实体 (Peers): 位于不同机器上、相同层次中的实体(可以是软件进程、硬件设备甚至人类)。
- 接口 (Interface): 同一台机器上,相邻层次之间进行交互的地方。它定义了下层向上层提供哪些服务和操作。
- 虚拟通信 vs. 实际通信:
- 虚拟通信 (Virtual Communication): 每一层的对等实体之间看起来像是在直接通信(如上图中的水平虚线)。
- 实际通信 (Actual Communication): 实际上,数据必须在发送端自上而下逐层传递,通过物理媒介传输到接收端,再自下而上逐层传递。只有最底层的物理层才存在真实的物理通信。
- 网络体系结构 (Network Architecture): 一个网络所使用的层次和协议的集合。
- 协议栈 (Protocol Stack): 特定系统中各层所使用的协议列表,每层一个协议。
2.2 数据封装过程¶
当数据在发送端自顶向下传输时,每一层都会在前一层数据的基础上添加自己的控制信息,这个过程称为封装 (Encapsulation)。
- 第4层 (传输层): 在原始消息
M前添加一个头部H4。如果消息过长,可能会将其分割为M1和M2。 - 第3层 (网络层): 在
H4 M1前添加头部H3。 - 第2层 (数据链路层): 在
H3 H4 M1前添加头部H2,并在末尾添加一个尾部T2(用于差错校验)。 - 第1层 (物理层): 将最终形成的比特流通过物理介质发送出去。

3. 网络服务模型¶
a) 面向连接的服务 (Connection-Oriented)¶
- 模型: 模仿电话系统。
- 流程:
- 建立连接: 通信双方首先建立一个连接。
- 使用连接: 在此连接上传输数据。
- 释放连接: 通信结束后拆除连接。
- 特点: 在建立连接时,通信双方可以协商服务参数,如最大消息尺寸、所需的服务质量 (QoS) 等。
b) 无连接的服务 (Connectionless)¶
- 模型: 模仿邮政系统。
- 流程: 每个消息(数据包)都携带完整的目的地址,并被网络独立地进行路由。
- 特点: 每个数据包的路径可能都不同,且不保证按序到达。
- 相关术语:
- 数据包 (Packet): 网络层消息的通用术语。
- 数据报 (Datagram): 特指不可靠的(即不保证送达,不进行确认)无连接服务。
存储转发 vs. 直通交换 (无连接服务中的交换方式)
- 存储转发 (Store-and-forward Switching):
- 中间节点(如路由器)必须完整接收整个消息后,才能将其转发到下一个节点。
- 直通交换 (Cut-through Switching):
- 中间节点在接收完消息的目标地址部分后,就开始向上一个节点转发该消息,无需等待整个消息被接收完毕。延迟更低。
4. 服务类型与实现¶
可靠性实现¶
- 确认机制 (Acknowledgement): 可靠服务通常通过让接收方确认 (Acknowledge) 收到每一条消息来实现。发送方只有在收到确认后,才能确定消息已成功送达。这种服务称为经确认的数据报 (Acknowledged Datagram)。
- 消息流 vs. 字节流:
- 消息流 (Message sequences): 保持消息的边界。发送方发送了两个 1KB 的消息,接收方也会收到两个 1KB 的消息。
- 字节流 (Byte Stream): 不保留消息边界。发送方发送了两个 1KB 的消息,接收方可能会一次性收到一个 2KB 的字节块,需要应用层自己去解析。
服务类型总结表¶
| 服务类别 | 服务名称 | 示例 |
|---|---|---|
| 面向连接 | 可靠的消息流 (Reliable message stream) | 网页序列加载 |
| 可靠的字节流 (Reliable byte stream) | 电影下载 | |
| 不可靠的连接 (Unreliable connection) | 网络电话 (VoIP) | |
| 无连接 | 不可靠的数据报 (Unreliable datagram) | 垃圾邮件 |
| 经确认的数据报 (Acknowledged datagram) | 短信 | |
| 请求-应答 (Request-reply) | 数据库查询 |
服务原语 (Service Primitives)¶
定义
一个服务 (Service) 是由一组可供上层用户进程调用的原语 (Primitives) 或操作来正式定义的。原语指示服务执行某个动作,或报告一个对等实体已执行的动作。
面向连接服务的原语示例
| 原语 | 含义 |
|---|---|
LISTEN |
阻塞并等待一个传入的连接请求。 |
CONNECT |
与一个正在等待的对等实体建立连接。 |
ACCEPT |
接受一个来自对等实体的传入连接。 |
RECEIVE |
阻塞并等待一个传入的消息。 |
SEND |
向对等实体发送一个消息。 |
DISCONNECT |
终止一个连接。 |
5. 服务 vs. 协议¶
服务 (Service) 与 协议 (Protocol) 的核心区别
- 服务 (Service):
- 定义了某一层为它的上一层提供什么功能。
- 它与层与层之间的接口 (Interface) 相关,是一种垂直关系。
- 服务只关心功能,不关心如何实现。
- 协议 (Protocol):
- 定义了不同机器上对等实体之间如何通信的规则。
- 它与对等实体之间交换的数据包格式和含义相关,是一种水平关系。
- 协议是服务的具体实现。

6. 网络参考模型 (Reference Models)¶
a) OSI 参考模型 (OSI Reference Model)¶
定义
OSI (Open Systems Interconnection) 模型是由 ISO 提出的一个理论上非常完善的七层网络模型,旨在成为全球计算机网络都遵循的标准。
| 层号 | 名称 | 数据单元 | 功能简介 |
|---|---|---|---|
| 7 | 应用层 (Application) | APDU | 为应用程序提供网络服务。 |
| 6 | 表示层 (Presentation) | PPDU | 规范对等实体间交换的数据格式(如数据加密、压缩)。 |
| 5 | 会话层 (Session) | SPDU | 提供命名空间,将不同的传输流绑定到同一会话中。 |
| 4 | 传输层 (Transport) | TPDU | 实现端到端 (Process-to-Process) 的信道,交换报文。 |
| 3 | 网络层 (Network) | Packet | 在分组交换网络中处理数据包路由。 |
| 2 | 数据链路层 (Data Link) | Frame | 将比特流组织成一个更大的聚合体,称为帧。 |
| 1 | 物理层 (Physical) | Bit | 处理原始比特流在物理通信链路上的传输。 |
设备与分层
- 终端主机 (End Hosts): 通常需要实现完整的七层协议栈。
- 中间设备 (Switches/Routers): 只关心网络的底层。
- 交换机 (Switch) 通常工作在第 2 层(数据链路层)。
- 路由器 (Router) 通常工作在第 3 层(网络层)。
b) TCP/IP 参考模型 (TCP/IP Reference Model)¶
OSI vs. TCP/IP
- TCP/IP 将 OSI 的表示层和会话层的功能合并到了应用层。
- TCP/IP 将 OSI 的数据链路层和物理层合并为了一个链路层。
- TCP/IP 模型在实践中被证明更实用、更高效。
| TCP/IP 层级 | 对应 OSI 层级 | 核心功能与协议 |
|---|---|---|
| 应用层 (Application) | 7, 6, 5 | 包含所有直接为用户应用提供服务的高级协议。 协议示例: HTTP, SMTP, DNS |
| 传输层 (Transport) | 4 | 允许源和目的主机上的对等实体进行对话(端到端通信)。 |
| 网络层 (Internet) | 3 | 允许主机将数据包注入任何网络,并使其独立地传输到目的地。 协议示例: IP, ICMP |
| 链路层 (Link) | 2, 1 | 作为主机和传输链路之间的接口,处理物理连接。 协议示例: Ethernet, 802.11 (WiFi) |
TCP/IP 传输层两大核心协议¶
-
TCP (Transmission Control Protocol - 传输控制协议)
- 可靠的、面向连接的端到端协议。
- 功能:
- 确保从一台机器发出的字节流 (Byte Stream) 无差错地传送到另一台机器。
- 在发送端,将字节流分段 (Segment) 成离散的消息。
- 在接收端,将收到的消息重新组装成原始的输出流。
-
UDP (User Datagram Protocol - 用户数据报协议)
- 不可靠的、无连接的端到端协议。
- 适用场景: 适用于那些追求及时交付而非精确交付的应用。
- 示例: 视频直播、网络电话 (VoIP)。(丢失几个数据包比等待重传更可取)。
c) 五层混合模型 (Five-Layer Hybrid Model)¶
教学模型
为了结合 OSI 模型的完整层次划分和 TCP/IP 模型的实用性,许多教科书采用了一个五层的混合模型。
| 层号 | 名称 | 功能简介 |
|---|---|---|
| 5 | 应用层 (Application) | 包含利用网络的应用程序。 |
| 4 | 传输层 (Transport) | 增强网络层的传输保障,提供可靠性。 |
| 3 | 网络层 (Network) | 将多个链路组合成网络和互联网,实现远程通信。 |
| 2 | 链路层 (Link) | 在直接相连的计算机之间发送有限长度的消息(帧)。 |
| 1 | 物理层 (Physical) | 将比特作为电信号或其他模拟信号在介质上传输。 |
7. 标准化 (Standardization)¶
定义
标准 (Standards) 定义了实现互操作性 (Interoperability) 所需的最少必要条件。 * 互操作性: 不同计算机系统或软件之间能够交换并有效使用信息的能力。 * 协议标准: 通常只定义“在线路上”的协议,而不规定设备内部的服务接口。
事实标准 vs. 法定标准
- 事实标准 (De facto): 没有经过正式规划,但在实践中被广泛采用而形成的。示例:
TCP/IP。 - 法定标准 (De jure): 由正式的标准化组织通过特定程序采纳和发布的。
主要标准化组织¶
| 领域 | 组织 | 简介 |
|---|---|---|
| 电信 | ITU (国际电信联盟) | 联合国下属机构。其 ITU-T 部门负责电信标准化。 |
| 国际 | ISO (国际标准化组织) | 制定各类国际标准,包括 OSI 模型。 |
| IEEE (电气和电子工程师协会) | 制定电气工程和计算领域的标准,其 IEEE 802 委员会 负责制定局域网和城域网标准(如 802.3 Ethernet, 802.11 WiFi, 802.15 Bluetooth, 802.16 WiMAX)。 |
|
| 互联网 | IETF (互联网工程任务组) | 负责制定互联网标准,其成果以 RFC (Request for Comments) 文档发布。 |
| W3C (万维网联盟) | 负责制定 Web 相关的标准(如 HTML, CSS)。 |
8. 政策、法律与社会问题¶
a) 网络中立性 (Net Neutrality)¶
核心原则
ISP (互联网服务提供商) 应该对特定类型应用的所有流量一视同仁,无论这些内容由谁发送。
- 具体规则:
- 禁止阻塞 (No Blocking): 不得阻止用户访问合法的网络内容。
- 禁止限流 (No Throttling): 不得故意降低特定应用的网速。
- 禁止付费优先 (No Paid Prioritization): 不得创建“快车道”,即向内容提供商收费以换取更快的速度。
- 零费率 (Zero Rating):
- 指 ISP 可能根据使用情况向用户收费,但对其用户使用特定服务(如某个音乐或视频 App)所产生的数据流量不收费。
- 这被广泛视为违反网络中立性原则,因为它给予了这些被豁免的服务相对于其他服务的竞争优势。
b) 其他问题¶
- 在线言论 (Online Speech): 社交网络等平台在言论自由与内容审查之间的平衡问题。
- 安全 (Security):
- DDoS (分布式拒绝服务攻击): 大量机器同时向一个目标发送流量,耗尽其资源。
- 垃圾邮件 (Spam)
- 网络钓鱼 (Phishing): 诱骗用户泄露个人信息。
- 隐私 (Privacy): 用户网络行为数据被用于画像分析和追踪(如 Cookies、浏览器指纹),以及如何通过技术手段(如流量混淆)保护隐私。
- 虚假信息 (Disinformation): 互联网上充斥着大量误导性或完全错误的信息。
9. 度量单位 (Metric Units)¶
注意区分:存储容量 vs. 传输速率
- 存储容量: 通常使用 2 的幂 (二进制)。
1 KB = 2^10 = 1024字节 (Bytes)1 MB = 2^20字节
- 传输速率: 通常使用 10 的幂 (十进制)。
1 kbps = 10^3 = 1000比特/秒 (bits per second)1 Mbps = 10^6比特/秒
| 前缀 | 符号 | 10 的幂 |
|---|---|---|
| Kilo | k | 10³ |
| Mega | M | 10⁶ |
| Giga | G | 10⁹ |
| Tera | T | 10¹² |