网络与接入协议
Category
networking 树总览。覆盖:网络基础(01–02)、传输与协议(03–04)、消息模式(05–06)、弱网与房间广播(07),以及 IPC 子树(ipc/01–06)。
Definition
游戏项目里的网络问题,不是课本上的 TCP、UDP 选型题,而是线上主链路如何在真实网络环境里活下来。登录、匹配、局内输入、房间广播、聊天、活动通知、支付结果、资源下载都经过网络,但它们对时延、顺序、可靠性、重试和恢复的要求完全不同。只要把这些链路混在一起设计,系统就会在弱网、高峰和版本演进阶段不断暴露问题。
这一章要解决的,不是“网络怎么通信”这种泛问题,而是几类最常见的工程矛盾:
- 长连接会话怎样和业务会话解耦。
- 高实时消息和高可靠消息怎样分层。
- 接入层应该承担哪些职责,不应该承担哪些职责。
- 房间广播、弱网、切网、后台切前台和重连怎样成为常态设计。
- 协议如何在长期版本演进里保持兼容,而不是靠一次性约定。
游戏网络和普通 Web 请求的最大区别,不是“它也走 TCP 或 UDP”,而是它经常同时具备:
- 长连接与长期会话并存。
- 高频状态更新与低频控制消息并存。
- 强实时链路与强可靠链路并存。
- 弱网、切网、重连和广播风暴是日常场景,不是边缘故障。
所以网络层在游戏里不是透明底座,而是直接塑造同步、房间、恢复和线上稳定性的主链路基础设施。
Related
关系链:玩法语义 → 消息语义(01)→ I/O 与传输(02–03)→ 协议契约(04)→ 消息模式(05–06)→ 弱网治理(07);跨进程边界接 IPC 子树(ipc/01–06)。下游:server 树的同步模型、并发模型与 AOI。
Reference
节点清单见下节;教程侧同题对照见第 04 讲《通信协议设计》。
本章文章
- 游戏网络基础:先把连接、会话、消息和链路分层讲清楚,避免一开始就把所有网络问题混在一起。
- I/O 模型与事件通知机制:讨论连接维护、事件循环、写缓冲、背压和业务线程职责如何影响稳定性。
- 传输层与接入协议选择:比较不同传输方案在控制消息、局内输入、状态同步和移动网络场景下的真实取舍。
- 数据帧与协议契约:讨论包体设计、字段演进、错误处理和版本兼容如何成为长期治理问题。
- 消息模式与事件分发:讨论请求响应、推送、广播、内部事件流和协议层之间该如何分工。
- 可靠性、顺序与兼容性:拆开“可靠”“有序”“兼容”这三种常被混在一起的语义,说明它们应如何分层实现。
- 房间广播、弱网与国内网络环境:把前面的抽象设计放回真实移动网络、切网重连、快照恢复和广播风暴场景里讨论。