SlideShare uma empresa Scribd logo
1 de 8
Baixar para ler offline
O protocolo FTP (File Transfer Protocol) 
Junho 2014 
Introdução ao protocolo FTP 
O protocolo FTP (File Transfer Protocol) é, como o seu nome o indica, um protocolo de 
transferência de ficheiro. 
A aplicação do protocolo FTP data de 1971, na mesma data em que um mecanismo de 
transferência de ficheiros (descrito no RFC 141) entre as máquinas do MIT (Massachussetts 
Institute of Technology) foi criado. Numerosos RFC trouxeram seguidamente melhorias ao 
protocolo básico, mas as maiores inovações datam de Julho de 1973. 
O protocolo FTP actualmente é definido pelo RFC 959 (File Transfer Protocol (FTP) - 
Especificações). 
O papel do protocolo FTP 
O protocolo FTP define a maneira segundo a qual os dados devem ser transferidos numa 
redeTCP/IP. 
O protocolo FTP tem como objectivos: 
permitir uma partilha de ficheiros entre máquinas distantes 
permitir uma independência dos sistemas de ficheiros das máquinas clientes e servidor 
permitir transferir dados de maneira eficaz 
O modelo FTP 
O protocolo FTP inscreve-se num modelo cliente-servidor, ou seja, uma máquina envia ordens 
(o cliente) e a outra espera pedidos para efectuar acções (o servidor). 
Aquando de uma conexão FTP, dois canais de transmissão estão abertos : 
Um canal para os comandos (canal de controlo) 
Um canal para os dados
Assim o cliente, tal como o servidor, possui dois processos que permitem gerir estes dois tipos 
de informação: 
O DTP (Data Transfer Process) é o processo encarregado de estabelecer a conexão e 
gerir o canal de dados. O DTP do lado do servidor chama-se SERVER-DTP, o DTP lado 
cliente é denominado USER-DTP 
O PI (Protocol Interpreter) é o intérprete de protocolo que permite comandar o DTP com a 
ajuda de comandos recebidos no canal de controlo. É diferente no cliente e no servidor: 
O SERVER-PI está encarregado de ouvir os comandos que provêm de uma PI no 
canal de controlo numa porta dada, estabelecer a conexão para o canal de controlo, 
receber neste os comandos FTP da GASTAR-PI, responder-lhes e pilotar o 
SERVER-DTP 
O USER-PI está encarregado de estabelecer a conexão com o servidor FTP, enviar 
os comandos FTP, receber as respostas do SERVER-PI e de controlar USER-DTP 
se necessário. 
Aquando da conexão de um cliente FTP a um servidor FTP, o USER-PI inicia a conexão ao 
servidor de acordo com o protocolo Telnet. O cliente envia comandos FTP ao servidor, este 
último interpreta, pilota o seu DTP, seguidamente devolve uma resposta standard. Quando a 
conexão é estabelecida, o servidor-Pi dá a porta para a qual os dados serão enviados ao 
Cliente DTP. O cliente DTP ouve então na porta especificada os dados provenientes do 
servidor. 
É importante observar que, sendo as portas de controlo e de dados canais separados, é possível 
enviar os comandos a partir de uma máquina e receber os dados a partir de outra. Assim, é por 
exemplo possível transferir dados entre dois servidores FTP passando por um cliente para 
enviar as instruções de controlo e transferindo as informações entre dois processos servidores 
conectados na porta certa.
Nesta configuração, o protocolo impõe que os canais de controlo permaneçam abertos durante 
toda a transferência de dados. Assim, um servidor pode parar uma transmissão se o canal de 
controlo for cortado aquando da transmissão. 
Os comandos FTP 
Todas as comunicações efectuadas pelo canal de controlo seguem as recomendações do 
protocolo Telnet. Assim, os comandos FTP são cadeias de caracteres Telnet (em código NVT-ASCII) 
terminadas pelo código de fim de linha Telnet (quer dizer, a sequência <CR>+<LF>, 
Carriage Return (regresso carro) seguido do carácter Line Feed, notado <CRLF>). 
Se o comando FTP admitir um parâmetro, este é separado do comando por um espaço (<SP>). 
Os comandos FTP permitem precisar: 
A porta utilizada 
O modo de transferência dos dados 
A estrutura dos dados 
A natureza da acção a efectuar (Retrieve, List, Store,…) 
Distingue-se três tipos de comandos FTP: 
Os comandos de controlo de acesso 
Os comandos de parametrizaçaõ de transferência 
Os comandos de serviço FTP 
Comando de controlo de acesso
Comando Descrição 
USER 
Cadeia de caracteres que permitem identificar o utilizador. A 
identificação do utilizador é necessária para estabelecer uma 
comunicação no canal de dados 
PASS 
Cadeia de caracteres que especificam a palavra-passe do 
utilizador. Este comando deve ser imediatamente precedido do 
comando USER. Cabe ao cliente esconder a afixação deste 
comando por razões de segurança 
ACCT 
cadeia de caracteres que representam a conta (account) do 
utilizador. Este comando não é geralmente necessário. 
Aquando da resposta à aceitação da palavra-passe, se a 
resposta for 230 esta fase não for necessária; se a resposta for 
332, é. 
CWD 
Change Working Directory : este comando permite alterar o 
directório corrente. Este comando necessita o caminho de 
acesso ao directório a atingir como argumento 
CDUP 
Change to Parent Directory :este comando permite subir ao 
directório parente. Foi introduzido para remediar os problemas 
de nomeação de directório parente de acordo com o sistema 
(geralmente “. ”) 
SMNT Structure Mount : 
REIN Reinitialize : 
QUIT 
Comando permitindo terminar a sessão corrente. O servidor 
espera até terminar a transferência corrente se for caso disso, 
seguidamente fornece uma resposta antes de fechar a conexão 
Comando de parâmetros de transferência 
Comando Descrição 
PORT 
Cadeia de caracteres que permitem precisar o número de porta 
a utilizar 
PASV 
Comando permitindo indicar ao servidor DTP para esperar uma 
conexão numa porta específica escolhida aleatoriamente entre 
as portas disponíveis. A resposta a este comando é o endereço 
IP da máquina e a porta. 
TYPE 
Este comando permite precisar o tipo de formato em que os 
dados serão enviados 
STRU 
Carácter Telnet precisando a estrutura do ficheiro (F para File, 
R para Record, P para Page)
MODE 
Carácter Telnet precisando o modo de transferência dos dados 
(S para Stream, B para Block, C para Compressed) 
Comando de serviço FTP 
Comando Descrição 
RETR 
Este comando (RETRIEVE) pede ao servidor DTP uma cópia 
do ficheiro cujo caminho de acesso passou em parâmetro. 
STOR 
Este comando (store) pede ao servidor DTP que aceite os 
dados enviados sobre o canal de dados e que os armazene no 
ficheiro que leva o nome passado em parâmetro. Se o ficheiro 
não existir, o servidor cria-o, se não esmaga-o 
STOU 
Este comando é idêntico ao precedente, mas pede ao servidor 
que crie um ficheiro cujo nome é único. O nome do ficheiro é 
devolvido na resposta 
APPE 
Graças a este comando (append) os dados enviados são 
concatenados no ficheiro que leva o nome passado em 
parâmetro , se ele já existir; no caso contrário, é criado. 
ALLO 
Este comando (allocate) pede ao servidor que preveja um 
espaço de armazenamento suficiente para conter o ficheiro cujo 
nome passou em argumento. 
REST 
Este comando (restart) permite retomar uma transferência onde 
tinha parado. Para isso, este comando envia em parâmetro o 
indicador que representa a posição no ficheiro onde a 
transferência tinha sido interrompida. Este comando deve ser 
imediatamente seguido de um comando de transferência. 
RNFR 
Este comando (rename from) permite rebaptizar um ficheiro. 
Indica em parâmetro o nome do ficheiro a rebaptizar e deve ser 
imediatamente seguido do comando RNTO 
RNTO 
Este comando (rename to) permite rebaptizar um ficheiro. Indica 
em parâmetro o nome do ficheiro a rebaptizar e deve ser 
imediatamente precedido pelo comando RNFR
ABOR 
Este comando (abort) diz ao servidor DTP para abandonar 
todas as transferências associadas ao comando precedente. 
Se nenhuma conexão de dados estiver aberta, o servidor DTP 
não faz nada, se não fecha-a. Em contrapartida, o canal de 
controlo permanece aberto. 
DELE 
Este comando (delete) permite suprimir o ficheiro cujo nome 
passou em parâmetro. Este comando é irremediável, só uma 
confirmação a nível do cliente pode ser feita. 
RMD 
Este comando (remove directory) permite suprimir um directório. 
Indica em parâmetro o nome do directório a suprimir 
MKD 
Este comando (make directory) permite criar um directório. 
Indica em parâmetro o nome do directório a criar 
PWD 
Este comando (print working directory) permite reenviar o 
caminho completo do directório corrente 
LIST 
Este comando permite reenviar a lista dos ficheiros e directórios 
presentes no directório corrente. Esta lista é enviada para o 
DTP passivo. É possível passar em parâmetro deste comando 
um nome de directório, o servidor DTP enviará a lista dos 
ficheiros no directório passado em parâmetro 
NLST 
Este comando (name liste) permite enviar a lista dos ficheiros e 
directórios no directório corrente 
SITE 
Este comando (site parameters) permite ao servidor propor 
serviços específicos, não definidos no protocolo FTP 
SYST 
Este comando (system) permite enviar informações para o 
servidor distante 
STAT 
Este comando (status) permite emitir o estado do servidor, por 
exemplo para conhecer a progressão de uma transferência 
corrente. Este comando aceita em argumento um caminho de 
acesso, reenvia então as mesmas informações que LIST mas 
sobre o canal de controlo 
HELP 
Este comando permite conhecer o conjunto das encomendas 
compreendidas pelo servidor. As informações são voltadas 
sobre o canal de controlo 
NOOP 
Este comando (no operations) serve unicamente para obter um 
comando OK do servidor. Pode servir unicamente para não ser 
desligada após um tempo de inactividade demasiado longo 
As respostas FTP 
As respostas FTP permitem garantir a sincronização entre cliente e servidor FTP. Assim, a cada 
comando enviada pelo cliente, o servidor efectuará eventualmente uma acção e reenviará
sistematicamente uma resposta. 
As respostas são constituídas por um código de 3 números que indicam a maneira segundo a 
qual o comando enviado pelo cliente foi tratado. Contudo, este código de 3 números dificilmente 
legível por um humano, é acompanhado de um texto (cadeia de caracteres Telnet separada do 
código numérico por um espaço). 
Os códigos de resposta são constituídos por 3 números, cujos significados são os seguintes: 
O primeiro número indica o estatuto da resposta (sucesso ou falha) 
O segundo número indica a que é que a resposta se refere 
O terceiro número dá um significado mais específico (relativo a cada segundo número) 
Primeiro número 
Número Significado Descrição 
1yz 
Resposta 
preliminar 
positiva 
A acção pedida está curso, uma segunda resposta 
deve ser obtida antes de enviar um segundo 
comando 
2yz 
Resposta 
positiva de 
realização 
A acção pedida foi realizada, um novo comando 
pode ser enviado 
3yz 
Resposta 
intermédia 
positiva 
A acção pedida está temporariamente suspensa. 
Informações suplementares são esperadas por 
parte do cliente 
4yz 
Resposta 
negativa de 
realização 
A acção pedida não teve lugar porque o comando 
temporariamente não foi aceite. O cliente deve 
experimentar de novo mais tarde 
5yz 
Resposta 
negativa 
permanente 
A acção pedida não teve lugar porque o comando 
não foi aceite. O cliente deve formular um pedido 
diferente 
Segundo número 
Número Significado Descrição 
x0z Sintaxe 
A acção possui um erro de sintaxe, ou trata-se de 
um comando não percebido pelo servidor 
x1z Informação 
Trata-se de uma resposta que devolve 
informações (por exemplo, para uma resposta a 
um comando STAT) 
x2z Conexões A resposta refere-se ao canal de dados
x3z 
Autenticação 
e contas 
A resposta refere-se à ligação (USER/PASS) ou 
ao pedido de mudança de conta (CPT) 
x4z 
Não utilizado 
pelo protocolo 
FTP 
x5z 
Sistema de 
ficheiros 
A resposta refere-se ao sistema de ficheiros 
distante 
Mais informações 
Para saber mais sobre o protocolo FTP, não hesite em consultar os seguintes documentos: 
La RFC 959 
A RFC 959 traduzida em francês 
FTP protocol (File Transfer Protocol) Protocolo FTP (Protocolo de transferencia de archivos) 
Das FTP Protokoll (File Transfer Protocol) Le protocole FTP (File Transfer Protocol) Il protocollo 
FTP (File Transfer Protocol) 
Este documento, intitulado « O protocolo FTP (File Transfer Protocol) »a partir de Kioskea (pt.kioskea.net) está 
disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições 
estipuladas pela licença, como esta nota aparece claramente.

Mais conteúdo relacionado

Mais procurados

SSD - Solid State Drive
SSD - Solid State DriveSSD - Solid State Drive
SSD - Solid State DriveVagner Leal
 
Aula 1: Conceitos de redes sem fio
Aula 1: Conceitos de redes sem fioAula 1: Conceitos de redes sem fio
Aula 1: Conceitos de redes sem fiocamila_seixas
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional Carine Furlanetto
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Pepe Rocker
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSILuis Ferreira
 
Aula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxAula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxLucasMansueto
 
História dos Sistemas Operacionais
História dos Sistemas OperacionaisHistória dos Sistemas Operacionais
História dos Sistemas OperacionaisSheldon Led
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas OperativosTROLITO LALALAL
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorEdgar Costa
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativosTROLITO LALALAL
 
História do linux ppt
História do linux pptHistória do linux ppt
História do linux pptshade09
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introduçãoCleber Ramos
 
Simplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-DuplexSimplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-DuplexYohana Alves
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linuxisraeljrs
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open SourceDiogo Silva
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IPPjpilin
 

Mais procurados (20)

SSD - Solid State Drive
SSD - Solid State DriveSSD - Solid State Drive
SSD - Solid State Drive
 
Aula 1: Conceitos de redes sem fio
Aula 1: Conceitos de redes sem fioAula 1: Conceitos de redes sem fio
Aula 1: Conceitos de redes sem fio
 
Linux - Sistema Operacional
Linux - Sistema Operacional Linux - Sistema Operacional
Linux - Sistema Operacional
 
Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)Sistemas Operativos (Operating Systems)
Sistemas Operativos (Operating Systems)
 
Redes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSIRedes de Comunicação 11º M1 - TGPSI
Redes de Comunicação 11º M1 - TGPSI
 
Aula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - LinuxAula 3 - Sistemas operacionais - Linux
Aula 3 - Sistemas operacionais - Linux
 
Aula 06 comandos linux
Aula 06   comandos linuxAula 06   comandos linux
Aula 06 comandos linux
 
História dos Sistemas Operacionais
História dos Sistemas OperacionaisHistória dos Sistemas Operacionais
História dos Sistemas Operacionais
 
História dos Sistemas Operativos
História dos Sistemas OperativosHistória dos Sistemas Operativos
História dos Sistemas Operativos
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Instalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/ServidorInstalação, configuração e administração de um SO Cliente/Servidor
Instalação, configuração e administração de um SO Cliente/Servidor
 
Classificação – sistemas operativos
Classificação – sistemas operativosClassificação – sistemas operativos
Classificação – sistemas operativos
 
História do linux ppt
História do linux pptHistória do linux ppt
História do linux ppt
 
Introducao a informatica
Introducao a informaticaIntroducao a informatica
Introducao a informatica
 
Sistema operacional introdução
Sistema operacional introduçãoSistema operacional introdução
Sistema operacional introdução
 
Simplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-DuplexSimplex, Half-Duplex e Full-Duplex
Simplex, Half-Duplex e Full-Duplex
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
 
Sistemas de Arquivos do Windows
Sistemas de Arquivos do WindowsSistemas de Arquivos do Windows
Sistemas de Arquivos do Windows
 
Sistema Operativo Open Source
Sistema Operativo Open SourceSistema Operativo Open Source
Sistema Operativo Open Source
 
Endereçamento IP
Endereçamento IPEndereçamento IP
Endereçamento IP
 

Semelhante a O protocolo ftp (file transfer protocol)

Instalação de Servidor FTP - Microsoft Windows Server 2008
Instalação de Servidor FTP - Microsoft Windows Server 2008Instalação de Servidor FTP - Microsoft Windows Server 2008
Instalação de Servidor FTP - Microsoft Windows Server 2008Joeldson Costa Damasceno
 
Invasão de servidor ftp
Invasão de servidor ftpInvasão de servidor ftp
Invasão de servidor ftpPraiero Oo
 
Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Liliana Costa
 
Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2SoftD Abreu
 
Camadas de Transporte
Camadas de TransporteCamadas de Transporte
Camadas de Transporteleoteles92
 
Redes Camadas de Transporte
Redes Camadas de TransporteRedes Camadas de Transporte
Redes Camadas de Transporteleoteles92
 
Protocolos de Transporte RTSP
Protocolos de Transporte RTSPProtocolos de Transporte RTSP
Protocolos de Transporte RTSPnelsonalm
 
Rct 15 - camada de transporte
Rct   15 - camada de transporteRct   15 - camada de transporte
Rct 15 - camada de transporteUniversal.org.mx
 
Protocolos de transporte
Protocolos de transporteProtocolos de transporte
Protocolos de transporteJoel Saramago
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPMauro Tapajós
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webRegis Magalhães
 
Redes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPRedes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPMauro Tapajós
 
Pmmrei Comandos E Utilitariso Tcp Ip
Pmmrei   Comandos E Utilitariso Tcp IpPmmrei   Comandos E Utilitariso Tcp Ip
Pmmrei Comandos E Utilitariso Tcp Ipmfsr1970
 

Semelhante a O protocolo ftp (file transfer protocol) (20)

Dawi o protocolo-http
Dawi o protocolo-httpDawi o protocolo-http
Dawi o protocolo-http
 
Protocólo FTP
Protocólo FTPProtocólo FTP
Protocólo FTP
 
Instalação de Servidor FTP - Microsoft Windows Server 2008
Instalação de Servidor FTP - Microsoft Windows Server 2008Instalação de Servidor FTP - Microsoft Windows Server 2008
Instalação de Servidor FTP - Microsoft Windows Server 2008
 
Invasão de servidor ftp
Invasão de servidor ftpInvasão de servidor ftp
Invasão de servidor ftp
 
Http (hyper text transfer protocol)
Http (hyper text transfer protocol)Http (hyper text transfer protocol)
Http (hyper text transfer protocol)
 
Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2Samba, Squid, FTP, DHCP2
Samba, Squid, FTP, DHCP2
 
Camadas de Transporte
Camadas de TransporteCamadas de Transporte
Camadas de Transporte
 
Redes Camadas de Transporte
Redes Camadas de TransporteRedes Camadas de Transporte
Redes Camadas de Transporte
 
Redes aula13
Redes aula13Redes aula13
Redes aula13
 
Protocolos de Transporte RTSP
Protocolos de Transporte RTSPProtocolos de Transporte RTSP
Protocolos de Transporte RTSP
 
Rct 15 - camada de transporte
Rct   15 - camada de transporteRct   15 - camada de transporte
Rct 15 - camada de transporte
 
Protocolos de transporte
Protocolos de transporteProtocolos de transporte
Protocolos de transporte
 
Redes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDPRedes de computadores II - 4.Camada de Transporte TCP e UDP
Redes de computadores II - 4.Camada de Transporte TCP e UDP
 
Modelo TCP/IP
Modelo TCP/IPModelo TCP/IP
Modelo TCP/IP
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Prog web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_webProg web 00-modelo-cliente_servidor_web
Prog web 00-modelo-cliente_servidor_web
 
Redes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IPRedes de computadores II - 5.Serviços em Redes TCP/IP
Redes de computadores II - 5.Serviços em Redes TCP/IP
 
Conceitos associado às redes
Conceitos associado às redesConceitos associado às redes
Conceitos associado às redes
 
Apostila internet
Apostila internetApostila internet
Apostila internet
 
Pmmrei Comandos E Utilitariso Tcp Ip
Pmmrei   Comandos E Utilitariso Tcp IpPmmrei   Comandos E Utilitariso Tcp Ip
Pmmrei Comandos E Utilitariso Tcp Ip
 

O protocolo ftp (file transfer protocol)

  • 1. O protocolo FTP (File Transfer Protocol) Junho 2014 Introdução ao protocolo FTP O protocolo FTP (File Transfer Protocol) é, como o seu nome o indica, um protocolo de transferência de ficheiro. A aplicação do protocolo FTP data de 1971, na mesma data em que um mecanismo de transferência de ficheiros (descrito no RFC 141) entre as máquinas do MIT (Massachussetts Institute of Technology) foi criado. Numerosos RFC trouxeram seguidamente melhorias ao protocolo básico, mas as maiores inovações datam de Julho de 1973. O protocolo FTP actualmente é definido pelo RFC 959 (File Transfer Protocol (FTP) - Especificações). O papel do protocolo FTP O protocolo FTP define a maneira segundo a qual os dados devem ser transferidos numa redeTCP/IP. O protocolo FTP tem como objectivos: permitir uma partilha de ficheiros entre máquinas distantes permitir uma independência dos sistemas de ficheiros das máquinas clientes e servidor permitir transferir dados de maneira eficaz O modelo FTP O protocolo FTP inscreve-se num modelo cliente-servidor, ou seja, uma máquina envia ordens (o cliente) e a outra espera pedidos para efectuar acções (o servidor). Aquando de uma conexão FTP, dois canais de transmissão estão abertos : Um canal para os comandos (canal de controlo) Um canal para os dados
  • 2. Assim o cliente, tal como o servidor, possui dois processos que permitem gerir estes dois tipos de informação: O DTP (Data Transfer Process) é o processo encarregado de estabelecer a conexão e gerir o canal de dados. O DTP do lado do servidor chama-se SERVER-DTP, o DTP lado cliente é denominado USER-DTP O PI (Protocol Interpreter) é o intérprete de protocolo que permite comandar o DTP com a ajuda de comandos recebidos no canal de controlo. É diferente no cliente e no servidor: O SERVER-PI está encarregado de ouvir os comandos que provêm de uma PI no canal de controlo numa porta dada, estabelecer a conexão para o canal de controlo, receber neste os comandos FTP da GASTAR-PI, responder-lhes e pilotar o SERVER-DTP O USER-PI está encarregado de estabelecer a conexão com o servidor FTP, enviar os comandos FTP, receber as respostas do SERVER-PI e de controlar USER-DTP se necessário. Aquando da conexão de um cliente FTP a um servidor FTP, o USER-PI inicia a conexão ao servidor de acordo com o protocolo Telnet. O cliente envia comandos FTP ao servidor, este último interpreta, pilota o seu DTP, seguidamente devolve uma resposta standard. Quando a conexão é estabelecida, o servidor-Pi dá a porta para a qual os dados serão enviados ao Cliente DTP. O cliente DTP ouve então na porta especificada os dados provenientes do servidor. É importante observar que, sendo as portas de controlo e de dados canais separados, é possível enviar os comandos a partir de uma máquina e receber os dados a partir de outra. Assim, é por exemplo possível transferir dados entre dois servidores FTP passando por um cliente para enviar as instruções de controlo e transferindo as informações entre dois processos servidores conectados na porta certa.
  • 3. Nesta configuração, o protocolo impõe que os canais de controlo permaneçam abertos durante toda a transferência de dados. Assim, um servidor pode parar uma transmissão se o canal de controlo for cortado aquando da transmissão. Os comandos FTP Todas as comunicações efectuadas pelo canal de controlo seguem as recomendações do protocolo Telnet. Assim, os comandos FTP são cadeias de caracteres Telnet (em código NVT-ASCII) terminadas pelo código de fim de linha Telnet (quer dizer, a sequência <CR>+<LF>, Carriage Return (regresso carro) seguido do carácter Line Feed, notado <CRLF>). Se o comando FTP admitir um parâmetro, este é separado do comando por um espaço (<SP>). Os comandos FTP permitem precisar: A porta utilizada O modo de transferência dos dados A estrutura dos dados A natureza da acção a efectuar (Retrieve, List, Store,…) Distingue-se três tipos de comandos FTP: Os comandos de controlo de acesso Os comandos de parametrizaçaõ de transferência Os comandos de serviço FTP Comando de controlo de acesso
  • 4. Comando Descrição USER Cadeia de caracteres que permitem identificar o utilizador. A identificação do utilizador é necessária para estabelecer uma comunicação no canal de dados PASS Cadeia de caracteres que especificam a palavra-passe do utilizador. Este comando deve ser imediatamente precedido do comando USER. Cabe ao cliente esconder a afixação deste comando por razões de segurança ACCT cadeia de caracteres que representam a conta (account) do utilizador. Este comando não é geralmente necessário. Aquando da resposta à aceitação da palavra-passe, se a resposta for 230 esta fase não for necessária; se a resposta for 332, é. CWD Change Working Directory : este comando permite alterar o directório corrente. Este comando necessita o caminho de acesso ao directório a atingir como argumento CDUP Change to Parent Directory :este comando permite subir ao directório parente. Foi introduzido para remediar os problemas de nomeação de directório parente de acordo com o sistema (geralmente “. ”) SMNT Structure Mount : REIN Reinitialize : QUIT Comando permitindo terminar a sessão corrente. O servidor espera até terminar a transferência corrente se for caso disso, seguidamente fornece uma resposta antes de fechar a conexão Comando de parâmetros de transferência Comando Descrição PORT Cadeia de caracteres que permitem precisar o número de porta a utilizar PASV Comando permitindo indicar ao servidor DTP para esperar uma conexão numa porta específica escolhida aleatoriamente entre as portas disponíveis. A resposta a este comando é o endereço IP da máquina e a porta. TYPE Este comando permite precisar o tipo de formato em que os dados serão enviados STRU Carácter Telnet precisando a estrutura do ficheiro (F para File, R para Record, P para Page)
  • 5. MODE Carácter Telnet precisando o modo de transferência dos dados (S para Stream, B para Block, C para Compressed) Comando de serviço FTP Comando Descrição RETR Este comando (RETRIEVE) pede ao servidor DTP uma cópia do ficheiro cujo caminho de acesso passou em parâmetro. STOR Este comando (store) pede ao servidor DTP que aceite os dados enviados sobre o canal de dados e que os armazene no ficheiro que leva o nome passado em parâmetro. Se o ficheiro não existir, o servidor cria-o, se não esmaga-o STOU Este comando é idêntico ao precedente, mas pede ao servidor que crie um ficheiro cujo nome é único. O nome do ficheiro é devolvido na resposta APPE Graças a este comando (append) os dados enviados são concatenados no ficheiro que leva o nome passado em parâmetro , se ele já existir; no caso contrário, é criado. ALLO Este comando (allocate) pede ao servidor que preveja um espaço de armazenamento suficiente para conter o ficheiro cujo nome passou em argumento. REST Este comando (restart) permite retomar uma transferência onde tinha parado. Para isso, este comando envia em parâmetro o indicador que representa a posição no ficheiro onde a transferência tinha sido interrompida. Este comando deve ser imediatamente seguido de um comando de transferência. RNFR Este comando (rename from) permite rebaptizar um ficheiro. Indica em parâmetro o nome do ficheiro a rebaptizar e deve ser imediatamente seguido do comando RNTO RNTO Este comando (rename to) permite rebaptizar um ficheiro. Indica em parâmetro o nome do ficheiro a rebaptizar e deve ser imediatamente precedido pelo comando RNFR
  • 6. ABOR Este comando (abort) diz ao servidor DTP para abandonar todas as transferências associadas ao comando precedente. Se nenhuma conexão de dados estiver aberta, o servidor DTP não faz nada, se não fecha-a. Em contrapartida, o canal de controlo permanece aberto. DELE Este comando (delete) permite suprimir o ficheiro cujo nome passou em parâmetro. Este comando é irremediável, só uma confirmação a nível do cliente pode ser feita. RMD Este comando (remove directory) permite suprimir um directório. Indica em parâmetro o nome do directório a suprimir MKD Este comando (make directory) permite criar um directório. Indica em parâmetro o nome do directório a criar PWD Este comando (print working directory) permite reenviar o caminho completo do directório corrente LIST Este comando permite reenviar a lista dos ficheiros e directórios presentes no directório corrente. Esta lista é enviada para o DTP passivo. É possível passar em parâmetro deste comando um nome de directório, o servidor DTP enviará a lista dos ficheiros no directório passado em parâmetro NLST Este comando (name liste) permite enviar a lista dos ficheiros e directórios no directório corrente SITE Este comando (site parameters) permite ao servidor propor serviços específicos, não definidos no protocolo FTP SYST Este comando (system) permite enviar informações para o servidor distante STAT Este comando (status) permite emitir o estado do servidor, por exemplo para conhecer a progressão de uma transferência corrente. Este comando aceita em argumento um caminho de acesso, reenvia então as mesmas informações que LIST mas sobre o canal de controlo HELP Este comando permite conhecer o conjunto das encomendas compreendidas pelo servidor. As informações são voltadas sobre o canal de controlo NOOP Este comando (no operations) serve unicamente para obter um comando OK do servidor. Pode servir unicamente para não ser desligada após um tempo de inactividade demasiado longo As respostas FTP As respostas FTP permitem garantir a sincronização entre cliente e servidor FTP. Assim, a cada comando enviada pelo cliente, o servidor efectuará eventualmente uma acção e reenviará
  • 7. sistematicamente uma resposta. As respostas são constituídas por um código de 3 números que indicam a maneira segundo a qual o comando enviado pelo cliente foi tratado. Contudo, este código de 3 números dificilmente legível por um humano, é acompanhado de um texto (cadeia de caracteres Telnet separada do código numérico por um espaço). Os códigos de resposta são constituídos por 3 números, cujos significados são os seguintes: O primeiro número indica o estatuto da resposta (sucesso ou falha) O segundo número indica a que é que a resposta se refere O terceiro número dá um significado mais específico (relativo a cada segundo número) Primeiro número Número Significado Descrição 1yz Resposta preliminar positiva A acção pedida está curso, uma segunda resposta deve ser obtida antes de enviar um segundo comando 2yz Resposta positiva de realização A acção pedida foi realizada, um novo comando pode ser enviado 3yz Resposta intermédia positiva A acção pedida está temporariamente suspensa. Informações suplementares são esperadas por parte do cliente 4yz Resposta negativa de realização A acção pedida não teve lugar porque o comando temporariamente não foi aceite. O cliente deve experimentar de novo mais tarde 5yz Resposta negativa permanente A acção pedida não teve lugar porque o comando não foi aceite. O cliente deve formular um pedido diferente Segundo número Número Significado Descrição x0z Sintaxe A acção possui um erro de sintaxe, ou trata-se de um comando não percebido pelo servidor x1z Informação Trata-se de uma resposta que devolve informações (por exemplo, para uma resposta a um comando STAT) x2z Conexões A resposta refere-se ao canal de dados
  • 8. x3z Autenticação e contas A resposta refere-se à ligação (USER/PASS) ou ao pedido de mudança de conta (CPT) x4z Não utilizado pelo protocolo FTP x5z Sistema de ficheiros A resposta refere-se ao sistema de ficheiros distante Mais informações Para saber mais sobre o protocolo FTP, não hesite em consultar os seguintes documentos: La RFC 959 A RFC 959 traduzida em francês FTP protocol (File Transfer Protocol) Protocolo FTP (Protocolo de transferencia de archivos) Das FTP Protokoll (File Transfer Protocol) Le protocole FTP (File Transfer Protocol) Il protocollo FTP (File Transfer Protocol) Este documento, intitulado « O protocolo FTP (File Transfer Protocol) »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.