长连接与短连接

长连接与短连接

一、TCP 链接

当网络通信采用 TCP 协议时,在真正的读写操作之前,sever 与 client 之间必须建立一个连接,当读写操作完成之后,对方不再需要这个连接时他们可以释放这个链接,连接的连接需要三次握手,释放需要四次握手,也就是说每个连接的建立都是需要消耗资源和时间的。 

 

二、长连接断开的原因

在长连接的情况下,双方的所有通信 都建立在1条长连接上(1次TCP连接);所以,长连接需要持续保持双方连接,才可使得双方持续通信。

可是,长连接会存在断开的情况,而 断开原因 主要是

  • 长连接所在进程被杀死
  • NAT超时
  • 网络状态发生变化
  • 其他不可抗因素(网络状态差、DHCP的租期等等 )

 

三、高效维持长连接的解决方案

  • 进程保活
  • 心跳保活
  • 断线重连

 

四、容易混淆的概念——TCP的keep alive和HTTP的Keep-alive

TCP的keep alive是检查当前TCP连接是否活着;HTTP的Keep-alive是要让一个TCP连接活久点。它们是不同层次的概念。

TCP keep alive的表现: 当一个连接“一段时间”没有数据通讯时,一方会发出一个心跳包(Keep Alive包),如果对方有回包则表明当前连接有效,继续监控。

 

参考资料:

TCP 长连接与短连接

(八)深入浅出TCPIP之TCP长连接与短连接详解

HTTP的长连接和短连接

 

简述TCP的三次握手和四次挥手

TCP-三次握手和四次挥手简单理解

我终于搞懂了TCP的三次握手和四次挥手(图片案例超详解)

posted @ 2022-09-07 10:13  风过无痕521  阅读(128)  评论(0编辑  收藏  举报