-
为什么需要检测连接的可用性?
TCP长连接的好处:在当前连接可用的情况下,每一次请求都只是简单的数据发送和接收,免去了DNS解析,连接建立等时间,大大加快了请求的速度,也有利于接收服务器的实时消息。
如果连接无法很好地保持,通过长连接发送请求迟迟没有收到反馈知道超时,又需要一次连接建立的过程,效率甚至还不如HTTP。
基于这个前提,必须要有一种机制用于检测连接的可用性。可以避免移动网络下的连接被回收;服务器可以及时清理无效连接以减轻负载;同时也是业务需求
-
TCP的KeepAlive无法代替应用层心跳保活机制的原因
TCP是一个基于连接的协议,其连接状态是由一个状态机进行维护,连接完毕后,双方都会处于 established 状态 ,这之后的状态并不会主动进行变化。
TCP的KeepAlive 开启后,TCP层将在定时时间到后发送相应的 KeepAlive 探针以确定连接可用性。
TCP KeepAlive 是用于检测连接的死活,即检测双方之间是否还是连接状态。而心跳机制还会检测通讯双方的存货状态,即连接的双方是否能正常通讯。
为什么基于TCP的移动端IM仍然需要心跳保活?
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 前言 很多人认为,TCP协议自身先天就有KeepAlive机制,为何基于它的通讯链接,仍然需要在应用层实现额外的心...
- 本文主要通过整理网络上的资料,整理出的关于TCP方面的简单理论知识。作为Java程序员虽然更多的时候我们都是直接调...