Hello,

Maybe you can explain though, what's the 5 minute interval have to do w/the issue? The file is relatively small, only 1600 records (lrecl of 200) so the ftp "get" s/complete in a minute or 2.
I would never have suspected TCP keep-alives as the problem.  Here are my 
thoughts on the subject of keep-alives:
a) TCP Keep alives (the value you set with CHGTCPA) is DISABLED by 
default. What I mean by that is that if you create a TCP socket, it will 
not use keep-alives.  In order to use them, you have to deliberately turn 
them on by calling the setsockopt() API and setting on the SO_KEEPALIVE 
option. ( IBM may have done this in the FTP client, I wouldn't know, I
don't have the source code! )

b) Keep alives are not an "official" part of the TCP standard (though, they are a de-fecto standard since virtually every platform has them). They are normally only used in server applications, so that an unattended program, like a server daemon, can detect that a line has been dropped. It'd be weird for a client program (like IBM's FTP client) to have them turned on.
c) Keep alives are controversial.  Some people like them because they let 
you detect when a connection has been cut.  Some people hate them because 
they waste bandwidth and are really unnecessary.  In what protocol do you 
need to know that the connection was cut?  Normally you'll have periodic 
activity in a protocol.  When you have something that can be idle for a 
long time (such as a telnet session, or FTP control session) the protocol 
has it's own internal means of detecting a non-responsive connection.
e) Keep-alives aren't separate packets that can be blocked independently. 
They are part of the stream.  They're just packets with a zero data 
length.  If you block them, you'll mess up the TCP stream, and probably 
cause the whole session to collapse.

Most often when I see people talking about TCP keep-alives. they're confusing them with other keep-alive values (the AYT keepalives used in telnet, or the FTP inactivity timeout) Even on server applications, people are usually encouraged to write their own timeout function instead of using keepalives.


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact copyright@midrange.com.

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.