《MMO 服务器开发》3.1 消息头与命令号
字节流本身没有消息边界,双方必须先约定头几个字节表示什么。本节定下 aegis 的固定消息头——长度、命令号、序号与标志位四个字段,讲清「高字节模块号 + 低字节序号」的命令号分配策略、标志位的位域压缩,并给出可运行的 header.go 与边界测试。
tag
字节流本身没有消息边界,双方必须先约定头几个字节表示什么。本节定下 aegis 的固定消息头——长度、命令号、序号与标志位四个字段,讲清「高字节模块号 + 低字节序号」的命令号分配策略、标志位的位域压缩,并给出可运行的 header.go 与边界测试。
把 Go 的 goroutine、JDK 21 的虚拟线程与 Netty 的 EventLoop 放进同一张表:三者的栈内存模型、调度器和 GC 交互各有什么不同。10 万个执行体的实跑对照给出真实数字,最后落在「什么条件下选哪条路线」的可判定结论上。
一个连接一个 goroutine 的成本到底在哪:2KB 起始栈、GMP 调度、netpoller 挂起与唤醒。本节真起进程跑 2000 条并发 TCP 连接,量出连接建立耗时、RTT 的 P50/P99 与吞吐,再用 Little 定律把延迟读成容量。
四种 I/O 模型的判别法、Reactor 模式的三个不变式,以及 Go runtime 的 netpoller 为什么能让「阻塞写法」在 epoll/kqueue 上跑成非阻塞。本节从零写一个单线程事件循环并用 go test 验证分发顺序与超时语义,再把它逐行对回 runtime 源码。
一个 MMO 服务端最少要有哪些零件?答案是十类:协议编解码、连接与会话、网关、消息路由、定时器、Actor 邮箱、幂等、同步模型、安全防护、压测工具。本节用一份可运行的 Go 检查器把这十个零件建模成可校验的清单,并给出每个零件由本书哪一章负责实现。
本站已有 170 篇游戏服务器实战文、110 篇月度归档、17 篇 Skynet 与 3 篇 Pitaya,外加一本只写了前 3 章的《游戏服务端编程实践》。本节诚实盘点这些内容的体量,用一张四重区隔表说清本书和它们的边界,并把边界编码成可运行的路由表。
一个 MMO 服务端和 Web 后端最大的差别,是它要扛住成千上万条有状态的长连接,而每条连接背后的玩家状态必须有唯一的家。本节先画出网关、逻辑、场景、数据四层的职责边界与依赖方向,再用一份能跑的 Go 代码把四层的启动与优雅关闭顺序钉成断言,作为全书的立论起点。
网络层是 Android 应用最脆弱的一环,超时、重试与错误封装稍有疏漏就会引发线上问题。本文用 Retrofit 2.11 与 OkHttp 4.12 搭建可维护的网络层:接口注解与挂起函数设计、转换器工厂在三种序列化方案间的取舍、拦截器与认证器、超时与连接池配置、统一错误封装与退避重试,以及证书固定、模拟服务器测试与混淆保留规则。文末给出网络层常见坑清单与排查思路。
URLSession 是 iOS 网络请求的唯一官方底座。本文从 Session 配置(default/ephemeral/background)、任务类型、async/await 版 data(for:) 讲到请求构建与 URLComponents、Codable 解码与 CodingKeys、错误分类与指数退避重试、超时与 ATS、Token 刷新与认证、中间件式网络层分层设计、URLCache 缓存策略、上传下载与进度回调,并给出协议抽象加依赖注入的可测试方案与常见坑清单。
Zig 标准库内置 TLS 1.3 客户端与密码学原语,无需链接 OpenSSL 即可建立安全连接。本文讲解 X.509 证书与密钥体系、std.crypto 的对称与非对称加密、TLS 1.3 握手流程、std.crypto.tls 客户端用法,并深入 HTTP/2 的帧结构、HPACK 头压缩与多路复用,最后给出证书校验与连接复用实践。
Go 网络编程深度实战:TCP 与 UDP 服务端客户端、Socket 抽象、自定义二进制与文本协议、以及 Go runtime 基于 epoll/kqueue 的事件驱动 IO 模型与生产级网络服务的避坑指南。
WebSocket 是全双工实时通信的核心协议。本文系统讲解 WebSocket 握手升级、帧结构二进制解析(FIN/opcode/mask/payload)、Zig 实现高效服务端、心跳 ping/pong 保活、广播与房间模型的并发设计、与现有 HTTP 服务共存方案,以及支持多客户端的完整工程实践。
深度讲解云原生环境下的网络模型与工程实践:容器网络模型(bridge/host/overlay)、CNI 插件(Flannel/Calico/Cilium)、VXLAN/Geneve 隧道与 Overlay/Underlay、eBPF 与 Cilium 的现代网络、Service Mesh 数据面(Envoy)、网络策略与常见坑。
深度讲解 Server-Sent Events(SSE)的原理与实时通信选型:SSE 工作机制(EventSource、text/event-stream)、与 WebSocket 的全面对比、断线重连与自动恢复、单向推送 vs 双向通信场景、多实例下的推送方案、常见避坑与工程实践。
系统讲解网络故障排查的方法论与实战工具链:分层排查(应用/传输/网络/链路)、tcpdump 抓包技巧、Wireshark 流量分析、ss/netstat 连接诊断、iperf 带宽测试、丢包重传与 MTU 黑洞诊断、DNS 问题排查及常见故障速查。
深入讲解 socket 编程与连接管理的核心工程实践:socket 系统调用与 TCP 状态机、阻塞/非阻塞/多路复用模型、超时与缓冲区控制、长连接设计、心跳检测、连接池构建以及生产环境常见避坑。
深度讲解 TCP 拥塞控制的核心机制与调优实践:拥塞窗口、慢启动、拥塞避免、快速重传/恢复、CUBIC 与 BBR 算法对比、TCP 内核参数调优、带宽延迟积与常见避坑。
深度讲解 IP 层的协议原理与工程实践:IP 报文结构与分片、IPv4 与 IPv6 对比、子网划分与 CIDR、路由原理(静态路由、OSPF、BGP)、NAT/SNAT/DNAT 地址转换、ICMP 与 ARP、常见避坑与排障指南。
从 POSIX socket 原语出发,系统讲解阻塞/非阻塞 I/O、select/poll/epoll 多路复用,再到 Boost.Asio 的事件驱动模型与异步操作,最终落地到半同步半异步服务端架构,为高并发 C++ 网络服务提供完整技术路径。
系统讲解 Java 网络编程:BIO/NIO/AIO 三种模型、Socket/ServerSocket 编程、NIO Channel-Buffer-Selector 三角色、零拷贝与堆外内存、java.net.http.HttpClient、WebSocket 客户端,以及高并发 IO 模型选型。