Buscar

Unidade II - Camada de Aplicação - Parte I

Prévia do material em texto

Arquitetura de Redes de Computadores
Unidade II – Camada de Aplicação
Prof Sergio Cardoso
ssilva@unicarioca.edu.br
2Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 2
Camada de aplicação
▪ Nossos objetivos: 
➢ Entender os aspectos conceituais e de implementação de protocolos 
de aplicação de redes
➢ Entender sobre as arquiteturas de aplicação
❑ Paradigma cliente-servidor
❑ Paradigma peer-to-peer
➢ Entender como definir os modelos de serviço da camada de 
transporte
➢ Aprender sobre protocolos de camada de aplicação examinando 
protocolos usuais
o HTTP
o FTP
o SMTP/ POP3/ IMAP
o DNS
3Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 3
4
Aplicação de Rede
▪ Um processo é um programa que executa num hospedeiro.
➢ 2 processos no mesmo hospedeiro se comunicam usando 
comunicação entre processos definida pelo sistema operacional 
(SO).
➢ 2 processos em hospedeiros distintos se comunicam usando um 
protocolo da camada de aplicação.
▪ Um agente de usuário (UA) é uma interface entre o usuário 
“acima” e a rede “abaixo”.
➢ Implementa o protocolo da camada de aplicação
➢ WWW: browser
➢ Correio: leitor/compositor de mensagens
➢ streaming de áudio/vídeo: tocador de mídia
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 4
5
Canais lógicos
▪ Comunicação aplicação-aplicação através de um caminho ou 
túnel
▪ Os processos realizam a comunicação através de um canal 
abstrato
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 5
6
Aplicações e protocolos da camada de 
aplicação
Aplicação: processos distribuídos em comunicação
➢ p.ex., correio, Web, compartilhamento de arquivos P2P, mensagens instantâneas 
➢ executam em hospedeiros no “espaço de usuário”
➢ trocam mensagens para implementar a aplicação
Protocolos da camada de aplicação
➢ uma “parte” da aplicação
➢ define mensagens trocadas por aplicações e ações tomadas
➢ usam serviços providos por protocolos da camada inferior (TCP, UDP)
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 6
7
Camada de aplicação
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 7
8
Protocolos de camada de aplicação TCP/IP
Protocolo de serviço de nome de domínio (DNS) - utilizado para 
resolver nomes de Internet a endereços IP.
Telnet - um protocolo de simulação de terminal que é utilizado para 
fornecer acesso remoto a servidores e dispositivos de rede.
Protocolo bootstrap (BOOTP) - um precursor do protocolo DHCP, um 
protocolo de rede usado para obter informações de endereço IP durante 
a inicialização
Protocolo de Controle Dinâmico de Host (DHCP) - usado para atribuir 
um endereço IP, a máscara de sub-rede, o gateway padrão e o servidor 
DNS a um host
Protocolo HTTP - usado para transferir arquivos que compõem as 
páginas Web da World Wide Web.
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 8
9
Protocolos de camada de aplicação TCP/IP
File Transfer Protocol (FTP) - usado para transferência interativa de 
arquivos entre sistemas
Protocolo de Transferência Trivial de Arquivo (TFTP) - usado para a 
transferência sem conexão de arquivo ativo
Protocolo SMTP - usado para transferência de mensagens e anexos de 
e-mail.
Protocolo POP - usado por clientes de e-mail para recuperar e-mail de um 
servidor remoto
Protocolo de acesso a mensagens de Internet (IMAP) - outro protocolo 
para a recuperação do e-mail
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 9
10Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 10
Criando uma nova aplicação de rede
▪ Escrever programas que
➢ Executem em diferentes sistemas 
finais e
➢ Se comuniquem através de uma 
rede.
❑ Ex.: Web – 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
11
Definições de protocolo
da camada de aplicação
▪ Devem definir
➢ tipos de mensagens trocadas
❑ Por exemplo, mensagens de requisição e de resposta
➢ sintaxe da mensagem:
❑ que campos nas mensagens e como os campos são delineados
➢ semântica da mensagem 
❑ significado da informação nos campos
➢ regras de quando e como os processos enviam e respondem a 
mensagens
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 11
12
Requisitos
▪ Desenvolvedor de aplicações deve:
➢ Definir arquitetura da aplicação
➢ Verificar os requisitos que a aplicação necessita:
❑ Atraso
❑ Taxa de transmissão
❑ Etc....
➢ Escolher serviço de transporte
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 12
13
Arquiteturas de aplicação
▪ Cliente-servidor
➢ Incluindo centros de dados/cloud computing
▪ Peer-to-peer (P2P)
▪ Híbrida de cliente-servidor e P2P
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 13
14Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 14
Arquitetura cliente-servidor
▪ Clientes:
➢ inicia contato com o servidor (“fala 
primeiro”)
➢ tipicamente solicita serviço do servidor
❑ para Serviço Web, o cliente está 
implementado no browser
❑ para correio no leitor de mensagens
➢ Pode ser conectado intermitentemente
➢ Pode ter endereço IP dinâmico
➢ Clientes não se comunicam 
diretamente uns com os outros
▪ Servidor: 
➢ Hospedeiro sempre ligado
➢ provê ao cliente o serviço requisitado
❑ servidor WWW envia página solicitada;
❑ servidor de correio entrega mensagens
➢ Endereço IP permanente
➢ Fornece serviços solicitados pelo 
cliente
❑ Server farms por expansão
15Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 15
Modelo Cliente Servidor
16
Arquitetura cliente-servidor
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 16
17
Arquitetura cliente-servidor
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 17
18Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 18
Cliente-Servidor
▪ 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
19Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 19
Arquitetura P2P pura
▪ 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
20
Redes Ponto-a-Ponto (P2P)
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 20
Ambos os dispositivos são considerados iguais em comunicação
As funções de cliente e servidor são definidas de acordo com a solicitação.
21
Redes Ponto-a-Ponto (P2P)
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 21
Cliente e servidor na mesma comunicação
Ambos podem iniciar uma comunicação e são considerados iguais no processo de 
comunicação.
22Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 22
Peer-to-Peer
▪ 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
23Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 23
Híbrida de cliente-servidor e P2P
▪ 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▪ Exemplo
➢ 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
o usuário registra seu endereço IP com servidor central quando entra on-line
o usuário contata servidor central para descobrir endereços IP dos parceiros
24Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 24
Comunicação de processos
▪ Processo: programa executando num hospedeiro
➢ Dentro do mesmo hospedeiro: 
❑ dois processos se comunicam usando comunicação interprocesso (definido 
pelo Sistema Operacional)
➢ Processos em diferentes hospedeiros se comunicam por meio de troca 
de mensagens
❑ Processo cliente:
o processo que inicia a comunicação
❑ Processo servidor:
o processo que espera para ser contatado
Nota: aplicações com arquiteturas P2P possuem processos cliente e processos servidor
25Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 25
Sockets
▪ Um processo envia/recebe 
mensagens para/de seu socket
▪ É a interface de comunicação entre 
a camada de aplicação e camada de 
transporte
▪ O socket é análogo a uma porta
➢ O processo de envio “empurra” 
a mensagem para fora da porta
➢ O processo de envio confia na 
infraestrutura de transporte no 
outro lado da porta que leva a 
mensagem para o socket no 
processo de recepção.
26
Endereçando processos
▪ Para receber mensagens, processo deve ter identificador
▪ Dispositivo hospedeiro tem endereço IP exclusivo de 32 bits
➢ exercício: use ipconfig do comando prompt para obter seu 
endereço IP (Windows)
▪ P: Basta o endereço IP do hospedeiro em que o processo é 
executado para identificar o processo?
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 26
27
Endereçando processos
▪ R: Não, muitos processos podem estar rodando no mesmo 
hospedeiro
▪ Identificador inclui endereço IP e números de porta associados ao processo no 
hospedeiro.
▪ Exemplos de número de porta:
➢ servidor HTTP: 80
➢ servidor de correio: 25
Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 27
28Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 28
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,…
29Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 29
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 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.
P.: Por que ambos? Por que existe o UDP?
30Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 30
Aplicação
transf. arquivos
e-mail
documentos Web
áudio/vídeo 
tempo real
áudio/vídeo 
armazenado
jogos interativos
Perda de dados
sem perda
sem perda
sem perda
tolerante a perda
tolerante a perda
tolerante a 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
Sensível ao tempo
não
não
não
sim, centenas de ms
sim, alguns seg
sim, centenas de ms
Requisitos de serviço de transporte das 
aplicações comuns
31Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 31
Aplicação
e-mail
acesso remoto
Web 
transf. arquivos
multimídia com
fluxo contínuo
telefonia da
Internet
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)
Protocolo de 
transporte básico
TCP
TCP
TCP
TCP
TCP ou UDP
normalmente UDP
Aplicações da Internet: aplicação,
protocolos de transporte
32Prof Sergio Cardoso - Arquitetura de Redes de Computadores - Unidade II 32
Protocolos de aplicação 
e transporte
SMTP
HTTP
FTP
Telnet
TCP
IP
Acesso à rede
UDP
SNMP
TFTP
DHCP
RTP
DNS
Rede
Transporte
Aplicação
Transporte

Continue navegando