choeppner has asked for the wisdom of the Perl Monks concerning the following question:

Oh Wise Monks,

I have a functioning application and am having intermittent trouble with NET::FTP. The application logs into the FTP server, changes to a directory, gets the directory listing, and then downloads the files in that directory.

‘Sometimes’ along the way the FTP session will fail. The application can deal with the session getting terminated, the user runs the application again and gets what they want. The sometimes has become ‘fairly frequent’ now, and the end user has complained enough for me to get network capture logs to troubleshoot the issue.

What I see is the sequence numbers are getting off by one. In one case the SEQ number from the client side jumped back by one. In another case the SEQ number from the client side skipped ahead by one.

I am using the following lib versions as reported by the debug mode of the NET::FTP. This is running under “perl v5.6.1 built for MSWin32-x86-multi-thread.” All of this is running on Windows NT4 with SP6.

Net::FTP: Net::FTP(2.33) Net::FTP: Exporter(5.562) Net::FTP: Net::Cmd(2.11) Net::FTP: IO::Socket::INET(1.25) Net::FTP: IO::Socket(1.26) Net::FTP: IO::Handle(1.21)

Has anyone run into this type of trouble before? Am I at the beginning of a bug hunt in the IO::Socket or IO::Socket::INET modules? The FTP server is across the users WAN and makes multiple router hops and uses NAT routing at the end closest to the client. I have read about possible NAT servers causing trouble but can’t find anything more that just rumor/speculation.

Thanks in advance for your advice.

(The quiet Monk)