posts

《Java 网络编程基础》 · 全书目录与章节索引(50 篇)

《Java 网络编程基础》全 50 篇,只用 JDK 原生 Socket 与 NIO,从一次 HTTP 请求的路径讲到 TCP/UDP、拆帧、Buffer、Selector 与 Reactor,再手写 HTTP/1.1、HTTP/2、TLS 与 WebSocket,最后落到线程模型、零拷贝、背压、抓包压测与 v1 验收:15 章 45 节加前置与附录的完整索引。

《Java 网络编程基础》全 50 篇,是「Java 网络与 Netty」三卷本的第一卷。它不引入 Netty、OkHttp 或 Spring,只用 JDK 25 自带的 Socket、ServerSocket、SocketChannel、Selector、ByteBuffer 和 SSLEngine,把「一次请求到底经过哪些层」拆成可运行的代码与可复现的实验。

本页是《Java 网络编程基础》的全书目录:按章节顺序列出全部 50 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的三条学习路径。

全书概览

项目内容
书稿《Java 网络编程基础》
篇数50 篇(15 章 45 节 + 序、前言、目录 + 附录 A/B)
领域Java 网络编程、NIO、Reactor、HTTP/TLS/WebSocket 协议实现
贯穿项目linkd —— 一个只用 JDK 的连接服务器,逐章长出拆帧、事件循环与协议层
上游项目libraryd —— 卷三的 Javalin 服务,本卷用 linkd 解释它下面发生了什么
阅读方式从目录篇 进入按顺序通读,或按症状跳读
主线版本JDK 25 LTS(Temurin 25.0.5+8)、Maven 3.9.12
关键依赖无第三方网络库;只用 JDK 25 标准库
上级专题书稿专题

全书目录

前置

节文章核心内容
—序:为什么还要学 JDK 原生网络编程三卷本定位、与 Netty 的关系、学习预期
—前言:读法、环境与约定版本、机器口径、代码约定与实验方法
—目录与学习路径三条学习路径、十五章结构、项目状态

第一部分:地图、语义与连接(第 1–3 章)

节文章核心内容
1.11.1 从一次 HTTP 请求看 Java 网络栈请求路径、内核缓冲区、accept 队列、Java 可见边界
1.21.2 BIO、NIO、AIO 与 Reactor 模型阻塞/非阻塞、就绪/完成、单线程与主从 Reactor
1.31.3 linkd 项目与实验环境四模块骨架、LinkdMain、端口与诊断命令
2.12.1 TCP 连接、字节流与可靠性边界三次握手、四次挥手、字节流无边界、可靠性不等于低延迟
2.22.2 UDP 数据报、MTU 与丢包DatagramSocket、MTU、分片、应用层重传
2.32.3 InetAddress、端口与网络接口地址解析、NetworkInterface、绑定地址与回环
3.13.1 Socket 与 ServerSocket 基本用法accept、读写、backlog、一个连接一个线程
3.23.2 连接、读、写超时connect 超时、SO_TIMEOUT、写超时为何不存在
3.33.3 半关闭、RST 与优雅关闭shutdownOutput、RST 触发条件、SO_LINGER

第二部分:字节与事件循环(第 4–7 章)

节文章核心内容
4.14.1 字节序、字符集与边界ByteOrder、UTF-8、CharsetDecoder、截断字符
4.24.2 定长、分隔符与长度域帧三种成帧、最大长度、半包与多帧
4.34.3 编解码器设计与错误处理编解码器接口、异常策略、FrameDecoder
5.15.1 Buffer 的 position、limit 与 flip三值状态、flip/clear/compact、读写切换
5.25.2 DirectBuffer 与堆外内存分配成本、Cleaner、堆内与堆外对照
5.35.3 FileChannel、Scatter/Gather 与零拷贝transferTo、readv/writev、适用边界
6.16.1 Selector 就绪事件与 interestOpsOP_ACCEPT/READ/WRITE、select、wakeup
6.26.2 单线程 Reactor 实现register、事件分发、读写回调
6.36.3 多线程 Reactor 与主从模型boss/worker、跨线程注册、负载分配
7.17.1 非阻塞 accept、read 与 writeconfigureBlocking(false)、返回 0 与 -1、写半包
7.27.2 半包、粘包与缓冲区增长累积缓冲、上限、压缩与扩容
7.37.3 连接状态机与空闲检测连接状态、lastRead、定时扫描与关闭

第三部分:协议实现(第 8–11 章)

节文章核心内容
8.18.1 请求行、头部与消息体请求行解析、头部大小限制、Content-Length
8.28.2 keep-alive、chunked 与管线化连接复用、chunk 解码、响应顺序
8.38.3 路由、静态文件与错误响应HttpRouter、/healthz、404/500 与静态文件
9.19.1 HTTP/2 帧类型与流状态9 字节帧头、SETTINGS、流状态机
9.29.2 HPACK 与头部压缩静态表、动态表、Huffman、整数编码
9.39.3 多路复用、流量控制与优先级stream ID、WINDOW_UPDATE、优先级取舍
10.110.1 TLS 1.3 握手与证书链1-RTT、keytool、证书链与 SAN
10.210.2 SSLEngine 非阻塞握手wrap/unwrap、NEED_TASK、握手状态
10.310.3 会话复用、ALPN 与证书校验session ticket、ALPN h2、主机名校验
11.111.1 WebSocket 握手与 UpgradeSec-WebSocket-Key、101、协议切换
11.211.2 帧格式、掩码与分片opcode、mask、continuation、控制帧
11.311.3 心跳、关闭与广播ping/pong、关闭码、会话表与广播

第四部分:运行时工程(第 12–14 章)

节文章核心内容
12.112.1 事件循环与任务队列execute、任务队列、禁止阻塞事件循环
12.212.2 业务线程池与阻塞隔离池大小、队列、拒绝策略、虚拟线程对照
12.312.3 上下文传播与线程安全ThreadLocal、ScopedValue、不可变消息
13.113.1 零拷贝的系统调用边界sendfile/mmap 的 JDK 抽象与适用条件
13.213.2 DirectByteBuffer 分配与回收Cleaner、MaxDirectMemory、池化
13.313.3 内存映射与文件传输MappedByteBuffer、transferTo、静态文件
14.114.1 读写水位与背压信号高/低水位、暂停读、队列上限
14.214.2 超时、重试与幂等边界超时分层、重试放大、幂等键
14.314.3 优雅关闭与连接排空SIGINT、停止 accept、排空、关闭期限

第五部分:验证与收口(第 15 章)

节文章核心内容
15.115.1 tcpdump、netstat 与连接诊断lo0 抓包、连接状态、fd 与端口
15.215.2 压测工具与指标口径ab、吞吐/分位、协调缺失、Little’s law
15.315.3 linkd v1 验收与故障复盘验收清单、故障注入、复盘模板

附录

节文章核心内容
A附录 A Socket 与 NIO API 速查Socket、ServerSocket、Channel、Buffer、Selector 的常用方法
B附录 B 网络诊断命令清单netstat、lsof、tcpdump、ab、jcmd 的可复制命令

三卷衔接

实验口径

全部文章 game Indie Java golang Books 客户端开发 Minigame Saas rust Python