Skip to content

TCP 三次握手 → Socket → Netty 追问链

追问路径

Q: TCP三次握手过程?
→ SYN/SYN+ACK/ACK
  Q: 服务端accept之后连接怎么处理?
  → Socket编程,BIO一连接一线程
    Q: BIO的问题是什么?
    → 线程资源耗尽,需要NIO
      Q: Java NIO怎么做?生产环境用什么?
      → Selector多路复用,生产用Netty
        Q: Netty的线程模型?
        → 主从Reactor(BossGroup + WorkerGroup)

涉及知识点

核心串联逻辑

  1. TCP 握手建立连接后,服务端 accept() 返回 Socket
  2. BIO 模型:每个连接一个线程阻塞读写 → 万级连接时线程耗尽
  3. NIO 模型:Selector 监听多个 Channel 的事件 → 一个线程处理多连接
  4. Netty:封装 NIO,主从 Reactor 模式
    • BossGroup:accept 新连接
    • WorkerGroup:处理 IO 读写
    • Pipeline:Handler 链处理业务

面试回答串联

"TCP 三次握手建立连接后,传统 BIO 每连接一线程无法支撑高并发。NIO 通过 Selector 多路复用让单线程管理多连接。生产中用 Netty 的主从 Reactor 模型——BossGroup 负责 accept,WorkerGroup 负责 IO,Pipeline 链式处理业务逻辑。"