8种常见协议工作流程图_这是我见过最牛的了
1. 种常见协议工作流程图
1.1. 协议速览
| 协议 | 所属层级 | 默认端口 | 核心特点 | 典型应用 |
|---|---|---|---|---|
| HTTP | 应用层(基于 TCP) | 80 | 请求-响应模式,无状态 | 网页浏览 |
| HTTPS | 应用层(HTTP + TLS) | 443 | 加密 + 证书认证 | 网上支付、登录 |
| HTTP/3 | 应用层(基于 QUIC/UDP) | 443 | 避免队头阻塞、连接迁移 | 移动端 Web、实时应用 |
| WebSocket | 应用层(基于 TCP) | 80 / 443 | 全双工、服务端可主动推送 | 在线游戏、股票行情、即时消息 |
| TCP | 传输层 | — | 面向连接、可靠传输 | 各类应用层协议的底层承载 |
| UDP | 传输层 | — | 无连接、低延迟 | 语音、视频流、DNS |
| SMTP | 应用层(基于 TCP) | 25(提交常用 465/587) | 发送/中继电子邮件 | 邮件发送 |
| FTP | 应用层(基于 TCP) | 21(控制)/ 20(数据) | 双通道:控制 + 数据 | 文件上传下载 |
1.2. 协议定义
1.2.1. HTTP
HTTP 是一种用于获取 HTML 文档等资源的协议。它是网络数据交换的基础,也是一种客户端-服务器协议。
1.2.2. HTTP/3
HTTP/3 是 HTTP 的下一个重要修订版本,它在 QUIC 上运行。QUIC 是一种新的传输协议,专为移动互联网而设计。它依赖于 UDP 而不是 TCP,这使得网页响应速度更快。VR 应用程序需要更多带宽来迅速呈现虚拟场景的复杂细节,因此迁移到由 QUIC 支持的 HTTP/3 会从中受益。
1.2.3. HTTPS
HTTPS 扩展了 HTTP,并使用加密技术实现安全通信。
1.2.4. WebSocket
WebSocket 是一种通过 TCP 提供全双工通信的协议。客户端通过建立 WebSocket 从后端服务接收实时更新。与总是「拉取」数据的 REST 不同,WebSocket 可以「推送」数据。在线游戏、股票交易和消息应用程序等都利用 WebSocket 进行实时通信。
1.2.5. TCP
TCP 设计用于在互联网上发送数据包,确保数据和信息在网络上成功传递。许多应用层协议都建立在 TCP 协议之上。
1.2.6. UDP
UDP 直接向目标计算机发送数据包,无需先建立连接。UDP 通常用于对时间敏感的通信,因为这种情况下偶尔丢弃数据包比等待更好。语音和视频应用通常使用此协议发送数据。
1.2.7. SMTP
SMTP 是一种标准协议,用于将电子邮件从一个用户传输到另一个用户。
1.2.8. FTP
FTP 用于在客户端和服务器之间传输计算机文件。它有独立的控制通道和数据通道连接。
1.3. 协议工作原理动态图
1.4. 协议工作流程详解
1.4.1. HTTP 工作流程
- 建立连接:客户端通过 DNS 解析域名 → TCP 三次握手建立连接(默认 80 端口)。
- 发送请求:客户端构造 HTTP 请求报文(含请求行、请求头、请求体),如
GET /index.html HTTP/1.1。 - 处理与响应:服务器解析请求 → 执行业务逻辑 → 返回响应报文(含状态行、响应头、响应体),如
200 OK。 - 连接管理:HTTP/1.1 默认复用 TCP 连接(
Connection: keep-alive),非持久连接则关闭 TCP(四次挥手)。
1.4.2. HTTP/3 工作流程
- 基于 QUIC 协议:使用 UDP 而非 TCP 传输,避免队头阻塞。
- 快速握手:首次连接 1-RTT 即可发送数据;会话复用时支持 0-RTT,无需等待往返。
- 多路复用:单个 QUIC 连接上并行传输多个独立数据流。
- 连接迁移:网络切换(如 WiFi 转 4G)时基于连接 ID 恢复,无需重建连接。
1.4.3. HTTPS 工作流程
- TCP 连接:客户端与服务器建立 TCP 连接(443 端口)。
- TLS 握手:服务器发送数字证书(含公钥)→ 客户端验证证书合法性(CA 签名、域名、有效期)→ 双方通过密钥交换算法(如 ECDHE)协商出对称密钥。
- 加密通信:后续数据通过对称密钥加密传输。
1.4.4. WebSocket 工作流程
- HTTP 升级握手:客户端发送
Upgrade: websocket请求 → 服务器返回101 Switching Protocols响应。 - 双向通信:建立全双工连接后,客户端/服务器可随时主动发送数据帧。
- 连接关闭:任一方发送关闭帧(含状态码)→ 对方响应后断开。
1.4.5. TCP 工作流程
- 连接建立:三次握手(SYN → SYN+ACK → ACK)。
- 数据传输:数据分块为段 → 附加序列号/校验和;接收方确认(ACK),丢失则重传。
- 连接关闭:四次挥手(FIN → ACK → FIN → ACK)。
1.4.6. UDP 工作流程
- 无连接:直接发送数据报,无需握手或连接状态维护。
- 不可靠传输:无重传、流量控制、拥塞控制,适用于实时应用(如视频流)。
1.4.7. SMTP 工作流程
- 建立连接:客户端与邮件服务器建立 TCP 连接(25 端口;用户提交邮件常用 465/587 端口)。
- 命令交互:客户端发送
HELO、MAIL FROM→ 服务器响应250 OK;指定收件人(RCPT TO)→ 发送数据(DATA)。 - 连接关闭:发送
QUIT命令 → 服务器确认后断开。
1.4.8. FTP 工作流程
- 控制连接:客户端与服务器建立 TCP 连接(21 端口)→ 身份验证(
USER/PASS)。 - 数据传输:主动模式下服务器主动连接客户端(20 端口);被动模式下客户端连接服务器指定端口。
- 命令操作:发送
LIST(列目录)、RETR(下载)、STOR(上传)等命令。 - 连接关闭:控制连接发送
QUIT终止会话。