Skip to content

计算机网络-TCP长连接

1. 什么是 TCP 长连接

  • TCP 的长连接也被称为 KeepAlive ,看起来很像 HTTP 的头部 Connection: keep-alive 字段(它的中文也叫长连接)。
  • 但是二者本质上是不同的:
    • HTTP 长连接:为了实现多个 HTTP 连接共用一个 TCP 连接,避免传输层反复建立/关闭连接的开销这是用户态层面实现的
    • TCP 长连接:本质上是为了保活这也是 HTTP 长连接在传输层的基础,否则应用层的长连接完全无从谈起这是内核态层面实现的

2. 保活机制实现原理

  • 首先,TCP 的长连接(就是保活机制)是在内核态实现的。
  • TCP 如果一段时间内没有数据交互,就会向对方发送探测报文。如果对方能够正常工作,就会给出一定的响应,然后本地的 TCP 就继续保活;反之,如果没有连续几次没有应答,达到一定次数,那么 TCP 连接就会终端。

image.png|500