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 比较和分析的更多相关文章

  1. 从linux源码看socket(tcp)的timeout

    从linux源码看socket(tcp)的timeout 前言 网络编程中超时时间是一个重要但又容易被忽略的问题,对其的设置需要仔细斟酌.在经历了数次物理机宕机之后,笔者详细的考察了在网络编程(tcp ...

  2. TCP连接探测中的Keepalive和心跳包

    TCP连接探测中的Keepalive和心跳包 tcp keepalive 心跳 保活 Linuxtcp心跳keepalive保活1. TCP保活的必要性 1) 很多防火墙等对于空闲socket自动关闭 ...

  3. TCP连接探测中的Keepalive 和心跳包

    采用TCP连接的C/S模式软件,连接的双方在连接空闲状态时,如果任意一方意外崩溃.当机.网线断开或路由器故障,另一方无法得知TCP连接已经失效,除非继续在此连接上发送数据导致错误返回.很多时候,这不是 ...

  4. linux上TCP connection timeout的原因查找

    linux上TCP connection timeout的原因查找 好久没有写文章了, 今天解决了一个网络连接超时的问题, 记录以备查看. 最近在线上nginx经常出现输出connection tim ...

  5. TCP/IP具体解释--TCP首部的TimeStamp时间戳选项

    TCP应该是以太网协议族中被应用最为广泛的协议之中的一个,这里就聊一聊TCP协议中的TimeStamp选项.这个选项是由RFC 1323引入的,该C建议提交于1992年.到今天已经足足有20个年头.只 ...

  6. 为什么多 TCP 连接比单 TCP 连接传输快

    转自: 我观察到,客户端机器从单一服务器使用 HTTP 下载一个文件:1. 单连接下载,速度没有达到客户端网络的最大带宽:2. 多连接同时下载,传输速度有极大的提高,带宽被占满. 假设如下前提:1. ...

  7. TCP协议(包括TCP的连接过程,数据分段,TCP有关服务器优化)

    Transmission Control Protocol/Internet Protocol 传输控制协议/因特网互联协议 TCP/IP是一个Protocol Stack(协议栈),包括TCP.IP ...

  8. Http 和TCP的关系,TCP长连接和短连接有什么区别?

    HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用.由于HTTP在 ...

  9. Cloudservice程序设置Idle timeout

    部署的云服务程序,默认的idle timeout是4分钟,意味着如果你通过一个workerrole发布了wcf服务,客户端第一次调用服务方法后,再过4分钟尝试去重新调用服务,会报错,具体测试如下: 1 ...

  10. Tcp抓包以及tcp状态解释

    tcp三次握手 发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它, ...

随机推荐

  1. vuex记录

    vuex就是vue中管理状态的地方,控制着组件之间的数据: 5大核心,通常只要有state和mutation就能满足vuex最基本的需求 1.state 项目存放各种状态的地方 2.mutation ...

  2. Go 设置代理

    对于 Windows 用户,可以在PowerShell中设置: $env:GOPROXY = "https://goproxy.io"

  3. js中的对象方法中this指向问题

    对象方法调用this所在函数fn的是b,所以this指向b,b.a1='hello a3' ,b没有a2属性,b.a2=undefinedvar a1='hello a1'var a2='hello ...

  4. LaTex【五】latex导入中文包,支持中文显示

    \documentclass{article} \usepackage{CJKutf8} \begin{document} \begin{CJK}{UTF8}{gbsn} 中文样例,UTF-8编码,字 ...

  5. The operation was rejected by your operating system.

    我在新项目开启的时候使用npm install来初始化前端代码的开发环境 但是遇到一个问题,一直报: The operation was rejected by your operating syst ...

  6. pytorch学习笔记(8)--搭建简单的神经网络以及Sequential的使用

    1.神经网络图 输入图像是3通道的32×32的,先后经过卷积层(5×5的卷积核).最大池化层(2×2的池化核).卷积层(5×5的卷积核).最大池化层(2×2的池化核).卷积层(5×5的卷积核).最大池 ...

  7. hashtable被弃用了

      Hashtable的作者:HashMap的作者:Hash Map的作者比Hashtable的作者多了著名顶顶的并发大神Doug Lea.他写了util.concurrent包.著有并发编程圣经Co ...

  8. 【Java】zuul

    报错 com.netflix.zuul.exception.ZuulException: Hystrix Readed time out 解决办法,zuul模块的yml配置文件增加 ribbon: C ...

  9. liveview能设定开机最小化到托盘吗 对liveview 3.5.2的建议

    liveview能设定开机最小化到托盘吗?[建议]      能不能添加上面的功能,最好能开机自动录制       目前我的版本是3.5.2   建议增加功能   1.开机最化到托盘   2.开机自动 ...

  10. wx小程序 组件无法使用全局样式 (app.wxss)

    解决方法: 在组件中加上options选项 Component({ options: { addGlobalClass: true } })