keepalive默认保持多久?
k
设置移动网络“始终连接数据业务”什么意思?
应用层设置周期性心跳keepalives,被tcp视为应用数据。毫无疑问,一旦这些生活不如果在超时时间内没有收到来自另一个tcp的ack,它们将继续重新传输。至于最大重传次数,取决于具体tcp协议的实现。一般至少会重传8次,重传间隔会越来越长,以避免网络融合对tcp连接的短期影响。
上面最后一句有点难以理解。意味着即使当前使用的路径断开,路由协议也会动态选择新的物理链路,因此后续的tcp重传消息会使用新的链路到达目的地,从而避免tcp超时断线的风险。
所以不是说只有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,也没有逃脱被重置的命运。你可以从上面找到原因。
原文标题:keepalive自动切换原理 keepalive默认保持多久?,如若转载,请注明出处:https://www.wmyjt.com/wmy3/1265.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「共道号」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。