posts

《MMO 服务器开发》网络与并发内核 · 全书目录与章节索引(61 篇)

《MMO 服务器开发》卷一《网络与并发内核》全 61 篇,用 Go 从零实现 MMO 服务端 aegis 的网络底座:从分层与职责边界起步,经 I/O 模型与 Reactor、goroutine-per-connection 与 Java 虚拟线程对照、协议头与长度前缀、粘包拆包、二进制编解码、可靠 UDP 与 KCP、WebSocket 长连接、会话表与网关、消息路由、时间轮、Actor 邮箱、幂等去重、状态同步与帧同步、客户端预测与服务端校正、时间同步与延迟补偿、服务器权威与反作弊、协议 fuzz 与封包加密,最后装配成一个能登录、能移动、能广播的最小服务器,并跑出第一组真实承载数字。

《MMO 服务器开发》卷一《网络与并发内核》全 61 篇,是一套以从零手写一个 MMO 服务端为主线的书。从第 1 章定义「一个 MMO 服务端长什么样」起,到第 18 章把前 17 章的零件装配成能跑的服务端,aegis 会一路长大——一套长度前缀的帧协议、一个能正确处理粘包与拆包的编解码层、一套从零实现的 KCP 可靠 UDP、一个基于会话表的网关、一张消息路由表、一个哈希时间轮、一套 Actor 邮箱与背压、一个幂等窗口、一条从状态同步到客户端预测校正的完整链路、一层服务器权威校验与反作弊、以及协议 fuzz 与封包加密。每一节都写代码,每一节的代码都在本机真跑过,跑出来的结果就是这一节的结论。

技术栈是 Go 主线 + Java 对照:主干全部用 Go 实现,另有约十个「双栈对照」小节,把同一件事在 Go 与 Java(JDK 21 虚拟线程、java.nio.ByteBuffer 零拷贝)里各实现一遍并实测对比,给出可判定的选型结论。Java 代码经 Docker 拉取的现代 JDK 真跑,不使用本机那份 Java 8。

本页是《网络与并发内核》的全书目录:按章节顺序列出全部 61 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的学习路径与周计划。

全书概览

项目内容
书稿《MMO 服务器开发》卷一《网络与并发内核》
篇数61 篇(正文 18 章 54 节 + 目录篇 + 序 + 前言 + 附录 A–D)
领域MMO 服务端网络与并发内核从零实现
贯穿项目《晨曦大陆》——一款多人在线开放世界小游戏
从零服务端aegis——Go 实现,标准库为主,可本机真跑
对照技术栈Java 21(虚拟线程、java.nio.ByteBuffer),经 Docker 真跑
阅读方式从目录篇 进入按顺序通读,或按查漏场景跳读
实测环境Go 1.26.0、Docker + eclipse-temurin:21-jdk、macOS Darwin 25.3.0
可运行性L1 内核代码全部本机实跑;L2 端到端真起多进程;基准数字附原始数据

全书目录

前置

篇目核心内容
目录本卷定位、阅读路径、贯穿项目与可运行性口径
序为什么还要从零写一个 MMO 服务端
前言技术选型、Go 与 Java 双栈口径与环境准备

第一部分:认识与地基(第 1–3 章)

节文章核心内容
1.1分层与职责边界:一个 MMO 服务端长什么样接入、逻辑、场景、数据四层与长连接有状态的含义
1.2本书范围与站内分工与站内 170 篇架构文、既有书稿的四重区隔
1.3一个 MMO 服务端最少要有哪些零件最小可跑服务端的零件清单与可校验的骨架
2.1阻塞、非阻塞与 Reactor四种 I/O 模型与 Go netpoller 的关系
2.2goroutine-per-connection 与 Go 调度器每连接一协程的成本与两千连接的实测数字
2.3双栈对照:goroutine、Java 虚拟线程与 Netty EventLoop十万并发任务的 Go 与 Java 对照
3.1消息头与命令号命令号分配、位域与消息头布局
3.2长度前缀、粘包与拆包帧格式、粘包拆包与长度上限防御
3.3协议版本与多版本兼容版本协商与字段级向后兼容

第二部分:编解码与传输(第 4–6 章)

节文章核心内容
4.1二进制编解码从零写手写 Reader/Writer、varint 与越界防护
4.2双栈对照:Go 编解码与 Netty ByteBuf 零拷贝切片视图与 ByteBuffer 视图的零拷贝对照
4.3基准:JSON、MessagePack、Protobuf 与扁平化协议三种编码的吞吐与分配实测
5.1为什么游戏不只用 TCP队头阻塞、重传策略与拥塞控制的硬伤
5.2KCP 从零实现ARQ 重传、RTO 估计、滑动窗口与快速重传
5.3丢包与弱网模拟实测四档丢包率下的延迟分布与冗余发送率
6.1WebSocket 握手、掩码与分片手写 RFC 6455 握手与帧解析
6.2心跳与超时检测真起服务的超时踢人与千连接心跳开销
6.3断线重连与重连票据HMAC 票据、防篡改与防重放

第三部分:连接、路由与定时(第 7–9 章)

节文章核心内容
7.1会话表与连接管理连接与账号的双向索引与并发安全
7.2顶号、踢人与连接迁移同账号顶号的正确顺序与竞态
7.3网关的职责边界网关该做什么、绝不该做什么
8.1路由表与请求-响应-推送三种消息形态与路由表构建
8.2消息序号、去重与顺序保证序号语义与乱序处理
8.3广播与扇出批量广播与扇出的成本
9.1心跳超时与技能冷却海量短周期定时的组织方式
9.2时间轮从零实现哈希时间轮、级联与 O(1) 挂载
9.3世界时钟与 Tick 预算逻辑帧、时间缩放与 Tick 超支处理

第四部分:并发模型与正确性(第 10–11 章)

节文章核心内容
10.1消息驱动的实体实体只被消息推进,不共享内存
10.2邮箱、顺序保证与背压有界邮箱与拒绝策略
10.3对照:Go channel 邮箱与 Erlang/Skynet 式 Actor两种 Actor 实现与各自代价
11.1请求幂等窗口滑动窗口去重与内存上界
11.2命令编号与业务指纹命令号 + 指纹识别重复请求
11.3至少一次投递下的正确性重复投递不重复发奖

第五部分:实时同步(第 12–14 章)

节文章核心内容
12.1状态同步与帧同步的服务端视角两种同步模型服务端各要做什么
12.2快照与增量编码全量快照与增量差分的取舍
12.3兴趣过滤与带宽预算千人同屏的带宽账
13.1输入缓冲与本地预测客户端先走一步,服务端记什么
13.2服务器回滚与和解校正与重放的实现
13.3插值与平滑让校正不跳帧
14.1服务器时间线与时钟同步服务器时间、客户端偏移与估算
14.2延迟补偿裁决打得到底算不算打中
14.3高延迟玩家的公平性补偿上限与滥用防护

第六部分:权威、安全与综合(第 15–18 章)

节文章核心内容
15.1权威边界与信任模型客户端能说什么、不能说什么
15.2移动与战斗合法性校验速度上限、瞬移检测与冷却校验
15.3异常行为信号与限速信号采集与令牌桶限速
16.1协议 fuzz 与畸形包从零写一个协议 fuzzer
16.2洪泛与连接耗尽防护握手限速与连接配额
16.3封包加密与签名对称加密与防篡改签名
17.1把前 16 章拼成 aegis服务端装配与启动顺序
17.2登录、移动与广播端到端端到端流程与机器人断言
17.3机器人客户端与第一组承载数字自写压测器与真实承载数据
18.1卷一回顾十八个零件的串讲
18.2承载数字汇总全卷实测数据一览
18.3进入玩法卷卷二要装进去的玩法系统

附录

篇目核心内容
附录 A aegis 卷一 API 与模块速查全卷模块、类型与关键 API 一览
附录 B 环境与复现速查Go 版本、依赖、Java 容器与各层代码跑通方法
附录 C 实测数据汇总全书基准的原始数字与测量方法
附录 D 常见错误与 FAQ易错点、报错含义与排查清单

怎么用这份索引

相关阅读

全部文章 Golang Game Saas Rust Python Java 游戏开发 客户端开发 GameDev Typescript
mmo

《MMO 服务器开发》1.1 分层与职责边界:一个 MMO 服务端长什么样

一个 MMO 服务端和 Web 后端最大的差别,是它要扛住成千上万条有状态的长连接,而每条连接背后的玩家状态必须有唯一的家。本节先画出网关、逻辑、场景、数据四层的职责边界与依赖方向,再用一份能跑的 Go 代码把四层的启动与优雅关闭顺序钉成断言,作为全书的立论起点。

8 分钟阅读
MMO 游戏服务端 网络编程