o protocolo ftp (file transfer protocol)

8
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

Upload: erikhr

Post on 31-Jul-2015

60 views

Category:

Internet


5 download

TRANSCRIPT

Page 1: O protocolo ftp (file transfer protocol)

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 detransferência de ficheiro.

A aplicação do protocolo FTP data de 1971, na mesma data em que um mecanismo detransferência de ficheiros (descrito no RFC 141) entre as máquinas do MIT (MassachussettsInstitute of Technology) foi criado. Numerosos RFC trouxeram seguidamente melhorias aoprotocolo 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 numaredeTCP/IP.

O protocolo FTP tem como objectivos:

permitir uma partilha de ficheiros entre máquinas distantespermitir uma independência dos sistemas de ficheiros das máquinas clientes e servidorpermitir 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

Page 2: O protocolo ftp (file transfer protocol)

Assim o cliente, tal como o servidor, possui dois processos que permitem gerir estes dois tiposde informação:

O DTP (Data Transfer Process) é o processo encarregado de estabelecer a conexão egerir o canal de dados. O DTP do lado do servidor chama-se SERVER-DTP, o DTP ladocliente é denominado USER-DTPO PI (Protocol Interpreter) é o intérprete de protocolo que permite comandar o DTP com aajuda 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 nocanal 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 oSERVER-DTPO USER-PI está encarregado de estabelecer a conexão com o servidor FTP, enviaros comandos FTP, receber as respostas do SERVER-PI e de controlar USER-DTPse necessário.

Aquando da conexão de um cliente FTP a um servidor FTP, o USER-PI inicia a conexão aoservidor 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 aconexão é estabelecida, o servidor-Pi dá a porta para a qual os dados serão enviados aoCliente DTP. O cliente DTP ouve então na porta especificada os dados provenientes doservidor. É importante observar que, sendo as portas de controlo e de dados canais separados, é possívelenviar os comandos a partir de uma máquina e receber os dados a partir de outra. Assim, é porexemplo possível transferir dados entre dois servidores FTP passando por um cliente paraenviar as instruções de controlo e transferindo as informações entre dois processos servidoresconectados na porta certa.

Page 3: O protocolo ftp (file transfer protocol)

Nesta configuração, o protocolo impõe que os canais de controlo permaneçam abertos durantetoda a transferência de dados. Assim, um servidor pode parar uma transmissão se o canal decontrolo for cortado aquando da transmissão.

Os comandos FTP

Todas as comunicações efectuadas pelo canal de controlo seguem as recomendações doprotocolo 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 utilizadaO modo de transferência dos dadosA estrutura dos dadosA natureza da acção a efectuar (Retrieve, List, Store,…)

Distingue-se três tipos de comandos FTP:

Os comandos de controlo de acessoOs comandos de parametrizaçaõ de transferênciaOs comandos de serviço FTP

Comando de controlo de acesso

Page 4: O protocolo ftp (file transfer protocol)

Comando Descrição

USERCadeia de caracteres que permitem identificar o utilizador. Aidentificação do utilizador é necessária para estabelecer umacomunicação no canal de dados

PASS

Cadeia de caracteres que especificam a palavra-passe doutilizador. Este comando deve ser imediatamente precedido docomando USER. Cabe ao cliente esconder a afixação destecomando por razões de segurança

ACCT

cadeia de caracteres que representam a conta (account) doutilizador. Este comando não é geralmente necessário.Aquando da resposta à aceitação da palavra-passe, se aresposta for 230 esta fase não for necessária; se a resposta for332, é.

CWDChange Working Directory : este comando permite alterar odirectório corrente. Este comando necessita o caminho deacesso ao directório a atingir como argumento

CDUP

Change to Parent Directory :este comando permite subir aodirectório parente. Foi introduzido para remediar os problemasde nomeação de directório parente de acordo com o sistema(geralmente “. ”)

SMNT Structure Mount :

REIN Reinitialize :

QUITComando permitindo terminar a sessão corrente. O servidorespera 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

PORTCadeia de caracteres que permitem precisar o número de portaa utilizar

PASV

Comando permitindo indicar ao servidor DTP para esperar umaconexão numa porta específica escolhida aleatoriamente entreas portas disponíveis. A resposta a este comando é o endereçoIP da máquina e a porta.

TYPEEste comando permite precisar o tipo de formato em que osdados serão enviados

STRUCarácter Telnet precisando a estrutura do ficheiro (F para File,R para Record, P para Page)

Page 5: O protocolo ftp (file transfer protocol)

MODECará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

RETREste comando (RETRIEVE) pede ao servidor DTP uma cópiado ficheiro cujo caminho de acesso passou em parâmetro.

STOR

Este comando (store) pede ao servidor DTP que aceite osdados enviados sobre o canal de dados e que os armazene noficheiro que leva o nome passado em parâmetro. Se o ficheironão existir, o servidor cria-o, se não esmaga-o

STOUEste comando é idêntico ao precedente, mas pede ao servidorque crie um ficheiro cujo nome é único. O nome do ficheiro édevolvido na resposta

APPE

Graças a este comando (append) os dados enviados sãoconcatenados no ficheiro que leva o nome passado emparâmetro , se ele já existir; no caso contrário, é criado.

ALLOEste comando (allocate) pede ao servidor que preveja umespaço de armazenamento suficiente para conter o ficheiro cujonome passou em argumento.

REST

Este comando (restart) permite retomar uma transferência ondetinha parado. Para isso, este comando envia em parâmetro oindicador que representa a posição no ficheiro onde atransferência tinha sido interrompida. Este comando deve serimediatamente seguido de um comando de transferência.

RNFREste comando (rename from) permite rebaptizar um ficheiro.Indica em parâmetro o nome do ficheiro a rebaptizar e deve serimediatamente seguido do comando RNTO

RNTOEste comando (rename to) permite rebaptizar um ficheiro. Indicaem parâmetro o nome do ficheiro a rebaptizar e deve serimediatamente precedido pelo comando RNFR

Page 6: O protocolo ftp (file transfer protocol)

ABOR

Este comando (abort) diz ao servidor DTP para abandonartodas as transferências associadas ao comando precedente.Se nenhuma conexão de dados estiver aberta, o servidor DTPnão faz nada, se não fecha-a. Em contrapartida, o canal decontrolo permanece aberto.

DELEEste comando (delete) permite suprimir o ficheiro cujo nomepassou em parâmetro. Este comando é irremediável, só umaconfirmação a nível do cliente pode ser feita.

RMDEste comando (remove directory) permite suprimir um directório.Indica em parâmetro o nome do directório a suprimir

MKDEste comando (make directory) permite criar um directório.Indica em parâmetro o nome do directório a criar

PWDEste comando (print working directory) permite reenviar ocaminho completo do directório corrente

LIST

Este comando permite reenviar a lista dos ficheiros e directóriospresentes no directório corrente. Esta lista é enviada para oDTP passivo. É possível passar em parâmetro deste comandoum nome de directório, o servidor DTP enviará a lista dosficheiros no directório passado em parâmetro

NLSTEste comando (name liste) permite enviar a lista dos ficheiros edirectórios no directório corrente

SITEEste comando (site parameters) permite ao servidor proporserviços específicos, não definidos no protocolo FTP

SYSTEste comando (system) permite enviar informações para oservidor distante

STAT

Este comando (status) permite emitir o estado do servidor, porexemplo para conhecer a progressão de uma transferênciacorrente. Este comando aceita em argumento um caminho deacesso, reenvia então as mesmas informações que LIST massobre o canal de controlo

HELPEste comando permite conhecer o conjunto das encomendascompreendidas pelo servidor. As informações são voltadassobre o canal de controlo

NOOPEste comando (no operations) serve unicamente para obter umcomando OK do servidor. Pode servir unicamente para não serdesligada 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 cadacomando enviada pelo cliente, o servidor efectuará eventualmente uma acção e reenviará

Page 7: O protocolo ftp (file transfer protocol)

sistematicamente uma resposta.

As respostas são constituídas por um código de 3 números que indicam a maneira segundo aqual o comando enviado pelo cliente foi tratado. Contudo, este código de 3 números dificilmentelegível por um humano, é acompanhado de um texto (cadeia de caracteres Telnet separada docó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 refereO terceiro número dá um significado mais específico (relativo a cada segundo número)

Primeiro número

Número Significado Descrição

1yzRespostapreliminarpositiva

A acção pedida está curso, uma segunda respostadeve ser obtida antes de enviar um segundocomando

2yzRespostapositiva derealização

A acção pedida foi realizada, um novo comandopode ser enviado

3yzRespostaintermédiapositiva

A acção pedida está temporariamente suspensa.Informações suplementares são esperadas porparte do cliente

4yzRespostanegativa derealização

A acção pedida não teve lugar porque o comandotemporariamente não foi aceite. O cliente deveexperimentar de novo mais tarde

5yzRespostanegativapermanente

A acção pedida não teve lugar porque o comandonão foi aceite. O cliente deve formular um pedidodiferente

Segundo número

Número Significado Descrição

x0z SintaxeA acção possui um erro de sintaxe, ou trata-se deum comando não percebido pelo servidor

x1z InformaçãoTrata-se de uma resposta que devolveinformações (por exemplo, para uma resposta aum comando STAT)

x2z Conexões A resposta refere-se ao canal de dados

Page 8: O protocolo ftp (file transfer protocol)

x3zAutenticaçãoe contas

A resposta refere-se à ligação (USER/PASS) ouao pedido de mudança de conta (CPT)

x4zNão utilizadopelo protocoloFTP

x5zSistema deficheiros

A resposta refere-se ao sistema de ficheirosdistante

Mais informações

Para saber mais sobre o protocolo FTP, não hesite em consultar os seguintes documentos:

La RFC 959A 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 protocolloFTP (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çõesestipuladas pela licença, como esta nota aparece claramente.