2014-01-08, 13:08
Based on the bug 14038 I started looking into the problem and found a solution which involves changing the used library from libssh to libssh2. Code can be found on my github account with all the ugly intermediate commits: https://github.com/lorem-ipsum/xbmc
First part of the code is a restructuration which doesn't change anything on the old libssh code. Based is the transformation to libssh2.
So far the code is only tested on linux, would be great if some one with a corresponding system could check the code on Windows and OSX.
With that patch set I'm able to get approx 6MB/s over the internet connection, compared to 600KB/s with the previous libssh code
Why libssh2 instead of libssh?
SFTP has the problem of the chunk size being limited to 32KBytes. If only one package is requested at a time and the time to answer is high that limits the bandwith and makes streaming of HD videos impossible (independent of bandwidth). To encounter that problem it's necessary to send oportunistic multiple requests in parallel. This has already been done in libssh2 but not in libssh, thus the change.
libssh2 is BSD licensed and should run under Windows, OSX and Linux
Whats missing?
First part of the code is a restructuration which doesn't change anything on the old libssh code. Based is the transformation to libssh2.
So far the code is only tested on linux, would be great if some one with a corresponding system could check the code on Windows and OSX.
With that patch set I'm able to get approx 6MB/s over the internet connection, compared to 600KB/s with the previous libssh code
Why libssh2 instead of libssh?
SFTP has the problem of the chunk size being limited to 32KBytes. If only one package is requested at a time and the time to answer is high that limits the bandwith and makes streaming of HD videos impossible (independent of bandwidth). To encounter that problem it's necessary to send oportunistic multiple requests in parallel. This has already been done in libssh2 but not in libssh, thus the change.
libssh2 is BSD licensed and should run under Windows, OSX and Linux
Whats missing?
- Agent support is not yet tested
- Check under windows and OSX