
Wie schneiden FTP, FTPS, SFTP und SCP hinsichtlich der Übertragungsrate ab und wie kann ich sie durch Tests vergleichen?
Antwort1
Wenn Sie ein schnelles Weitverkehrsnetz haben, werden Sie feststellen, dass beide sftp
ungefähr scp
gleich schnell sind, also langsam. Beide leiden unter Leistungsproblemen im zugrunde liegenden OpenSSH. Bei moderner Hardware liegt dies nicht am Verschlüsselungs-Overhead, sondern an Problemen mit der OpenSSH-Implementierung – es implementiert einen eigenen internen Fenstermechanismus, der bei schnellen Verbindungen zusammenbricht.
Diese Probleme treten bei Verbindungen über große Entfernungen (höhere Latenz) deutlicher zutage, aber ich habe sogar in LANs Langsamkeit festgestellt.
Diese sind gut dokumentiert und es stehen Patches zur Verfügung, um das Problem zu beheben. Das Patchen eines der beiden Enden der Verbindung kann hilfreich sein; idealerweise patchen Sie beide Enden. Weitere Informationen und die Patches finden Sie unterLeistungsstarkes SSHim Pittsburgh Supercomputer Center.
Übrigens kann auch der Verschlüsselungs-Overhead ein Problem werden, sobald das Fensterproblem gelöst ist. Die Patches enthalten auch hierfür Korrekturen.
In der Zwischenzeit werden Sie feststellen, dass es ftp
äußerst unsicher ist: Es sendet Passwörter im Klartext.
ftps
Ich denke, das FTP-Protokoll wird in SSL verpackt. Es ist wahrscheinlich schneller als ungepatchtes SFTP/SCP.
Eine letzte Anmerkung: Meiner Erfahrung nach ist der WinSCP-Client (zumindest manchmal) quälend langsam. Ich weiß nicht, warum, aber laut der FAQ bin ich nicht die einzige Person, die dieses Problem hatte. Wenn Sie also von Windows aus scp verwenden und es langsam erscheint, versuchen Sie es mit einem anderen Client. Selbst mit einem ungepatchten OpenSSH-Server können Sie mit einem anderen Client viel, viel mehr erreichen. Ich bin mir leider nicht sicher, welche Clients gut sind, außer vermutlich einfach pscp
von Putty.
Antwort2
Im Allgemeinen weisen alle Protokolle ungefähr die gleiche Leistung auf. Die Einschränkung liegt eher in der Geschwindigkeit Ihres Netzwerks oder Ihrer Festplatte als im Protokoll.
Ältere Versionen von OpenSSH (SFTP/SCP) verwendeten eine feste Fenstergröße, die die Geschwindigkeit über Netzwerke mit hoher Latenz (z. B. transatlantisch) begrenzte. Es gibt einen Patchsatz namens HPN (High Performance Networking), der dieses Problem behebt und in den meisten modernen OpenSSH-Installationen enthalten ist.
Wenn Sie beispielsweise eine Gigabit- oder schnellere LAN-Verbindung und eine langsamere CPU haben, kann es bei SFTP/SCP zu Engpässen kommen. Sie erkennen dies daran, dass der SSH-/SCP-/SFTP-Prozess 100 % der CPU des sendenden oder empfangenden Hostings nutzt. Wenn Sie eine neuere Version von OpenSSH (6.4+) verwenden, können Sie eine Thread-Version der AES-Chiffre aktivieren, die mehr als einen Kern für die Verschlüsselung nutzen kann und weniger wahrscheinlich durch die CPU als durch die Festplatten- oder Netzwerkbandbreite eingeschränkt wird.
Wenn Sie sowohl die Sende- als auch die Empfangsseite steuern, verfügt OpenSSH 6+ auch über einen optionalen „NONECIPHER“-Modus. Dieser verwendet die reguläre Verschlüsselung/Schlüssel usw., um sich beim Remote-Rechner anzumelden, wechselt dann aber zum eigentlichen Kopieren der Dateien zu einer unverschlüsselten Verbindung. Dadurch wird der CPU-Overhead eliminiert. In den NONECIPHER sind Sicherheitsvorkehrungen integriert, die verhindern, dass Sie eine Shell erhalten, die nicht verschlüsselt ist.
Letztendlich sollte das Protokoll nicht die Geschwindigkeitsbeschränkung darstellen, obwohl ältere SSH-Versionen Probleme mit Verbindungen mit hoher Latenz haben.
Antwort3
Basierend auf dem Verschlüsselungsaufwand würde ich sagen, dass einfaches FTP wahrscheinlich eine etwas bessere Leistung als die anderen Protokolle hat, aber das ist wahrscheinlich vernachlässigbar. Ich würde zuerst das Protokoll verwenden, das die von Ihnen benötigte Sicherheit bietet, und mir dann Gedanken über den Durchsatz machen.
Allerdings müssen Sie einen Test einrichten, um die tatsächlichen Zahlen zu ermitteln. Alles oben genannte ist nur meine Meinung. Wenn Sie die Leistung lokal testen, richten Sie einen Server in Ihrem Netzwerk ein. Wenn die Endnutzung über das Internet erfolgt, testen Sie von einem externen Host aus.
Antwort4
Wie immer hat Google die Antworten parat.
FTP vs. SFTP vs. FTPS
Das heißt, FTP > FTPS > SFTP
FTP scheint auch im Test von jemand anderem schneller zu sein als SCP (http://www.lysesoft.com/support/forums/viewtopic.php?f=5&t=542), aber ich würde empfehlen, es selbst auszuprobieren.
Richten Sie also einfach SCP und FTP auf einer beliebigen Box in Ihrem Netzwerk ein, führen Sie dann eine typische Dateiübertragung durch und sehen Sie, wie lange es auf beiden dauert