美文网首页
长连接为什么要发送心跳包

长连接为什么要发送心跳包

作者: 傲骨天成科技 | 来源:发表于2021-07-27 16:44 被阅读0次

大概我们的智能手机链接上移动网络的时候,其实并没有连接上internet,运营商分配给手机的IP其实是一个内网的ip,手机要连接上internet必须要通过运营商的网关进行IP转换,这个网关称为NAT(Network address translation),简单来说手机连接internet就是链接移动运营商的内网IP端口,外网相互映射。

由于大部分移动网络运营商为了减少网关NAT映射表的负荷,当一个链路有一段时间没有通信时,就会删除对应表,造成链路中断,正是这种缩短了空闲连接的释放超时,原本是想节省通道的资源,没想到让互联网的应用,不得不以远高于正常频率发送心跳包来维持长连接。

总结:

  • 1.防止NAT网关在一定时间内删除没有通信的链路表数据。
  • 2.防止意外断开(进电梯、无信号等不可坑因素),用于保活

相关文章

  • 长连接为什么要发送心跳包

    大概我们的智能手机链接上移动网络的时候,其实并没有连接上internet,运营商分配给手机的IP其实是一个内网的i...

  • 2018-07-23 golang学习笔记

    1.心跳包:发送心跳包是为了不断监听和发送达到长连接的效果 2.处理 连接 mysql和sqlite 3.KCP去...

  • 长连接和心跳

    长连接实现的几种方式 socket建立长连接并发送心跳

  • netty 心跳包和断线重连机制

    为什么需要心跳包??? 心跳包主要是用来做TCP长连接保活的。有时 socket 虽然是连接的但中间网络可能有问题...

  • Socket心跳包机制与实现

    心跳包的发送,通常有两种技术 方法1:应用层自己实现的心跳包 由应用程序自己发送心跳包来检测连接是否正常,大致的方...

  • Socket 两种连接方式

    长连接与短连接 所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,...

  • tcp长连接、心跳包

    长连接 TCP经过三次握手建立连接,长连接是指不管有无数据包的发送都长期保持建立的连接;有长连接自然也有短连接,短...

  • 长链接相关浅析

    长链接相关浅析 定义 长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发...

  • 心跳包的意义(socket断线感知)

    在维持一个tcp长连接的过程中,我们一般都需要在客户端代码这里写一个心跳包向服务端发送。但为什么要写这个,它的意义...

  • 长连接与短连接

    概念: 长连接是指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持期间,如果没有数据包发送,需要双方发检...

网友评论

      本文标题:长连接为什么要发送心跳包

      本文链接:https://www.haomeiwen.com/subject/awyomltx.html