计算机网络-TCP长连接
1. 什么是 TCP 长连接
TCP
的长连接也被称为KeepAlive
,看起来很像HTTP
的头部Connection: keep-alive
字段(它的中文也叫长连接)。- 但是二者本质上是不同的:
HTTP
长连接:为了实现多个HTTP
连接共用一个TCP
连接,避免传输层反复建立/关闭连接的开销。这是用户态层面实现的TCP
长连接:本质上是为了保活,这也是HTTP
长连接在传输层的基础,否则应用层的长连接完全无从谈起。这是内核态层面实现的
2. 保活机制实现原理
- 首先,
TCP
的长连接(就是保活机制)是在内核态实现的。 TCP
如果一段时间内没有数据交互,就会向对方发送探测报文。如果对方能够正常工作,就会给出一定的响应,然后本地的TCP
就继续保活;反之,如果没有连续几次没有应答,达到一定次数,那么TCP
连接就会终端。