IO、NIO与网络编程

BIO、NIO 与 AIO、NIO 核心组件、多路复用机制

10 篇文档MODULE 05
DOC

BIO、NIO 与 AIO:阻塞模型、非阻塞模型、异步模型和场景选型(071)

一、I/O 模型是网络编程的基石 Java 的网络编程能力经历了三次重大演进:从 JDK 1.0 的 BIO(Blocking I/O),到 JDK 1.4 的 NIO(Non blocking I/O),再到…

DOC

NIO 核心组件:Buffer、Channel、Selector 的工作方式(072)

一、三个组件,一个目标 Java NIO 的三个核心组件——Buffer、Channel、Selector——不是三个独立的功能模块,而是一个精密协作的整体。理解它们各自的设计原理和交互方式,是理解 Netty…

DOC

多路复用机制:select、poll、epoll 差异以及水平/边缘触发(073)

一、多路复用解决了什么问题 在 C10K 问题出现之前,网络服务器的主流模型是"一个连接一个进程/线程"。每个连接独占一个线程,线程在 read() 上阻塞等待数据。当连接数超过几百个时,线程数爆炸——上万线程…

DOC

零拷贝技术:mmap、sendfile、DirectByteBuffer 与数据路径(074)

一、零拷贝不是"不拷贝",而是"减少不必要的拷贝" 零拷贝(Zero Copy)是 I/O 性能优化中最重要的技术之一。它的名字容易让人误解——不是真的零次拷贝,而是消除 CPU 参与的数据拷贝,让数据直接在 …

DOC

TCP 可靠传输:三次握手、四次挥手、重传、滑动窗口和拥塞控制(075)

一、TCP 如何在不可靠的 IP 层之上构建可靠传输 IP 协议是"尽力而为"的——数据包可能丢失、重复、乱序。TCP 在 IP 之上构建了一套完整的可靠性机制,核心包括: 连接管理:三次握手建立连接,四次挥手…

DOC

TCP 常见问题:粘包拆包、TIME_WAIT、CLOSE_WAIT、半连接/全连接队列(076)

一、TCP 不是"问题制造者",而是"问题放大器" TCP 协议本身是可靠的,但在生产环境中各种问题层出不穷。本文逐一拆解四种最常见的 TCP 问题:粘包拆包、TIME WAIT 堆积、CLOSE WAIT 泄…

DOC

HTTP/1.1、HTTP/2 与 HTTP/3:连接复用、队头阻塞和 QUIC(077)

一、HTTP 的演进史就是"解决队头阻塞"的演进史 HTTP 协议经历了三次重大版本迭代,每一次升级的核心目标都是解决前一个版本的性能瓶颈,尤其是 队头阻塞 (Head of Line Blocking)问题:…

DOC

HTTPS 与 TLS:握手流程、证书链、密钥协商和会话复用(078)

一、HTTPS = HTTP + TLS HTTPS 不是一个新的协议,而是在 HTTP 和 TCP 之间插入了一层 TLS(Transport Layer Security)。TLS 的前身是 SSL,目前主…

DOC

Netty 线程模型:EventLoop、ChannelPipeline、Handler 与 Reactor 模式(079)

一、Netty 的线程模型是一套精密的协作体系 Netty 是 Java 网络编程的事实标准,它的核心设计——线程模型——决定了它的高并发能力、低延迟特性以及编程模型。本文从 Reactor 模式出发,逐一拆解…

DOC

Netty 内存与性能:ByteBuf、池化、引用计数、拆包器和背压(080)

一、Netty 的性能不只是"线程模型",内存管理同样关键 Netty 的线程模型(079)解决了"怎么高效处理连接"的问题,但如果没有高效的内存管理,百万连接会因为内存分配和 GC 而崩溃。本文覆盖 Byte…