42
Transferência de arquivos (FTP) Transferência de arquivos (FTP) Protocolo de transferência de arquivos (File Transfer Protocol) Descrito na RFC 959 Usa o TCP, a porta 21 (conexão de controle) e a porta 20 (conexão de dados) Em uma mesma sessão, a cada transferência é usada uma conexão diferente de dados Mantém informações de estado Associação com conta do usuário, controle sobre o diretório corrente do usuário Limita o número de sessões que um servidor pode manter

Parte2c

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Parte2c

Transferência de arquivos (FTP)Transferência de arquivos (FTP)

� Protocolo de transferência de arquivos (File Transfer Protocol)

� Descrito na RFC 959� Usa o TCP, a porta 21 (conexão de controle) e a

porta 20 (conexão de dados)� Em uma mesma sessão, a cada transferência é

usada uma conexão diferente de dados� Mantém informações de estado

� Associação com conta do usuário, controle sobre o diretório corrente do usuário

� Limita o número de sessões que um servidor pode manter

Page 2: Parte2c

Transferência de arquivos (FTP)Transferência de arquivos (FTP)

Funcionamento do FTP (fonte: Kurose)

Page 3: Parte2c

Transferência de arquivos (FTP)Transferência de arquivos (FTP)

� Comandos enviados em ASCII (7 bits)� Exemplos de comandos

� USER <username>� PASS <password>� LIST� RETR <filename>� STOR <filename>

Page 4: Parte2c

Correio eletrônicoCorreio eletrônico

� Sistema de correio da Internet composto de� Agentes de usuário� Servidores de correio ou agentes de transferência de

mensagens� Protocolo simples de transferência de correio (Simple

Mail Transfer Protocol – SMTP)� Protocolos de acesso a correio

Page 5: Parte2c

Analogia com a correspondência por correio (fonte: Kurose)

Page 6: Parte2c

Correio eletrônicoCorreio eletrônico

� Agentes de usuário� Permitem que usuários leiam, respondam,

encaminhem, salvem e editem mensagens� Ex.: Outlook, Eudora, Thunderbird, Mutt

� Servidores de correio� Armazenam as mensagens� Se comunicam para realizar a transferência das

mensagens

Page 7: Parte2c

Correio eletrônicoCorreio eletrônico

� SMTP� Transfere mensagens entre servidores de correio� Transfere mensagens do agente de usuário para um

servidor de correio� Daemon do sistema (processo executado em segundo

plano)

� Protocolos de acesso a correio� Transferem mensagens do servidor de correio para o

agente de usuário

Page 8: Parte2c

Correio eletrônicoCorreio eletrônico

Sistema de correio da Internet

Page 9: Parte2c

Correio eletrônico Correio eletrônico -- SMTPSMTP

� Descrito na RFC 2821� Usa o TCP e a porta 25� Mensagens enviadas em ASCII (7 bits)

� Uso de extensão ou de codificação para 8 bits

� Comunicação entre um cliente SMTP (transmissor) e um servidor SMTP (receptor)

� Comunicação entre os servidores pode ser direta ou indireta

Page 10: Parte2c

Correio eletrônico Correio eletrônico -- SMTPSMTP

Funcionamento do SMTP (fonte: Kurose)

Page 11: Parte2c

Correio eletrônico Correio eletrônico -- SMTPSMTP

� Utiliza comandos para fazer a comunicação entre servidores

� Exemplos de comandos� HELO� MAIL FROM� RCPT TO� DATA� QUIT� VRFY

Page 12: Parte2c

Exemplo de interação (telnet servidor.br 25)

S: 220 servidor.brC: HELO cliente.brS: 250 Hello cliente.br, pleased to meet youC: MAIL FROM: <[email protected]>S: 250 [email protected]... Sender okC: RCPT TO: <[email protected]>S: 250 [email protected] ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: From: [email protected]: To: [email protected]: Subject: TesteC:C: Teste de envio de correio.C: .S: 250 Message accepted for deliveryC: QUITS: 221 servidor.br closing connection

Page 13: Parte2c

Correio eletrônicoCorreio eletrônico

� Correio eletrônico formado por� Envelope

� Encapsula uma mensagem

� Contém as informações necessárias para o transporte da mensagem

� Como no correio comum

� Mensagem� Composta por cabeçalho e corpo

Page 14: Parte2c

Exemplo de interação (telnet servidor.br 25)

S: 220 servidor.brC: HELO cliente.brS: 250 Hello cliente.br, pleased to meet youC: MAIL FROM: <[email protected]>S: 250 [email protected]... Sender okC: RCPT TO: <[email protected]>S: 250 [email protected] ... Recipient okC: DATAS: 354 Enter mail, end with "." on a line by itselfC: From: [email protected]: To: [email protected]: Subject: TesteC:C: Teste de envio de correio.C: .S: 250 Message accepted for deliveryC: QUITS: 221 servidor.br closing connection

Page 15: Parte2c

Correio eletrônicoCorreio eletrônico

� Correio eletrônico formado por� Mensagem

� Campos de cabeçalho

� Exemplos:� From:

� To:

� Subject:

� Received:

� Corpo

� Só diz respeito ao destinatário

Page 16: Parte2c

Exemplo de mensagem

Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMTReceived: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMTFrom: [email protected]: [email protected]: Teste

Teste de envio de correio.

Page 17: Parte2c

Envelopes e mensagens (fonte: Tanenbaum)

Page 18: Parte2c

Correio eletrônico Correio eletrônico -- MIMEMIME

� Todos os objetos são colocados em uma única mensagem

� RFC 822 não prevê o envio de imagens, áudio e vídeo

� Solução → Estender o cabeçalho� Extensões multiuso do correio da Internet

(Multipurpose Internet Mail Extensions – MIME)� Definido nas RFCs 2045 e 2046� Exemplos de novas linhas de cabeçalhos

� Content-Type:� Content-Transfer-Encoding:

Page 19: Parte2c

Correio eletrônico Correio eletrônico -- MIMEMIME

From: [email protected]: [email protected]: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg

base64 encoded data ..... ......................... ......base64 encoded data

Exemplo de mensagem MIME (fonte: Kurose)

Page 20: Parte2c

Correio eletrônicoCorreio eletrônico

� Comunicação entre o agente do usuário e o servidor de correio� Envio de mensagem: uso do SMTP� Leitura de mensagem: uso de protocolo de acesso ao

correio

� Protocolos de acesso a correio mais comuns� POP3� IMAP� HTTP

Page 21: Parte2c

Correio eletrônicoCorreio eletrônico

Protocolos de correio eletrônico (fonte: Kurose)

Page 22: Parte2c

Correio eletrônico Correio eletrônico -- POP3POP3

� Protocolo de correio (Post Office Protocol –POP) versão 3

� Definido na RFC 1939� Usa o TCP e a porta 110� Modos

� Ler e apagar do servidor� Divide as mensagens entre as máquinas usadas para

acessar o correio

� Ler e guardar no servidor

Page 23: Parte2c

Correio eletrônico Correio eletrônico -- POP3POP3

� Exemplos de comandos� User <username>� Pass <password>� List� Retr <message number>� Dele <message number>� Quit

� Não provê um meio para o usuário criar pastas remotas e designar mensagens a elas

Page 24: Parte2c

Correio eletrônico Correio eletrônico -- IMAPIMAP

� Protocolo de acesso a correio de Internet (Internet Mail Access Protocol – IMAP)

� Definido na RFC 2060� Usa o TCP e a porta 143� Provê comandos que permitem que usuários

� Criem pastas� Transfiram mensagens de uma para outra

� Agente do usuário pode obter componentes de mensagens

Page 25: Parte2c

Correio eletrônicoCorreio eletrônico

Comparação do POP3 com o IMAP (fonte: Tanenbaum)

Page 26: Parte2c

WebWeb

� Teia de alcance mundial (World Wide Web –WWW)

� Web composta de� Agentes de usuário para a Web (browsers)� Servidores Web� Protocolo de transferência de hipertexto (HyperText

Transfer Protocol – HTTP)

Page 27: Parte2c

WebWeb

Partes do modelo da Web (fonte: Tanenbaum)

Page 28: Parte2c

Web Web -- HTTPHTTP

� Descrito nas RFCs 1945 e 2616� Usa o TCP e a porta 80� Provê comandos que permitem que usuários

� Requisitem páginas Web� Enviem páginas Web� Enviem dados a um servidor

� Servidor não armazena informação de estado

Page 29: Parte2c

Web Web -- HTTPHTTP

� Usa dois tipos de conexões (configurável no browser)� Não persistentes

� Único objeto enviado por uma conexão TCP� Maior alocação de recursos (buffers, variáveis etc.)

� Persistentes� Mais atual� Vários objetos podem ser enviados por uma conexão

TCP

� Pode-se usar conexões em série ou paralelas� Configurável no browser

Page 30: Parte2c

Web Web -- HTTP HTTP -- mensagensmensagens

� Dois tipos de mensagens� Requisição� Resposta

� Usam ASCII

Page 31: Parte2c

Web Web -- HTTP HTTP -- mensagens de requisimensagens de requisiççãoão

� Exemplos de comandos (métodos)� GET

� Mais utilizado

� POST� Corpo da entidade contém dados digitados em um

formulário

� HEAD� Não manda o objeto requisitado� Usado para depuração

� PUT� Para enviar objetos ao servidor

� DELETE� Para apagar objetos do servidor

Page 32: Parte2c

Web Web -- HTTP HTTP -- mensagens de requisimensagens de requisiççãoão

GET /somedir/page.html HTTP/1.1Host: www.someschool.eduConnection: closeUser-agent: Mozilla/4.0 Accept-language:fr

Exemplo de mensagem de requisição (fonte: Kurose)

Page 33: Parte2c

Web Web -- HTTP HTTP -- mensagens de requisimensagens de requisiççãoão

Formato geral das mensagens de requisição HTTP (fonte: Kurose)

Page 34: Parte2c

Web Web -- HTTP HTTP -- mensagens de respostamensagens de resposta

� Corpo da entidade contém a página� Servidor também envia um código de estado� Exemplos de códigos

� 200 OK� 301 Moved Permanently� 304 Not Modified� 400 Bad Request� 404 Not Found� 505 HTTP Version Not Supported

Page 35: Parte2c

Web Web -- HTTP HTTP -- mensagens de respostamensagens de resposta

HTTP/1.1 200 OK Connection: closeDate: Thu, 03 Jul 2003 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Sun, 5 May 2003 09:23:24 GMTContent-Length: 6821 Content-Type: text/html

data data data data data ...

Exemplo de mensagem de resposta (fonte: Kurose)

Page 36: Parte2c

Web Web -- cookiescookies

� Usados na interação usuário-servidor� Servidor HTTP não tem estado

� Importante conhecer algumas características do usuário� Para restringir acesso de usuário� Para apresentar conteúdo em função da identidade do

usuário

� Outros

� Definidos na RFC 2109� Boa parte dos sites atuais usam cookies

Page 37: Parte2c

Web Web -- cookiescookies

� Cookie composto de� Linha de cabeçalho de cookie na mensagem de

resposta HTTP� Linha de cabeçalho de cookie na mensagem de

requisição HTTP� Arquivo de cookies mantido no sistema final do usuário

e gerenciado pelo browser� Banco de dados de apoio no site Web

Page 38: Parte2c

Web Web -- cookiescookies

Cliente Servidor

usual HTTP request msg

usual HTTP response +Set-cookie: 1678

usual HTTP request msgcookie: 1678

usual HTTP response msg

usual HTTP request msg

cookie: 1678usual HTTP response msg

especificaçãodo cookie

especificaçãodo cookie

servidorcria o ID 1678para o usuário

acesso

acesso

Cookie fileamazon: 1678ebay: 8734

Cookie fileebay: 8734

Cookie fileamazon: 1678ebay: 8734

Uma semana depois:

Exemplo de uso de cookies (fonte: Kurose)

Page 39: Parte2c

Web Web -- cookiescookies

� Podem ser considerados violação de privacidade� Por exemplo, pode-se montar um perfil do

comportamento de um usuário

Page 40: Parte2c

Web Web -- cachecache

� Cache Web ou servidor proxy� Atende requisições HTTP em nome de um

servidor Web de origem� Usado principalmente por duas razões

� Diminuir o tempo de resposta a uma requisição Web� Reduzir o tráfego na Internet

� Cache pode estar em� ISPs� Universidades� Laboratórios� Local

� Configuração feita no browser do usuário

Page 41: Parte2c

Web Web -- cachecache

Exemplo de cache hierárquico (fonte: Tanenbaum)

Page 42: Parte2c

Web Web -- cachecache

� Objeto armazenado inclui a data da última modificação

� Funcionamento� Cliente envia o pedido de um objeto para o cache� Se o cache possui o objeto, envia o objeto ao cliente� Se não, solicita o objeto do servidor original, armazena

o objeto e o envia ao cliente

� Ex.: Kurose pag. 79� Cache pode saber se os objetos estão

atualizados usando um “GET condicional”� GET + cabeçalho If-Modified-Since: