发送FIN表示该端不会发送任何数据。但是它能发送TCP keepalive吗?
如果可以,那么它就与“在发送FIN之后发送内容”这一说法相矛盾,即使它是keepalive而不是数据。
如果不发送keepalive,则无法检测到另一端是否已离开。
例如:
客户端发送FIN并收到ACK回复。然后服务器发送了一个被丢弃的重置。客户端唯一能够检测到服务器已经离开的方法是发送keepalive,这将得到重置响应,然后客户端关闭。
这种情况是否发生?
如果可以,那么它就与“在发送FIN之后发送内容”这一说法相矛盾,即使它是keepalive而不是数据。
如果不发送keepalive,则无法检测到另一端是否已离开。
例如:
客户端发送FIN并收到ACK回复。然后服务器发送了一个被丢弃的重置。客户端唯一能够检测到服务器已经离开的方法是发送keepalive,这将得到重置响应,然后客户端关闭。
这种情况是否发生?