Buscar

Conc e Prot Internet - Unidade 3


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 50 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

1
UNIDADE 3: CAMADA 
DE APLICAÇÃO
3.1 Conceitos de 
Camada de Aplicação
2
• Escrever programas que
 Executem em diferentes sistemas 
finais, e
 Se comuniquem através de uma rede
‒ Ex.: Web – É um software de servidor 
Web se comunicando com software do 
browser
• Não é preciso escrever software para 
dispositivos do núcleo da rede
 Dispositivos do núcleo da rede não 
executam aplicações do usuário
 As aplicações nos sistemas finais 
permitem rápido desenvolvimento e 
propagação
Criando uma nova aplicação de Rede
3
Definições de protocolo
da camada de aplicação
• Tipos de mensagens trocadas
‒P. ex.: Requisição, resposta
• Sintaxe da mensagem
‒Quais são os campos nas mensagens, e como os campos são 
delineados
• Semântica da mensagem 
‒Significado da informação nos campos
Definições de protocolo
da camada de aplicação
• Regras de quando e como processos enviam e respondem às mensagens
• Protocolos de domínio público
‒Definidos em RFCs
‒Provê interoperabilidade
* P. ex.: HTTP, SMTP, BitTorrent
• Protocolos proprietários
‒P. ex.: Skype, ppstream
4
Algumas aplicações de rede
• E-mail
• Web
• Mensagem instantânea
• Login remoto
• Compartilhamento de 
arquivos P2P
• Jogos em rede multiusuários
• Clipes de vídeo armazenados 
em fluxo contínuo
• Redes sociais
• Voice over IP
• Vídeoconferência em tempo 
real
• Computação em grade
Top 8 Tendências de Desenvolvimento 
Web de 2019
• 1. AI or Bots
• 2. JavaScript
• 3. Progressive Web App
• 4. Single Page Application
• 5. Mobile-Friendly Website
• 6. Motion UI
• 7. Blockchain Technology
• 8. Cybersecurity
https://www.codingdojo.com/blog/web‐development‐trends‐of‐2019
5
As 10 principais linguagens de 
programação do mundo - 2019
https://www.geeksforgeeks.org/top-10-
programming-languages-of-the-world-
2019-to-begin-with/
https://hackernoon.com/best-coding-
languages-to-learn-in-2019-
b49b49250a25
https://hackernoon.com/top-3-
programming-language-to-watch-out-in-
2019-95995e81ad2b
1. JavaScript
2. Python
3. Java
4. C/CPP
5. PHP
6. Swift
7. C#
8. Ruby
9. Objective – C
10. SQL
Arquiteturas de aplicação
• Cliente-servidor
‒Incluindo Centros de dados/Cloud computing
• Peer-to-peer (P2P)
• Híbrida de cliente-servidor e P2P
6
• Servidor: 
 Hospedeiro sempre ligado
 Endereço IP permanente
 Fornece serviços solicitados pelo cliente
‒ Server farms por expansão
• Clientes:
 Comunicam-se com o servidor
 Pode ser conectado intermitentemente
 Pode ter endereço IP dinâmico
 Não se comunicam diretamente uns com 
os outros
Arquitetura Cliente-Servidor
Modelo Cliente Servidor
7
• Vantagens:
 Segurança
 Controle central de arquivos
 Servidores dedicados e 
otimizados 
 Os usuários não se preocupam 
com a administração
• Desvantagens:
 Custo
‒ Hardware
‒ Software
 É necessário um administrador
 Baixa escalabilidade
 Baixa disponibilidade
Arquitetura Cliente-Servidor
Centros de dados da Google
• Custo estimado de 
construção do centro de 
dados em The Dalles, 
Oregon: US$ 1,2 bilhões*
• Google gastou US$10,2 
bilhões com centros de 
dados em 2016*
• Cada centro de dados usa 
valores aproximados de 50 
a 100 megawatts de 
potência
* http://www.datacenterknowledge.com/google-data-center-faq-part-2/; ** http://static.panoramio.com/photos/large/27111050.jpg
8
• Nenhum servidor está sempre ligado
• Sistemas finais arbitrários se 
comunicam diretamente
• Pares são conectados 
intermitentemente e mudam 
endereços IP
Altamente escaláveis, mas difíceis 
de administrar.
Arquitetura P2P pura
• Vantagens
 Sem investimento extra com 
servidores
 Alta escalabilidade
 Alta disponibilidade
 Sem administrador
• Desvantagens
 Sem organização central
‒ Difícil localização de arquivos
‒ Duplicações desnecessárias 
 Os usuários são os 
administradores
 Sem segurança
Arquitetura P2P pura
9
Híbrida de cliente-servidor e P2P
• Híbrida: Integra os conceitos da arquitetura cliente-servidor com P2P
‒ Cliente Servidor: Normalmente um servidor para autenticação e localização
‒ P2P: Depois de localizado, troca direta entre os pares
• Exemplos:
‒ Skype
* Aplicação P2P voice-over-IP P2P
* Servidor centralizado: achando endereço da parte remota
* Conexão cliente-cliente: direta (não através de servidor)
‒ Mensagem instantânea
* Bate-papo entre dois usuários é P2P
* Serviço centralizado: detecção/localização da presença do cliente
• Usuário registra seu endereço IP com servidor central quando entra on-line
• Usuário conecta servidor central para descobrir endereços IP dos parceiros
3.2 Comunicação de 
processos
10
Comunicação de processos
• Processo: Abstração de um programa que está em execução em um 
hospedeiro
‒ Dentro do mesmo hospedeiro: Dois processos se comunicam 
usando comunicação interprocesso (definido pelo Sistema 
Operacional)
‒ Processos em diferentes hospedeiros: Processos se 
comunicam por meio de troca de mensagens
• Processo cliente: Processo que inicia a comunicação
• Processo servidor: Processo que espera para ser contatado
• Nota: Aplicações com arquiteturas P2P possuem processos cliente e 
processos servidor
• Um processo envia/recebe mensagens 
para/de seu socket
• É a interface de comunicação entre a camada 
de aplicação e camada de transporte
• Socket análogo a uma “porta 
de casa”
 O processo de envio empurra a mensagem para 
fora da “porta”
 O processo de envio confia na infra-estrutura de 
transporte no outro lado da porta que leva a 
mensagem para o socket no processo de 
recepção
Socket
11
De qual serviço de transporte uma 
aplicação necessita?
• Perda de dados
‒ Algumas aplicações (ex.: áudio) podem tolerar alguma perda 
‒ Outras aplicações (ex.: transferência de arquivos, telnet) exigem transferência de 
dados 100% confiável 
• Temporização
‒ Algumas aplicações (ex.: telefonia Internet, jogos interativos) exigem baixos atrasos 
para serem “efetivos”
• Banda passante / Vazão
‒ Algumas aplicações (ex.: multimídia) exigem uma banda mínima para serem 
“efetivas”
‒ Outras aplicações (“aplicações elásticas”) melhoram quando a banda disponível 
aumenta” 
• Segurança
‒ criptografia, integridade de dados,…
Serviços dos protocolos de transporte 
da Internet
• Serviço TCP
‒ Orientado à conexão
* Conexão requerida entre processos cliente e servidor
‒ Transporte confiável entre os processor de envio e recepção
‒ Controle de fluxo
* O transmissor não sobrecarrega o receptor 
‒ Controle de congestionamento
* Protege a rede do excesso de tráfego 
‒ Não oferece: 
* Garantias de temporização (atrasos) e de banda mínima
12
Serviços dos protocolos de transporte 
da Internet
• Serviço UDP
‒ Transferência de dados não confiável entre os processos transmissor 
e receptor
‒ Não oferece:
* Estabelecimento de conexão, confiabilidade, controle de fluxo e de 
congestionamento, garantia de temporização e de banda mínima
Serviços dos protocolos de transporte 
da Internet
• Serviço TCP
‒ Orientado à conexão
* Conexão requerida entre processos cliente e servidor
‒ Transporte confiável entre os processor de envio e recepção
‒ Controle de fluxo
* O transmissor não sobrecarrega o receptor 
‒ Controle de congestionamento
* Protege a rede do excesso de tráfego 
‒ Não oferece: 
* Garantias de temporização (atrasos) e de banda mínima
• Serviço UDP
‒ Transferência de dados não confiável entre os processos transmissor e receptor
‒ Não oferece:
* Estabelecimento de conexão, confiabilidade, controle de fluxo e de congestionamento, garantia de temporização e de banda mínima
Pergunta: Por que ambos? Por que existe o UDP?
13
Aplicação
Transf. Arquivos
E-mailDocumentos web
Áudio/vídeo 
Tempo real
Áudio/vídeo 
Armazenado
Jogos interativos
Mensagem
Instantânea
Perda de dados
Sem perda
Sem perda
Sem perda
Tolerante a perda
Tolerante a perda
Tolerante a perda
Sem perda
Vazão
Elástica
Elástica
Elástica
Áudio: 5 kbps-1 mbps
Vídeo:10 kbps-5 mbps
O mesmo que antes 
Poucos kbps ou mais
Elástica
Sensível ao tempo
Não
Não
Não
Sim, centenas de ms
Sim, alguns seg
Sim, centenas de ms
Sim e não
Requisitos de serviço de transporte 
das aplicações comuns
Aplicação
E-mail
Acesso remoto
Web 
Transf. Arquivos
Multimídia com
fluxo contínuo
Telefonia da
internet
Tradução de 
nomes
Gerenciamento
de redes
Protocolo da camada
de aplicação
SMTP [RFC 2821]
Telnet [RFC 854]
HTTP [RFC 2616]
FTP [RFC 959]
HTTP (p. e., Youtube), 
RTP [RFC 1889]
SIP, RTP, proprietário
(p. e., Skype)
DNS [RFC 1035]
SNMP 
Protocolo de 
transporte básico
TCP
TCP
TCP
TCP
TCP ou UDP
normalmente UDP
tipicamente UDP
tipicamente UDP
Aplicações da Internet: aplicação,
protocolos de transporte
14
Protocolos de aplicação 
e transporte
3.3 Protocolos 
relevantes para 
aplicações Internet
15
O que é Rede de Computadores?Serviço Web e Protocolo HTTP
Serviço World Wide Web
• Serviço World Wide Web
‒Serviço de rede de documentos em hipermídia que são interligados, através dos links, e executados na Internet
‒Documentos hipermídia são as páginas web
‒Utiliza o protocolo HTTP (Hypertext Transfer Protocol)
* Transporta apenas texto, qualquer arquivo que não seja texto deve ser transformado em texto
‒Órgão regulamentador: W3C Consortium – http://www.w3.org
16
Serviço World Wide Web
• Serviço World Wide Web
‒Serviço cliente-servidor
‒Cliente
* Navegador (browser), ex.: Chrome, Edge, Firefox, Opera, Safari, etc...
‒Servidor
* Servidor Web, ex.: Apache HTTP Server, IIS, etc...
Web Services
• Evolução → Web Services
‒Solução utilizada na integração de sistemas e na 
comunicação entre aplicações diferentes
‒SOAP e REST permitem que você crie sua própria API (Application Programming Interface)
‒Isso possibilita a transferência de dados de um aplicativo para outros aplicativos
‒Uma API recebe solicitações e envia respostas por meio de protocolos da Internet, como HTTP, SMTP e outros
17
Web Services
• SOAP (Simple Object Access Protocol)
‒Protocolo padronizado (W3C) que envia mensagens 
usando outros protocolos, como HTTP e SMTP
‒Vem com regras rígidas e recursos de segurança 
avançados, como conformidade e autorização do ACID
‒Permite apenas XML como formato de mensagens
‒https://www.w3.org/TR/soap/
https://raygun.com/blog/soap-vs-rest-vs-json/
Web Services
• REST (Representational State Transfer)
‒Não é um protocolo, mas um estilo arquitetural
‒Conjunto de diretrizes a seguir
‒Criado para resolver os problemas do SOAP
‒Mais flexível, apenas diretrizes soltas e permite aos 
desenvolvedores implementar recomendações à sua maneira
‒Diferentes formatos de mensagens, como HTML, JSON, XML e 
texto simples
‒Serviços da Web criados seguindo REST são RESTful
https://raygun.com/blog/soap-vs-rest-vs-json/
18
https://docs.oracle.com/cd/E76467_01/alloc/pdf/141/html/operations_guide/alloc-og_restful-impl.htm
https://www.oreilly.com/library/view/restful-net/9780596155025/ch04.html
Web e HTTP
• Página Web formada por objetos
‒ Objeto pode ser arquivo HTML, áudio, imagem JPEG, Java applet,…
‒ Página Web consiste de arquivo-HTML base que inclui vários objetos 
referenciados
• Cada objeto endereçado por uma URL
‒ Estrutura:
protocolo://máquina:porta/caminho/recurso
‒ Exemplo:
http://www.resultado.com.br:80/final/2010/aprovados.htm
Protocolo Máquina Porta Caminho Recurso
19
• HTTP: Hypertext Transfer Protocol
 Protocolo da camada de aplicação da Web
 Até HTTP/2 utiliza protocolo de transporte TCP
• Modelo cliente/servidor
 Cliente: browser que solicita, recebe e apresenta 
objetos da Web 
 Servidor: envia objetos em resposta a pedidos
• Versões
 HTTP 1.0 (1996): RFC 1945
 HTTP 1.1 (1999): RFC 2616
 HTTP/2 (2015): RFC 7540
 HTTP/3 (2018): draft-ietf-quic-http-17
Visão geral do HTTP
Visão geral do HTTP
:: Funcionamento básico do HTTP ::
1.Cliente inicia conexão TCP (via socket) para o servidor na porta 80
2.Servidor aceita uma conexão TCP do cliente
3.Cliente envia mensagens HTTP de requisição(mensagens do protocolo de 
camada de aplicação) através do browser (cliente HTTP) para o servidor Web 
(servidor HTTP). O servidor envia o objeto solicitado através de mensagens de 
resposta.
4.A conexão TCP é fechada
• HTTP é “stateless”: Servidor não mantém informação sobre os 
pedidos passados pelos clientes
‒ Protocolos que mantêm informações de “estado” são complexos!
20
Conexões HTTP
• HTTP não persistente
‒ No máximo, um objeto é enviado sobre uma conexão TCP
* Cada objeto é solicitado e enviado através de uma única conexão TCP
‒ O HTTP/1.0 utiliza HTTP não persistente
Conexões HTTP
• HTTP persistente
‒Múltiplos objetos podem ser enviados sobre uma conexão TCP entre o cliente e o servidor
‒O HTTP/1.1 utiliza conexões persistentes em seu modo padrão 
‒O HTTP persistente tem duas variantes
* Persistente sem pipelining:
• O cliente emite novas requisições apenas quando a resposta anterior for recebida
* Persistente com pipelining:
• O cliente envia requisições assim que encontra um objeto referenciado, respeitando o limite configurado no browser
• O servidor pode estar configurado para responder a um limite máximo de conexões de uma mesma origem
21
1a. Cliente HTTP inicia conexão TCP ao 
servidor HTTP (processo) em 
www.unicarioca.edu.br. 
Porta 80 é a default para o servidor 
HTTP.
2. Cliente HTTP envia HTTP mensagem de 
requisição (contendo a URL) para o 
socket da conexão TCP 
1b. Servidor HTTP no hospedeiro 
www.unicarioca.edu.br esperando pela 
conexão TCP na porta 80. “Aceita” 
conexão, notificando o cliente
3. Servidor HTTP recebe mensagem de 
pedido, forma uma mensagem de 
resposta contendo o objeto solicitado 
(graduacao/index.html), envia 
mensagem para o socket
Tempo
(contém texto,referências a 10 imagens jpeg)
Usuário entra com a URL: www.unicarioca.edu.br/graduacao/index.html
5. Cliente HTTP recebe mensagem de resposta contendo o arquivo html, apresenta o 
conteúdo html. Analisando o arquivo html, encontra 10 objetos jpeg referenciados
6. Passos 1-5 são repetidos para cada um 
dos 10 objetos jpeg.
4. Servidor HTTP fecha conexão TCP. 
Tempo
22
Mensagem HTTP request: formato 
geral
Carriage return, 
line feed 
indica fim da 
mensagem
•Dois tipos de mensagens HTTP: Request, Response
• HTTP Request Message:
‒ ASCII (Formato de texto legível para humanos – HTTP 1.0 e 1.1)
GET /somedir/page.html HTTP/1.0 
User-agent: Mozilla/4.0 
Accept: text/html, image/gif,image/jpeg 
Accept-language:fr
(extra carriage return, line feed) 
Linha de pedido
(comandos GET, 
POST, 
HEAD ) Linhas de
cabeçalho
Mensagem HTTP request
23
Tipos de métodos
Método HTTP 1.0 HTTP 1.1
GET
Método que solicita algum recurso ou objeto ao servidor   
HEAD
Solicita informações de um determinado objeto sem que esse seja enviado ao 
cliente apenas para testa a validade do último acesso
 
POST
Método usado para envio de arquivo dados ou formulário HTML ao servidor  
OPTIONS
Por meio desse método o cliente obtém as propriedades do servidor 
DELETE
Informa por meio do URL o objeto a ser deletado 
TRACE
Para enviar mensagem do tipo loopback para teste 
PUT
Aceita criar ou modificar algum objeto do servidor 
CONNECT
Comunicar com servidores Proxy 
Entrada de formulário
• Em entradas de formulários:
Método POST:
‒ Página Web frequentemente inclui entradade formulário
‒ A entrada é enviada para o servidor no corpo da entidade
Método GET:
‒ A entrada é enviada no campo de URL da linha de requisição:
www.carioca.br/procuraaluno.php?matricula=1234&nome=jose
24
HTTP/1.0 200 OK 
Date: Thu, 06 Aug 1998 12:00:15 GMT 
Server: Apache/1.3.0 (Unix) 
Last-Modified: Mon, 22 Jun 1998 …... 
Content-Length: 6821 
Content-Type: text/html
data data data data data ... 
Linha de status
(protocolo
código de status 
frase de status)
Linhas de
cabeçalho
Dados, ex.: 
arquivo html
Mensagem HTTP response
Códigos de status das respostas
• Na primeira linha da mensagem de resposta servidor -> cliente.
• Séries de código existentes:
‒ 100: Informational (Informação)
* Utilizada para enviar informações para o cliente de que sua requisição foi recebida e está sendo processada 
‒ 200 
* 200 OK
* Sucesso: Requisição bem-sucedida, objeto requisitado a seguir nesta mensagem
‒ 300 
* 301 Moved permanently
• Redirecionamento: Objeto requisitado foi movido, nova localização especificada a seguir nesta 
mensagem (Location:)
‒ 400
* 400 Bad request
• Erro no cliente: Mensagem de requisição não compreendida pelo servidor
* 404 Not Found
• Documento requisitado não encontrado neste servidor
‒ 500 
* 505 HTTP version not supported
• Erro no servidor: ocorreu um erro no servidor ao cumprir uma requisição válida. 
• Mais exemplos em http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6 
25
HTTP Request
Cabeçalho
Corpo da mensagem
Campos de informações com seus 
valores
HTTP Reply 200 ok
Cabeçalho
Corpo da mensagem
26
HTTP Reply 304 Not Modified
Cabeçalho
Corpo da mensagem
HTTP Request – Envio Informações
Cabeçalho
Corpo da mensagem
Envio de informações pelo método Get
GET /cert/hit.dll?sitio_id=20607&path=/capa/‐
&referer=&size=1280&colors=32&java=true&flash=9
27
Estado usuário-servidor: cookies
• Muitos sites importantes usam 
cookies
Quatro componentes:
1) linha de cabeçalho de cookie da 
mensagem de resposta HTTP
2) linha de cabeçalho de cookie na 
mensagem de requisição HTTP
3) arquivo de cookie na máquina do 
usuário, controlado pelo navegador do 
usuário
4) banco de dados de apoio no site Web
Exemplo:
• Usuário sempre acessa a Internet 
pelo PC
• visita um site de comércio 
eletrônico pela primeira vez
• quando as primeiras requisições 
HTTP chegam ao site, este cria: 
 ID exclusivo
 entrada no banco de dados de 
apoio para o ID
cliente servidor
resposta http normal
resposta http normal
arq. de cookie
uma semana depois:
requisição http normalcookie: 1678 ação
específica
do cookie
acessa
ebay 8734
requisição http normal servidor Amazon
cria ID 1678
para usuário cria entrada
resposta http normal Set-cookie: 1678 
ebay 8734
amazon 1678
requisição http normalcookie: 1678 ação
específica
do cookie
acessa
ebay 8734
amazon 1678
banco de
dados de
apoio
Estado usuário-servidor: cookies
já existe
28
Estado usuário-servidor: cookies
O que os cookies podem ter:
• Autorização
• Carrinhos de compras
• Recomendações
• Estado da sessão do usuário (e-mail 
da web)
Cookies e privacidade:
r Cookies permitem que os 
sites descubram muito sobre 
você
r Você pode fornecer nome e 
e-mail aos sites
aparte
Como manter o “estado”:
r Extremidades do protocolo: mantêm estado no emissor/receptor por 
múltiplas transações
r Cookies: mensagens HTTP transportam estado
Caches Web (servidor proxy)
• Objetivo do Cache Web:
 Satisfazer a requisição do cliente sem 
envolver servidor de origem
• Usuário prepara navegador: acessos 
à Web via cache
• Navegador envia todas as 
requisições HTTP ao cache
 Objeto no cache: cache retorna objeto 
 Ou cache requisita objeto do servidor de 
origem, depois retorna objeto ao cliente
cliente
servidor
proxy
cliente
servidor
de origem
servidor
de origem
29
Mais sobre caching Web
• Cache atua como cliente e servidor
• Normalmente, cache é instalado por ISP (da universidade, 
empresa, residencial)
• Por que caching Web?
 Reduz tempo de resposta à requisição do cliente
 Reduz tráfego no enlace de acesso de uma instituição
GET condicional
• Objetivo:
 não enviar objeto se o cache tiver 
versão atualizada
• cache: especifica data da cópia em 
cache na requisição HTTP
If-modified-since: <data>
• servidor: resposta não contém objeto se 
a cópia em cache estiver atualizada: 
HTTP/1.0 304 Not Modified
cache servidor
msg requisição HTTP
If-modified-since: 
<data>
resposta HTTP
HTTP/1.0 
304 Not Modified
objeto 
não
modificado
msg requisição HTTP
If-modified-since: 
<data>
resposta HTTP
HTTP/1.0 200 OK
<dados>
objeto 
modificado
30
Hyper Text Transfer Protocol over SSL 
(HTTPS)
• Protocolo de aplicação da web que utiliza criptografia
‒Protocolo de criptografia: Transport Layer Security (TLS), 
anteriormente chamado Secure Sockets Layer (SSL)
• Garante privacidade (criptografia)
• Garante a identidade das partes envolvidas em uma 
transferência
• Porta 443/TCP
https://nome_máquina/recurso
HTTP/2
• HTTP/2 foi desenvolvido a partir do protocolo experimental SPDY (“Speedy”), criado pelo Google
• Benefícios incluem:
‒ Multiplexação e concorrência: Várias requisições podem ser enviadas sucessivamente em uma mesma conexão TCP, eliminando a necessidade de múltiplas conexões entre o cliente e o servidor
‒ Priorização de fluxo: O cliente pode indicar ao servidor que alguns recursos são mais importantes que outros
‒ Compressão de cabeçalho: O Cabeçalho HTTP é reduzido drasticamente
‒ Server push: O servidor pode enviar ao cliente recursos que ainda não foram solicitados
31
HTTP/2
• HTTP/2 é um protocolo binário ao invés de textual
• Com isso temos os conceitos de:
‒Quadro: é a nova unidade básica de comunicação, que 
substitui o tradicional formato cabeçalho e corpo da 
mensagem de requisições/respostas
‒Fluxo: é uma comunicação lógica simples de requisição e 
resposta
HTTP/2
https://hpbn.co/http2/; https://http2.akamai.com/
Camada de enquadramento binário
Multiplexação
32
O que é Rede de Computadores?
Transferência de 
arquivos e protocolo 
FTP
• Transferência de arquivos de e para o computador remoto
• Modelo cliente servidor
 Cliente: lado que inicia a transferência (seja de ou para o lado remoto)
 Servidor: hospedeiro remoto
• FTP: RFC 959
• FTP servidor: porta 21
FTP: O protocolo de transferência de 
arquivo
33
Cliente FTP contata o servidor FTP na porta 21 especificando o TCP como protocolo de transporte
Cliente obtém autorização pela conexão de controle
Cliente procura o diretório remoto enviando comandos pela conexão de controle
Quando o servidor recebe um comando para uma transferência de arquivo, ele abre uma conexão de dados TCP para o cliente
 Após a transferência de um arquivo, o servidor fecha a conexão
 Servidor abre uma segunda conexão de dados TCP para transferir outro arquivo
Conexão de controle: “FORA DA BANDA” (dados são enviados pela porta 20)
 Servidor FTP mantém “estado”: diretório atual, autenticação anterior
FTP: Controle separado, conexões de 
dados
Comandos e respostas FTP
Exemplos de comandos:
• enviado como texto ASCII pelo canal de 
controle
• USER nome-usuário
• PASS senha
• LIST retorna lista de arquivos no diretório 
atual
• RETR nome-arquivo recupera (apanha) 
arquivo
• STOR nome-arquivo armazena (coloca) 
arquivo no hospedeiro remoto
Exemplos de códigos de retorno:
• código e frase de estado (como no HTTP)
• 331 Username OK, password 
required
• 125 data connection already open; 
transfer starting
• 425 Can’t open data connection
• 452 Error writing file
34
O que é Redede Computadores?Acesso Remoto
• Telnet é um protocolo cliente-servidor usado para permitir a comunicação entre 
computadores ligados numa rede (exemplos: rede local / LAN, Internet), 
 Telnet é um protocolo de login/acesso remoto
 Utiliza o protocolo de transporte TCP
 Utiliza porta 23
 Os dados/comandos são trafegados em claro, inclusive a login/senha
• O serviço SSH é a alternativa para acesso remoto que implementa criptografia
‒ Utiliza porta 22
Terminal Remoto
35
Exemplo de Telnet
O que é Rede de Computadores?
Serviço de correio 
eletrônico e protocolos 
SMTP, POP3 e IMAP
36
Três componentes principais:
1. Agentes de usuário 
2. Servidores de correio
3. Simple mail transfer protocol: SMTP
1. Agente de usuário:
 “Leitor de correio”
 Composição, edição, leitura de mensagens de 
correio
‒ Ex.: Eudora, Outlook, elm, Mozilla 
Thunderbird
 Mensagens de entrada e de saída são 
armazenadas no servidor
caixa de entrada
do usuário
fila de
msg. de saída
mail
server
agente
usuário
serv.
correio
serv.
correio
SMTP
SMTP
agente
usuário
agente
usuário
agente
usuário
agente
usuário
Correio Eletrônico - Componentes
agente
usuário
2. Servidores de correio
 Caixa postal contém mensagens que chegaram 
(ainda não lidas) para o usuário
 Fila de mensagens contém as mensagens de 
correio a serem enviadas
3. Protocolo SMTP 
Permite aos servidores de correio trocarem mensagens 
entre si
 Cliente: servidor de correio que envia
 “Servidor”: servidor de correio que recebe
Correio Eletrônico - Componentes
caixa de entrada
do usuário
fila de
msg. de saída
mail
server
agente
usuário
serv.
correio
serv.
correio
SMTP
SMTP
agente
usuário
agente
usuário
agente
usuário
agente
usuário
agente
usuário
37
Correio eletrônico: SMTP
• SMTP usa TCP para transferência confiável de mensagens de correio do cliente ao servidor, porta 25
• Transferência direta: servidor envia direto para o servidor de destino
• Três fases de transferência‒ Handshaking (apresentação)‒ Transferência de mensagens‒ Fechamento
• Interação comando/resposta‒ Comandos: texto ASCII‒ Resposta: código de status e frase
1.Alice usa o agente de usuário (UA) para compor a mensagem e “para” bob@someschool.edu
2.O agente de usuário dela envia a mensagem para o seu servidor de correio; a mensagem é colocada na fila de mensagens
3.O lado cliente do SMTP abre uma conexão TCP com o servidor de correio do Bob
4.O cliente SMTP envia a mensagem de Alice pela conexão TCP
5.O servidor de correio de Bob coloca a mensagem na caixa de correio de Bob
6.Bob invoca seu agente de usuário para ler a mensagem
agente
usuário
serv.
correio
serv.
correio agente
usuário
1
2 3 4 5
6
Cenário: Alice envia mensagem para 
Bob
38
Exemplo de interação SMTP
o S: 220 hamburger.edu 
o C: HELO crepes.fr 
o S: 250 Hello crepes.fr, pleased to meet you 
o C: MAIL FROM: <alice@crepes.fr> 
o S: 250 alice@crepes.fr... Sender ok 
o C: RCPT TO: <bob@hamburger.edu> 
o S: 250 bob@hamburger.edu ... Recipient ok 
o C: DATA 
o S: 354 Enter mail, end with "." on a line by itself 
o C: Você gosta de ketchup? 
o C: Que tal picles? 
o C: . 
o S: 250 Message accepted for delivery 
o C: QUIT 
o S: 221 hamburger.edu closing connection
Formato da mensagem de correio
• 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
39
• Linhas de cabeçalho, 
ex.:
 To:
 From:
 Subject:
diferente dos 
comandos HTTP
• Corpo
 A “mensagem”, 
ASCII somente 
com caracteres
header
body
linha 
em branco
Formato da mensagem de correio
Exemplo de mensagem
Received: from cliente.br by servidor.br; 16 Jul 06 10:30:01 GMT
Received: from maquina.cliente.br by cliente.br; 16 Jul 06 10:29:58 GMT
From: usuario@cliente.br
To: usuario@servidor.br
Subject: Teste
Teste de envio de correio.
40
• MIME: Multimedia Mail Extension
• Permite transmitir os arquivos que não são texto pelo serviço de correio eletrônico
 Ex: imagens, vídeos, documentos do MS Office, etc...
• Linhas adicionais no cabeçalho declaram o tipo de conteúdo MIME 
From: alice@crepes.fr 
To: bob@hamburger.edu 
Subject: Picture of yummy crepe. 
MIME-Version: 1.0 
Content-Transfer-Encoding: base64 
Content-Type: image/jpeg 
base64 encoded data ..... 
......................... 
......base64 encoded data 
Dados multimídia
tipo, subtipo, 
declaração de parâmetro
Método usado
para codificar dados
Versão da MIME
Dados codificados
Formato da mensagem: Extensão 
Multimídia
• SMTP: Realiza a entrega e armazenamento no servidor do destino
• Protocolos de acesso: Recuperam mensagens do servidor 
 POP: Post Office Protocol [RFC 1939]
‒ Autorização (agente <-->servidor) e download 
 IMAP: Internet Mail Access Protocol [RFC 1730]
‒ Maiores recursos (mais complexo)
‒ Manipulação de mensagens armazenadas no servidor
 HTTP: Hotmail , Yahoo! Mail etc.
Protocolos de Acesso
41
Protocolo POP3
fase de autorização
• comandos do cliente: 
 user: declare “username”
 pass: senha
• respostas do servidor
 +OK
 -ERR
fase de transação, cliente:
• list: lista números de msg.
• retr: recupera mensagem por número
• dele: exclui
• quit
C: list 
S: 1 498 
S: 2 912 
S: . 
C: retr 1 
S: <message 1 contents>
S: . 
C: dele 1 
C: retr 2 
S: <message 1 contents>
S: . 
C: dele 2 
C: quit 
S: +OK serv. POP3 desconectando
S: +OK POP3 server ready 
C: user bob 
S: +OK 
C: pass hungry 
S: +OK usuário logado com sucesso
O que é Rede de Computadores?Servidor de Nomes de Domínios (DNS)
42
• DNS –Domain Name System
 Base de dados distribuída, implementada numa hierarquia de muitos servidores 
de nomes que é organizado em uma hierarquia de domínios
 Protocolo de camada de aplicação
‒ Dispositivos se comunicam com servidores de nomes para resolver nomes (tradução 
nome -> endereço)
 O uso de nomes facilita a memorização do usuário ao invés de decorar números IPs
ou MAC address
Servidor de Nomes de Domínios (DNS)
Componentes do serviço DNS
• Composto de:
1. Três tipos (classes) de 
servidores de nomes
a. Raiz
b. De domínio de alto nível 
(Top-Level Domain –
TLD)
c. Com autoridade
2. Servidores DNS locais
43
Componentes do serviço DNS
1. Classes de servidores de nomes
a. Raiz
* São contatados pelos servidores de nomes locais que não podem resolver um nome
b. De domínio de alto nível (Top-Level Domain – TLD)
* gTLD (generic TLD): Responsáveis pelos domínios genéricos
– .com, .org, .net, .edu, .arpa, ...
* ccTLD (country code TLD): Domínios top-level nacionais (conforme norma iso 3166)
– .uk, .fr, .ca, .jp, .br, ...
c. Com autoridade
* Servidores DNS de organizações
Servidor de nomes local
2. Servidor DNS local
‒ Não pertence estritamente a uma hierarquia
‒ Cada ISP (ISP residencial, companhia, universidade) possui um
‒ Também chamado de “servidor de nomes default”
• Quando um hospedeiro faz uma pergunta a um DNS, a pergunta é 
enviada para seu servidor DNS local
‒ Age como um proxy, encaminhando as perguntas para dentro da 
hierarquia
44
Como a consulta DNS funciona
• O nome absoluto correspondente ao conjunto das etiquetas dos nós, 
separados por pontos, e terminado por um ponto final, é chamado 
Nome de Domínio totalmente Qualificado (FQDN - Fully Qualified
Domain Name)
Comunicação entre Servidores
• Para consulta
‒Porta 53 e protocolo UDP
• Para transferência de zona
‒Porta 53 e protocolo TCP
45
hospedeiro
solicitante
cis.poly.edu
gaia.cs.umass.edu
servidor DNS raiz
serv. DNS local
dns.poly.edu1
2
3 4
5
6
serv. DNS com autoridade
dns.cs.umass.edu
78
servidor DNS TLD
Exemplo de resolução de nome DNS 
(1)
• Hospedeiro em cis.poly.edu 
quer endereço IP para 
gaia.cs.umass.edu
• Consulta iterativa ou repetida:
 Servidor chamado responde 
com nome do servidor a 
contactar
‒ “Não conheço esse 
nome, mas pergunte a 
este servidor”
hospedeiro
solicitante
cis.poly.edu gaia.cs.umass.edu
serv. DNS raiz
serv. DNS local
dns.poly.edu
1
2
45
6
serv. DNS com autoridade
dns.cs.umass.edu
7
8
serv. DNS TLD
3
• Consulta recursiva:
 Transfere a resolução de 
nome para o servidor de 
nomes contactado
Exemplo de resolução de nome DNS 
(2)
46
Tipos de Zonas
• As informações sobre o DNS são armazenadas em zonas
• Em uma zona, poderão haver informações sobre um ou mais domínios
• Zona de pesquisa Direta
‒ Primárias
‒ Secundárias
• Zona de pesquisa Reversa
‒ Primárias
‒ Secundárias
Zona de Pesquisa Direta
• Zona de pesquisa direta
‒O tipo de resolução de nomes mais utilizada
‒Nesse tipo de resolução de nome, o cliente possui o nome 
DNS e precisa localizar o endereço IP associado em esse 
nome
47
Zona de Pesquisa Reversa
• Zona de pesquisa reversa
• Cliente informa endereço IP e solicita o nome DNS
‒Uma pesquisa inversa assume a forma de pergunta, como 
"Pode me informar o nome DNS do computador que usa o 
endereço IP 192.168.1.20"? 
* Utiliza-se o domínio in-addr.arpa
* Para criar o espaço para nome inverso, os subdomínios dentro do domínio in-
addr.arpa são formados usando a ordem inversa dos números na notação 
decimal com pontos dos endereços IP.
• 1.168.192. in-addr.arpa
Zona Primária, secundária
• Zona primária
‒Zona autoritativa para um domínio
‒ É chamada primária porque ela ainda não existe e está sendo criada 
para conter as informações do domínio – p.ex., o domínio xyz.com.br
• Zona secundária
‒Zona “espelho” de uma zona primária
‒Precisa ser atualizada freqüentemente para manter a 
consistências entre zonas
48
Tipos de registros
• As zonas têm como base um conceito de autoridade de servidor
• Quando um servidor DNS é configurado para carregar uma zona, ele usa dois tipos de REGISTROS DE RECURSOS para determinar as propriedades de autoridade da zona
‒ Primeiro, o Registro de Recurso de Início de Autoridade (SOA)indica: 
* O nome da ORIGEM da zona
* O nome do servidor que é a origem primária das informações sobre a zona
* Ele também indica outras propriedades básicas da zona
Tipos de registros
‒Em seguida, o Registro de Recurso do Servidor de 
Nomes (NS) é usado para notificar quais servidores DNS 
são designados como autorizados para a zona
* Listando um servidor no RR (Registro de Recurso) NS, ele se torna 
conhecido para outros como um servidor autorizado para a zona
* Isso significa que todo servidor especificado no RR NS deve ser 
considerado uma origem autorizada por outros e é capaz de 
responder com segurança todas as consultas feitas para nomes 
incluídos na zona
49
Registros SOA e NS
• Os registros de recursos SOA e NS ocupam uma 
função especial na configuração da zona
• Eles são registros obrigatórios para qualquer zona e 
são normalmente o primeiro dos registros de recursos 
listados nos arquivos
Registros SOA e NS
• Exemplos
‒SOA
* @ IN SOA nameserver.example.microsoft.com. postmaster.example.microsoft.com. ( 
1 ; serial number
3600 ; refresh [1h] 
600 ; retry [10m] 
86400 ; expire [1d] 
3600 ) ; min TTL [1h]
‒NS
* example.microsoft.com. IN NS nameserver1.example.microsoft.com 
50
Tipos de Registros
• Após criar uma zona, os registros de recursos adicionais necessários precisam ser 
adicionados a ela. A maioria dos registros de recursos (RRs) a serem adicionados são:
‒ Host(A)
* Faz o mapeamento de um nome DNS para um endereço IPv4, ex.:
• srv01.abc.com.br IN A 100.100.200.150
‒ Alias - Canonical Name (CNAME)
* Mapeia um alias (apelido) ou nome DNS alternativo, ex.:
• www.abc.com.br. CNAME srv01.abc.com.br
‒ Servidor de Mensagens (MX)
* Mapeia um nome de domínio DNS para o nome de um computador que troca ou 
encaminha mensagens eletrônicas (servidor de email)
‒ Ponteiro (PTR)
* É utilizado em zonas reversas, para fazer o mapeamento reverso
• 10.20.20.10.in-addr.arpa. PTR host.example.microsoft.com
‒ Outros registros de recursos conforme necessário
DNS: Armazenando e atualizando 
registros
• Uma vez que um servidor de nomes apreende um mapeamento, 
ele armazena o mapeamento num registro do tipo cache
‒ Registro do cache tornam-se obsoletos (desaparecem) depois de um 
certo tempo
‒ Servidores TLD são tipicamente armazenados em cache nos 
servidores de nome locais
• Mecanismos de atualização e notificação estão sendo projetados 
pelo IETF
‒ RFC 2136
‒ http://www.ietf.org/html.charters/dnsind-charter.html