Protocolo de transferência de arquivos (códigos de sessão de comandos) (2023)

FTP é um protocolo de comunicação para transferir arquivos entre diferentes sistemas de computador. A transmissão ocorre de acordo com o princípio cliente-servidor. Um servidor FTP disponibiliza arquivos para o cliente FTP. O cliente FTP pode armazenar, excluir ou baixar arquivos no servidor FTP. Trabalhar com um cliente FTP confortável é semelhante a trabalhar com um gerenciador de arquivos.

O FTP existe desde 1971, tornando-o o protocolo mais antigo e robusto da Internet. Praticamente nada mudou nos mecanismos de transmissão desde 1985.

O protocolo de transferência de arquivos (FTP) no modelo em camadas

camada Serviços/Protocolos/Aplicativos
Aplicativo FTP HTTP DNS SNMP
Transporte TCP UDP
Internet IP (IPv4/IPv6)
acesso à rede Ethernet, ...

Como funciona o FTP?

Protocolo de transferência de arquivos (códigos de sessão de comandos) (1)
A comunicação ocorre de acordo com o princípio cliente-servidor. O FTP cria duas conexões lógicas entre cliente e servidor. Uma conexão é o canal de controle (canal de comando) via porta TCP 21. Este canal é utilizado exclusivamente para a transmissão de comandos FTP e suas respostas. A segunda conexão é o canal de dados via porta TCP 20. Este canal é utilizado exclusivamente para transmissão de dados. Cliente e servidor trocam comandos através do canal de controle, que iniciam e finalizam a transmissão de dados através do canal de dados.

O estabelecimento da conexão FTP permite que o canal de controle seja estabelecido do cliente FTP para o servidor FTP. Se o canal de controle for estabelecido, o canal de dados é iniciado do servidor FTP para o cliente FTP (FTP ativo). Se o cliente FTP estiver atrás de um roteador NAT ou firewall e tiver apenas um endereço IPv4 privado ao mesmo tempo, a conexão não será estabelecida. A solicitação de conexão do servidor para o cliente é bloqueada pelo firewall ou roteador ou não pode ser roteada devido ao endereço IPv4 privado. Neste caso, existe o FTP passivo, no qual o cliente também inicia o canal de dados.

Modo ativo FTP / Ativos FTP

Protocolo de transferência de arquivos (códigos de sessão de comandos) (2)
O cliente FTP entra em contato com o servidor FTP na porta 21 (comando) e transmite o número da porta com a qual o servidor pode estabelecer a conexão de dados (dados). O servidor FTP entra em contato com o cliente FTP nesta porta. A conexão FTP é estabelecida.

Modo FTP Passivo / FTP Passivo

Protocolo de transferência de arquivos (códigos de sessão de comandos) (3)
Se um cliente FTP estiver atrás de um roteador NAT (com endereço IPv4 privado) ou atrás de um firewall, a conexão de dados (dados) iniciada pelo servidor FTP não será estabelecida. O firewall impede todas as conexões ativas iniciadas externamente. Por esta razão, o modo passivo foi introduzido. Isso significa que os clientes FTP protegidos por um firewall também podem estabelecer conexões FTP.
Após a conexão ter sido estabelecida na porta 21 do servidor, o cliente FTP recebe do servidor um número de porta na qual a conexão de dados pode ser estabelecida. O cliente FTP então contata o servidor nesta porta. Como o cliente inicia a conexão, o firewall não impede mais essa conexão. A porta 20 do servidor FTP não é então usada no modo passivo.

Vídeo: Explicação do FTP ativo e passivo

Conexão FTP

No início de cada conexão FTP está a autenticação do usuário. Depois disso, o canal de controle é estabelecido pela porta 21 e o canal de dados pela porta 20. Quando as transferências de arquivos são concluídas, as conexões são encerradas pelo usuário ou pelo servidor (timeout).

O protocolo FTP conhece dois modos de transmissão diferentes. Modo ASCII e modo binário. Os dois modos diferem no tipo de codificação. O modo ASCII é usado para transferir arquivos de texto simples. A estrutura das linhas do texto deve ser recodificada aqui. Durante este processo, o conjunto de caracteres deste arquivo é adaptado ao sistema de destino. O modo binário transfere os arquivos byte por byte sem alterar os dados. Este modo é usado com mais frequência. De preferência, claro, para arquivos binários.

O FTP deixa a verificação de erros durante a transmissão de dados inteiramente para o protocolo TCP. Se a conexão for abortada, a especificação FTP prevê a retomada das transferências interrompidas. Os cabeçalhos dos pacotes de dados individuais contêm marcadores de reinicialização. Quando o cliente FTP tenta retomar a transmissão, o cliente e o servidor correspondem aos marcadores. Então a transmissão será retomada.

Uma característica especial do FTP é o acesso gratuito para todos os visitantes: FTP anônimo. Como o protocolo FTP funciona orientado ao login, o visitante pode inserir “anônimo” como nome de usuário e escolher livremente uma senha. É uma boa educação usar um endereço de e-mail válido (não recomendado).
Após o registro bem-sucedido, o visitante pode circular livremente na estrutura de diretórios. Via de regra, não é possível excluir arquivos. Os arquivos só podem ser carregados através de um diretório especial que está sempre vazio para visitantes. O download é possível a qualquer momento nos demais diretórios.

Comandos FTP

Existem comandos FTP para enviar, receber, excluir e renomear arquivos, configurar, excluir e alterar diretórios.
A comunicação entre o cliente FTP e o servidor FTP ocorre como uma troca de comandos baseados em texto. Na sua forma mais simples, o cliente FTP é um programa terminal que o usuário utiliza para se comunicar com o servidor. Enquanto isso, são utilizados programas que oferecem mais comodidade, semelhante a um gerenciador de arquivos. Por exemplo, a distinção entre arquivos de texto e arquivos binários. Existem dois modos de transmissão diferentes que devem ser iniciados antes da transmissão. Bons clientes FTP reconhecem o tipo de arquivo com base na extensão do arquivo e iniciam automaticamente o modo de transferência correto.

Comando Descrição
ABOR Cancelar comando anterior
CONTA Identificação do usuário
TODOS Solicitar memória para a seguinte operação
APPE Anexar dados recebidos a um arquivo existente
CDUP Mudar para o diretório pai
CWD Alterando o diretório de trabalho
DELE excluir arquivo
AJUDA informações de ajuda de saída
LISTA Lista de diretórios de transferência
MKD Criar diretório
MODO Definir modo de transferência
NLST Transferir conteúdo do diretório
NÃO Sem cirurgia
PASSAR senha do usuário
PASV Solicite conexão FTP passiva.
PORTA Endereço da porta
PCD Retornar o diretório atual
DESISTIR conexão final
RÉDEA Desconecte e reinicie
DESCANSAR Reiniciar transferência
RETR Copiar arquivo do servidor
RMD Excluir diretório
RNFR Nome antigo do arquivo a ser renomeado
RNTO Novo nome para o arquivo a ser renomeado
SITE fornece informações específicas do servidor
SMNT montar um sistema de arquivos
ESTADO status de retorno
GRANDE Copiar arquivo para servidor
STOU Copie o arquivo para o servidor com um nome diferente
STRU estrutura de arquivo
SISTEMA Determinar o sistema operacional
TIPO tipo de dados
DO UTILIZADOR Nome de usuário

Códigos de status FTP

Cada comando enviado pelo cliente FTP leva a uma resposta do servidor FTP na forma de um código de status e uma mensagem em texto simples.
O código de status é um número de 3 dígitos que contém informações para o cliente FTP sobre a disponibilidade dos dados solicitados. Por exemplo, uma mensagem de erro é transmitida através do código de status.
Os códigos de status são divididos em 5 grupos que fazem uma declaração básica sobre a resposta HTTP.

Códigos de status Descrição
100-199 Os códigos de status desta área indicam a execução bem-sucedida do comando. Entretanto, o servidor espera que o cliente continue com outro comando.
200-299 Os códigos de status desta área indicam a execução bem-sucedida do comando.
300-399 Os códigos de status desta área indicam a execução bem-sucedida do comando. O servidor espera mais informações para posterior execução a fim de concluir o processamento.
400-499 Os códigos de status desta área indicam que o comando não foi executado. Mas é um problema temporário. Se o comando for executado novamente, o processamento poderá ser concluído com sucesso.
500-599 Os códigos de status desta área indicam que o comando não foi executado. Executá-lo novamente resultaria na mesma mensagem de erro.
Código de status Mensagem em inglês Mensagem em alemão
110 Reiniciar resposta do marcador Sinalizar para retomar a transmissão
120 Serviço pronto em x minutos O serviço estará disponível em x minutos
125 Conexão de dados já aberta; início da transferência A conexão de dados já existe; iniciar a transferência
150 Status do arquivo ok; prestes a abrir a conexão de dados Status do arquivo OK; A conexão de dados foi estabelecida
200 Comando ok Comando OK
202 Comando não implementado Comando não implementado
211 Resposta para status do sistema ou função de ajuda do sistema
212 status do diretório
213 status do arquivo
214 Mensagem da função de ajuda
215 Tipo de sistema NAME Especificação do tipo de sistema
220 Serviço pronto para novo usuário Serviço pronto para novo usuário
221 Conexão de controle de fechamento de serviço A conexão de controle do serviço está desconectada; O usuário está desconectado
225 Conexão de dados aberta; nenhuma transferência em andamento conexão de dados estabelecida; atualmente sem transmissão
226 Fechando conexão de dados. Ação de arquivo solicitada bem-sucedida A conexão de dados está desconectada
227 Entrando no modo passivo Modo passivo ativado
230 Usuário logado, prosseguir Usuário logado, continue
250 Ação de arquivo solicitada correta, concluída Operação solicitada OK, concluída
257 "PATH" criado "PATH" foi criado
331 Nome de usuário ok, preciso de senha Nome de usuário OK, senha necessária
332 Precisa de conta para login Conta de usuário necessária para fazer login
350 Ação de arquivo solicitada aguardando mais informações Mais informações necessárias para operação de arquivo
421 Serviço não disponível, fechando conexão de controle Serviço não disponível, conexão de controle será fechada
425 Não é possível abrir a conexão de dados A conexão de dados não pode ser estabelecida
426 Conexão fechada; transferência abortada Conexão perdida; transmissão abortada
450 A ação do arquivo solicitado não foi executada; Arquivo indisponível A operação do arquivo solicitado falhou; arquivo não disponível
451 Ação solicitada abortada: erro local no processamento Operação solicitada abortada: processamento de erro local
452 Ação solicitada não executada; Espaço de armazenamento insuficiente no sistema Operação solicitada não executada; Espaço em disco insuficiente no sistema
500 Erro de sintaxe Comando não reconhecido
501 Erro de sintaxe em parâmetros ou argumentos Erro de sintaxe nos parâmetros
502 Comando não implementado Comando não implementado
503 Sequência de comandos incorreta Sequência de comando inválida
504 Comando não implementado para esse parâmetro Comando não implementado para este parâmetro
530 Não logado Não logado
532 Precisa de conta para armazenar arquivos Login necessário para salvar arquivos
550 A ação do arquivo solicitado não foi executada; Arquivo indisponível A operação do arquivo solicitado falhou; arquivo não disponível
551 Ação solicitada anulada: tipo de página desconhecido Operação solicitada abortada: tipo de página desconhecido
552 Ação de arquivo solicitada anulada: alocação de armazenamento excedida Operação de arquivo solicitada abortada: espaço insuficiente no diretório ou registro atual
553 Ação solicitada não executada: nome de arquivo não permitido Operação solicitada não executada: nome de arquivo inválido

Exemplo de uma sessão FTP

1: ~ Verbinde... 2: ~ Verbunden mit 212.227.84.222, warte auf Antwort... 3: < 220 FTP Server ready. 4: > USUÁRIO beispiel 5: < 331 Senha necessária para beispiel. 6: > PASS ******** 7: < 230 Usuário beispiel logado. 8: > REST 1 9: < 350 Reiniciando em 1. Envie STORE ou RETRIEVE para iniciar a transferência10: > REST 011: < 350 Reiniciando em 0. Envie STORE ou RETRIEVE para iniciar a transferência12: > SYST13: < 215 UNIX Type: L814: > PWD15: < 257 "/" é o diretório atual.16: ~ Login erfolgreich.17: > PORT 192,168,168,12,4,18218: < 200 Comando PORT bem-sucedido19: > TYPE A20: < 200 Tipo definido como A21: > LIST22: < 150 Abrindo conexão de dados no modo ASCII para arquivo list23: < 226 Transferência concluída.24: > Sites CWD25: < 250 Comando CWD bem-sucedido.26: > PWD27: < 257 "/sites" é o diretório atual.28: > PORT 192,168,168,12,4,18329: < 200 Comando PORT bem-sucedido30: > TYPE A31: < 200 Tipo definido como A32: > LIST33: < 150 Abrindo modo ASCII conexão de dados para lista de arquivos34: < 226 Transferência concluída.35: ~ Verbindung getrennt

Análise da sessão FTP

A análise refere-se à sessão FTP mostrada acima. A gravação representa o processo de login e mudança para um subdiretório. O usuário então efetua logout novamente.

  1. Mensagem de conexão do cliente FTP.
  2. Mensagem de conexão do cliente FTP.
  3. O servidor FTP informa com o código de status 220 que a conexão FTP foi estabelecida.
  4. O cliente FTP informa ao servidor FTP qual usuário deseja efetuar login.
  5. O servidor FTP solicita a senha deste usuário.
  6. O cliente FTP envia a senha para o servidor FTP.
  7. Se a senha estiver correta, o servidor FTP notifica o cliente que o login ocorreu (código de status 230).
  8. O cliente FTP informa ao servidor FTP para reiniciar a transferência de dados.
  9. O servidor FTP retorna o código de status 350 e espera mais informações sobre a execução do comando.
  10. O cliente FTP informa ao servidor FTP para reiniciar a transferência de dados.
  11. O servidor FTP retorna o código de status 350 e espera mais informações sobre a execução do comando.
  12. Com o comando SYST, o cliente FTP solicita o sistema operacional no qual o servidor FTP está sendo executado.
  13. O servidor FTP reporta ao sistema operacional (código de status 215). Neste caso é um sistema operacional UNIX.
  14. Com o comando PWD, o cliente FTP solicita o diretório atual.
  15. O servidor FTP informa o diretório atual (código de status 257). Neste caso é "/".
  16. Mensagem de conexão do cliente FTP informando que o login foi bem-sucedido.
  17. Com o comando PORT, o cliente informa ao servidor que deseja usar a segunda porta para o canal de dados.
  18. O servidor FTP relata a execução bem-sucedida do comando (código de status 200).
  19. Com o comando TYPE A, o cliente FTP configura a transferência de dados subsequente para o modo ASCII.
  20. O servidor FTP relata sucesso (código de status 200).
  21. O cliente FTP usa o comando LIST para solicitar a lista de diretórios atual.
  22. O servidor FTP informa o início da transferência de dados (código de status 150).
  23. O servidor FTP informa o término bem-sucedido da transferência de dados (código de status 226).
  24. Com o comando CWD, o cliente FTP muda para o diretório “sites”.
  25. O servidor FTP relata sucesso (código de status 250).
  26. Com o comando PWD, o cliente FTP solicita o diretório atual.
  27. O servidor FTP informa o diretório atual (código de status 257). Neste caso é "/".
  28. Com o comando PORT, o cliente informa ao servidor que deseja usar a segunda porta para o canal de dados.
  29. O servidor FTP relata a execução bem-sucedida do comando (código de status 200).
  30. Com o comando TYPE A, o cliente FTP configura a transferência de dados subsequente para o modo ASCII.
  31. O servidor FTP relata sucesso (código de status 200).
  32. O cliente FTP usa o comando LIST para solicitar a lista de diretórios atual.
  33. O servidor FTP informa o início da transferência de dados (código de status 150).
  34. O servidor FTP informa o término bem-sucedido da transferência de dados (código de status 226).
  35. Mensagem de conexão do cliente FTP informando que a conexão será encerrada.

Mais tópicos relacionados:

  • TFTP - Protocolo Triviale de Transferência de Arquivos
  • HTTP - Protocolo de transferência de hipertexto
  • WebDAV
  • TCP/IP
  • URL - Localizador Uniforme de Recursos

Dividir

    Cartilha sobre tecnologia de rede

    Tudo o que você precisa saber sobre redes.

    O Network Technology Primer é um livro sobre os fundamentos da tecnologia de rede, tecnologia de transmissão, TCP/IP, serviços, aplicações e segurança de rede.

    Eu quero aquilo!

    Cartilha sobre tecnologia de rede

    Tudo o que você precisa saber sobre redes.

    O Network Technology Primer é um livro sobre os fundamentos da tecnologia de rede, tecnologia de transmissão, TCP/IP, serviços, aplicações e segurança de rede.

    Eu quero aquilo!

    Tudo o que você precisa saber sobre tecnologia de comunicação.

    Cartilha de tecnologia de comunicação

    A cartilha de tecnologia de comunicações é um livro sobre noções básicas de tecnologia de comunicações, tecnologia de transmissão, redes, tecnologia de rádio, comunicações móveis, tecnologia de banda larga e voz sobre IP.

    Eu quero aquilo!

    References

    Top Articles
    Latest Posts
    Article information

    Author: Tish Haag

    Last Updated: 05/09/2023

    Views: 6530

    Rating: 4.7 / 5 (67 voted)

    Reviews: 82% of readers found this page helpful

    Author information

    Name: Tish Haag

    Birthday: 1999-11-18

    Address: 30256 Tara Expressway, Kutchburgh, VT 92892-0078

    Phone: +4215847628708

    Job: Internal Consulting Engineer

    Hobby: Roller skating, Roller skating, Kayaking, Flying, Graffiti, Ghost hunting, scrapbook

    Introduction: My name is Tish Haag, I am a excited, delightful, curious, beautiful, agreeable, enchanting, fancy person who loves writing and wants to share my knowledge and understanding with you.