TCP连接可以保持打开多久?

TCP连接可以保持打开多久?,tcp,tcp-keepalive,Tcp,Tcp Keepalive,考虑这样一个场景,有client-a和server-b服务器-b已禁用TCP keepalive。服务器b没有任何应用程序逻辑来检查TCP连接是否打开client-a建立到server-b的TCP连接。之后,client-a和server-b之间没有数据传输。在这种情况下,服务器是否会关闭空闲连接?否则服务器将使TCP连接永远保持打开状态 阅读之后,我想这样的TCP连接将永远保持打开状态。我的猜测正确吗?TCP连接本身没有限制。从理论上讲,客户机和服务器可以保持连接多年,而无需交换任何数据和任何

考虑这样一个场景,有
client-a
server-b
<代码>服务器-b已禁用TCP keepalive。服务器b没有任何应用程序逻辑来检查TCP连接是否打开
client-a
建立到
server-b
的TCP连接。之后,
client-a
server-b
之间没有数据传输。在这种情况下,服务器是否会关闭空闲连接?否则服务器将使TCP连接永远保持打开状态


阅读之后,我想这样的TCP连接将永远保持打开状态。我的猜测正确吗?

TCP连接本身没有限制。从理论上讲,客户机和服务器可以保持连接多年,而无需交换任何数据和任何数据包流。问题通常是由NAT路由器或防火墙等中间包引起的,这些中间包保持一个状态,并在某些不活动后使该状态过期。在连接中发送的任何新数据包都无法传递,因为中间盒中不再存在关联状态