TCP连接与心跳

目录

前言

连接

TCP短连接

TCP长连接

保活

心跳

总结


前言

浅聊TCP的连接与心跳, 谈谈自己的看法

连接

TCP的连接是虚拟信道, 而不是两台设备在物理上真正形成的连接, TCP的连接是全双工的, 这得益于TCP具有发送缓冲和接受缓冲, 这可以避免发送数据和接受数据之间相互阻塞

对于我们使用TCP连接又可以分为短链接和长连接

TCP短连接

短连接接受数据后进行处理, 数据处理完成后关闭TCP连接

优点是无需维护连接的状态, 实现简单, 适合处理同一用户的长时间间隔的请求

缺点是如果统一用户的请求过于频繁, 则存在大量重复的TCP连接的创建与销毁, 对性能影响较大.

TCP长连接

长连接不会处理完一个数据就断开连接, 而是需要维持TCP的连接, 保证连接的复用, 根据业务在合适的时机再断开连接

优点是保证连接的复用, 适合处理同一用户的频繁请求, 客户端和服务端之间可以进行实时的数据交互, 无需频繁地建立和关闭重复的连接, 提高了通信效率

缺点是需要维护TCP的连接, 增加了复杂度. 当同一用户请求时间间隔较长时, 长期维护TCP连接而没有处理数据, 会白白占用系统资源. 拖累系统性能.

保活

如果我们需要使用TCP长连接, 那么毋庸置疑, 我们需要保证长连接的可靠性, 维护客户端的连接. 在长连接中, 由于网络的不稳定性或其他因素, 可能会导致连接断开, 无法及时发现. 为了避免服务端维护已经挂掉的客户端结点, 服务端和客户端需要感知对方的状态, 确定对方可以正常工作

心跳

为了实现TCP连接的保活, 我们, 需要一种策略来实现我们的目标, 这时候心跳这个机制就派上用场了, 客户端和服务器之间会约定一个心跳间隔时间, 客户端定期发送心跳包给服务器, 服务器收到心跳包后发送应答给客户端, 从而确认连接仍然有效. 如果在心跳间隔时间内没有收到心跳包或应答, 表示连接可能已经断开, 可以重新建立连接或进行其他操作

总结

长连接是为了保持连接的状态, 实现实时数据交互, 心跳是用来检测长连接是否仍然有效, 防止连接断开, 可以及时重连或采取其他措施进行恢复

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

醉墨居士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值