`
windflower_07
  • 浏览: 41393 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于tcp连接的keepalive参数

 
阅读更多

今天因为一个终端因为GPRS网络不稳定,讨论服务器是否知道连接已断开的问题,提及了可以采用keepalive来让服务端定期检测网络的联通性,就了解了一下tcp的keepalive。

linux系统个里面,默认情况下,tcp的keepalive的配置如下

tcp_keepalive_time
在连接被标记为需要keepalive后,最后数据被发送和第一个keepalive探测包的间隔
默认值:7200s

tcp_keepalive_probes
在决定连接被断掉,通知应用层前,发送keepalive探测包的次数.
默认值:9

tcp_keepalive_intvl
在keepalive探测包开始后,探测包每隔多长时间发送一次.
默认值:75s

根据上述参数来看,如果一个client发送一个标记为keepalive的包后,如果断开了,服务端需要7200s+9*75s=7875s后,连接才释放掉

附:linux里面查看这些参数的地方
查一下 /etc/sysctl.conf文件,
看net.ipv4.tcp_keepalive_intvl = 75
net.ipv4.tcp_keepalive_probes = 9
net.ipv4.tcp_keepalive_time = 7200

如果sysctl.conf里面没有这些参数,可以到下面这个目录看。
/proc/sys/net/ipv4/
里面有这3个选项
分享到:
评论

相关推荐

    linux tcp keepalive存活代码设置

    原理是:对于一个已经建立的tcp连接。如果在keepalive_time时间内双方没有任何的数据包传输,则开启keepalive功能的一端将发送 eepalive数据包,若没有收到应答,则每隔keepalive_intvl时间再发送该数据包,发送...

    在Linux环境下使用TCP的keepalive机制

    Linux内置支持keepalive机制,为了使用它,你需要使能TCP/IP网络,为了能够配置内核在运行时的参数,你还需要procfs和sysctl的支持。  这个过程涉及到keepalive使用的三个用户驱使的变量:  tcp_keepalive_time...

    WinSock_TCP_keepalive.rar_Keepalive_tcp 心跳_心跳 C_心跳包 c+_心跳包机制

    然而,TCP连接在长时间无数据交换时可能会出现“死锁”现象,即双方都认为对方仍然在线,但实际上可能已经因为各种原因(如网络故障、电源中断等)而断开。为了解决这个问题,引入了心跳机制和TCP的Keepalive特性。 ...

    怎样及时检测出非正常断开的TCP连接.DOC

    使用 KeepAlive 探测可以及时检测出非正常断开的 TCP 连接,从而避免了连接断开带来的不良影响。但是,需要注意的是,KeepAlive 探测也会增加网络流量和系统资源的占用,因此需要根据实际情况进行合理的配置。

    springboot-keepalive设置测试

    连接池管理着服务器与客户端之间的TCP连接,避免频繁创建和销毁连接。Spring Boot集成了多种连接池实现,如HikariCP、Tomcat JDBC等,但在这里我们主要关注与HTTP相关的连接池,如Tomcat的 Coyote ...

    通过调整Linux TCP参数提示服务器性能

    2. 降低 tcp_keepalive_time 值:降低 tcp_keepalive_time 值可以缩短 TCP 连接的保持时间,减少服务器的资源占用。 3. 禁用 tcp_window_scaling:禁用 tcp_window_scaling 可以减少服务器的网络负载,提高数据传输...

    linux 下tcp参数优化

    例如,可以通过修改 tcp_keepalive_*系列参数来解决 CLOSE_WAIT 状态的问题。此外,还可以通过修改 inet_peer_gc_maxtime、inet_peer_gc_mintime 等参数来调整 INET peer storage 的大小和时间间隔。 Linux 下 TCP ...

    tcp同步连接发消息心跳检测

    TCP Keepalive功能主要是为了探测一个TCP连接是否还活跃,防止因长时间无数据交换导致的连接丢失。 TCP心跳检测的工作方式如下: 1. 双方在建立连接时可以协商Keepalive的参数,如心跳间隔时间(keepalive_...

    关于TCP心跳检测共2页.pdf.zip

    - TCP连接池:管理并复用TCP连接,减少心跳检测的开销。 - QUIC:Google提出的一种实验性协议,旨在解决TCP的一些问题,包括快速重连和内置的心跳机制。 综上所述,TCP心跳检测是保证TCP连接稳定性和可靠性的关键...

    TCP链接异常断开检测程序

    TCP(Transmission Control Protocol)是一种基于连接的传输层协议,它保证了数据的可靠传输,通过三次握手建立连接,四次挥手...在实际应用中,正确配置和使用KEEPALIVE选项是保证TCP连接可靠性和健壮性的重要步骤。

    判定断开前的KeepAlive探测次数

    当两个网络节点建立连接后,为了防止因网络故障或长时间无数据传输导致连接意外断开,TCP协议会周期性地发送KeepAlive探测包,以确认对方节点是否仍处于活动状态。如果在设定的时间内没有收到回应,系统会认为连接已...

    socket的keepalive介绍

    它的主要目标是确保在TCP连接上,即使在长时间无数据交换的情况下,也能检测到连接是否仍然有效。这在服务器与客户端通信中尤其重要,因为如果一方崩溃或者网络出现故障,而另一方却不知道,那么无效的连接可能会...

    nginx 负载均衡for windows, 跨越 100万TCP连接

    标题提及的“nginx 负载均衡for windows, 跨越 100万TCP连接”揭示了Nginx在Windows环境下处理海量并发连接的能力。** 在Windows系统上部署Nginx,可以利用其卓越的反向代理和负载均衡功能,将来自客户端的请求...

    keepalive.zip

    在操作系统层面,例如Linux,Keepalive参数可以在内核级别进行设置。通过调整`tcp_keepalive_time`、`tcp_keepalive_intvl`和`tcp_keepalive_probes`这三个内核参数,可以定义Keepalive探测的启动时间、探测间隔以及...

    keepalive的安装包

    Keepalive的基本概念是通过周期性地发送小量数据包来验证TCP连接的健康状态。当连接建立后,如果一段时间内没有数据交换,网络设备可能会认为连接已断开并释放资源。Keepalive机制通过在设定的时间间隔内发送“心跳...

    TCP socket通信实例(心跳)

    KeepAlive是一种检测TCP连接状态的技术,主要用于避免由于网络故障或其他原因导致的连接失效问题。它通过定期发送小的数据包来检查对端是否仍然处于活动状态。 #### 三、KeepAlive配置参数 Linux系统中,可以通过...

    IEC61850-kit Stack configuration options

    - **作用**:达到此数量时,认为 TCP 连接已失效。 #### GOOSE/SV 配置选项 **CONFIG_ETHERNET_INTERFACE_ID** - **描述**:标识用于 GOOSE 和采样值 (Sampled Values) 的以太网接口。 - **平台依赖**:在 Linux ...

    Linux调优,对于一个新建连接,内核要发送多少个 SYN 连接请求才决定放弃。

    例如,在高负载的 Web 服务器中,需要降低 tcp_syn_retries、tcp_retries1、tcp_retries2 等参数的值以提高连接建立的速度。在 NAT 服务中,需要降低 tcp_orphan_retries、tcp_fin_timeout 等参数的值以提高连接的...

    WinSockTCPkeepalive的原理学习及使用方法借鉴.pdf

    WinSock TCP keepalive机制是一种用于检测TCP连接状态的技术,它主要解决了在长时间无数据传输时判断对方是否仍在线的问题。TCP连接在设计上是可靠的,但在实际应用中,可能会遇到对端异常关闭或网络中断的情况,...

Global site tag (gtag.js) - Google Analytics