TCP idle timeout 和TCP Keepalive 比较和分析
TCP idle timeout 和TCP Keepalive 是两个独立的功能。
TCP idle timeout
TCP idle timeout 是系统TCP配置文件中的空闲超时设置指定连接在符合删除条件之前处于空闲状态的时间长度。如果在空闲会话超时内未检测到流量,则系统可以删除该会话,默认300秒。
TCP Keep Alive Interval
TCP配置文件中的保持活动间隔设置用于调整系统向远程主机发送TCP保持活动数据包以进行连接验证的频率。如果系统没有收到三个连续TCP Keep Alive数据包的响应,则连接达到TCP Keep Alive超时,系统将删除连接。TCP Keep Alives(不要与HTTP Keep Alive标头混淆)是请求注释(RFC)1122中定义的可选TCP实现。默认值为1800秒。
table 1
| Scenario脚本 | Behavior行为 |
| The Keep Alive Interval is greater than the Idle Timeout (default)保持活动间隔大于空闲超时(默认值) | When the Keep Alive Interval is greater than the Idle Timeout, the system never sends TCP Keep-Alive packets as the connections are removed when reaching the TCP Idle Timeout .当保持活动间隔大于空闲超时时,系统从不发送TCP保持活动数据包,因为当达到TCP空闲超时时,连接被删除。 |
| The Keep Alive Interval is less than or equal to the Idle Timeout保持活动间隔小于或等于空闲超时 | In this scenario, the system can send the TCP Keep-Alive packets before the connections reach the TCP Idle Timeout defined in the TCP profile. When the client responds to the TCP Keep-Alive packets, the system resets the TCP idle time.在这种情况下,系统可以在连接达到TCP配置文件中定义的TCP空闲超时之前发送TCP保持活动数据包。当客户端响应TCP Keep Alive数据包时,系统重置TCP空闲时间。 |
TCP idle timeout 是系统为了维护连接的保护措施,删除失效的连接。
TCP Keep Alive Interval 是系统为了维护连接的的联通性和检测可用性。这种情况在业务属于长连接时是非常有效的,类似防火墙负载均衡这个有状态的设备会定期清理连接,
TCP Keep Alive 可以维护连接,那么他的时间应该配置的比idle timeout 的时间较小才行,请查看table 1.
TCP idle timeout 和TCP Keepalive 比较和分析的更多相关文章
- 从linux源码看socket(tcp)的timeout
从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌.在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp ...
- TCP连接探测中的Keepalive和心跳包
TCP连接探测中的Keepalive和心跳包 tcp keepalive 心跳 保活 Linuxtcp心跳keepalive保活1. TCP保活的必要性 1) 很多防火墙等对于空闲socket自动关闭 ...
- TCP连接探测中的Keepalive 和心跳包
采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃.当机.网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回.很多时候,这不是 ...
- linux上TCP connection timeout的原因查找
linux上TCP connection timeout的原因查找 好久没有写文章了, 今天解决了一个网络连接超时的问题, 记录以备查看. 最近在线上nginx经常出现输出connection tim ...
- TCP/IP具体解释--TCP首部的TimeStamp时间戳选项
TCP应该是以太网协议族中被应用最为广泛的协议之中的一个,这里就聊一聊TCP协议中的TimeStamp选项.这个选项是由RFC 1323引入的,该C建议提交于1992年.到今天已经足足有20个年头.只 ...
- 为什么多 TCP 连接比单 TCP 连接传输快
转自: 我观察到,客户端机器从单一服务器使用 HTTP 下载一个文件:1. 单连接下载,速度没有达到客户端网络的最大带宽:2. 多连接同时下载,传输速度有极大的提高,带宽被占满. 假设如下前提:1. ...
- TCP协议(包括TCP的连接过程,数据分段,TCP有关服务器优化)
Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议 TCP/IP是一个Protocol Stack(协议栈),包括TCP.IP ...
- Http 和TCP的关系,TCP长连接和短连接有什么区别?
HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用.由于HTTP在 ...
- Cloudservice程序设置Idle timeout
部署的云服务程序,默认的idle timeout是4分钟,意味着如果你通过一个workerrole发布了wcf服务,客户端第一次调用服务方法后,再过4分钟尝试去重新调用服务,会报错,具体测试如下: 1 ...
- Tcp抓包以及tcp状态解释
tcp三次握手 发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它, ...
随机推荐
- C# 使用多线程的几种方式
1.Thread 详细介绍:https://www.cnblogs.com/cheng8/p/16147918.html 使用Thread类通过ThreadStart(无参数)或Parameteriz ...
- 【论文写作】Vancouver style
参考文献引用风格之 Vancouver style 需要在引用出使用阿拉伯数字(1,2,3...)标注参考文献序号. 示例: Deep Learning [1]. Reference [1] LeCu ...
- windows下判断程序是否内存泄漏
在main函数第一行写 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); 程序退出后如果有泄漏会有打印
- react-router 路由 入门必看
如果您已经入门reactjs,请绕道~ 这篇博客只适合初学者,初学reactjs的时候,如果你不会webpack,相信很多人都会被官方的例子绕的晕头转向. ES6的例子也会搞死一批入门者.之前一直用的 ...
- C#新语法
C#新语法 NET6新特性以及C#新语法 1.顶级语句(C#9.0) (1):直接在C#文件中直接编写入口方法的代码,不用类,不用Main.经典写法仍然支持,反编译可以查看到,编译器依旧为我们生成了一 ...
- redhat单网卡配置多个IP
单网卡配置多个IP 进入配置网络的文件目录 复制网络配置文件并修改名字 配置网络 网络1 网络2 激活网络设备 重启网络 重启计算机,查看IP地址 (有问题可以提出来)
- cmd执行程序时容易卡住阻塞以及解决方式
遇到问题: cmd执行程序时总是卡住,敲回车后继续执行程序. 我司公众号需要去内网获取数据,cmd执行了内网穿透程序,期间cmd两次卡住,公众号无法获取内网数据导致无法运行. 解决方案: cmd默认开 ...
- 启动 RMAN 客户端并与之交互
启动和退出 RMAN RMAN 可执行文件与数据库一起自动安装,通常与其他数据库可执行文件位于同一目录中.例如,Linux 上的 RMAN 客户端位于$ORACLE_HOME/bin. 您有以下启动 ...
- docker (mysql 8.+ )主从同步
1.环境centos7.5 docker 2.下载docker 版本的mysql 启动容器 docker run --name mysql_master -p 3306:3306 -e MYSQL_ ...
- 08 学生课程分数的Spark SQL分析
读学生课程分数文件chapter4-data01.txt,创建DataFrame. 用DataFrame的操作或SQL语句完成以下数据分析要求,并和用RDD操作的实现进行对比: 每个分数+5分. 总共 ...