Linux TCP 会话存活时间:7200s 和 60s 关闭机制详解
在 Linux 上,TCP 会话的存活时间默认设置为 7200 秒(2 小时)。这是因为 TCP 使用 TIME_WAIT 状态来确保数据的完整传输和可靠关闭。
当 TCP 连接关闭后,Linux 会将连接状态设置为 TIME_WAIT,等待一段时间以确保网络上的延迟、重传和乱序等问题都得到解决。这个时间段通常是 2 倍的 MSL(最大报文生存时间),也就是 2 倍的报文最大生存时间(通常为 60 秒)。
过了 60 秒后,即使在这段时间内没有任何活动,Linux 仍然会发送一个 FIN 报文来关闭连接。这是为了确保双方都意识到连接已经关闭,并且避免在网络上出现潜在的问题。
当超过默认的 TCP 会话数量时,Linux 会开始丢弃新的连接请求。这是为了防止系统资源耗尽,导致性能下降或崩溃。可以通过增加系统的最大连接数限制来调整这个行为。
要增加默认的 TCP 会话数量限制,可以修改系统的内核参数。可以通过以下命令来查看和修改 TCP 会话限制的参数:
sysctl net.ipv4.ip_local_port_range
sysctl net.ipv4.tcp_tw_reuse
sysctl net.ipv4.tcp_tw_recycle
其中,net.ipv4.ip_local_port_range 参数定义了可用的本地端口范围,net.ipv4.tcp_tw_reuse 参数表示是否允许重用 TIM_WAIT 状态的连接,net.ipv4.tcp_tw_recycle 参数表示是否启用快速回收机制。
可以通过修改这些参数的值来增加系统的 TCP 会话限制。但是需要谨慎操作,确保系统资源足够,并避免因为过多的连接而导致性能问题。
原文地址: https://www.cveoy.top/t/topic/poMK 著作权归作者所有。请勿转载和采集!