Sockets TCP套接字状态在更改IP地址后变为持久状态,即使已配置,也要尽早保持活动状态
我遇到了一个关于TCP套接字keepalive的问题 TCP保持活动在套接字连接后启用和配置,并且系统具有自己的TCP保持活动配置 “ss-to”可以显示连接的保持活动状态信息 网络接口是PPPOE设备,如果我们打开接口,它将获得一个新的ip地址。旧的TCP连接将保持建立,直到保持活动超时 但有时“ss-to”表示tcp连接变为“persist”,需要很长时间(约15分钟)才能关闭 以下是“ss-to”的结果:Sockets TCP套接字状态在更改IP地址后变为持久状态,即使已配置,也要尽早保持活动状态,sockets,tcp,tcp-keepalive,Sockets,Tcp,Tcp Keepalive,我遇到了一个关于TCP套接字keepalive的问题 TCP保持活动在套接字连接后启用和配置,并且系统具有自己的TCP保持活动配置 “ss-to”可以显示连接的保持活动状态信息 网络接口是PPPOE设备,如果我们打开接口,它将获得一个新的ip地址。旧的TCP连接将保持建立,直到保持活动超时 但有时“ss-to”表示tcp连接变为“persist”,需要很长时间(约15分钟)才能关闭 以下是“ss-to”的结果: ESTAB 0 591 172.0.0.60:
ESTAB 0 591 172.0.0.60:46402 10.184.20.2:4335 timer:(persist,1min26sec,14)
ESTAB 0 0 172.0.0.62:46120 10.184.20.2:4335 timer:(keepalive,4.480ms,0)
源地址为“172.0.0.60”,但网络接口的实际地址已更新为“172.0.0.62”
这是“ss-to”的正确结果:
ESTAB 0 591 172.0.0.60:46402 10.184.20.2:4335 timer:(persist,1min26sec,14)
ESTAB 0 0 172.0.0.62:46120 10.184.20.2:4335 timer:(keepalive,4.480ms,0)
我不知道为什么将“计时器”更改为“持久化”,这会使keep alive处于禁用状态。简而言之:TCP keepalive仅在连接空闲时才相关,即没有要发送的数据。相反,如果仍有数据要发送,但由于缺少ACK或窗口为0,当前无法发送,则与其他超时相关。这可能是你的问题所在 有关详细信息,请参阅