README
# 网络协议理论系列
# 系列概述
本系列从"一个网络请求的完整生命周期"出发,由浅入深地剖析计算机网络的核心协议与设计思想。不限定编程语言,重点讲解设计原理、演变历程和工程实践。
# 学习路线图
入门感知层 协议深入层 实战应用层 进阶协议层
┌──────────┐ ┌──────────────┐ ┌───────────┐ ┌──────────┐
│01.看新闻 │──→ │06.TCP和UDP │──→ │10.HTTP服务 │──→ │16.WebSocket│
│02.购物加密│ ┌────────→ │07.Socket设计 │ ┌────────→│13.连接跳转 │ ┌────────→│17.HTTP3 │
│03.部署电商│ │ │08.数据传输 │ │ │14.代理缓存 │ │ └──────────┘
│04.请求流程│ │ │09.域名解析 │ │ │15.排查故障 │ │
│05.编程模型│───┘ │11.HTTP协议 │───┘ └───────────┘ │
└──────────┘ │12.HTTPS协议 │ │
└──────────────┘ │
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 推荐阅读顺序
| 阶段 | 文档 | 核心内容 | 难度 |
|---|---|---|---|
| 第一阶段:建立全景认知 | |||
| 1 | 01.请求网络的通用流程 | 从浏览器输入URL到页面渲染的完整过程,OSI/TCP-IP分层设计 | ★☆☆ |
| 2 | 02.通过看新闻熟悉网络 | 以访问新闻网站为例,HTTP请求-响应全流程实战 | ★☆☆ |
| 3 | 03.通过购物熟悉加密 | 对称/非对称加密、数字证书、HTTPS工作模式 | ★★☆ |
| 4 | 04.从0到1部署电商网站 | 服务器部署、BGP路由、CDN、域名解析全链路 | ★★☆ |
| 第二阶段:协议核心原理 | |||
| 5 | 05.网络编程模型的概念 | 客户端-服务端模型、IP/端口/子网、DNS域名系统 | ★★☆ |
| 6 | 06.传输协议TCP和UDP | 三次握手/四次挥手、滑动窗口、拥塞控制、UDP应用场景 | ★★★ |
| 7 | 07.Socket的发展和设计 | Socket本质、TCP/UDP Socket编程、IO多路复用(select/epoll) | ★★★ |
| 8 | 08.传输数据的设计思想 | 报文封装/解封装、TCP流、数据包/帧的分层设计 | ★★☆ |
| 9 | 09.网络域名解析的流程 | DNS递归/迭代查询、DNS缓存、MAC地址在通信中的角色 | ★★☆ |
| 第三阶段:HTTP/HTTPS深入 | |||
| 10 | 10.HTTP服务设计流程 | HTTP服务端架构、请求处理流水线 | ★★★ |
| 11 | 11.HTTP协议设计思想 | URI/URL设计、HTTP版本演进(1.0→1.1→2.0)、无状态/无连接 | ★★★ |
| 12 | 12.HTTPS协议设计策略 | SSL/TLS原理、CA证书链、中间人攻击、HTTPS性能优化 | ★★★ |
| 第四阶段:工程实践 | |||
| 13 | 13.HTTP连接和跳转 | Keep-Alive、连接池、重定向机制 | ★★☆ |
| 14 | 14.HTTP代理和缓存设计 | 正向/反向代理、缓存策略(强缓存/协商缓存) | ★★★ |
| 15 | 15.如何去排查网络故障 | ping/traceroute/curl/tcpdump/Wireshark实战 | ★★★ |
| 第五阶段:进阶协议 | |||
| 16 | 16.WebSocket实时通信 | HTTP Upgrade握手、帧格式、心跳保活、聊天/推送实战 | ★★★ |
| 17 | 17.HTTP3与QUIC协议 | TCP队头阻塞→UDP、QUIC 0-RTT、连接迁移、HTTP/3现状 | ★★★★ |
# 核心方法论
本系列采用 疑惑→答疑→论证→结果 的技术演变展示模式:
- 疑惑:提出一个真实的技术困惑(如:为什么TCP需要三次握手而不是两次?)
- 答疑:给出核心答案(防止历史连接请求的干扰)
- 论证:用具体场景和数据证明(网络延迟导致的旧SYN到达场景)
- 结果:总结设计演变和最佳实践
# 适合人群
- 想系统学习计算机网络的开发者(不限语言)
- 需要理解网络协议底层原理的后端/客户端工程师
- 准备技术面试中网络相关知识的求职者
- 对网络排障有实际需求的运维工程师
上次更新: 2026/06/07, 18:47:40