socket心跳机制so_keepalive的三个参数详解
来源:互联网 发布:网络环境 编辑:程序博客网 时间:2024/05/17 03:03
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)。
- TCP/IP Socket心跳机制so_keepalive的三个参数详解
- socket心跳机制so_keepalive的三个参数详解
- socket心跳机制so_keepalive的三个参数详解
- TCP/IP Socket心跳机制so_keepalive的三个参数详解
- socket心跳机制so_keepalive设计三个参数详解
- Linux下的TCP/IP Socket心跳机制so_keepalive的三个参数详解
- Socket心跳包机制及SO_KEEPALIVE套接口选项
- 关于心跳机制,SO_KEEPALIVE套接口选项的一些些
- ChannelOption.SO_KEEPALIVE, true->java socket参数详解:KeepAlive
- socket的心跳包机制
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- 心跳包机制及Socket通信服务的心跳包
- Linux socket编程的心跳机制总结
- 第三周项目--顺序表的应用(删除元素)
- iOS app的测试发布平台
- 第10周实践项目3-利用二叉树遍历思想解决问题
- ios 获取日期(年、月、日、星期、时、分、秒)
- 第10周、项目2—二叉树遍历的递归算法
- socket心跳机制so_keepalive的三个参数详解
- 第九周上机实践—项目4(1)—建立广义表算法库
- Maven开发总结
- linux学习之命令参数解析——getopt()函数
- BZOJ 1003:[ZJOI2006]物流运输trans
- 部署代码遇到坑
- weblogic的集群与配置
- 第十周项目1 二叉树的链式存储及基本运算
- 黑马程序员———OC语言 NSArray的介绍