TCP长连接和短链接

目录

短连接

长连接

keepalive功能

中间设备删除超时的连接过程

TCP keepalive交互过程

TCP keepalive带来的问题:

为什么需要长连接?

http keepalive 与 TCP keepalive


参考:https://www.cnblogs.com/hukey/p/5481173.html

短连接

通信双方有数据需要交互时就建立TCP连接,数据发送完成后就断开TCP连接。管理起来很简单,存在的连接都是游泳的,不需要额外的控制手段。

长连接

在客户端与服务器端建立连接后,彼此没有数据需要交互,也可以将连接维持保持一段时间。(这里是用的TCP的保活(keepalive)计时器https://blog.csdn.net/u010918487/article/details/87190751#%E7%AC%AC23%E7%AB%A0%C2%A0%20TCP%E7%9A%84%E4%BF%9D%E6%B4%BB%E5%AE%9A%E6%97%B6%E5%99%A8)

keepalive功能

1.探测连接的对端是否存活:客户端或服务器意外断电、死机、崩溃、重启;中间网络断开,通信双方并不知道

2.防止中间设备因超时删除连接相关的连接表:中间设备如防火墙等,会为经过它的数据报文建立相关的连接信息表,并未其设置一个超时时间的定时器,如果超时预定时间,某连接无任何报文交互,中间设备会将该连接信息从表中删除。删除后,再有报文过来时,中间设备将丢弃该报文,从而导致应用出现异常。

中间设备删除超时的连接过程

 

TCP keepalive交互过程

TCP keepalive带来的问题:

1.中间设备因大量保活连接,导致其连接表满:网关设备由于保活问题,导致其连接表满,无法建立新连接(如网闸故障问题)或性能下降严重。

2.正常连接被释放

当连接一端正在发送保活探测报文时,中间网络正好由于各种异常(如链路中断、中间设备重启等),而无法将该保活探测报文正确转发到对端时,可能会导致探测的乙方释放本来正常的连接。但这种可能性很小。

 

为什么需要长连接?

TCP三次握手四次挥手都是需要消耗资源和时间的。

http keepalive 与 TCP keepalive

http keepalive在于tcp连接的复用,tcp keepalive在于探测连接的对端是否存活

 

http 1.1起,默认使用长连接,会在响应头上添加Connection:keep-alive字段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值