REDES E SISTEMAS
INTERNET
Camada de Aplicação
Roteiro
•
Introdução
•
DNS
•
Web
•
Correio eletrônico
Introdução
•
Recapitulando:
Protocolo da camada 5
Protocolo da camada 4
Protocolo da camada 3
Protocolo da camada 2
Introdução
•
Layer 5
ou Camada de Aplicação:
• Fornece o uso realmente útil das redes aplicações dos usuários
• Mesmo na camada de aplicação são necessários protocolos de suporte:
• Irá usar o serviço de entrega confiável da camada de transporte para oferecer utilidades para os usuários
DNS - Domain Name System
•
Imagine se você precisasse acessar um site
assim:
•
http://128.111.24.12
•
Ou enviar um e-mail assim
•
danilo@128.111.24.12
•
Quais os problemas com essa abordagem?
•
Solução: usar nomes ao invés de números!
•
Como é feito o mapeamento:
DNS - Domain Name System
•
RFCs 1034 e 1035
•
Essência do DNS:
• Esquema hierárquico de atribuição de nomes baseado no domínio
• Sistema de bancos de dados distribuído para implementar esse esquema de nomenclatura
•
Como funciona?
• Um programa aplicativo chama um procedimento de biblioteca (resolvedor – ex: gethostbyname) passando o nome como
parâmetro
• O resolvedor envia um pacote UDP ao servidor DNS local, que procura o nome e retorna o endereço IP ao resolvedor
DNS - Domain Name System
•
Problema: gerenciar um grande conjunto de
nomes é complexo
• Solução: uso de endereçamento hierárquico
• Semelhante à organização de endereços postais ou números de livros em uma biblioteca
• Estrutura:
•
Mais de 250 domínios de nível superior (coordenados pela
ICANN -
Internet Corporation for Assigned Names and
Numbers)
•
Domínios de nível superior particionados em subdomínios
DNS - Domain Name System
Uma parte do espaço de nomes de domínios da Internet.
DNS - Domain Name System
•
Um nome é definido pelo caminho ascendente
entre ele e a raiz
deinfo.ufrpe.br
eng.yale.edu
DNS - Registros
•
O que precisamos obter do servidor de DNS na
maioria das vezes é o IP, dado o domínio
•
Na prática uma entrada no servidor DNS é uma
tupla:
• Nome do domínio nossa chave da tabela de pesquisa
• Time to live indicação da estabilidade do registro, em segundos
• Class pouco usado, no caso de domínios da Internet é IN
• Type tipo de registro (Vide mais importantes na próxima tabela)
DNS - Registros
•
Tipos de registro e valores:
•
Exemplos de registros:
Tipo Significado Valor
A e AAAA
Endereço IP de um host (AAAA é para IPv6)
Inteiro 32 bits (ou 128 para AAAA)
MX Troca de mensagens de correio Prioridade, domínio disposto a aceitar correio eletrônico
NS Servidor de nomes Nome de um servidor para este domínio
CNAME Nome canônico Nome de domínio
www.ufrpe.br
35403 IN A 200.17.137.39
cs.mit.edu
1800 IN CNAME eecs.mit.edu
gmail.com
3153 IN MX 40 alt4.gmail-smtp-in.l.google.com.
DNS - Registros
•
Tipos de registro e valores
saída do dig:
DNS - Servidores
•
Estrutura descentralizada/distribuída
vários
servidores
•
Divisão em zonas
Espaço de nomes do DNS mostrando a divisão em zonas
DNS - Pesquisa
Origem
Servidor de nomes vu cs
Servidor de nomes edu
Servidor de nomes yale
Servidor de nomes yale cs
1 2 3
4
DNS - Pesquisa
•
Otimização
•
Caching
• Os resultados podem ser armazenados em cache princípio da localidade de referência / temporal
• Campo time to live nas tabelas evitam cache desatualizada
•
Replicação
• Existem vários servidores raízes espalhados pelo mundo!
DNS - Prática
•
Use o aplicativo DIG para obter os registros DSN
de vários sites conhecidos:
• www.google.com, www.amazon.com, www.facebook.com,
www.ufrpe.br
•
Identifique:
• Quais os nomes são mais estáveis (usando o TTL)?
• Quais os nomes possuem mais de um registro?
• O que isso significa?
• Quais os nomes estão associados a servidores que já suportam IPv6?
Web
•
Definição:
•
A Web (WWW- World Wide Web) é uma estrutura
arquitetônica que permite o acesso a documentos
vinculados espalhados por uma infinidade de máquinas
na Internet
•
World Wide Web Consortium (W3C)
Organização
voltada para:
•
O desenvolvimento da Web
•
A
padronização de protocolos
Web
–
Arquitetura
Servidor 1
Cliente
Web
–
Arquitetura
•
Cliente
• Navegadores função original – interpretar HTML
• Passos que ocorrem quando um usuário escreve www.ufrpe.br: 1. O navegador pergunta ao DNS qual é o endereço IP da URL.
2. O DNS responde com 200.17.137.39.
3. O navegador estabelece uma conexão TCP com a porta 80 em
200.17.137.39.
4. O servidor www.ufrpe.br envia um arquivo index.html ou equivalente.
5. A conexão TCP é encerrada.
6. O navegador exibe todo o texto do HTML.
7. O navegador busca e exibe todas as imagens (e outros recursos) que
Web
–
Arquitetura
•
Cliente
Plug-ins e programas auxiliares
(a) Um plug-in de navegador (b) Uma aplicação auxiliar
Interface plugin-browser
Estação do Cliente
Kernel do Browser
Plugin
Estação do Cliente
Browser Programa Auxiliar A execução ocorre em um mesmo processo! Processo 1 Processo 2
Web
–
Arquitetura
•
Servidor
–
essência
•
Aceitar uma conexão TCP de um cliente (um
navegador)
•
Obter o nome do arquivo solicitado
•
Obter o arquivo (do disco)
•
Retornar o arquivo ao cliente
•
Encerrar a conexão TCP
•
Otimizações “óbvias”:
•
Caching
Web
–
Arquitetura
Um servidor da Web multithreaded com um front end e módulos de
processamento.
Módulo de processamento (thread)
Front end
Requisição na entrada
Web
–
Arquitetura
•
URL (Uniform Resource Locator)
•
Identificação única de um recurso na Web
•
Composto de 3 partes:
http://www.cs.vu.nl/video/index-en.html
Protocolo Nome DNS da máquina em que a
página está
Web
–
Arquitetura
•
Solicitação-resposta não mantém estado
Caso
clássico de
e-commerce
•
Cookies
RFC 2109
• Informação enviada pelo servidor Web e gravada no cliente
Web
–
Tipos de Conteúdo
•
Função básica do servidor Web
obter recursos
estático no servidor:
• HTML, XML
• Imagens, áudio
•
O que o Web server padrão não faz?
•
Gerar conteúdo dinâmico
•
Consultar e manipular dados em um SGBD
•
Tecnologias de extensão:
• Scripts CGI, ASP, PHP, Servlets,...
Web
–
HTTP
•
HTTP (HyperText Transfer Protocol) - RFC 2616
•
Protocolo de transferência utilizado em toda Web
•
Conexão TCP na porta 80
•
HTTP 1.0
conexões encerradas por solicitação x
resposta
•
HTTP 1.1
conexões persistentes
•
Mensagens de solicitação e resposta são texto
ASCII semelhante aos protocolos de e-mail
Web
–
HTTP
•
Formato básico de uma requisição:
•
MÉTODO URL VERSÃO_HTTP
•
Ex: GET http://www.ufrpe.br HTTP/1.1
•
Alguns métodos:
Método Descrição
GET Solicita a leitura de uma pagina da Web
HEAD Solicita a leitura de um cabeçalho de pagina da Web PUT Solicita o armazenamento de uma pagina da Web
Web
–
HTTP
•
Resposta:
•
Linha de status
•
Dados adicionais
•
Alguns status:
Códig o
Significado Exemplos
1xx Informação 100 = server agrees to handle client's request
Web
–
HTTP
•
Cabeçalhos:
•
A linha com o nome do método pode ser seguida de
informações adicionais
•
Semelhante aos parâmetros de um método de uma LP
Web
–
HTTP
Tipo Cabeçalho Conteúdo
REQ User-Agent Informações sobre o navegador e sua plataforma Accept-Charset Os conjuntos de caracteres aceitáveis para o cliente Accept-Encoding As codificações de paginas que o cliente pode manipular Host O nome DNS do servidor
Cookie Envia um cookie definido anteriormente de volta ao servidor Ambos Date Data e hora em que a mensagem foi enviada
RES Server Informações sobre o servidor
Content-Length O comprimento da pagina em bytes Content-Type O tipo MIME da pagina
Last-Modified Data e hora da ultima modificação na pagina
Web
–
HTTP
•
Exemplo: o clique em um link para exibição de
uma imagem invocará uma solicitação HTTP
usando GET
GET ...
Web
–
HTTP
–
Requisição GET
Linhas de Cabeçalho
O método HTTP
O caminho do recurso no Servidor
Usando GET,
parâmetros podem ser adicionados na URL
Web
–
HTTP
–
Resposta
Um texto que representa o status do retorno
Um código de status do retorno A versão do
protocolo do servidor
A linha de cabeçalho
Content-type também é conhecida como MIME type. Informa ao
browser que tipo de documento está sendo enviado!
HTML ou
outro conteúdo Linhas
de
Correio Eletrônico
•
Várias RFCs, com destaque para 822
•
Formato básico das mensagens da RFC 822:
Cabeçalho
Linha em branco
Corpo
From: araujo.danilo.r.b@gmail.com
To: abcd@gmail.com
Subject: Teste de e-mail Date: 2011-10-13
Caro abcd,
Olá, isso é um teste! Sds,
Correio Eletrônico - Formato
•
Algumas entradas no cabeçalho:
•
Extensões podem ser criadas usando
X-<novo_header>
Cabeçalho Significado
To: O(s) endereço(s) de correio eletrônico do(s) destinatário(s) principal(is) Cc: O(s) endereço(s) de correio eletrônico do(s) destinatário(s) secundário(s) Bcc: O(s) endereço(s) de correio eletrônico para cópias carbono cegas
From: Endereço do remetente
Date: Data em que a mensagem foi enviada Subject: Assunto da mensagem
Correio Eletrônico - MIME
•
Problemas com RFC 822 original:
• Texto ASCII apenas não atendem algumas categorias de mensagens
• Mensagens em idiomas com acentos (por exemplo, português e alemão)
• Mensagens em símbolos não latinos (hebraico, russo, japonês, árabe)
• Mensagens que não contem textos (por exemplo, áudio ou imagens)
•
MIME (Multipurpose Internet Mail Extensions)
• Continua usando a RFC 822 mas extende para situações que não usam ASCII
• Definido na RFC 1341 e melhorado nas RFCs 2045 a 2049
Correio Eletrônico - MIME
•
Cabeçalhos MIME:
Cabeçalho Significado
MIME-Version: Identifica a versão do MIME
Content-Description: String inteligível que identifica o conteúdo da mensagem
Content-ld: Identificador exclusivo
Content-Transfer-Encoding:
Como o corpo da mensagem é codificado para transmissão
Correio Eletrônico - MIME
•
Content-Transfer-Encoding:
• informa como o corpo da mensagem está codificado para
transmissão através de uma rede que possa fazer alguma objeção a caracteres que não sejam letras, números e outros sinais de
pontuação
• Como transferir os dados binários de uma imagem por uma rede que só aceita ASCII?
• Exemplo de mapeamento BASE 64
• Agrupamentos de 24 bits em 4 unidades de 6 bits
• 000000 A, 000001 B, e assim por diante
• Se o último grupo contem 8 ou 16 bits, são usados = e ==, respectivamente
•
Content-Type: tipo e subtipo da mensagem, separados
por /
Correio Eletrônico - MIME
•
Tipos e subtipos MIME definidos na RFC 2045:
Tipo Subtipo Descricao
Text Plain Texto sem formatacao
Html Texto incluindo formatação HTML
Image Gif Imagem no formato GIF
Jpeg Imagem no formato JPEG
Audio Basic Som audível
Video Mpeg Filme no formato MPEG
Multipart Mixed Recursos independentes na ordem especificada
Uma mensagem em várias partes contendo as alternativas de texto formatado e áudio.
Especifica um delimitador
Correio Eletrônico - Transferência
•
No baixo nível corresponde ao envio de pacotes usando
TCP.
•
Protocolos relacionados:
• SMTP (Simple Mail Transfer Protocol)
• POP (Post Office Protocol)
Correio Eletrônico - SMTP
•
SMTP (Simple Mail Transfer Protocol)
•
Daemon espera por conexões TCP na porta 25
Correio Eletrônico - SMTP
•
Usando SMTP duas máquinas poderiam trocar
e-mails
•
Isso funciona na prática?
•
Quando você envia e recebe um e-mail é usado
SMTP?
Elionor
Carolyn
SMTP (From: elinor@abcd.com; To: carolyn@xyz.com)
Correio Eletrônico
–
POP3
•
Porque só SMTP não funciona bem?
• O que acontece quando Elinor quer enviar a Carolyn uma mensagem
de correio eletrônico e Carolyn não está on-line no momento?
• Estações de usuários não podem ser usadas como servidores 24 x 7
• Uso do conceito de caixa postal as mensagens são enviadas para
um servidor
• Deve existir um protocolo para obter a mensagem a partir do servidor
Elionor
Carolyn
SMTP
Servidor
Correio Eletrônico
–
POP3
•
POP3 (Post Office Protocol 3)
–
RFC 1939
•
Daemon espera por conexões TCP na porta 110
•
Estados:
•
Autorização
•
Transações
Correio Eletrônico
–
IMAP
•
IMAP (Internet Message Access Protocol)
•
RFC 2060, porta TCP 143
•
Padrão de uso de POP
baixar e-mails para HD
•
Padrão IMAP
supõe que o usuário quer ler os
e-mails on-line em computadores diferentes
Correio Eletrônico
•
Considerações...
•
Alguns recursos adicionais oferecidos:
• Daemon de férias
• Filtros (SPAM)
Correio Eletrônico
•
Considerações...
•
Pesquisas apontam que há uma tendência em troca de
mensagens de forma cada vez mais instantânea
•
Uso de cartas x e-mail x redes sociais x aplicativos de
mensagens instantâneas no smartphone
•
A análise é feita por gerações:
• O maior público de novos usuários do Facebook é entre 30 e 50 anos?!
• O público jovem usa mais recursos de mensagens instantâneas do que e-mail e redes sociais?!
•