Come si confrontano FTP, FTPS, SFTP e SCP in termini di velocità di trasferimento e come posso confrontarli attraverso i test?
Come si confrontano FTP, FTPS, SFTP e SCP in termini di velocità di trasferimento e come posso confrontarli attraverso i test?
Risposte:
Se disponi di una rete WAN veloce, la troverai sftp
e avrai scp
la stessa velocità, che è lenta. Entrambi soffrono di problemi di prestazioni nell'opensh sottostante. Con l'hardware moderno, ciò non è dovuto al sovraccarico di crittografia, ma piuttosto a problemi con l'implementazione di openssh: implementa il proprio meccanismo di finestre interne che si interrompe su connessioni veloci.
Questi problemi diventano più evidenti sulle connessioni a lunga distanza (latenza più elevata), ma ho riscontrato lentezza anche sulle LAN.
Questi sono ben documentati e sono disponibili patch per risolvere il problema. L'applicazione di patch a entrambe le estremità della connessione può essere d'aiuto; idealmente dovresti patchare entrambe le estremità. Per ulteriori informazioni e patch, vedere SSH ad alte prestazioni presso il Pittsburgh Supercomputer Center.
A proposito, anche l'overhead della crittografia può diventare un problema, una volta risolto il problema della finestra. Le patch hanno anche delle correzioni.
Nel frattempo, scoprirai che ftp
è terribilmente insicuro; invia password in chiaro.
ftps
Penso che avvolga il protocollo ftp in SSL. è probabilmente più veloce di SFTP / SCP senza patch.
Un'ultima nota: nella mia esperienza, il client WinSCP è (almeno qualche volta) dolorosamente lento. Non so perché, ma in base alle loro FAQ non sono l'unica persona che ha avuto questo problema. Quindi, se stai eseguendo scp da Windows, e sembra lento, prova un client diverso. Anche con un server openssh senza patch, puoi fare molto, molto meglio con un client diverso. Purtroppo non sono sicuro di quali siano i buoni clienti.
In generale tutti i protocolli funzioneranno allo stesso modo. È più probabile che tu sia limitato dalla velocità della tua rete o del tuo disco che dal protocollo.
Le versioni precedenti di OpenSSH (SFTP / SCP) utilizzavano una dimensione della finestra fissa che limiterà la velocità su reti ad alta latenza (diciamo transatlantico). Esiste un set di patch per risolvere questo problema chiamato HPN (rete ad alte prestazioni) ed è incluso nella maggior parte delle installazioni moderne di OpenSSH.
Se ti trovi in una situazione come un gigabit o un collegamento LAN più veloce e una CPU più lenta, SFTP / SCP potrebbe incorrere in un collo di bottiglia. Sarai in grado di dirlo perché il processo ssh / scp / sftp utilizzerà il 100% della CPU sull'hosting di invio o ricezione. Se si utilizza una versione più recente di OpenSSH (6.4+), è possibile abilitare una versione thread della crittografia AES che sarà in grado di utilizzare più di 1 core per gestire la crittografia e avrà meno probabilità di essere limitata dalla CPU anziché dal disco o larghezza di banda della rete.
Se controlli sia il lato di invio che quello di ricezione, OpenSSH 6+ ha anche una modalità 'NONECIPHER' opzionale. Questo utilizza la normale crittografia / chiavi ecc. Per accedere al computer remoto, ma poi passa a una connessione non crittografata per la copia dei file effettiva. Questo rimuoverà quel sovraccarico della CPU. Esistono salvaguardie integrate in NONECIPHER che impediscono di ottenere una shell non crittografata.
Alla fine il protocollo non dovrebbe essere la limitazione della velocità, sebbene le versioni precedenti di ssh abbiano problemi con i collegamenti ad alta latenza.
In base al sovraccarico della crittografia, direi che l'FTP normale ha probabilmente prestazioni leggermente migliori rispetto agli altri protocolli, ma è probabilmente trascurabile. Utilizzerei il protocollo che fornisce prima la sicurezza di cui hai bisogno, quindi mi preoccupo della velocità effettiva.
Detto questo, dovrai impostare un test per trovare i numeri reali. Tutto sopra è solo la mia opinione. Se stai testando le prestazioni localmente, configura un server sulla tua rete. Se l'uso finale sarà su Internet, testare da un host esterno.
Come sempre, Google ha le risposte,
FTP v / s SFTP v / s FTPS
Che dice che FTP> FTPS> SFTP
FTP sembra essere più veloce di SCP nel test di qualcun altro ( http://www.lysesoft.com/support/forums /viewtopic.php?f=5&t=542 ) ma ti consiglio di provarlo tu stesso per vederlo.
Quindi basta impostare SCP e FTP su qualsiasi casella casuale sulla rete, quindi eseguire un tipico trasferimento di file e vedere quanto tempo impiega entrambi