Hi All,
I'm running a Gentoo system (1.2 GHz, 1 GB RAM) with proftpd (version
1.2.10) as an ftp server. Users can connect to the server and begin to
upload files... however at some point, the upload always stalls.
There's no specific file that always freezes or a certain time/file
size that does it. Most likely, however, the file will always stall at
the very end of the file...
The server is behind a NAT router and I'm using passive transfers. I
configured my proftpd.conf to use ports 60000-65535 for passive
transfers and have directed my router to forward ports 21 and
60000-65535 to the ftp server.
I've used tcpdump to capture packets during one of the "stalls". I
ended up setting Timeout for a stalled upload to 30 seconds for this
test... This is what I see: (Neither am I an expert on TCP/IP
communication... so this may be normal...)
During the upload, before the "stall", I see the remote system send a 2
packets of data and then its immediatly followed by an ACK packet from
my system. This goes on for a while... until about one second before
the start of the stall. I then see a "TCP Previous Segment Lost"
message from the remote system to the server, followed by a series of
seven "TCP Dup ACK" intermixed with different packets being sent from
the remote system.
That finally clears up and it goes back to the "two packets from the
remote system, followed by one sent back from the server" sequence for
another 0.5 seconds... and then after one of the ACK packets sent from
my server to the remote system, it seems as if nothing happens anymore.
Nothing more is transmitted from the remote system. 30 seconds later
(I have the stalled timeout to 30 seconds), my system sends a FIN
packet on both the passive transfer port and port 21... and the
communication is reset.
Does anyone have any suggestions for what may be causing this? If
anyone would like to help, please let me know... I can send you my
tcpdump file if you'd like to look at it.
Thanks in advance!
~Jeff
|