Як порівняти FTP, FTPS, SFTP та SCP за швидкістю передачі та як я можу порівняти їх шляхом тестування?
Як порівняти FTP, FTPS, SFTP та SCP за швидкістю передачі та як я можу порівняти їх шляхом тестування?
Відповіді:
Якщо у вас є мережа швидко широкої області ви побачите , що sftpі scpприблизно з тією ж швидкістю, що повільно. Вони обидва страждають від продуктивних проблем у нижньому просторі. З сучасним обладнанням це відбувається не через шифрування накладних витрат, а скоріше через проблеми з реалізацією opensh - воно реалізує власний внутрішній механізм вікон, який руйнується при швидких з'єднаннях.
Ці проблеми стають більш очевидними на міжміських (більших затримках) з'єднаннях, але я відчував повільність навіть у локальних мережах.
Вони добре задокументовані, і для виправлення проблеми доступні патчі. Виправлення будь-якого кінця з'єднання може допомогти; в ідеалі ви б заклеїти обидва кінці. Для отримання додаткової інформації та виправлень див. Високоефективний SSH у центрі суперкомп'ютерів Пітсбурга.
BTW, накладні шифрування також можуть стати проблемою, як тільки проблема вікна буде вирішена. Патчі також мають виправлення для цього.
Тим часом ви виявите, що ftpце страшенно небезпечно; він надсилає паролі в простому тексті.
ftpsЯ думаю, що загортає ftp-протокол у SSL. це, мабуть, швидше, ніж непатронний SFTP / SCP
Останнє зауваження: з мого досвіду, клієнт WinSCP болісно повільний (принаймні іноді). Я не знаю чому, але, виходячи з їхніх питань, я не єдина людина, яка мала цю проблему. Тож якщо ви скапуєте з Windows, і це здається повільним, спробуйте іншого клієнта. Навіть з незапакованим сервером opensh ви можете зробити багато, набагато краще з іншим клієнтом. На жаль, я не впевнений, які хороші клієнти.
Загалом усі протоколи будуть виконувати приблизно однаково. Ви швидше обмежені швидкістю вашої мережі чи диска, ніж протоколом.
Старіші версії OpenSSH (SFTP / SCP) використовували фіксований розмір вікна, який обмежуватиме швидкість руху в мережах з високою затримкою (скажімо, трансатлантичні). Існує набір патчів для виправлення цієї проблеми під назвою HPN (Високопродуктивна мережа) і вона включена в більшість сучасних установок OpenSSH.
Якщо ви стикаєтеся з такою ситуацією, як гігабітна або швидша мережа локальної мережі та більш повільний процесор, то SFTP / SCP може зіткнутися з вузьким місцем. Ви зможете сказати, оскільки процес ssh / scp / sftp буде використовувати 100% процесора для хостингу для надсилання або отримання. Якщо ви використовуєте більш нову версію OpenSSH (6.4+), ви можете ввімкнути потокову версію шифра AES, яка зможе використовувати більше 1 ядра для обробки шифрування і менше шансів обмежуватись процесором, а не диском або пропускну здатність мережі.
Якщо ви керуєте як стороною, що надсилає, так і отримує, OpenSSH 6+ також має додатковий режим "NONECIPHER". При цьому використовується звичайне шифрування / ключі тощо для входу на віддалену машину, але потім переходить до незашифрованого з'єднання для фактичного копіювання файлу. Це видалить цей центральний процесор. Є вбудовані засоби захисту, які не дозволяють вам отримати оболонку, яка не зашифрована.
Зрештою, протокол не повинен бути обмеженням швидкості, хоча старіші версії ssh мають проблеми з високими затримками.
Грунтуючись на шифруванні, я б сказав, що звичайний FTP, мабуть, має дещо кращу продуктивність, ніж інші протоколи, але це, мабуть, незначно. Я б використовував протокол, який забезпечує безпеку, яка вам спочатку потрібна, а потім переживайте про пропускну здатність.
Зважаючи на це, вам доведеться встановити тест, щоб знайти реальні числа. Все вище - це лише моя думка. Якщо ви тестуєте продуктивність локально, налаштуйте сервер у своїй мережі. Якщо кінцеве використання буде через Інтернет, перевірте зовнішній хост.
Як завжди, Google тримає відповіді,
FTP v / s SFTP v / s FTPS
Що говорить FTP> FTPS> SFTP
FTP також виявляється швидшим, ніж SCP в чужому тесті ( http://www.lysesoft.com/support/forums /viewtopic.php?f=5&t=542 ), але рекомендую спробувати його самі.
Тому просто встановіть SCP і FTP на будь-який випадковий вікні вашої мережі, а потім запустіть типову передачу файлів і подивіться, скільки часу потрібно на обидва