Differences

This shows you the differences between the selected revisions of the page.

2016-01-21 2016-01-21
keepalives are not always helpful (martin) limit acronym recognition + typo (martin)
Line 24: Line 24:
Some servers (and also firewalls and routers on the way between the client and the server) disconnect clients if they do not receive any data from it within a defined period. In the //Keepalives// box, you may order WinSCP to send some dummy data in regular periods to avoid being disconnected. This period is defined with //Seconds between keepalives//. Some servers (and also firewalls and routers on the way between the client and the server) disconnect clients if they do not receive any data from it within a defined period. In the //Keepalives// box, you may order WinSCP to send some dummy data in regular periods to avoid being disconnected. This period is defined with //Seconds between keepalives//.
-WinSCP implements two methods for keepalives. For SFTP and SCP, the basic option is to send SSH-level keepalives implemented by null SSH packets (SSH ignore messages). Some servers may be configured not to count these packets as data and thus they will still disconnect clients sending them. +WinSCP implements two methods for keepalives. For SFTP and SCP, the basic option is to send SSH-level keepalives implemented by null %%SSH%% packets (%%SSH%% ignore messages). Some servers may be configured not to count these packets as data and thus they will still disconnect clients sending them.
-As an alternative WinSCP can send dummy commands of the transfer protocol instead. For SFTP it is implemented as canonization of path ''/''. For SCP it is implemented as ''echo'' command.((With SCP this keepalive method does not work while WinSCP waits for user prompt in the middle of file transfer.)) For FTP it is the only option and is implemented as randomly selected FTP protocol command with no effect.+As an alternative WinSCP can send dummy commands of the transfer protocol instead. For %%SFTP%% it is implemented as canonization of path ''/''. For %%SCP%% it is implemented as ''echo'' command.((With %%SCP%% this keepalive method does not work while WinSCP waits for user prompt in the middle of file transfer.)) For FTP it is the only option and is implemented as randomly selected %%FTP%% protocol command with no effect.
The option is not available with [[webdav|WebDAV protocol]]. The option is not available with [[webdav|WebDAV protocol]].
-Note that keepalives are not always helpful. They help if you have a firewall which drops your connection after an idle period; but if the network between you and the server suffers from breaks in connectivity then keepalives can actually make things worse. If a session is idle, and connectivity is temporarily lost between the endpoints, but the connectivity is restored before either side tries to send anything, then there will be no problem - neither endpoint will notice that anything was wrong. However, if one side does send something during the break, it will repeatedly try to re-send, and eventually give up and abandon the connection. Then when connectivity is restored, the other side will find that the first side doesn't believe there is an open connection any more. Keepalives can make this sort of problem worse, because they increase the probability that WinSCO will attempt to send data during a break in connectivity. (Other types of periodic network activity can cause this behaviour; in particular, [[ui_login_kex|SSH-2 re-keys]] can have this effect.)+Note that keepalives are not always helpful. They help if you have a firewall which drops your connection after an idle period; but if the network between you and the server suffers from breaks in connectivity then keepalives can actually make things worse. If a session is idle, and connectivity is temporarily lost between the endpoints, but the connectivity is restored before either side tries to send anything, then there will be no problem - neither endpoint will notice that anything was wrong. However, if one side does send something during the break, it will repeatedly try to re-send, and eventually give up and abandon the connection. Then when connectivity is restored, the other side will find that the first side doesn't believe there is an open connection any more. Keepalives can make this sort of problem worse, because they increase the probability that WinSCP will attempt to send data during a break in connectivity. (Other types of periodic network activity can cause this behaviour; in particular, [[ui_login_kex|SSH-2 re-keys]] can have this effect.)
Therefore, you might find that keepalives help connection loss, or you might find they make it worse, depending on what kind of network problems you have between you and the server.((&puttydoccite)) Therefore, you might find that keepalives help connection loss, or you might find they make it worse, depending on what kind of network problems you have between you and the server.((&puttydoccite))

Last modified: by martin