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:\>