SFTPスピードに影響を与えるいくつかの要因があります。SSHバッファサイズ、SFTPバッファサイズ、パイプラインの長さ(暗号化アルゴリズムは、別のものである)これらの要因の一つです。もう一つの要因は言語です。最適化されたC ++コードは常にC#のコードよりも高速になります。あなたはFileZillaのと同等の速度を実現することができながら、だから、あなたはそれらを一致させることはほとんどありません。
また、あなたは(それらの多くは、市場にある)代替SFTPのコンポーネントをチェックしましたか?
:あなたは、より大きな最大TCPウィンドウサイズが必要な場合がありHTTP://msdn.microsoft.com/en-us/library/ms819736.aspxを
その機能を制御するための.NETます Socket.SetSocketOption(SocketOptionName.ReceiveBuffer)
私は、これは、超古いです知っているが、それまで誰も明確な答え。あなたがネットワークのパフォーマンスを持っている場合は、チルカットは増加SoRcvBufとSoSndBufサイズを提案しました。私は私の問題を解決し、あなたとまったく同じ問題に会いました。
公共int型SoSndBuf {取得; 组。 }
送信バッファサイズのソケットオプションを設定します。一般的には、このプロパティは変更しないままにしてください。デフォルト値は、0ではない表される明示的(すなわち、システムのデフォルト値が使用されなければならない、システム間で変化してもよい)、送信バッファサイズのソケットオプションを設定します。
アップロードのパフォーマンスが遅いと思われる場合は、このプロパティを変更することができます。これは、4096の倍数をお勧めします。現在のシステムのデフォルトの送信バッファサイズを表示するには、任意のメソッド呼び出しの確立後LastErrorTextプロパティを確認してください。それは「SO_SNDBUF」タイトルの下に報告されるべきです。パフォーマンスを向上させるために、2、3または4回のデフォルト値として設定してみてください。
https://stackoverflow.com/questions/6631522/sftp-ssh2-download-rate-c