keepalive自动切换原理 keepalive默认保持多久?
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,也没有逃脱被重置的命运。你可以从上面找到原因。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。