切换深浅色
详细小节规划与知识依赖
本文件是编辑规划,不是教材正文。最新要求为“只写原理和实际例子”,详见 当前写作要求。章节按问题本身自然展开,不设置固定学习目标、前置知识清单或章末小结模板;保留支持机制理解的字段、时序、案例与来源,不写实验代码、运行命令或习题。
| 章 | 前置章 | 小节顺序 |
|---|---|---|
| 01 字节 | 无 | 1.1 比特与字节;1.2 数制与十六进制;1.3 ASCII 与控制字符;1.4 Unicode 与 UTF-8;1.5 字符串、原始字节与编码;1.6 整数与网络字节序;1.7 文本与二进制完整字节实例;1.8 从字节表示走向协议解释 |
| 02 程序到网络 | 01 | 2.1 进程、内核与文件描述符;2.2 Socket 与端点;2.3 bind/listen/accept;2.4 connect 与连接状态;2.5 read/write/send/recv;2.6 完整回环客户端服务器通信例子;2.7 半关闭、超时与错误;2.8 接口成功与通信成功的距离 |
| 03 字节流 | 01—02 | 3.1 字节流契约;3.2 写入、分段与读取边界;3.3 固定长度与 read_exact;3.4 长度前缀;3.5 分隔符与转义;3.6 TLV;3.7 增量解析、上限与错误状态;3.8 分片与合并读取的字节例子;3.9 定界方法与正确性的三个层次 |
| 04 协议设计 | 01—03 | 4.1 Header/Payload/Frame/Record;4.2 版本、命令与状态;4.3 身份、地址、端口;4.4 长度与扩展;4.5 状态机;4.6 自定义格式的完整解释过程;4.7 兼容性与开销计算;4.8 协议契约的证据边界 |
| 05 代理服务器 | 01—04 | 5.1 转发解决的问题;5.2 正向与反向代理;5.3 本地与远程代理;5.4 隧道建立与双向复制;5.5 NAT 与 VPN;5.6 目标地址和 DNS 责任;5.7 完整转发实例;5.8 代理能力与目标应用需求 |
| 06 SOCKS5 | 01—05 | 6.1 RFC 1928 状态机;6.2 认证方法协商;6.3 RFC 1929 用户名密码;6.4 CONNECT 和地址三型;6.5 响应与错误码;6.6 BIND;6.7 UDP ASSOCIATE 和控制连接;6.8 CONNECT 转发内部过程;6.9 互操作故障与安全承诺 |
| 07 HTTP 代理 | 05—06 | 7.1 文本协议必要语法;7.2 absolute-form;7.3 CONNECT 和成功切换;7.4 代理认证;7.5 HTTPS 字节如何穿过隧道;7.6 CONNECT 完整报文例子;7.7 SOCKS5 比较;7.8 连接复用与隧道归属 |
| 08 多级代理 | 05—07 | 8.1 单级与多级路径;8.2 协议终止和嵌套;8.3 客户端链与服务端转发;8.4 dialer-proxy 的实现边界;8.5 DNS 和可见性;8.6 完整两跳实例;8.7 故障定位;8.8 连接职责、依赖图与架构边界 |
| 09 HTTP/1.1 | 01—04、07 | 9.1 请求与响应;9.2 Host 与请求目标;9.3 Content-Length;9.4 chunked;9.5 消息定界优先规则;9.6 持久连接;9.7 抓包和歧义解析;9.8 从字节定界到语义一致性 |
| 10 WebSocket | 03—04、09 | 10.1 双向通信需求;10.2 Upgrade 握手;10.3 帧头、扩展长度与掩码;10.4 分片与控制帧;10.5 Ping/Pong/Close;10.6 承载代理字节;10.7 完整帧与精确开销;10.8 帧服务与原始流的映射 |
| 11 HTTP/2 与 gRPC | 03—04、09 | 11.1 连接前言与帧;11.2 Stream 和状态;11.3 HPACK;11.4 多路复用与 TCP 队头阻塞;11.5 流量控制;11.6 gRPC 消息包络;11.7 机制对比;11.8 连接与流的故障范围 |
| 12 QUIC/HTTP/3 | 02—04、11 | 12.1 UDP 与可靠性;12.2 QUIC 连接和 Stream;12.3 恢复与拥塞控制;12.4 迁移;12.5 内置 TLS 接口概览并前引 16 章;12.6 HTTP/3 与 QPACK;12.7 完整会话观测;12.8 条件性性能比较;12.9 独立流与共享路径 |
| 13 安全目标 | 01—08 | 13.1 被动与主动攻击者;13.2 保密、完整与认证;13.3 中间人;13.4 元数据;13.5 威胁模型和信任边界;13.6 篡改行为例子;13.7 安全声明的适用条件 |
| 14 对称密码 | 01、13 | 14.1 算法和密钥;14.2 AES/ChaCha20;14.3 GCM/Poly1305;14.4 AEAD 接口;14.5 nonce 和记录序号;14.6 真实加密测试向量;14.7 重用与认证边界;14.8 记录完整性与应用语义 |
| 15 公钥密码 | 13—14 | 15.1 加密、签名与密钥交换;15.2 ECDH;15.3 X25519;15.4 身份绑定;15.5 临时密钥与 PFS;15.6 密钥交换与中间人完整过程;15.7 泄露时间线;15.8 认证绑定与泄露后的影响 |
| 16 TLS 1.3 | 09、13—15 | 16.1 Record 与 Handshake 消息;16.2 ClientHello;16.3 ServerHello;16.4 HKDF 与密钥树;16.5 证书与 Finished;16.6 完整握手时序;16.7 应用记录;16.8 PSK 和恢复;16.9 0-RTT 和重放;16.10 ClientHello 与记录的观测例子;16.11 从握手记录还原会话状态 |
| 17 后量子密码 | 13—16 | 17.1 Shor 威胁范围;17.2 KEM;17.3 ML-KEM-768;17.4 混合交换与组合假设;17.5 PQ 与 PFS 的独立性;17.6 长期与临时密钥泄露;17.7 真实测试向量;17.8 后量子与前向安全的独立维度 |
| 18 VLESS 思想 | 01—08、13—16 | 18.1 设计职责;18.2 用户身份;18.3 命令和目标;18.4 与 VMess 的边界;18.5 轻量的精确定义;18.6 承载与安全层;18.7 完整流程;18.8 职责边界与组合约束 |
| 19 VLESS 字节 | 18 | 19.1 版本和 UUID;19.2 附加信息及 protobuf;19.3 命令、端口、地址;19.4 TCP 与 UDP 数据;19.5 响应;19.6 完整十六进制与开销;19.7 明文请求的逐字节解析;19.8 Go 源码定位;19.9 请求解析与实现证据 |
| 20 传输承载 | 09—12、18—19 | 20.1 RAW 和 Raw Socket;20.2 WebSocket;20.3 HTTP/2 与 gRPC;20.4 XHTTP 概览并前引 24 章;20.5 层次与建立时间;20.6 CDN 和反向代理;20.7 同负载封装对比;20.8 同目标流在不同承载中的映射 |
| 21 TLS 与 REALITY | 16、18—20 | 21.1 VLESS+TLS;21.2 SNI/ALPN/指纹;21.3 REALITY 状态机;21.4 身份认证与验证材料;21.5 非授权握手路径;21.6 信任和可见性;21.7 CDN 边界;21.8 固定源码与握手实例;21.9 握手结果与安全承诺 |
| 22 VLESS Encryption | 14—17、19—21 | 22.1 动机与层次;22.2 配置字符串实际解析;22.3 1-RTT 消息;22.4 混合材料与派生;22.5 记录和 AEAD;22.6 native/xorpub/random;22.7 padding;22.8 600s 和 0rtt;22.9 恢复、重放与 PFS;22.10 私钥与会话泄露;22.11 加密记录结构与开销;22.12 密钥生命周期与安全假设 |
| 23 Vision | 02—03、14—16、19—22 | 23.1 双层 TLS 与成本;23.2 流量识别状态;23.3 附加信息编码;23.4 padding 和命令;23.5 直接转发条件;23.6 同 HTTP/HTTPS 数据路径;23.7 用户态复制;23.8 Linux splice;23.9 与 Encryption 组合;23.10 机制依据与限制;23.11 数据路径优化的实际条件 |
| 24 XHTTP | 09—12、19—20 | 24.1 分离上下行;24.2 会话标识与路径;24.3 packet-up;24.4 stream-up;24.5 stream-one;24.6 auto 分支;24.7 XMUX 与生命周期;24.8 H2/H3;24.9 CDN 与缓冲;24.10 真实时序和报文;24.11 性能机制;24.12 会话模式与网络约束 |
| 25 完整配置还原 | 08、18—24 | 25.1 完整配置与实现兼容性;25.2 浏览器到本地代理;25.3 目标与前置连接;25.4 Encryption 握手;25.5 VLESS/Vision 编码;25.6 落地解析与连接;25.7 返回路径;25.8 HTTP/HTTPS 可见性;25.9 完整时序与封装;25.10 故障传播例子;25.11 配置到报文的证据链 |
| 26 Shadowsocks | 14—17、19 | 26.1 原始格式;26.2 AEAD TCP;26.3 盐、密钥和 nonce;26.4 UDP;26.5 2022 独立规范;26.6 重放与身份;26.7 实例和指纹边界;26.8 不同代际的身份与重放边界 |
| 27 VMess | 14—16、18—19 | 27.1 历史与现代 AEAD;27.2 身份与时间;27.3 认证头;27.4 请求结构;27.5 负载分块;27.6 版本化源码实例;27.7 VLESS 比较;27.8 有状态字段与互操作条件 |
| 28 Trojan | 07、16、19 | 28.1 TLS 承载;28.2 密码摘要;28.3 CRLF 和地址;28.4 TCP/UDP;28.5 回退与信任;28.6 完整字节实例;28.7 VLESS+TLS 比较;28.8 认证与安全承载的组合 |
| 29 QUIC 代理 | 12、16、26 | 29.1 QUIC 代理层次;29.2 Hysteria2 认证;29.3 TCP/UDP;29.4 拥塞机制;29.5 TUIC 版本与命令;29.6 流与数据报;29.7 完整机制对照;29.8 公平性能判断;29.9 代理语义与QUIC传输保证 |
| 30 工程选型 | 01—29 | 30.1 比较维度和定义;30.2 开销与 RTT;30.3 CPU/复制/内存;30.4 多路复用与故障;30.5 高 RTT/丢包;30.6 CDN 和信任;30.7 DNS 泄漏;30.8 MTU/MSS;30.9 tcpdump/Wireshark/curl;30.10 ss/strace/iperf3;30.11 依据与工程选型;30.12 综合案例与选型依据 |
防止知识倒置
第 7 章只引入 CONNECT 所需的 HTTP 文本语法,第 9 章再给完整定界规则。第 12 章解释 QUIC 提供的流服务,只对其握手引用第 16 章,不用尚未介绍的密钥派生解释可靠性。第 18 章比较 VMess 只比较职责,不提前展开第 27 章的认证算法。第 20 章介绍 XHTTP 的层次位置,模式细节留给第 24 章。
样例组织原则
基础章用确定性数值、字符编码、完整报文和应用状态解释,网络章用完整连接与转发过程,安全章使用标准测试向量或来源明确的记录结构,高级章使用固定源码与配置逐层还原。没有真实观测就明确写“按规范构造”,不提供执行程序或要求读者搭建实验。