Controlling SO_RCVBUF

Robinson, Herbie Herbie.Robinson at stratus.com
Thu Dec 12 11:00:40 AEDT 2019


I have a customer who is complaining about slow SFTP transfers over a long haul connection.  The current transfer rate is limited by the TCP window size and the RTT.  I looked at HPN-SSH, but that won't work because we don't control what software the peer is using.  I was thinking about coding a much more modest enhancement that just does SO_RCVBUF for specific subsystems.  In the interest of adding something that the OpenSSH community would take back into the source base, what do people think is a better fit in the configuration file?

A single keyword for specifying connection options:

SubsystemOptions <subsystem-name> [command-line-option...]

The subsystem name would be scp, sftp-server, etc.  The command line options would be -r <n> or --rcvbuf <n> to allow one to specify the number passed to SO_RCVBUF.  This would allow one to easily add other options (like SO_SNDBUF support).

An alternative would be to add the following option:

SubsystemRcvbuf <subsystem-name> <n>

This would be much easier to implement, but doesn't allow for more options to be added without another keyword. I guess this is the way I'm leaning, but I can be swayed.



More information about the openssh-unix-dev mailing list