保活机制
保活功能主要是为服务器提供的,服务器可能会代表客户绑定一些资源,希望知道客户主机是否崩溃。
如果一个给定的连接在2个小时之内没有任何动作,则服务器就向客户发送一个探查报文段:
对端仍然运行正常
客户主机依然正常运行,并且服务器可达。则客户的TCP响应正常,而服务器也知道对方是正常工作的,则服务器在2小时内以后将保活定时器复位。在这2小时以内,如果有数据流交换,则在交换数据后的未来2小时再复位。对端已经崩溃
客户主机已经崩溃,并且关闭或者正在重新启动。在任何情况下,客户的TCP都没有响应。服务器不能够收到对探查的响应,并在75秒后超时(服务器总共发送10个这样的探查,每个间隔75秒)。如果服务器没有收到一个响应,则认为客户主机已经关闭并会终止这个连接。对端已经崩溃并重新启动
客户主机崩溃并已经重新启动,这时服务器将收到一个对其保活探查的响应,然而这个响应是一个复位,使得服务器终止这个连接。
配置
-
net.ipv4.tcp_keepalive_time
保活时间,默认是7200秒 -
net.ipv4.tcp_keepalive_intvl
保活时间间隔,默认是75秒 -
net.ipv4.tcp_keepalve_probes
保活探测次数,默认是9次。