goodie
|
Posted: Wed May 13, 2020 18:32 Post subject: Передача данных через ssh |
|
|
Добрый день.
Появился вопрос по скорости передачи через соединение SSH.
Исходные данные: для тестов выделены 2 ПК с ОС Windows. 1 ПК в родной сети с сервером назначения (скорость 1 gbps), 2 ПК мой домашний ПК (300 mbps).
Передача осуществлялась через Total Commander с стандартным плагином Ghisler, а также Putty. Результаты одинаковые на обоих ПК и обоих программах.
Передавались данные на сервера hetzner'а и ovh (ОС Centos 7). Назовём их просто "Сервер назначения", так как скорости идентичные.
Во всех случаях исходящая скорость Windows -> Сервер назначения составляла примерно 500КБайт/с в TC.
Во всех случаях исходящая скорость Windows -> Сервер назначения составляла примерно 500КБайт/с в программе pscp.exe (передача файлов инструментом Putty)
Во всех случаях исходящая скорость Windows -> Сервер назначения составляла примерно 30-50МБайт/с в программе FileZilla (дефолтные настройки).
Во всех случаях исходящая скорость Windows -> Сервер назначения составляла примерно 10-20МБайт/с в программе WinSCP(дефолтные настройки).
Во всех случаях исходящая скорость Linux(виртуалка) -> Сервер назначения составляла примерно 30МБайт/с с помощью команды scp.
Исходя из той информации, что я нашел, TC & Putty используют библиотеку libssh2, которая при передачи данных на каждый блок данных ждёт ответа от сервера об успешном получении этого блока и только тогда продолжает передачу. Из-за этого такое поразительное различие в скоростях. В программах FileZilla & WinSCP каким то образом эту проблему решили...
Но хотелось бы узнать мнение экспертов: в чем подвох? Почему такие отличия в скоростях передачи данных? И самое важное, какие есть варианты решения данной проблемы? Потому что загружать большие файлы со скоростью 500 КБайт/с (особенно через гигабитный канал) очень сложно. |
|