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?
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
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
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.
- Mensagem de conexão do cliente FTP.
- Mensagem de conexão do cliente FTP.
- O servidor FTP informa com o código de status 220 que a conexão FTP foi estabelecida.
- O cliente FTP informa ao servidor FTP qual usuário deseja efetuar login.
- O servidor FTP solicita a senha deste usuário.
- O cliente FTP envia a senha para o servidor FTP.
- Se a senha estiver correta, o servidor FTP notifica o cliente que o login ocorreu (código de status 230).
- O cliente FTP informa ao servidor FTP para reiniciar a transferência de dados.
- O servidor FTP retorna o código de status 350 e espera mais informações sobre a execução do comando.
- O cliente FTP informa ao servidor FTP para reiniciar a transferência de dados.
- O servidor FTP retorna o código de status 350 e espera mais informações sobre a execução do comando.
- Com o comando SYST, o cliente FTP solicita o sistema operacional no qual o servidor FTP está sendo executado.
- O servidor FTP reporta ao sistema operacional (código de status 215). Neste caso é um sistema operacional UNIX.
- Com o comando PWD, o cliente FTP solicita o diretório atual.
- O servidor FTP informa o diretório atual (código de status 257). Neste caso é "/".
- Mensagem de conexão do cliente FTP informando que o login foi bem-sucedido.
- Com o comando PORT, o cliente informa ao servidor que deseja usar a segunda porta para o canal de dados.
- O servidor FTP relata a execução bem-sucedida do comando (código de status 200).
- Com o comando TYPE A, o cliente FTP configura a transferência de dados subsequente para o modo ASCII.
- O servidor FTP relata sucesso (código de status 200).
- O cliente FTP usa o comando LIST para solicitar a lista de diretórios atual.
- O servidor FTP informa o início da transferência de dados (código de status 150).
- O servidor FTP informa o término bem-sucedido da transferência de dados (código de status 226).
- Com o comando CWD, o cliente FTP muda para o diretório “sites”.
- O servidor FTP relata sucesso (código de status 250).
- Com o comando PWD, o cliente FTP solicita o diretório atual.
- O servidor FTP informa o diretório atual (código de status 257). Neste caso é "/".
- Com o comando PORT, o cliente informa ao servidor que deseja usar a segunda porta para o canal de dados.
- O servidor FTP relata a execução bem-sucedida do comando (código de status 200).
- Com o comando TYPE A, o cliente FTP configura a transferência de dados subsequente para o modo ASCII.
- O servidor FTP relata sucesso (código de status 200).
- O cliente FTP usa o comando LIST para solicitar a lista de diretórios atual.
- O servidor FTP informa o início da transferência de dados (código de status 150).
- O servidor FTP informa o término bem-sucedido da transferência de dados (código de status 226).
- 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!