Você está na página 1de 19

PTC 3450 - Aula 04

2. A camada de aplicação e tráfego multimídia


2.1 Princípios das aplicações de rede

(Kurose, Seção 2.1)

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 cliente- 3) Criar aplicativos de rede


servidor • socket API

❖ 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

B) Sistema de compartilhamento de arquivos P2P –


programa em cada um dos hosts que participam da
comunidade application
aplicação
transporte
transport
network
rede
Não é necessário escrever programa data
enlace
link
physical
física
aplicação
application
transporte
transport

para dispositivos do núcleo da rede rede


network
enlace
data link

Dispositivos do núcleo da rede não rodam


física
physical

aplicativos de usuário
❖ Aplicativos em usuários finais permite
rápido desenvolvimento e propagação de
apps

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

Serviços TCP: serviços UDP :


❖ Transporte confiável entre ❖ Transferência de dados
processos transmissor e não confiável entre
receptor – dados recebidos processos transmissor e
sem erro e na ordem receptor
enviada
❖ Controle de fluxo: transmissor ❖ Não provê: integridade,
não “soterra” receptor controle de fluxo,
❖ Controle de congestionamento: controle de
regula transmissor quando congestionamento,
rede está sobrecarregada timing, garantia de vazão,
❖ Orientado a conexão: requer segurança, ou setup de
setup entre processos conexão
cliente e servidor
❖ Não provê: timing, garantia de Q: Para que serve o UDP??
mínima vazão, segurança
Introdução 2-16
Aplicativos Internet e protocolos de transporte

Protocolo da Camada
Aplicativo de aplicação Protocolo de transporte

Transferência de arquivos FTP [RFC 959] TCP


E-mail SMTP [RFC 5321] TCP
Objetos Web HTTP 1.1 [RFC 2616] TCP
Telefonia Internet SIP [RFC 3261], RTP [RFC TCP ou UDP
3550], ou proprietário HTTP
streaming audio/vídeo [RFC 2616], DASH TCP
Jogos interativos WoW e outros proprietários UDP ou TCP
Tornando o TCP mais seguro
Sockets TCP e UDP tradicionais: TSL é implementado na
▪ Sem criptografia camada de aplicação
▪ Senhas em texto aberto passados
aos sockets trafegam pela Internet
in texto aberto (!) ▪ Aplicativos usam
bibliotecas TSL, que por
sua vez usam TCP
Transport Layer Security (TLS)
▪ Provê conexões TCP encriptadas ▪ Texto aberto enviado para
▪ Integridade dos dados “socket” TSL atravessam a
▪ Autenticação de ponto final Internet criptografados
Protocolo da camada de aplicação define

❖ Tipos de mensagens trocadas Protocolos abertos:


▪ Por exemplo, requisição, ❖ definidos em RFCs
resposta, etc. ❖ permitem interoperabilidade
❖ Sintaxe da mensagem ❖ Exemplos:
▪ Campos da mensagem e ▪ HTTP [RFC 2616]
como eles são delineados ▪ SMTP [RFC 5321]
❖ Semântica das mensagens Protocolos proprietários:
▪ significado das ❖ Por exemplo, Skype
informações dos campos
❖ Regras para quando e como
processos enviam e
respondem mensagens

Nas próximas aulas veremos uma série de exemplos


de protocolos da camada de aplicação! Introdução 2-19

Você também pode gostar