Escolar Documentos
Profissional Documentos
Cultura Documentos
14/03/2024
Muitos slides adaptados com autorização de J.F Kurose and K.W. Ross, All Rights Reserved
Capítulo 2
A camada de aplicação e tráfego
multimídia
Introdução 2-2
Capítulo 2: conteúdo
2.1 Princípios de 2.5 Aplicativos P2P
aplicativos de rede 2.6 Aplicativos de rede
2.2 Web e HTTP multimídia
2.3 Correio eletrônico 2.7 Streaming de video e
▪ SMTP, POP3, IMAP redes de distribuição
2.4 DNS de conteúdo
2.8 Voz sobre IP
2.9 Programando socket
com UDP e TCP
Introdução 2-3
Capítulo 2: Camada de Aplicação
Nossos objetivos: 2) Aprender sobre protocolos
1) Aspectos conceituais e de ❖ Exemplos da camada de
implementação de protocolos aplicação populares
de aplicativos de rede: • HTTP
• SMTP / POP3 / IMAP
• DNS
❖ Modelos de serviço da • BitTorrent
camada de transporte • Multimídia
❖ Arquitetura peer-to-peer
Introdução 2-4
Alguns apps de rede
❖ E-mail ❖ Voz-sobre-IP (Skype, por
❖ Web exemplo)
❖ Mensagens de texto
❖ Login remoto ❖ Videoconferência em tempo
❖ Compartilhamento de real (Zoom, Google Meet,
arquivos P2P Teams)
❖ Jogos em rede multiusuários
❖ Streaming de vídeo ❖ Redes sociais
armazenado (Youtube,
Amazon Prime, Netflix) ❖ Navegação (Waze, Google
Maps)
❖ …
❖ …
Introdução 2-5
Criando um app de rede application
aplicação
transport
transporte
network
rede
data link
enlace
physical
física
Escrever programas que:
❖ Rodam em diferentes sistemas finais
❖ Comunicam-se sobre a rede
❖ Exemplos:
A) Programa servidor web rodando em servidor
comunica-se com navegador em host do usuário
Introdução 2-6
Arquiteturas de aplicativos
Possíveis estruturas de aplicativos:
❖ Cliente-servidor
❖ Peer-to-peer (P2P)
Introdução 2-7
Arquitetura cliente-servidor
Servidor:
❖ Em host sempre disponível
❖ Endereço IP permanente
❖ Data centers pensando em escala
(servidor virtual)
Clientes:
❖ Comunicam-se com servidor
❖ Podem se conectar de forma
Cliente-servidor
intermitente
❖ Podem ter endereços IP dinâmicos
❖ Não se comunicam diretamente
entre si
Web, e-mail, login remoto, Netflix, ...
Introdução 2-8
Arquitetura P2P
❖ Não há servidor sempre peer-peer
disponível
❖ Sistemas finais arbitrários (peers)
comunicam-se diretamente
❖ Peers requerem serviço de outros
peers – provêm serviço para
outros peers em retorno
▪ Autoescalável – novos peers
trazem novos serviços, assim
como novas demandas de
serviço
❖ Peers conectam-se de forma
intermitente e mudam endereço
IP
▪ Gerenciamento complexo
❖ BitTorrent, Skype, ... Introdução 2-9
Arquitetura P2P
❖ Arquitetura crescente peer-peer
❖ Problemas:
▪ ISPs residenciais são
assimétricos
▪ Segurança
▪ Motivação: por que eu vou
ceder largura de banda,
armazenamento, etc.?
❖ Estruturas híbridas.
❖ WhatsApp é P2P ou cliente
servidor???
Introdução 2-10
Comunicação entre processos
Processo: programa rodando Clientes, servidores
em um host Processo cliente: processo
❖ Dentro do mesmo host, 2 que inicia comunicação
processos se comunicam Processo servidor: processo
usando comunicação inter que espera ser contatado
processos (definida pelo
sistema operacional)
❖ Processos em hosts diferentes
comunicam-se trocando ❖ Nota: aplicativos com
mensagens arquitetura P2P também
tem processo cliente e
processo servidor
Introdução 2-11
Sockets
❖ Processo envia/recebe mensagens de/para uma interface de software (API -
Application Programming Interface) chamada socket
❖ Socket análogo a porta
▪ Processo transmissor empurra mensagem pela porta
▪ Processo transmissor confia na infraestrutura de
transporte do outro lado da porta para entregar
mensagem ao socket no processo receptor
aplicação aplicação
Socket Controlado pelo
processo processo desenvolvedor
do aplicativo
transporte transporte
rede rede Controlado
enlace pelo sist. operacional
enlace Internet
física física
Introdução 2-12
Endereçamento de processos
❖ Para receber mensagens, ❖ Identificador inclui tanto endereço
processo precisa ter IP (32 bits) quanto número da
porta associado com processo no
identificador host.
❖ Dispositivo host tem endereço ❖ Exemplos de números de porta:
IP de 32 bits único (IPv4) ▪ Servidor web (HTTP): 80
❖ Endereço IP do host em que o ▪ Servidor web (HTTPS): 443
processo roda é suficiente ▪ Servidor de e-mail (SMTP): 25
▪ Gerenciados pela Internet Assigned
para identificar o processo? Numbers Authority (IANA)
▪ http://www.iana.org
▪ Números atribuídos
▪ Resposta: Não! Muitos
processos podem estar ❖ Para enviar mensagem HTTP para
servidor web www.usp.br:
rodando no mesmo host! ▪ Endereço IP: 200.144.248.41
▪ Número de porta: 80
❖ Mais em breve…
Introdução 2-13
Quais serviços de transporte um app precisa?
Integridade dos dados Vazão
❖ Alguns apps (e.g., transferência ❖ Alguns apps (e.g.,
de arquivos, comércio na web) multimídia) requerem
requerem transferência de mínima vazão
dados 100% confiável (reliable (bits/segundo) para serem
data transfer) “efetivos”
❖ Outros apps (“apps
❖ Outros apps (e.g., áudio)
podem tolerar alguma perda elásticos”) fazem uso de
qualquer vazão disponível
Timing
❖ Alguns apps (e.g., telefonia
Segurança
Internet, jogos iterativos) ❖ Encriptação, integridade de
requerem baixa latência dados, …
para serem “efetivos”
Introdução 2-14
Requisitos do serviço de transporte: apps comuns
Aplicativo Perda de
dados Vazão Timing
Transferência de
arquivos Sem perdas Elástico Não
E-mail Sem perdas Elástico Não
Páginas Web Sem perdas Elástico Não
Áudio/vídeo Tolerante Áudio: 5kbps-1Mbps Sim, 10’s ms
em tempo real Vídeo:10kbps-5Mbps
Áudio/vídeo armazenado Tolerante Mesmo acima Sim, alguns s
Jogos interativos Tolerante Alguns kbps ou mais Sim, 10’s ms
Mensagens de texto Sem perdas Elástico Depende
Introdução 2-15
Serviços dos protocolos de transporte Internet
Protocolo da Camada
Aplicativo de aplicação Protocolo de transporte