Well, if you don't want to look into this problem, just say so, I can understand that since I seem to be a quite rare case! But please don't try to shoo me away with statements that are wild guesses and not true
And I don't really understand your argumentation. Even if the "server or firewall" would be dropping the connection without notification, it would do so
only on if
Total Commander is the FTP client, since a simple self-written FTP client does connect to the same servers, transmitting the same files, many dozen times a week, without this problem.
Well, even if you don't want to help me, I decided to spend some more time to maybe able to help you - well, admitted, also to proof you that your "server doesn't notify client" was just an invention to shoo me away

- and monitored two sessions with Wireshark.
This FTP transfer was correct:
Code: Select all
84 19.095963 <client> <server> FTP Request: TYPE I
85 19.130666 <server> <client> FTP Response: 200 Type set to I
86 19.083264 <client> <server> FTP Request: PASV
87 19.161037 <server> <client> FTP Response: 227 Entering Passive Mode (A,B,C,D,210,224).
88 19.140676 <client> <server> FTP Request: STOR testfile1.zip
89 19.158027 <server> <client> FTP Response: 150 Opening BINARY mode data connection for testfile1.zip
90 19.390447 <client> <server> TCP 2893 > ftp [ACK] Seq=260 Ack=1517 Win=65468 [TCP CHECKSUM INCORRECT] Len=0
91 77.676547 <server> <client> FTP Response: 226 Transfer complete
92 77.679617 <client> <server> FTP Request: SIZE testfile1.zip
93 77.697071 <server> <client> FTP Response: 213 2362365
94 77.709969 <client> <server> FTP Request: TYPE A
95 77.739444 <server> <client> FTP Response: 200 Type set to A
96 77.742220 <client> <server> FTP Request: PASV
97 77.758795 <server> <client> FTP Response: 227 Entering Passive Mode (A,B,C,D,232,97).
98 77.816462 <client> <server> FTP Request: LIST
99 77.839387 <server> <client> FTP Response: 150 Opening ASCII mode data connection for file list
100 77.946411 <client> <server> TCP 2893 > ftp [ACK] Seq=308 Ack=1676 Win=65309 [TCP CHECKSUM INCORRECT] Len=0
101 78.005369 <server> <client> FTP Response: 226 Transfer complete
102 78.147183 <client> <server> TCP 2893 > ftp [ACK] Seq=308 Ack=1699 Win=65286 [TCP CHECKSUM INCORRECT] Len=0
And here's one transfer that idled eternally at 100%:
Code: Select all
103 121.559090 <client> <server> FTP Request: TYPE I
104 121.648217 <server> <client> FTP Response: 200 Type set to I
105 121.601392 <client> <server> FTP Request: PASV
106 121.684367 <server> <client> FTP Response: 227 Entering Passive Mode (A,B,C,D,230,230).
107 121.694043 <client> <server> FTP Request: STOR testfile2.exe
108 121.767501 <server> <client> FTP Response: 150 Opening BINARY mode data connection for testfile2.exe
109 121.913376 <client> <server> TCP 2893 > ftp [ACK] Seq=346 Ack=1832 Win=65153 [TCP CHECKSUM INCORRECT] Len=0
110 241.014555 <server> <client> FTP Response: 226 Transfer complete
111 240.963945 <client> <server> TCP 2893 > ftp [RST, ACK] Seq=346 Ack=1855 Win=0 Len=0
As far as I can see that, the client gets notified on
both occassions, at least if I interpret lines 91 and 110 correctly, so the response you renounced is actually there.
Admitted, there seems to be a connection reset (line 111), but that's 1. a reset that gets signaled to the client (so you could actually react to it), and 2. it doesn't affect the transfer, just your following, separate SIZE operation.
Oh, and
btw: even if TC would wait for some socket operation... after half an hour, don't you think it could finally time out? Since there hasn't been ANY further FTP packet in Wireshark since half an hour, nor has the TC display of 100% transfer gone away!
PS #2: the TCP checksum incorrect thing is a Wireshark only thing, not a real problem, in case you haven't read about it yet.