SO_KEEPALIVE选项解释
来源:互联网 发布:自学电脑办公软件 编辑:程序博客网 时间:2024/06/15 08:37
socket心跳机制so_keepalive的三个参数详解
SO_KEEPALIVE 保持连接检测对方主机是否崩溃,避免(服务器)永远阻塞于TCP连接的输入。
设置该选项后,如果2小时内在此套接口的任一方向都没有数据交换,TCP就自动给对方 发一个保持存活探测分节(keepalive probe)。这是一个对方必须响应的TCP分节.它会导致以下三种情况:
1、对方接收一切正常:以期望的ACK响应,2小时后,TCP将发出另一个探测分节。
2、对方已崩溃且已重新启动:以RST响应。套接口的待处理错误被置为ECONNRESET,套接 口本身则被关闭。
3、对方无任何响应:源自berkeley的TCP发送另外8个探测分节,相隔75秒一个,试图得到一个响应。在发出第一个探测分节11分钟15秒后若仍无响应就放弃。套接口的待处理错误被置为ETIMEOUT,套接口本身则被关闭。如ICMP错误是“host unreachable(主机不可达)”,说明对方主机并没有崩溃,但是不可达,这种情况下待处理错误被置为 EHOSTUNREACH。
有关SO_KEEPALIVE的三个参数详细解释如下:
(16)tcp_keepalive_intvl,保活探测消息的发送频率。默认值为75s。
发送频率tcp_keepalive_intvl乘以发送次数tcp_keepalive_probes,就得到了从开始探测直到放弃探测确定连接断开的时间,大约为11min。
(17)tcp_keepalive_probes,TCP发送保活探测消息以确定连接是否已断开的次数。默认值为9(次)。
注意:只有设置了SO_KEEPALIVE套接口选项后才会发送保活探测消息。
(18)tcp_keepalive_time,在TCP保活打开的情况下,最后一次数据交换到TCP发送第一个保活探测消息的时间,即允许的持续空闲时间。默认值为7200s(2h)。
- SO_KEEPALIVE选项解释
- SO_KEEPALIVE选项
- SO_KEEPALIVE选项
- SO_KEEPALIVE选项
- SO_KEEPALIVE选项
- SO_KEEPALIVE选项
- SO_KEEPALIVE选项
- socket选项SO_KEEPALIVE
- SO_KEEPALIVE套接口选项
- Socket选项:SO_KEEPALIVE
- TCP SO_KEEPALIVE选项
- 套接字选项SO_KEEPALIVE
- SO_KEEPALIVE套接口选项(转载)
- SO_KEEPALIVE套接口选项(转载)
- linux Socket 中 setsockopt的SO_KEEPALIVE选项
- 套接字选项SO_LINGER, SO_KEEPALIVE等
- 使用 SO_KEEPALIVE 选项检测TCP连接
- linux Socket 中 setsockopt的SO_KEEPALIVE选项
- windows下面如何将桌面上显示的数据从内存取出来
- VS2010-配置OpenGL
- iwebshop中的增删改查
- window图像设备接口及绘图
- 总结一下android app引导页
- SO_KEEPALIVE选项解释
- 远程计算机或设备将不接受连接,IE无法上网
- 两个曲柄滑块机构组成简单机械系统
- iOS和Android的区别
- 第五周—求最大值
- 第五周 raptor 圆半径求周长
- redis 缓存使用 java
- php基础语法2:switch状态分支,三种循环结构和终止循环测试
- iwebshop中的增删改查