Teleprocessamento e Redes Aula 21: 06 de julho de 2010
1 2 3
(RFC 959) Sumário Aplicação de transferência de arquivos de/para um host remoto O usuário deve prover login/senha O usa duas conexões TCP em paralelo: conexão de controle e conexão de dados
Sumário Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Conexões TCP usadas pelo 1 Conexão de controle: usada para trocar informações de controle entre os dois hosts (login, senha, comandos para caminhar na árvore do diretório e comandos para enviar e solicitar arquivos), cada conexão deve ser associada com uma conta específica de usuário 2 Conexão de dados: usada para enviar um arquivo, cada conexão envia um arquivo (se na mesma sessão o usuário desejar transferir outro arquivo, uma nova conexão é estabelecida)
Conexões TCP usadas pelo Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Comandos e respostas do Comandos e respostas do são textuais (como no HTTP) Comandos consecutivos são separados por caracteres de final de linha Cada comando consiste de quatro caracteres ASCII maiúsculos (alguns com argumentos opcionais)
Exemplos de comados USER username: (login do solicitante) PASS password: (senha do solicitante) LIST: (listar os arquivos do diretório remoto, a lista é enviada pela conexão de dados) RETR filename: (solicita um arquivo do diretório remoto) STOR filename: (armazena um arquivo no diretório remoto)
Respostas do Sumário Cada comando é seguido por um reply (resposta do servidor) As respostas possuem três dígitos seguidos de uma mensagem opcional Ex., 331 username OK, password required
Email na Internet Sumário Eletronic mail é uma forma de comunicação assíncrona (pessoas não precisam coordenar/sincronizar o tempo de envio e recebimento das mensagens) Os três principais componentes do sistema de email da Internet são: 1 Agentes usuários 2 Servidores de email 3 Protocolo
Componentes do sistema de email na Internet Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Componentes do sistema de email na Internet Agentes usuários Também chamados leitores de email Permitem ao usuário ler, responder, redirecionar, salvar e compor mensagens
Componentes do sistema de email na Internet Servidores de email O Agente Usuário envia as mensagens para o servidor de email A mensagem é colocada na fila de mensagens de saída do servidor Do outro lado, quando o usuário quer ler uma mensagem, o Agente Usuário recupera a mensagem do seu mailbox (gerencia e mantem as mensagens enviadas para um usuário), dentro do servidor de email
Componentes do sistema de email na Internet (Simple Mail Transfer Protocol) É o principal protocolo da camada de aplicação para email na Internet Usa o TCP para transferir emails entre servidores de email: o lado cliente executa no servidor de email do emissor o lado servidor executa no servidor de email do receptor Ambos processos (cliente e servidor) executam em todo servidor de email
Sumário Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Sumário A conexão TCP estabelecida pelo é sempre entre o par: servidor de email do emissor e servidor de email do receptor As mensagens não passam por servidores de email intermediários Caso o servidor de email do destinatário esteja fora do ar, a mensagem permanece na fila de saída do servidor do emissor para nova tentativa de envio
Sequência de passos do 1 O tenta estabelecer uma conexão TCP na porta 25 2 Com a conexão estabelecida, emissor e receptor fazem o handshake do (o cliente indica o endereço de email do emissor e do receptor) 3 O cliente envia a mensagem 4 O cliente repete o processo se tiver outras mensagens para o mesmo servidor (usa a mesma conexão TCP), caso contrário finaliza a sessão TCP
Exemplo de troca de mensagens
Formato das mensagens do Linhas de cabeçalho (obrigatórias e opcionais), seguida de linha em branco e depois o corpo da mensagem (em ASCII) Exemplos: From: joao@home.br To: maria@work.br Subject: testando..
Protocolos de acesso a email Os usuários tipicamente executam o Agente Usuário no host local, mas acessam seu mailbox armazenado em um servidor de email compartilhado e remoto, mantido, por ex., por um ISP
Protocolos de acesso a email Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Sumário dos protocolos de email na Internet O é usado para transferir emails de um servidor de email para outro, e do Agente Usuário do lado emissor para o servidor de email do emissor (operação push) Protocolos de acesso a email são usados para transferir emails do servidor de email do lado do receptor para o Agente Usuário (POP3, IMAP, HTTP)
POP 3 (Post Office Protocol v3) (RFC 1939) Protocolo simples, com funcionalidade limitada Começa quando o Agente Usuário abre uma conexão TCP com o servidor de email, na porta 110 Seguem três etapas: 1 Autorização: o Agente Usuário envia login e senha para autenticar o usuário 2 Transação: o Agente Usuário recebe as mensagens, pode marcá-las para remoção 3 Atualização: ocorre depois que o Agente Usuário emite o comando quit (terminando a sessão POP3), o servidor de email apaga as mensagens marcadas para remoção
Operação do POP3 Durante a transação, o Agente Usuário envia comandos e o servidor responde com replies Há duas possíveis respostas: 1 +OK (indica que o comando foi executado com sucesso) 2 -ERR (indica algum erro) Um Agente Usuário usando POP3 pode ser configurado pelo usuário para download and delete ou download and keep
IMAP (Internet Mail Access Protocol) (RFC 3501) Possui características adicionais ao POP3 Um servidor IMAP associa cada mensagem a um folder O IMAP provê comandos para o usuário criar folders, mover mensagens entre folders, pesquisar mensagens em folders O IMAP mantém informações de estado entre sessões IMAP (ex., nomes dos folders, quais mensagens estão em cada folder) O IMAP oferece comandos para o Agente Usuário obter componentes da mensagem (ex., cabeçalho) (útil para conexões lentas entre o Agente Usuário e o servidor de email)
Email Web Sumário O Hotmail introduziu a idéia de acesso a email via aplicação Web (em meados dos anos 90) Nesse esquema, o Agente Usuário é um browser Web e o usuário comunica-se com seu mailbox remoto via HTTP O envio da mensagem (do usuário para o servidor de email) e o recebimento da mensagem (do servidor de email para o usuário) é feito via browser HTTP A comunicação entre servidores de email continua sendo feita via
(Domain Name Service) Há duas maneiras de indentificar um host: hostname ou endereço IP Para conciliar essas duas alternativas é necessário um serviço de diretório que traduza hostnames para endereços IP (usados pelos roteadores) Essa é a principal tarefa do!
Definição do Sumário O é: 1 Uma base de dados distribuída implementada em uma hierarquia de servidores, e 2 um protocolo da camada de aplicação que permite aos hosts consultarem a sua base de dados
Definição do Sumário Relação com outros protocolos O executa sobre o protocolo da camada de transporte UDP e usa a porta 53 O é usado por outros protocolos da camada de aplicação (HTTP,, ) (podendo adicionar um atraso significativo às aplicações)
Outros serviços providos pelo Host aliasing: hosts com nomes complicados podem ter um ou mais alias (o nome original é chamado hostname canônico) Mail server aliasing: aplicações de email podem solicitar ao o hostname canônico ou o endereço IP de um servidor de email a partir de um alias desse servidor Distribuição de carga: um conjunto de endereços IP pode ser associado a um hostname canônico (ex., servidor Web replicado), o responde às requisições com a lista de endereços IP rotacionada a cada resposta (assumindo que o cliente sempre tenta o primeiro IP)
Visão geral do funcionamento do O no host do usuário faz uma requisição para a rede usando o UDP e porta 53 Um projeto básico de seria: um servidor que contém todos os mapeamentos (o que é inviável na escala Internet) O é projetado de forma distribuída e hierárquica Há três classes de servidores : (1) servidores raiz, (2) servidores de domínio, (3) servidores autorais (authoritative)
Hierarquia de servidores Figura: Fonte: Computer Networking, Kurose/Ross, 5ed, 2009.
Hierarquia de servidores Servidores raiz Cada servidor raiz é um cluster de servidores replicados (até 2007, cerca de 117 servidores operados por 12 organizações distintas) Servidores de domínio Responsáveis pelos domínios org, com, edu, gov, uk, br, fr, etc. Servidores autorais Hospedam o mapeamento de nomes para endereço IP dos hospedeiros de uma organização que podem ser acessados publicamente (ex.: servidor Web e servidor de email)
Servidores locais Não pertencem estritamente a hierarquia de servidores Cada ISP tem um servidor local: quando um host conecta-se ao ISP, o ISP provê o endereço IP de um ou mais servidores locais quando o host faz uma requisição, a requisição é enviada ao servidor local que age como um proxy, repassando a requisição para a hierarquia de servidores
Exemplo de interação entre servidores
Exemplo de interação recursiva entre servidores
Caching Sumário Um esquema de caching melhora o desempenho e reduz o número de mensagens na rede O servidor guarda em uma cache temporária as respostas recebidas das requisições
Registros de recursos Cada mensagem de resposta carrega um ou mais registros de recursos (RR) Um RR é uma 4-tupla com os seguintes campos: (Nome, Valor, Tipo, TTL) O campo TTL determina quando o registro deve ser removido de uma cache O significado dos campos Nome e Valor depende do campo Tipo
Campos dos registros de recursos Se Tipo=A, Nome = hostname e Valor = endereço IP Se Tipo=NS, Nome = domínio (ex., foo.com) e Valor = hostname de um servidor autoral que sabe como obter o IP para hosts daquele domínio Se Tipo=CNAME, Nome = alias do host e Valor = hostname can^onico do host Se Tipo=MX, Nome = alias do servidor de email e Valor = hostname can^onico do servidor de email
Mesmo alias para servidor Web e servidor de email O registro de recurso do tipo MX permite uma instituição tenha o mesmo alias para o seu servidor Web e o seu servidor de email
(fonte: Kurose/Ross) 1 Qual é a diferença entre arquitetura de rede e arquitetura de aplicação? 2 Qual informação é usada por um processo que está executando em um host para identificar um processo em outro host? 3 O que significa um protocolo handshaking? 4 Por que HTTP,, e POP3 executam sobre o TCP e não sobre o UDP?
Respostas exercícios 1 Arquitetura de rede refere-se a organização do processo de comunicação em camadas (ex., arquitetura em camadas da Internet). Arquitetura de aplicação é projetada pelo desenvolvedor de aplicação e determina a estrutura geral da aplicação (ex., C/S ou P2P). 2 O endereço IP do host destino e o número da porta do socket destino. 3 Um protocolo usa handshaking se as duas entidades de comunicação precisam trocar informações de controle antes de começar de fato a interação. 4 As aplicações associadas a esses protocolos requerem que todos os dados da aplicação sejam recebidos na ordem correta e sem gaps.
(fonte: Kurose/Ross) 1 Considere um site e-commerce que deseja manter informações de acesso de cada consumidor. Como isso pode ser feito usando cookies? 2 Suponha um usuário A, usando uma aplicação de email via Web (ex., hotmail, gmail), que envia uma mensagem para um usuário B que acessa seu email usando POP3. Quais são os protocolos da camada de aplicação usados para mover a mensagem de um host para o outro?
Respostas exercícios 1 Quando o usuário visita o site pela primeira vez,o site devolve um número de cookie. Esse número é armazenado no host do usuário e é gerenciado pelo browser. Nas próximas visitas ao site, o browser enviará o número de cookie para o site que então saberá quando esse usuário (mais precisamente o browser) estará visitando novamente o site. 2 A mensagem é enviada do host de A para o seu servidor de email via HTTP. O servidor de email de A envia a mensagem para o servidor de email de B via. O host de B transfere a mensagem para o usuário via POP3.
1 KUROSE and ROSS, Computer Networking, 5ed, 2010.