Linux上的TCP会话存活时间为7200秒(2小时),这是由TCP协议的默认配置决定的。当一个TCP会话在一段时间内没有活动(即没有数据传输),操作系统会发送一个空闲确认(keepalive)消息给对端。默认情况下,空闲确认消息的发送时间间隔为7200秒。如果在发送空闲确认消息后还是没有活动,操作系统会继续发送空闲确认消息,直到发送了11个空闲确认消息,每个间隔为7200秒。

如果在发送了11个空闲确认消息后仍然没有活动,操作系统会认为TCP会话已经处于非活动状态,并发送一个FIN报文来关闭此会话。这个FIN报文是为了通知对端关闭连接。

这种机制的目的是为了释放系统资源。当一个TCP会话处于非活动状态时,没有数据传输,但仍然占用一些系统资源。通过发送空闲确认消息和最终的FIN报文,可以确保非活动的TCP会话能够被及时关闭,释放系统资源供其他会话使用。

linux 上的tcp session存活时间为7200s为什么过了60s后就会主动发送FIN报文来关闭这个session?

原文地址: http://www.cveoy.top/t/topic/i0JD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录