FTP协议:服务器在一段时间后关闭连接,为什么没有时间等待状态

FTP协议:服务器在一段时间后关闭连接,为什么没有时间等待状态,ftp,Ftp,FTP服务器在一段时间后自动关闭空闲的FTP连接,随后尝试使用此FTP连接下载/上载文件会引发FTPConnectionClosedException 我还注意到,此FTP连接使用的底层TCP连接在进入关闭状态之前不会进入TIME_WAIT状态。从FIN_WAIT_2状态,它直接移动到关闭状态。而我的理解是,从FIN_WAIT_2状态开始,TCP连接在关闭之前首先移动到TIME_WAIT状态 尽管这种不进入TIME_WAIT状态的优化是有意义的(因为来自先前数据连接的重复数据包将不再存在于网络中

FTP服务器在一段时间后自动关闭空闲的FTP连接,随后尝试使用此FTP连接下载/上载文件会引发FTPConnectionClosedException

我还注意到,此FTP连接使用的底层TCP连接在进入关闭状态之前不会进入TIME_WAIT状态。从FIN_WAIT_2状态,它直接移动到关闭状态。而我的理解是,从FIN_WAIT_2状态开始,TCP连接在关闭之前首先移动到TIME_WAIT状态

尽管这种不进入TIME_WAIT状态的优化是有意义的(因为来自先前数据连接的重复数据包将不再存在于网络中,因为很久以来没有数据通过此FTP连接移动,这就是FTP服务器也自动关闭连接的原因),但我找不到可靠的信息来源来证实这一点

有人能告诉我一些好的资源来理解FTP协议的工作原理吗


谢谢

您所描述的似乎是他们关闭空闲连接的方式中的一个特定于实现的功能。它不是FTP协议本身的一部分。您确定服务器正在正常关闭,并且没有中止连接吗?在我的应用程序中,我正在尝试定期从FTP服务器中提取文件。我正在尝试在这些定期拉取中重新使用我的FTP连接。我观察到FTP连接会在大约5分钟后自动关闭。如果这是我的FTP服务器的特定于实现的行为,那么移动到TIME_WAIT状态可能是真的,也可能不是真的。如果我们移动到TIME_WAIT状态,我的FTP服务器的主机/端口对将在一段时间内不可用。如果我想在这段时间内获得新的FTP连接,我可以获得ConnectionRefusedExceptionThe
time\u WAIT
状态用于整个
元组。到本地端口21的每个连接都将具有不同的
remoteip
和/或
remoteport
,因此建立新连接应该不会有问题。据我所知,TIME\u WAIT状态不适用于整个元组,而仅适用于FTPServer的元组。如果我错了,请纠正我。。。