探索BI系统搭建的必要性与AI技术的应用潜力
921
2022-05-30
1. 什么是KeepAlive?
简单来说,KeepAlive就是为了防止TCP连接中,链路断开,而连接两端无法侦测到的问题。它的原理其实就是在连接空闲的时候,向对方发送一个空白帧(60 bytes),让对方应答(54 bytes)。数据来源:wiki
就是说,在连接空闲keepalive-idle(也有叫keepalive-time的,比如微软)时间后,以keepalive-interval间隔,向对方发送总共keepalive-count帧(也有叫keepalive-retry。微软叫TcpMaxDataRetransmissions)。如果对方不应答,认为连接已经断开。
关于此问题的最权威解释,请参考 IETF的文档。在其中搜索"TCP Keep-Alives"。
2. 怎么设置
Windows
编码:
打开或关闭:请参考微软的MSDN:setsockopt 这个只能设置打开或者关闭keep alive。
具体参数的设置,请参考MSDN里WSAIoctl章节里关于KeepAlive的设置,但是不可修改count值。
微软里,windows Server 2003, XP, 2000里TcpMaxDataRetransmissions的值被设置为5,可以通过注册表设置,而Vista以后,这个值被设置为了10,并且不可改。
注册表:
KeepAliveTime KeepAliveInterval TcpMaxDataRetransmissions设置完需要重启电脑
Linux
系统级:
# 查询 cat /proc/sys/net/ipv4/tcp_keepalive_time sysctl net.ipv4.tcp_keepalive_time
#修改 vim /etc/sysctl.conf net.ipv4.tcp_keepalive_intvl = 30 net.ipv4.tcp_keepalive_time = 30 net.ipv4.tcp_keepalive_probes = 9 sysctl -p
代码级:
很简单了,见这里
Gauss AP EI企业智能 数据仓库服务 GaussDB(DWS)
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。