People using the HPN patch...

Damien Miller djm at
Sat Jul 30 11:40:42 EST 2005

Chris Rapier wrote:
> Thanks for the clue. Increasing the number of requests seemed to do the trick. 
> Changing the buffer size also had an impact but not as much (100% increase as 
> opposed to 400% increase by setting R to 64). Now the big question is, what is 
> a request in this context? Are you using them like ACKs to do congestion control?

When uploading or downloading a file, the client sends num_requests (-R)
of buffer_size (-B) bytes before waiting for acknowledgement so as not
to stall. In this context, a request is a draft-ietf-secsh-filexfer-03
command to read or write a range of bytes to/from a file.

The default num_requests is 16, which is big enough for smaller BDP
pipes but obviously not sufficient for larger ones. It could probably be
tuned higher without much cost.

As you have already observed, sftp only maintains a window of requests
when actually uploading or downloading a file - it doesn't do when
fetching directory contents or for successive transfers. Adding it to
sftp-client.c:do_lsreaddir() would be pretty easy, but doing it right
for multiple transfers would be a bit more tricky.


More information about the openssh-unix-dev mailing list