应用层
约 5030 字大约 17 分钟
2025-07-27
应用层是 TCP/IP 五层体系结构中的最上层,直接为用户提供网络服务。它负责定义应用程序之间通信的规则和接口,屏蔽底层网络复杂性。本章系统梳理应用层核心协议与技术。
一、概述
| 维度 | 说明 |
|---|---|
| 位置 | TCP/IP 第 5 层(最顶层) |
| 核心任务 | 为用户提供网络服务,实现应用进程间的通信 |
| 数据单位 | 报文(Message) |
| 传输方式 | 依赖传输层 TCP(可靠)或 UDP(不可靠) |
| 主要作用 | 定义通信规则、数据格式、交互流程 |
二、DNS — 域名系统
DNS(Domain Name System)将人类易记的域名(如 www.example.com)解析为机器可读的 IP 地址(如 93.184.216.34),是互联网基础设施中最关键的服务之一。
2.1 DNS 域名层次结构
根域名 (.)
├── 顶级域名 (TLD): .com, .org, .cn, .net, .edu
│ ├── 二级域名: example.com, google.com
│ │ └── 子域名: www.example.com, mail.example.com
└── 反向域名: .arpa (IP→域名)2.2 DNS 服务器层次
| 服务器类型 | 作用 | 说明 |
|---|---|---|
| 根域名服务器 | 管理顶级域名服务器地址 | 全球 13 组根服务器(实际数百台镜像),是 DNS 解析的起点 |
| 顶级域名服务器(TLD) | 管理特定顶级域下的权威服务器 | 如 .com 服务器管理所有 .com 域名的权威服务器 |
| 权威域名服务器 | 存储特定域名的 DNS 记录 | 返回最终的 IP 地址或别名(CNAME) |
| 本地域名服务器 | 用户的 DNS 缓存与转发代理 | 通常由 ISP 或公共 DNS(如 8.8.8.8)提供 |
2.3 DNS 查询方式
| 查询方式 | 工作模式 | 特点 |
|---|---|---|
| 递归查询 | 客户端 → 本地 DNS → 逐级向上查询 → 返回最终结果 | 用户端只需要一次请求,服务器负责完成全部查询 |
| 迭代查询 | 客户端逐一向各层次服务器发起请求,收到下一个要查询的服务器地址 | 客户端压力更大,但服务器负载分散 |
典型解析流程:
用户访问 www.example.com
↓ (递归查询)
本地 DNS 服务器
↓ (迭代查询) ↓ (迭代查询) ↓ (迭代查询)
根服务器 → TLD(.com) → example.com 权威服务器
↓
返回 IP: 93.184.216.342.4 常见 DNS 记录类型
| 记录类型 | 用途 | 示例 |
|---|---|---|
| A | 域名 → IPv4 地址 | example.com → 93.184.216.34 |
| AAAA | 域名 → IPv6 地址 | example.com → 2001:db8::1 |
| CNAME | 域名别名 | www.example.com → example.com |
| MX | 邮件交换记录 | 指定邮件服务器优先级 |
| NS | 域名服务器记录 | 指定该域名的权威 DNS 服务器 |
| TXT | 文本记录 | SPF、DKIM 邮件验证 |
三、Web 服务 — HTTP / HTTPS
HTTP(HyperText Transfer Protocol)是万维网的基石,定义了客户端(浏览器)与服务器之间的通信规则。
3.1 HTTP 核心特性
| 特性 | 说明 |
|---|---|
| 无状态 | 每个请求独立,服务器不记忆之前的请求。通过 Cookie、Session、Token 实现状态管理 |
| 基于 TCP | 默认端口 80,使用 TCP 保证传输可靠性 |
| 请求-响应模型 | 客户端发送请求,服务器返回响应 |
| 灵活的内容类型 | 通过 MIME 类型支持文本、图片、视频、JSON 等多种数据格式 |
3.2 HTTP 请求方法
| 方法 | 作用 | 是否幂等 | 安全性 |
|---|---|---|---|
| GET | 获取资源 | ✅ | ✅ 只读 |
| POST | 创建资源/提交数据 | ❌ | ❌ |
| PUT | 更新/替换资源 | ✅ | ❌ |
| DELETE | 删除资源 | ✅ | ❌ |
| HEAD | 获取响应头(无正文) | ✅ | ✅ |
| PATCH | 部分更新资源 | ❌ | ❌ |
| OPTIONS | 查询支持的请求方法 | ✅ | ✅ |
3.3 HTTP 状态码
| 分类 | 范围 | 含义 | 常见示例 |
|---|---|---|---|
| 1xx 信息性 | 100–199 | 请求已接收,继续处理 | 101 Switching Protocols(WebSocket 升级) |
| 2xx 成功 | 200–299 | 请求成功接收并处理 | 200 OK(成功)、201 Created(已创建)、204 No Content(无内容) |
| 3xx 重定向 | 300–399 | 需要进一步操作完成请求 | 301 Moved Permanently(永久重定向)、302 Found(临时重定向)、304 Not Modified(缓存有效) |
| 4xx 客户端错误 | 400–499 | 请求包含错误或无法处理 | 400 Bad Request(错误请求)、401 Unauthorized(未认证)、403 Forbidden(禁止访问)、404 Not Found(未找到) |
| 5xx 服务器错误 | 500–599 | 服务器端出错 | 500 Internal Server Error(内部错误)、502 Bad Gateway(网关错误)、503 Service Unavailable(服务不可用) |
3.4 HTTPS — 安全的 HTTP
HTTPS = HTTP + TLS/SSL 加密,使用 443 端口。
| 特性 | HTTP | HTTPS |
|---|---|---|
| 加密 | ❌ 明文传输 | ✅ TLS/SSL 加密 |
| 默认端口 | 80 | 443 |
| 数据完整性 | ❌ 可被篡改 | ✅ 防止中间人篡改 |
| 身份验证 | ❌ | ✅ CA 数字证书验证服务器身份 |
| 性能 | 较快 | 略慢(TLS 握手开销) |
TLS 握手过程:
- ClientHello:客户端发送支持的 TLS 版本、加密套件
- ServerHello:服务器选择加密参数,发送数字证书
- 证书验证:客户端验证 CA 签名的合法性
- 密钥交换:生成对称加密会话密钥
- 加密通信:使用会话密钥进行对称加密通信
数字证书与 CA:
- CA(Certificate Authority):受信任的第三方证书颁发机构(如 Let's Encrypt、DigiCert)
- 证书内容:域名、公钥、颁发者、有效期、数字签名
- 作用:验证服务器身份的真实性,防止中间人攻击
3.5 HTTP 发展史
| 版本 | 年份 | 核心改进 |
|---|---|---|
| HTTP/0.9 | 1991 | 仅支持 GET 方法,纯文本,无头信息 |
| HTTP/1.0 | 1996 | 引入请求头、响应头、状态码,支持多种文件类型;短连接(每次请求新建 TCP 连接) |
| HTTP/1.1 | 1997 | 持久连接(Keep-Alive)、管道化(Pipelining)、分块传输编码(Chunked Transfer)、Host 头(支持虚拟主机) |
| HTTP/2 | 2015 | 多路复用(单一TCP连接并行请求)、头部压缩(HPACK)、服务器推送(Server Push)、二进制分帧 |
| HTTP/3 | 2022 | 基于 QUIC(基于 UDP 的传输协议)代替 TCP,0-RTT 连接建立,更好的丢包处理,消除队头阻塞 |
QUIC 协议的核心优势:
| 特性 | TCP + TLS 1.3 | QUIC (HTTP/3) |
|---|---|---|
| 传输层 | TCP(内核实现) | UDP(用户态实现) |
| 连接建立 | TCP 握手 (1-RTT) + TLS 握手 (1-RTT) | 0-RTT / 1-RTT 合并握手 |
| 队头阻塞 | TCP 丢包阻塞后续所有流 | 每个流独立,丢包仅影响对应流 |
| 连接迁移 | 重建连接 | 连接 ID 不变,无缝切换网络 |
四、文件传输协议
4.1 协议对比
| 协议 | 全称 | 传输层 | 端口 | 特点 |
|---|---|---|---|---|
| FTP | File Transfer Protocol | TCP | 21(控制)/20(数据) | 支持主动/被动模式,功能完善 |
| TFTP | Trivial File Transfer Protocol | UDP | 69 | 简单轻量,无认证,适用于局域网 |
| SFTP | SSH File Transfer Protocol | TCP (SSH) | 22 | 基于 SSH 加密传输,安全可靠 |
| SCP | Secure Copy | TCP (SSH) | 22 | 简单加密文件复制,仅支持单向传输 |
4.2 FTP 工作模式
主动模式(Active):
客户端 (随机端口N) → 连接 → 服务器(21) [控制连接]
服务器 (20) → 连接 → 客户端(N+1) [数据连接]- 客户端开启随机端口等待服务器连接
- 服务器主动从端口 20 连接客户端
- 问题:客户端防火墙可能阻止服务器主动连接
被动模式(Passive):
客户端 (随机端口N) → 连接 → 服务器(21) [控制连接]
客户端 (随机端口N+1) → 连接 → 服务器(随机端口) [数据连接]- 服务器开放随机端口等待客户端连接
- 客户端主动连接服务器的数据端口
- 优点:客户端无需额外开放端口,防火墙友好
- 现代 FTP 默认使用被动模式
五、电子邮件协议
电子邮件的发送与接收涉及多个协议协作。
5.1 协议对比
| 协议 | 全称 | 用途 | 传输层 | 默认端口 | 工作方式 |
|---|---|---|---|---|---|
| SMTP | Simple Mail Transfer Protocol | 发送邮件 | TCP | 25/587/465 | 客户端→服务器 或 服务器→服务器 |
| POP3 | Post Office Protocol v3 | 下载邮件 | TCP | 110/995 | 下载到本地后服务器可选删除 |
| IMAP | Internet Message Access Protocol | 同步邮件 | TCP | 143/993 | 邮件保留在服务器,多设备同步 |
5.2 邮件发送与接收流程
发件人 (MUA)
↓ SMTP
邮件发送服务器 (MTA)
↓ SMTP
邮件接收服务器 (MTA)
↓ POP3 / IMAP
收件人 (MUA)| 组件 | 说明 |
|---|---|
| MUA (Mail User Agent) | 邮件客户端(Outlook、Gmail Web、Thunderbird) |
| MTA (Mail Transfer Agent) | 邮件传输代理(Sendmail、Postfix、Exchange) |
| MDA (Mail Delivery Agent) | 邮件投递代理,存储邮件到用户邮箱 |
5.3 POP3 vs IMAP
| 特性 | POP3 | IMAP |
|---|---|---|
| 邮件存储 | 下载到本地 | 保留在服务器 |
| 访问方式 | 只能从单一设备访问 | 多设备同步 |
| 已读状态 | 本地管理 | 服务器同步 |
| 占用服务器空间 | 少(下载后删除) | 较多 |
| 离线访问 | ✅ 完全支持 | ⚠️ 有限支持 |
| 适用场景 | 单一设备 + 本地存档 | 多设备 + 随时在线 |
六、网络管理协议
6.1 DHCP — 动态主机配置协议
DHCP(Dynamic Host Configuration Protocol)自动为网络中的设备分配 IP 地址、子网掩码、默认网关、DNS 服务器等配置信息,免除手工配置。
DORA 四步流程
客户端 DHCP 服务器
│ │
│ 1. DHCP Discover │
│ (广播寻找DHCP服务器) │
│ ───────────────────────> │
│ │
│ 2. DHCP Offer │
│ (服务器提供IP地址和配置) │
│ <─────────────────────── │
│ │
│ 3. DHCP Request │
│ (客户端确认选择该IP) │
│ ───────────────────────> │
│ │
│ 4. DHCP ACK │
│ (服务器确认分配) │
│ <─────────────────────── │| 步骤 | 报文 | 方向 | 说明 |
|---|---|---|---|
| ① | DHCP Discover | 客户端 → 广播 | 客户端广播寻找 DHCP 服务器(源 IP: 0.0.0.0,目标 IP: 255.255.255.255) |
| ② | DHCP Offer | 服务器 → 客户端 | 服务器响应,提供可用 IP、子网掩码、网关、DNS 等 |
| ③ | DHCP Request | 客户端 → 广播 | 客户端确认选择该 IP 地址 |
| ④ | DHCP ACK | 服务器 → 客户端 | 服务器正式确认分配,客户端应用配置 |
租约机制: DHCP 分配的 IP 地址有租约期限(通常 24 小时),到达 50% 时客户端自动续租。
6.2 SNMP — 简单网络管理协议
SNMP(Simple Network Management Protocol)用于管理和监控网络设备(路由器、交换机、服务器、打印机等)。
| 组件 | 说明 |
|---|---|
| NMS (Network Management Station) | 管理端,发送查询和接收告警 |
| Agent | 被管理设备上的代理程序,收集设备信息 |
| MIB (Management Information Base) | 设备信息的结构化数据库,用 OID 标识 |
| Trap | Agent 主动向 NMS 发送的告警通知 |
| SNMP 版本 | 特点 |
|---|---|
| SNMPv1 | 基础版本,使用社区字符串认证(明文) |
| SNMPv2c | 增强性能,支持批量获取(GetBulk) |
| SNMPv3 | 增加加密和身份认证,安全性大幅提升 |
七、实时通信协议
7.1 WebSocket — 全双工通信
WebSocket 在单个 TCP 连接上建立全双工通信通道,适合需要实时推送的场景。
| 特性 | HTTP | WebSocket |
|---|---|---|
| 通信方向 | 客户端→服务器(请求-响应) | 全双工(双向推送) |
| 连接复用 | HTTP/1.1 Keep-Alive 复用但串行;HTTP/2 多路复用 | 单一长连接持续通信 |
| 头部开销 | 每次请求都带 HTTP 头部 | 建立后仅传输数据帧 |
| 建立方式 | 直接请求 | 通过 HTTP Upgrade 握手升级 |
| 适用场景 | REST API、网页请求 | 在线聊天、实时游戏、股票行情 |
握手过程:
客户端 → 服务器: GET /chat HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
服务器 → 客户端: HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=7.2 RTP — 实时传输协议
RTP(Real-time Transport Protocol)基于 UDP,用于传输实时音视频数据。
| 特性 | 说明 |
|---|---|
| 传输层 | UDP(低延迟,容忍少量丢包) |
| 特点 | 时间戳、序列号、同步源标识(SSRC) |
| 配套协议 | RTCP(RTP Control Protocol)提供质量反馈、丢包率、抖动统计 |
| 应用 | VoIP、视频会议、直播流媒体 |
八、现代应用协议
8.1 REST API
REST(Representational State Transfer)是一种架构风格而非协议,基于 HTTP 协议构建 Web API。
| 原则 | 说明 |
|---|---|
| 资源导向 | 每个 URL 代表一个资源(/users/123) |
| 无状态 | 每个请求包含所有必要信息 |
| 统一接口 | 使用 HTTP 方法操作资源 |
| 可缓存 | 利用 HTTP 缓存机制 |
| 分层系统 | 客户端不知直接与最终服务器还是中间层通信 |
RESTful API 设计示例:
| 方法 | 路径 | 操作 | 状态码 |
|---|---|---|---|
GET | /api/users | 获取用户列表 | 200 OK |
GET | /api/users/123 | 获取单个用户 | 200 / 404 |
POST | /api/users | 创建用户 | 201 Created |
PUT | /api/users/123 | 更新用户 | 200 / 204 |
PATCH | /api/users/123 | 部分更新 | 200 |
DELETE | /api/users/123 | 删除用户 | 204 No Content |
8.2 gRPC — 高性能 RPC 框架
gRPC 由 Google 开发,基于 HTTP/2 和 Protocol Buffers(Protobuf),支持双向流和多语言互操作。
| 特性 | REST API | gRPC |
|---|---|---|
| 协议 | HTTP/1.1 或 HTTP/2 | HTTP/2 |
| 数据格式 | JSON(文本,可读) | Protobuf(二进制,高效) |
| 接口定义 | 隐含在 URI 和动词中 | .proto 文件(严格类型) |
| 流式支持 | 有限(SSE 单向) | 双向流(全双工) |
| 代码生成 | 手动编写 | 自动生成客户端/服务端代码 |
| 性能 | 一般(JSON 解析开销大) | 高(二进制、连接复用、头部压缩) |
gRPC 四种调用模式:
- 一元 RPC:客户端发送单个请求,服务器返回单个响应
- 服务端流式 RPC:客户端发送请求,服务器流式返回多个响应
- 客户端流式 RPC:客户端流式发送请求,服务器返回单个响应
- 双向流式 RPC:双方独立流式发送数据
8.3 GraphQL
GraphQL 由 Facebook 开发,允许客户端精确指定需要的数据结构,避免过度获取和获取不足的问题。
| 特性 | REST API | GraphQL |
|---|---|---|
| 数据获取 | 每个端点返回固定结构 | 客户端指定需要哪些字段 |
| 多次请求 | 关联资源需多次请求或嵌入 | 单次请求获取所有关联数据 |
| 过度/不足获取 | 常见 | ✅ 精确控制 |
| 版本管理 | URL 版本号(/v1/users) | 无版本,逐步弃用字段 |
| 缓存 | HTTP 缓存天然支持 | 缓存较复杂 |
GraphQL 查询示例:
{
user(id: "123") {
name
email
posts {
title
comments { body author { name } }
}
}
}8.4 OAuth 2.0 — 授权框架
OAuth 2.0 是一种开放的授权标准,允许第三方应用获取用户资源的有限访问权限,而无需暴露用户密码。
| 角色 | 说明 |
|---|---|
| 资源所有者 (Resource Owner) | 用户 |
| 客户端 (Client) | 第三方应用 |
| 授权服务器 (Authorization Server) | 颁发令牌 |
| 资源服务器 (Resource Server) | 存储受保护资源 |
授权流程(授权码模式):
用户 → 客户端: 点击"使用 Google 登录"
客户端 → 授权服务器: 携带 client_id + redirect_uri + scope
授权服务器 → 用户: 展示授权页面
用户 → 授权服务器: 确认授权
授权服务器 → 客户端: 返回授权码 (Authorization Code)
客户端 → 授权服务器: 授权码 + client_secret → 获取 Access Token
授权服务器 → 客户端: 返回 Access Token + Refresh Token
客户端 → 资源服务器: 使用 Access Token 获取用户信息授权模式对比:
| 模式 | 适用场景 |
|---|---|
| 授权码模式 | 服务端渲染的 Web 应用(最安全) |
| 隐式模式 (已弃用) | 纯前端应用(已由 PKCE 替代) |
| 密码模式 | 信任的第一方应用 |
| 客户端凭证模式 | 服务间通信(无用户参与) |
| PKCE | 移动端 / SPA 应用 |
8.5 JWT — JSON Web Token
JWT 是一种紧凑的、自包含的令牌格式,用于在各方之间安全传输 JSON 对象。
JWT 结构:
Header.Payload.Signature| 部分 | 内容 | 示例 |
|---|---|---|
| Header | 令牌类型和签名算法 | {"alg":"HS256","typ":"JWT"} |
| Payload | 声明(Claims) | {"sub":"123","name":"John","iat":1516239022} |
| Signature | 签名验证 | HMACSHA256(base64UrlEncode(header) + "." + base64UrlEncode(payload), secret) |
JWT 常见声明(Claims):
| 声明 | 全称 | 说明 |
|---|---|---|
sub | Subject | 主体(用户 ID) |
iss | Issuer | 签发者 |
aud | Audience | 接收方 |
exp | Expiration | 过期时间 |
iat | Issued At | 签发时间 |
nbf | Not Before | 生效时间 |
JWT vs Session: JWT 无需服务端存储会话状态(无状态),适合分布式系统和微服务架构。但 JWT 无法主动撤销,Redis session 模式在认证通过后可集中验证黑白名单。
九、现代应用架构
9.1 CDN — 内容分发网络
CDN(Content Delivery Network)通过在全球分布的边缘节点缓存内容,使用户从最近的节点获取数据,大幅降低延迟。
| 概念 | 说明 |
|---|---|
| 边缘节点 (Edge Server) | 全球分布的缓存服务器 |
| 源站 (Origin Server) | 内容原始服务器 |
| 回源 | 边缘节点未命中时向源站请求 |
| 智能 DNS | 根据用户地理位置解析到最近节点 |
CDN 工作流程:
用户访问 static.example.com/image.png
↓
智能 DNS 解析 → 返回最近边缘节点 IP
↓
边缘节点: 命中缓存? → 是 → 直接返回
↓ 否
回源请求 → 源站返回 → 缓存 → 返回用户9.2 WebRTC — Web 实时通信
WebRTC(Web Real-Time Communication)使浏览器之间直接建立 P2P 音视频通话,无需中间服务器转发数据流。
| 阶段 | 协议 | 说明 |
|---|---|---|
| 信令 | WebSocket / HTTP | 交换 SDP(会话描述协议)和 ICE 候选信息 |
| 连接建立 | STUN / TURN | 检测 NAT 类型,建立 P2P 连接 |
| 媒体传输 | SRTP / SCTP | 加密音视频传输 |
| NAT 穿透 | ICE 框架 | 综合使用 STUN/TURN 穿透 NAT |
WebRTC 核心组件:
| 组件 | 作用 |
|---|---|
| STUN (Session Traversal Utilities for NAT) | 客户端获取自己的公网 IP 和端口 |
| TURN (Traversal Using Relays around NAT) | 对称 NAT 无法穿透时,通过中继服务器转发 |
| ICE (Interactive Connectivity Establishment) | 协调选择最优连接路径(P2P > TURN中继) |
| SDP (Session Description Protocol) | 描述音视频编解码器、分辨率等媒体能力 |
9.3 MQTT — 消息队列遥测传输
MQTT(Message Queuing Telemetry Transport)是轻量级的发布/订阅模式消息协议,专为物联网(IoT)和受限网络设计。
| 特性 | 说明 |
|---|---|
| 传输层 | TCP(MQTT 3.x)/ 也可运行于 WebSocket |
| 设计目标 | 极轻量(最小头部仅 2 字节)、低带宽、低功耗 |
| 协议模式 | 发布/订阅(Pub/Sub)通过 Broker 中转 |
| 适用场景 | IoT 传感器、移动推送、低带宽网络 |
MQTT 核心概念:
| 概念 | 说明 |
|---|---|
| Broker | 消息中间人,接收发布者消息并转发给订阅者 |
| Topic | 消息主题层次结构(如 home/temperature/room1) |
| Publish | 设备发布消息到某个 Topic |
| Subscribe | 设备订阅某个 Topic 接收消息 |
| QoS (Quality of Service) | 消息送达保证级别 |
QoS 级别:
| 级别 | 名称 | 语义 | 说明 |
|---|---|---|---|
| 0 | At most once | 最多一次 | 发送即忘,可能丢失(适用于传感器读数) |
| 1 | At least once | 至少一次 | 确保送达,可能重复 |
| 2 | Exactly once | 恰好一次 | 确保送达且不重复,开销最大 |
十、协议总结对比
| 类别 | 协议 | 传输层 | 端口 | 安全 | 主要应用 |
|---|---|---|---|---|---|
| 域名解析 | DNS | UDP/TCP | 53 | DNSSEC | 域名→IP 解析 |
| Web | HTTP | TCP | 80 | ❌ | 网页、API |
| Web | HTTPS | TCP | 443 | TLS/SSL | 安全网页、API |
| 文件传输 | FTP | TCP | 21/20 | ❌ | 文件上传下载 |
| 文件传输 | TFTP | UDP | 69 | ❌ | 局域网简单文件传输 |
| 文件传输 | SFTP/SCP | TCP(SSH) | 22 | SSH | 安全文件传输 |
| 电子邮件 | SMTP | TCP | 25/587 | STARTTLS | 邮件发送 |
| 电子邮件 | POP3 | TCP | 110/995 | TLS | 邮件下载 |
| 电子邮件 | IMAP | TCP | 143/993 | TLS | 邮件同步 |
| 网络管理 | DHCP | UDP | 67/68 | ❌ | IP 自动分配 |
| 网络管理 | SNMP | UDP | 161/162 | SNMPv3 | 网络设备监控 |
| 实时通信 | WebSocket | TCP | 80/443 | WSS | 全双工实时通信 |
| 实时通信 | RTP/RTCP | UDP | 动态端口 | SRTP | 音视频传输 |
| 现代API | REST | HTTP | — | HTTPS | Web API |
| 现代API | gRPC | HTTP/2 | — | TLS | 高性能微服务通信 |
| 现代API | GraphQL | HTTP | — | HTTPS | 灵活数据查询 |
| IoT | MQTT | TCP | 1883/8883 | TLS | 物联网消息传递 |
| P2P | WebRTC | UDP | 动态 | DTLS-SRTP | 浏览器 P2P 音视频 |
核心要点回顾
- DNS:域名系统是互联网的"电话簿",递归查询对用户透明,迭代查询减轻服务器压力
- HTTP/HTTPS:HTTP 是无状态协议,状态码按 2xx~5xx 分类;HTTPS 通过 TLS/SSL 加密和 CA 证书提供安全通信
- HTTP 发展:从 1.0(短连接)→ 1.1(持久连接)→ 2(多路复用)→ 3(QUIC/UDP)
- 电子邮件:SMTP 负责发送,POP3 和 IMAP 负责接收,IMAP 相比 POP3 更适合多设备场景
- DHCP:通过 DORA(Discover-Offer-Request-ACK)四步自动分配 IP 地址
- WebSocket:通过 HTTP Upgrade 建立全双工长连接,适合实时通信
- 现代协议:REST 是资源导向的 API 风格,gRPC 基于 HTTP/2+Protobuf 性能极高,GraphQL 允许客户端自定义查询结构
- 安全:OAuth 2.0 用于授权,JWT 用于无状态令牌认证,TLS/SSL 保障传输加密
- 现代应用:CDN 加速内容分发,WebRTC 实现 P2P 音视频,MQTT 专为 IoT 设计
