PROTOCOLOS DE COMUNICAÇÃO 3º ANO / 2º SEMESTRE 2014 INFORMÁTICA avumo@up.ac.mz Ambrósio Patricio Vumo Computer Networks & Distribution System Group
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.
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
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.
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.
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).
Descrição do File Transfer Protocol - FTP
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
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.
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.
Conexão de controlo e conexão de dados
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]
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]
Modo activo Porta 1553 Conexão de controlo 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 Conexão de dados Porta 20 Servidor
Modo passivo Porta 1553 Conexão de controlo 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 Porta 21 Cliente Porta 1500 Conexão de dados Porta 1728 Servidor
Arquitectura - FTP 1 Interface com utilizador utilizador Interpretador de protocolo do Servidor 2 Conexão de controlo Interpretador de protocolo do utilizador Sistema de ficheiros 4 Processo de transferência de dados do Servidor 3 Conexão de Dados Processo de transferência de dados do utilizador Sistema de ficheiros Servidor FTP Cliente FTP
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
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.
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.
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.
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.
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.
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).
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.
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.
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
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.
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)
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.
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.
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.
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.
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.
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
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:\>