TCP Keepalive:为什么一个空闲的ESTABLISHED连接在60秒后结束,而不是tcp_keepalive_time?

我正在研究如何减轻DoS攻击的服务器。 在一种情况下,我打开了数百个TCP连接到我的networking服务器。 在最初的TCP握手后,我不会发送任何数据。 TCP握手后是空闲连接。 服务器在ESTABLISHED状态下显示此连接。

没有活动60秒后,服务器终止连接(移至FIN_WAIT2状态)。

为什么在60秒后会发生这种情况? 有没有一个内核值来控制这个? 我希望连接在“tcp_keepalive_time”秒(当前设置为7200)之后终止。

空闲连接不用等待7200秒就可以终止,但是我想知道60秒后为什么会发生这种情况。

这是在运行2.6.32内核的CentOS 6.4服务器上。

处理空闲连接与TCP保持活动无关,但仅与服务器进程内的设置有关。 TCP一直只关心如何及时发现断开的连接,即没有数据包可以交换,因为中间的东西坏了,或者一个对端崩溃了。 当连接空闲时,不会交换实际的数据,但仍然可以交换具有零有效载荷的TCP保活包。