
Como FTP, FTPS, SFTP e SCP se comparam em termos de taxa de transferência e como posso compará-los por meio de testes?
Responder1
Se você tiver uma rede de longa distância rápida, descobrirá que sftp
tem scp
aproximadamente a mesma velocidade, o que é lento. Ambos sofrem de problemas de desempenho no openssh subjacente. Com o hardware moderno, isso não se deve à sobrecarga de criptografia, mas sim a problemas com a implementação do openssh - ele implementa seu próprio mecanismo interno de janelas que falha em conexões rápidas.
Esses problemas se tornam mais óbvios em conexões de longa distância (maior latência), mas experimentei lentidão mesmo em LANs.
Eles estão bem documentados e há patches disponíveis para corrigir o problema. Corrigir qualquer extremidade da conexão pode ajudar; idealmente, você consertaria as duas extremidades. Para obter mais informações e os patches, consulteSSH de alto desempenhono Pittsburgh Supercomputer Center.
Aliás, a sobrecarga de criptografia também pode se tornar um problema, uma vez que o problema de janelas seja resolvido. Os patches também têm soluções para isso.
Enquanto isso, você descobrirá que isso ftp
é terrivelmente inseguro; ele envia senhas em texto simples.
ftps
Acho que envolve o protocolo FTP em SSL. provavelmente é mais rápido que SFTP/SCP sem patch.
Uma observação final: na minha experiência, o cliente WinSCP é (pelo menos às vezes) dolorosamente lento. Não sei por que, mas com base nas perguntas frequentes, não sou a única pessoa que teve esse problema. Portanto, se você estiver fazendo scp no Windows e parecer lento, tente um cliente diferente. Mesmo com um servidor openssh sem patch, você pode fazer muito, muito melhor com um cliente diferente. Infelizmente, não tenho certeza de quais são bons clientes, exceto os presumivelmente simples pscp
do Putty.
Responder2
Em geral, todos os protocolos terão o mesmo desempenho. É mais provável que você seja limitado pela velocidade da sua rede ou disco do que pelo protocolo.
Versões mais antigas do OpenSSH (SFTP/SCP) usavam um tamanho de janela fixo que limitaria a velocidade em redes de alta latência (digamos, transatlânticas). Existe um patch definido para corrigir esse problema chamado HPN (rede de alto desempenho) e está incluído na maioria das instalações modernas do OpenSSH.
Se você estiver enfrentando uma situação como um link de LAN gigabit ou mais rápido e uma CPU mais lenta, o SFTP/SCP poderá encontrar um gargalo. Você saberá porque o processo ssh/scp/sftp usará 100% da CPU na hospedagem de envio ou recebimento. Se você estiver usando uma versão mais recente do OpenSSH (6.4+), você pode habilitar uma versão encadeada da cifra AES que será capaz de usar mais de 1 núcleo para lidar com a criptografia e terá menos probabilidade de ser limitada pela CPU em vez do disco ou largura de banda da rede.
Se você controla o lado de envio e recebimento, o OpenSSH 6+ também possui um modo ‘NONECIPHER’ opcional. Isso usa criptografia/chaves regulares, etc., para fazer login na máquina remota, mas depois cai para uma conexão não criptografada para a cópia real do arquivo. Isso removerá a sobrecarga da CPU. Existem proteções incorporadas ao NONECIPHER que impedem que você obtenha um shell que não esteja criptografado.
No final das contas, o protocolo não deve ser uma limitação de velocidade, embora versões mais antigas do ssh tenham problemas com links de alta latência.
Responder3
Com base na sobrecarga de criptografia, eu diria que o FTP simples provavelmente tem um desempenho um pouco melhor que os outros protocolos, mas provavelmente é insignificante. Eu usaria primeiro o protocolo que fornece a segurança necessária e depois me preocuparia com o rendimento.
Dito isto, você terá que fazer um teste para encontrar os números reais. Tudo acima é apenas minha opinião. Se você estiver testando o desempenho localmente, configure um servidor na sua rede. Se o uso final for pela Internet, teste em um host externo.
Responder4
Como sempre, o Google tem as respostas,
FTP x SFTP x FTPS
O que diz FTP > FTPS > SFTP
FTP também parece ser mais rápido que SCP no teste de outra pessoa(http://www.lysesoft.com/support/forums/viewtopic.php?f=5&t=542), mas eu recomendo tentar você mesmo para ver.
Portanto, basta configurar o SCP e o FTP em qualquer caixa aleatória da sua rede, executar uma transferência de arquivos típica e ver quanto tempo leva em ambos.