首页 > 常见问答

keepalive自动切换原理 keepalive默认保持多久?

keepalive默认保持多久?

k

设置移动网络“始终连接数据业务”什么意思?

应用层设置周期性心跳keepalives,被tcp视为应用数据。毫无疑问,一旦这些生活不如果在超时时间内没有收到来自另一个tcp的ack,它们将继续重新传输。至于最大重传次数,取决于具体tcp协议的实现。一般至少会重传8次,重传间隔会越来越长,以避免网络融合对tcp连接的短期影响。

上面最后一句有点难以理解。意味着即使当前使用的路径断开,路由协议也会动态选择新的物理链路,因此后续的tcp重传消息会使用新的链路到达目的地,从而避免tcp超时断线的风险。

keepalive自动切换原理 keepalive默认保持多久?

所以不是说只有tcp断开再重新连接才会选择更好的路径。移动网络的ip层将实时更新最新和最佳路径。这是tcp消息所依赖的ip网络平台的特性。不管你喜不喜欢,一直都是这样的表现!

接下来的一些内容将有助于读者理解tcp长连接。

tcp长连接的存在可以优化客户端访问服务器的访问效率。没有长tcp连接,客户端每次访问服务器都需要三次握手,增加了1.5rtt时延。

但是,如果存在长tcp连接,客户端在建立tcp连接时可以节省1.5rtt。

但是,凡事有利有弊。长tcp连接的存在,如果没有数据刷新,至少有一个风险:移动网络使用nat技术。换句话说,到nat设备的长tcp连接作为nat条目存在,它有一个生命周期。如果没有数据刷新,2-20分钟后删除。

一旦删除,当客户端和服务器的数据到达nat设备时,是否会重新创建nat条目?

不要!

如何处理nat设备?

扔过来。

为了避免超时删除nat条目,可以通过定期保持应用层的心跳来避免这种糟糕的情况。

但是周期性的心跳并不代表一切,例如,下面的情况就发生在:。

(1)

网络拥塞

重新传输的心跳消息被一次又一次无情地丢弃。

(2)

nat设备重启

nat条目消失。

(3)

服务器重启

tcp四元组消失。

(4)

网络环路

心跳消息永远无法到达服务器。

(5)

网络收敛缓慢

tcp消息已经丢失,直到tcp被重置。

tcp长连接配置了heartbeat,也没有逃脱被重置的命运。你可以从上面找到原因。

tcp网络消息数据心跳

原文标题:keepalive自动切换原理 keepalive默认保持多久?,如若转载,请注明出处:https://www.wmyjt.com/wmy3/1265.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「共道号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。