欢迎访问汉海网,带你进入知识的海洋!

tcp保活机制是默认开启的吗(心跳报文什么意思)

方应 分享 时间: 加入收藏 我要投稿 点赞

心跳报文什么意思?

心跳包:在客户端和服务器间每隔几小时通知对方自己状态的一个自己符号表示的命令字,遵循一定会的时间间隔发送中,类似心跳。

正所谓的心跳包那是客户端定时发送简单的信息给服务器端告知它我还在而已。代码是每隔两三分钟发送中一个且固定信息给服务端,服务端送来后知道回答一个固定不动信息如果服务端几分钟内还没有通知客户端信息则视客户端断开连接。

比如有些通信软件长时间不建议使用,要想明白了它的状态是大侠帮帮忙那就离线状态就是需要心跳包,每隔几小时发包收包。

发包方:可以不是客户也可以是服务端,看哪边实现程序方便合不合理。好象是客户端。服务器也这个可以设置定时轮询发心跳出去。心跳包并不叫心跳包是是因为:它像心跳一般每隔且固定时间发一次,若要来告知服务器,这个客户端还活着。很显然这是目的是尽量长连接到,不过这个包的内容,是没有什么不光法律规定的,当然了就像大都很小的包,也可以只包涵包头的一个空包。

在TCP的机制里面,本身是存在有心跳包的机制的,也就是TCP的选项。系统默认是可以设置的是2小时的心跳频率。但它检查一下不出来机器拔掉电源、网线拔出、防火墙这些断线。不过逻辑层如何处理频繁掉线很有可能也不是这样的话好去处理。

扩充卡资料

心跳包一般来说大都在逻辑层邮箱里空的包来利用的。下一个定时器,在当然时间间隔下你的邮箱一个空包给客户端,后再客户端可以反馈一个虽然的空包出去,服务器如果没有在肯定会时间内收不出来客户端发送中回来的反馈包,那肯定只有认定说掉网了。

只要send或者recv一下,如果不是结果为零,则为经常掉线。但是,在长直接连接下,有可能很长一阵子都没有数据往来。理论上说,这个连接上是总是达到再连接的,不过实际情况中,如果不是中间节点出现什么故障是未必能明白了的。

有的节点(防火墙)会自动启动把是有时间之内没有数据交互的连接给断了。在这个时候,就不需要我们的心跳包了,主要用于保留长连接到,保活。在分析出了断线之后,服务器逻辑很可能需要做一些事情,.例如断线后的数据清理,新的连接,这个也是要由逻辑层依据需求去做了。

总的说来,心跳包主要注意也就是主要是用于长连接到的保活和频繁掉线去处理。好象的应用下,可以判定时间在30-40秒都很确实不错。如果不是真的那些要求高,的话在6-9秒。

参考资料:

如何保证socket长连接?

建立起连接后,两端都不接受直接关闭那就是长连接了。怎么能保证对端的存在,TCP的keepalive是TCP协议的保活机制,不过默认周期为2小时,较长。在应用层,程序可以必然自己的连接到保活机制,就像那就是breath了。

221381
领取福利

微信扫码领取福利

tcp保活机制是默认开启的吗(心跳报文什么意思)

微信扫码分享