网站备案查询工信部手机版,线上推广员是干什么的兼职,公司外宣网站,二级域名网站如何申请吗在TCP连接中有一个保活机制#xff0c;叫做Keep-Alive#xff0c;用语言描述就是如下#xff1a; 在保活时间内#xff0c;如果没有任何连接相关的活动#xff0c;TCP 保活机制会开始作用#xff0c;每隔一个时间间隔#xff08;保活时间间隔#xff09;#xff0c;发…在TCP连接中有一个保活机制叫做Keep-Alive用语言描述就是如下 在保活时间内如果没有任何连接相关的活动TCP 保活机制会开始作用每隔一个时间间隔保活时间间隔发送一个探测报文该探测报文包含的数据非常少如果超过保活探测次数探测报文都没有得到响应则认为当前的 TCP 连接已经死亡系统内核将错误信息通知给上层应用程序。 就如下图画图参考了《傻傻分不清的TCP keepalive和HTTP keepalive》
在操作系统里边三个变量的相关信息
概念存放位置sysctl变量保活时间/proc/sys/net/ipv4/tcp_keepalive_timenet.ipv4.tcp_keepalive_time保活间隔/proc/sys/net/ipv4/tcp_keepalive_intvlnet.ipv4.tcp_keepalive_intvl保活探测次数/proc/sys/net/ipv4/tcp_keepalive_probesnet.ipv4.tcp_keepalve_probes 开启了 TCP 保活需要考虑以下几种情况 第一种对端程序是正常工作的。当 TCP 保活的探测报文发送给对端, 对端会正常响应这样 TCP 保活时间会被重置等待下一个 TCP 保活时间的到来。 第二种对端程序崩溃并重启。当 TCP 保活的探测报文发送给对端后对端是可以响应的但由于没有该连接的有效信息会产生一个 RST 报文这样很快就会发现 TCP 连接已经被重置。 第三种是对端程序崩溃或对端由于其他原因导致报文不可达。当 TCP 保活的探测报文发送给对端后石沉大海没有响应连续几次达到保活探测次数后TCP 会报告该 TCP 连接已经死亡。 TCP保活机制默认是关闭的当我们选择打开时可以分别在连接的两个方向上开启也可以单独在一个方向上开启。如果开启服务器端到客户端的检测就可以在客户端非正常断连的情况下清除在服务器端保留的“脏数据”而开启客户端到服务器端的检测就可以在服务器无响应的情况下重新发起连接。
如果使用 TCP 自身的 keep-Alive 机制在Linux系统中最少需要经过 2 小时 11 分 15 秒才可以发现一个“死亡”连接。这个时间是怎么计算出来的呢其实是通过 2 小时加上 75 秒乘以 9 的总和。实际上对很多对时延要求敏感的系统中这个时间间隔是不可接受的。