第 04 卷 · 网络协议与网络编程
本卷的定位与入口
先修:程序与进程、字节与 I/O;从地址和消息开始,不预设网络术语。
本卷按起步、原理、工程和进阶分层;首次进入时按阶段学习路线选取当前需要的章节。
已完成的独立章稿
04.01 应用通信与分层已完成。它承接 03.01 的位/字节、03.02 的进程与 I/O,以及 03.04 的等待时间模型,从两个虚构 IM 用户的一条消息出发,分八节讲清协议、封装、成功确认点和带单位的单链路时延。04.02 地址、名称与路由入口继续从端点推导到 IP、端口、DNS 和分层失败。04.03 HTTP 与 WebSocket 入门从只读历史查询进入双向通道、握手、帧与业务确认。04.04 可靠传输纸上推演 TCP 序号、累计确认、重传、乱序和窗口。04.05 TCP 与长连接生命周期再讲握手、半关闭、重置、TIME_WAIT、心跳与重连。04.06 流量与拥塞控制区分慢接收设备与网络瓶颈,手算 BDP 和排队等待。04.07 TLS 与身份补加密、证书、名称与代理逐跳边界。04.08 Go 网络 I/O补短读短写、教学帧、deadline 与连接复用。04.09 代理与负载均衡追逐跳信任、多实例内存、健康与重试预算。04.10 HTTP 版本与 RPC把 HTTP/2/3、gRPC 状态和 IM 业务确认分层。04.11 网络层与链路层补本地下一跳、NAT、MTU 与移动路径。04.12 网络排障与协议演进把抓包可见范围、阶段时间、错误分层和兼容限额收束成合成事故卡。十二章各含 8 节与 22 道练习;本卷独立正文已齐。
IM 主线中的位置
HTTP 查询、WebSocket 双向通信、帧与载荷、心跳、超时、TLS、代理与长连接故障。
主参照与源码入口见 OpenIM 阅读地图。各章区分公开项目事实与虚构教学规则,在具备先修后对照固定源码。
参考材料怎样进入课程
采用经典资料的知识覆盖与递进思路,结合 Go 和虚构 IM 重新组织。下表对应本卷已完成的十二章;按先修选择章节并完成独立变式。
起步层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 04.01 应用通信与分层 | 客户端、服务端、消息、协议、封装;速率、传播、传输和排队。 | 画出两用户通信路径,区分业务消息、协议与封装,分解传播、传输和排队时延。 |
| 04.02 地址、名称与路由入口 | IP、子网、端口、socket、DNS;缓存、解析与连接的不同故障。 | 将DNS失败、连接拒绝、错误端口与历史查询404定位到不同层。 |
| 04.03 HTTP 与 WebSocket 入门 | 先讲方法、状态、头部、正文和资源,再解释升级握手、持久双向通道、帧与应用消息。 | 先实现历史HTTP查询,再建立WebSocket双向小模型,区分握手、帧与业务成功。 |
原理层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 04.04 可靠传输 | 序列号、确认、超时重传、重复、乱序;窗口与流水线。 | 手工推演丢包、重复、乱序与确认,不把TCP确认当作消息已保存或用户已读。 |
| 04.05 TCP 与长连接生命周期 | 握手、关闭、半关闭、TIME_WAIT、连接复用与重置;心跳、存活判断与重连。 | 画出长连接建立、关闭、半关闭与重连,区分TCP存活、心跳与用户在线状态。 |
| 04.06 流量与拥塞控制 | 接收方能力、网络拥塞、窗口、带宽时延积、缓冲与尾延迟。 | 分别分析慢设备和网络拥塞,解释窗口、带宽时延积与无限加缓冲的后果。 |
工程层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 04.07 TLS 与身份 | 加密、完整性、证书、名称校验、握手;信任链与应用授权。 | 解释TLS保护的边界、证书名称与身份校验,再区分传输身份和会话授权。 |
| 04.08 Go 网络 I/O | Reader/Writer、短读短写、帧、deadline、连接池和取消。 | 设计有大小上限的消息读取与写入,处理截断、部分读写、deadline和关闭。 |
| 04.09 代理与负载均衡 | 反向代理、连接复用、健康探测、地址传播、超时预算。 | 追踪经过代理的连接与请求,说明健康探测、超时预算和重试叠加风险。 |
进阶层
| 章节 | 要详细讲解的内容 | IM 练习与验收目标 |
|---|---|---|
| 04.10 HTTP 版本与 RPC | HTTP/2 多路复用与流控;HTTP/3 概念;gRPC、模式与错误。 | 比较HTTP版本与内部RPC,区分流控、序列化、协议错误与业务错误。 |
| 04.11 网络层与链路层 | 转发与路由、NAT、MTU、局部寻址;无线与移动的基本限制。 | 用NAT、MTU和转发路径解释长连接可达性与大消息传输问题。 |
| 04.12 网络排障与协议演进 | 抓包读法、阶段计时、失败分类、兼容矩阵与限额。 | 提交一次断线或投递延迟排障,包含阶段计时、抓包观察与协议兼容边界。 |
本卷综合任务
为单聊通信和历史补拉写协议契约、消息边界、心跳与超时说明,选择一次断线或慢接收方故障给出证据链。
任务由学习者在具备环境时执行。理论推导、参考示例、个人实现和真实运行记录分别保存,故障与反例属于必需部分。
达到的能力
能沿协议层定位问题,能区分传输可靠、请求成功、业务完成和身份授权。
用解释、最小实现、失败变式、业务取舍四类证据评审。只有目录、术语定义或参考代码通过,不能直接记为掌握本卷。
本卷章节展开规则
每章从一个明确问题开始,先补齐本章所需定义,再推导机制;至少含一条完整执行过程、一个反例、分层练习、反馈与业务迁移。复杂章节拆成多课,不把整卷知识压成一次速读。
当前编写状态和章节深度要求见课程编写与能力验收。