Camada de Aplicação: File Transfer Protocol

Transcrição

Camada de Aplicação: File Transfer Protocol
PROTOCOLOS DE COMUNICAÇÃO
3º ANO / 2º SEMESTRE
2014
INFORMÁTICA
[email protected]
Ambrósio Patricio Vumo
Computer Networks &
Distribution System Group
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
FTP significa File Transfer Protocol (Protocolo de Transferência de
ficheiros), e é uma forma bastante rápida e versátil de transferir
ficheiro, sendo uma das mais usadas na Internet.
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
Foi o primeiro protocolo da arquitetura TCP/IP destinado a
transferência de ficheiros;
Primeiro padrão foi lançado em 1971 e foi definido pela RFC 114;
Após revisões e melhorias, foi redefinido pela RFC 959;
Utiliza a porta 21 (TCP) para estabelecimento de conexão e a porta
20 (TCP) exclusivamente para transferência de dados
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
Em uma sessão FTP, o utilizador local quando quer transferir um
ficheiro para um host remoto, primeiro deve autenticar através do
Username e Password e só depois de autorização, pode transferir
ficheiros do sistema local para o sistema remoto e vice-versa.
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
O utilizador interage com o servidor FTP por meio de um cliente
FTP. Em primeiro lugar, ele deve autenticar no servidor remoto, o
que faz com que o processo cliente FTP do host local estabeleça
uma conexão TCP com o servidor FTP remoto.
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
O utilizador fornece sua identificação (username e password), que
são enviadas pela conexão TCP como parte dos comandos FTP.
Assim que autorizado pelo servidor, o utilizador copia um ou mais
ficheiros armazenados no sistema de ficheiro local para o sistema
de ficheiro remoto (ou vice-versa).
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
Camada de Aplicação: File Transfer Protocol
Descrição do File Transfer Protocol - FTP
• O HTTP e o FTP [RFC 959] são protocolos de transferência de
fiecheiros e têm muitas características em comum; por exemplo,
ambos utilizam o TCP. Contudo, esses dois protocolos de camada
de aplicação têm algumas diferenças importantes. A mais notável é
que o FTP usa duas conexões TCP paralelas para transferir um
ficheiro:
• uma conexão de controlo
• uma conexão de dados
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
The control connection is used for sending control information between
the two hosts - information such as user identification, password,
commands to change remote directory, and commands to “put” and
“get” files. The data connection is used to actually send a file.
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
Quando um utilizador inicia uma sessão FTP com um host remoto, o
lado cliente do FTP inicia primeiro uma conexão TCP de controlo
com o lado servidor FTP na porta 21 e envia por essa conexão de
controlo a identificação e a password do utilizador, além de
comandos para mudar o directório remoto.
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
Camada de Aplicação: File Transfer Protocol
File Transfer Protocol - FTP
Pode operar em duas maneiras:
modo activo:
Conexão de controlo:
Cliente → porta alta [>=1024] → Servidor → porta 21
Transferência de ficheiros
Servidor → porta 20 → Cliente → porta alta [>= 1024]
Camada de Aplicação: File Transfer Protocol
File Transfer Protocol - FTP
Pode operar em duas maneiras:
modo passivo:
Conexão de controlo:
Cliente → porta alta [>=1024] → Servidor → porta 21
Transferência de ficheiros
Servidor → porta 20 → Cliente → porta alta [>=1024]
Camada de Aplicação: File Transfer Protocol
Modo activo
Conexão de controlo
Porta 1553
Porta 21
1. Cliente conecta-se ao servidor na porta 21 através da porta 1553
2. O cliente envia “PORT 1500”
3. O servidor conecta à porta 1500 do Cliente através da porta 20
Cliente
Porta 1500
Porta 20
Conexão de dados
Servidor
Camada de Aplicação: File Transfer Protocol
Modo passivo
Porta 1553
Conexão de controlo
Porta 21
1. Cliente conecta-se ao servidor na porta 21 através da sua porta 1553
2. O cliente envia “PASV” e o Servidor responde indicando a porta 1726
3. O Cliente conecta-se à porta 1728 do servidor através da sua porta 1500
Cliente
Porta 1500
Porta 1728
Conexão de dados
Servidor
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Interface com
utilizador
1
Interpretador de
protocolo do
Servidor
Sistema de
ficheiros
4
Processo de
transferência de
dados do
Servidor
Servidor FTP
2
Conexão de controlo
3
Conexão de Dados
utilizador
Interpretador de
protocolo do
utilizador
Processo de
transferência de
dados do
utilizador
Cliente FTP
Sistema de
ficheiros
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Sistema de ficheiros do Servidor:
Local de destino do acesso do cliente FTP. Pode ser realizado Leitura/Escrita
Sistema de ficheiros do Utilizador:
Local onde os ficheiros transferidos do servidor serão armazenados, ou onde se armazena
os ficheiros a serem transferidos para o servidor
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Interface do Protocolo do Servidor: Responsável pelo gerenciamento das conexões no servidor.
Geralmente utiliza a porta padrão do FTP (21/TCP), realizando a interpretação dos comandos
recebidos e das respostas enviadas.
Interface do Protocolo do Cliente: Responsável por iniciar a conexão com o servidor destino. Após
Estabelecer comunicação, é este que realiza a interpretação dos comandos e o recebimento das
respostas.
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Transferência de Dados do Servidor: Parte designada para receber ou enviar dados para o
Cliente. Quando em modo Activo, espera por conexões em sua porta 20 do protocolo TCP.
Transferência de Dados do Cliente:
Envia ou recebe dados a partir de seu sistema de arquivos. Nos modos Activo e Passivo transfere
dados por porta alta.
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Servidor FTP: Um ou mais processos que englobam todas as demais funções de transmissão de
ficheiros do servidor.
Utilizador FTP: Um ou mais processos que englobam todas as demais funções de transmissão de
ficheiros do cliente.
Camada de Aplicação: File Transfer Protocol
Arquitectura - FTP
Interface do Utilizador: Permite ao usuário a interação com o servidor a partir da inserção de
comandos e visualização dos resultados.
Conexão de Controlo: Meio por onde se é interpretado a troca de comandos entre cliente e servidor.
Conexão de Dados: Meio por onde se dá a troca de dados entre o cliente e o servidor.
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
When the server side receives a command for a file transfer over
the control connection (either to, or from, the remote host), the
server side initiates a TCP data connection to the client side. FTP
sends exactly one file over the data connection and then closes the
data connection.
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
If, during the same session, the user wants to transfer another file,
FTP opens another data connection. Thus, with FTP, the control
connection remains open throughout the duration of the user
session, but a new data connection is created for each file
transferred within a session (that is, the data connections are nonpersistent).
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
Throughout a session, the FTP server must maintain state about the
user. In particular, the server must associate the control connection
with a specific user account, and the server must keep track of the
user’s current directory as the user wanders about the remote
directory tree.
Camada de Aplicação: File Transfer Protocol
Conexão de controlo e conexão de dados
A monitorar essas informações de estado para cada sessão de
utilizador em curso limita significativamente o número total de sessões
que o FTP pode manter simultaneamente. Lembre-se que o HTTP, por
outro lado, é sem estado - não tem de monitorar o estado de nenhum
utilizador.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
A monitorar essas informações de estado para cada sessão de
utilizador em curso limita significativamente o número total de sessões
que o FTP pode manter simultaneamente. Lembre-se que o HTTP, por
outro lado, é sem estado
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Os comandos, do cliente para o servidor, e as respostas, do
servidor para o cliente, são enviados por meio da conexão de
controlo no formato ASCII de 7 bits.
Cada comando é constituído de quatro caracteres ASCII
maiúsculos, alguns com argumentos opcionais.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Alguns dos comandos mais comuns são descritos a seguir:
• USER username: usado para enviar identificação do usuário ao servidor
• PASS password: usado para enviar a senha do usuário ao servidor
• LIST: usado para pedir ao servidor que envie uma lista com todos os ficheiros
existentes no actual directório remoto. A lista de ficheiro é enviada por meio de uma
conexão de dados (nova e não persistente)
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Alguns dos comandos mais comuns são descritos a seguir:
• RETR filename: usado para extrair (isto é, obter) um ficheiro do directório actual
do host remoto. Activa o host remoto para que abra uma conexão de dados e envie o
ficheiro requisitado por essa conexão
• STOR filename: usado para armazenar (isto é, inserir) um arquivo no directório
actual do host remoto.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Alguns dos comandos mais comuns são descritos a seguir:
• USER username: usado para enviar identificação do usuário ao servidor
• PASS password: usado para enviar a senha do usuário ao servidor
• LIST: usado para pedir ao servidor que envie uma lista com todos os ficheiros
existentes no actual directório remoto. A lista de ficheiro é enviada por meio de uma
conexão de dados (nova e não persistente)
• RETR filename: usado para extrair (isto é, obter) um ficheiro do directório actual
do host remoto. Activa o host remoto para que abra uma conexão de dados e envie o
ficheiro requisitado por essa conexão
• STOR filename: usado para armazenar (isto é, inserir) um arquivo no directório
actual do host remoto.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Há, particularmente, uma correspondência unívoca entre o
comando que o utilizador gera e o comando FTP enviado pela
conexão de controlo. Cada comando é seguido de uma resposta, que
é enviada do servidor ao cliente.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
As respostas são números de três dígitos com uma mensagem
opcional após o número. Elas se assemelham, em estrutura, à
codificação de estado e à frase da linha de estado da mensagem de
resposta HTTP.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
As respostas são números de três dígitos com uma mensagem
opcional após o número. Elas se assemelham, em estrutura, à
codificação de estado e à frase da linha de estado da mensagem de
resposta HTTP.
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
Algumas respostas típicas, junto com suas possíveis mensagens, são
as seguintes:
• 331 Nome de utilizador OK, senha requisitada
• 125 Conexão de dados ja aberta; iniciando transferencia
• 425 Não e possivel abrir a conexão de dados
• 452 Erro ao escrever o ficheiro
Camada de Aplicação: File Transfer Protocol
Comandos e respostas FTP
C:\>ftp ftp.up.ac.mz
Connected to dns2.up.ac.mz.
220 ProFTPD 1.3.4a Server (Debian) [196.3.99.109]
User (dns2.up.ac.mz:(none)): ciup
331 Password required for ciup
Password:
230 User ciup logged in
ftp> quit
221 Goodbye.
C:\>