Redes de Computadores II
Prof. Celio Trois
portal.redes.ufsm.br/~trois/redes2
Fonte:
Ordinas, J. M. et al, Redes de Computadores, 2004
FTP – File Transference Protocol
●
●
●
●
Uma das primeiras aplicações da internet
Transferência de arquivos entre sistemas
diferentes
No início dos anos 70, iniciou-se a elaboração
das primeiras versões do protocolo FTP
A especificação oficial é de 1985 na RFC 959
(disponível no site)
Características do Protocolo
●
Baseado no modelo cliente-servidor
●
Permite transfência em ambas direções
●
●
Permite outras operações básicas de arquivos,
tais como: apagar, renomear, mover e listar
arquivos e diretórios
Interoperabilidade entre sistemas distintos
O Modelo do FTP
●
O modelo geral é descrito na RFC
●
Interpretador de comandos: responsável pela
troca de comandos do protocolo.
–
–
No lado do cliente, as operações solicitadas pelo
usuário são transformadas em uma sequência de
comandos de FTP e enviada para o servidor.
No servidor, os comandos recebidos são interpretados,
as respostas correspondentes são gerados e enviadas
para o cliente.
O Modelo do FTP
●
●
●
O processo de transferência de dados, está
“por baixo” do interpretador de comandos.
É responsável pela troca de dados a serem
transferidos (o conteúdo de arquivos ou listas
do diretório)
Tanto no cliente como no servidor interage
diretamente com o sistema de arquivos local
para ler os dados ou para armazenar neles.
O Modelo do FTP
O Modelo do FTP
O Modelo do FTP
●
●
Os interpretadores de comando comunicam-se
através de um canal TCP
Quando deve-se enviar dados de um sistema
ao outro, cria-se um novo canal de
comunicação TCP
●
Geralmente quem inicia esta transmissão é o
servidor
Conceitos Básicos do FTP
●
Baseado em conexões TCP
●
Porta padrão do servidor é a 21
●
●
●
●
O interpretador do cliente conecta-se ao do servidor
e trocam mensagens codificadas em ASCII
representadas em um byte
Final de linha são representados por <CRLF>
Cliente envia uma solicitação e aguarda o retorno do
servidor
Comandos FTP são representados por códigos de
até quatro letras
Comandos FTP
●
A RFC descreve 33 comandos, divididos em 3 grupos
●
Comandos de controle de acesso
●
Nome do usuário (USER)
●
Senha (PASS)
●
Conta (ACCT)
●
Trocar de diretório (CWD)
●
Ir para o diretório pai (CDUP)
●
Montar um sistema de arquivos (SMNT)
●
Reinicializar (REIN)
●
Acabar a seção (QUIT)
Comandos FTP
●
Comandos de parâmetros de transferência
●
Estrutura dos arquivos (STRU)
●
Modo de transmissão (MODE)
●
Tipo de representação (TYPE)
●
Porta de dados (PORT)
●
Porta passiva (PASV)
Comandos FTP
●
Comandos de servicio FTP
●
Obter (RETR)
●
Apagar(DELE)
●
Armazenar (STOR)
●
Nome antigo(RNFR)
●
Arm. com nome único (STOU)
●
Nome Novo (RNTO),
●
Concatenar (APPE)
●
Criar um diretório (MKD)
●
Listar (LIST)
●
Apagar um diretório (RMD)
●
Listar nomes (NLST)
●
Status (STAT),
●
Mostrar diretório atual (PWD)
●
Sistema (SYST)
●
Reservar espaço (ALLO)
●
Serviços adicionais (SITE)
●
Abortar (ABOR)
●
Ajuda (HELP)
●
Retomar (REST)
●
Operação nula (NOOP)
Respostas FTP
●
Representadas por um código numérico de três dígitos
decimais, seguido por um texto explicativo
●
O código é usado para o interpretador de comandos
●
O texto normalmente é destinado ao usuário
●
●
Se o texto contém apenas uma linha, a resposta é o código
seguido de um espaço em branco e a mensagem
Se o texto contém mais de uma linha, a resposta é o código
seguido do caractere '-'. A última deve iniciar com o código,
seguido de espaço.
Exemplos de Resposta FTP
220 Sistema preparado. Introduzir login e
senha.
220-Sistema preparado.
220-Introduzir login e senha
220-para acessar os arquivos restritos
220-ou utilizar o nome "anonymous"
220 para acessar o diretório público.
Códigos de Resposta
●
110 Marca de retomada.
●
120 Aguarde até que o servidor esteja pronto
●
125 O servidor transfere dados (a conexão de dados já está aberto)
●
150 O servidor estabelece a conexão e inicia a transferência
●
200 Operação concluída
●
202 Comando desnecessário no servidor
●
211 Informação do estado do sistema ou mensagem de ajuda
●
212 Informações de status de diretório
●
213 Informações sobre o status de arquivo
●
214 Mensagem de ajuda (para o usuário humano)
●
215 Tipo de sistema
●
220 Servidor pronto
Códigos de resposta
●
221 O servidor fecha a conexão de controle
●
226 Operação efetuada e conexão de dados fechada
●
227 O servidor está em modo passivo (h1, h2, h3, h4, p1, p2).
●
230 Processo de autenticação concluído com êxito
●
250 Operações de arquivos realizadas
●
257 O diretório é o resultado da operação.
●
331 Enviar senha
●
332 Enviar conta
●
350 Enviar o comando a seguir para concluir a operação
●
421 Serviço não disponível, conexão de controle fechado
●
425 Não é possível estabelecer conexão de dados
●
426 Transferência abortada e conexão de dados fechada.
Códigos de Resposta
●
450 Não pode executar operação sobre o arquivo (ex, arquivo ocupado)
●
452 Espaço em disco insuficiente: transferência não iniciada
●
500 Erro de sintaxe no comando
●
501 Erro nos argumentos
●
502 Comando não implementado
●
503 Erro na sequência de comandos
●
504 Argumento não suportado
●
530 O usuário não foi devidamente autenticado
●
532 É necessário login para esta operação.
●
550 Não pode acessar o arquivo ou diretório (não existe, acesso negado,...)
●
552 Espaço em disco insuficiente: transferência abortada
●
553 Nome de arquivo não permitido
Vamos à Prática
●
Instale um servidor ftp na máquina virtual
sudo apt-get install ftpd
●
Conecte-se ao servidor local
ftp localhost
●
Digite o usuário e senha do computador
●
Digite o seguinte comando
help
pwd
ls
quit
Vamos à Prática
●
Agora abra o Wireshark e repita:
●
Conecte-se ao servidor local
ftp localhost
●
Digite o usuário e senha do computador
●
Digite o seguinte comando
help
pwd
ls
●
Quit
●
Após isto, analise as mensagens trocadas na rede
Vamos à Prática
●
Agora abra o Wireshark e repita:
●
Conecte novamente
●
Copie um arquivo de texto para o servidor
–
–
●
Verifique no wireshark o momento que a porta de dados
é “negociada” com o cliente
Identifique as mensagem de transferencia do arquivo
Que conclusão você pode chegar com relação ao
protocolo FTP?
Vamos à Prática
●
Agora sem cliente FTP
●
Conectar ao servidor FTP usando o telnet
–
●
●
●
telnet localhost 21
Descubra quais comandos o servidor FTP
implementa
Faça login e descubra o diretório remoto (pwd)
Você consegue copiar um arquivo? O que seria
necessário??
Download

Redes de Computadores II