Buscar

Camada de Aplicação em Redes de Computadores

Prévia do material em texto

1
Redes de Computadores
UNIDADE II - Camada de Aplicação
Romualdo Monteiro de Resende Costa
romualdomrc@gmail.com
Redes de Computadores
• Princípio de Aplicações de Rede
• A “World Wide Web”: HTTP
• Correio Eletrônico: SMTP
• DNS: o serviço de diretório da Internet
Bibliografia:
KUROSE, James F. & ROSS, Keith W. Redes de
computadores e a Internet: uma abordagem top-
down. 3 ed. São Paulo: Addison Wesley, 2006.
2
Camada de Aplicação
Pilha de Protocolos
3
Camada de Aplicação
• Formada por Aplicações de Rede
– Programas ou processos que se comunicam através 
de uma rede.
– Correio Eletrônico;
– A Web;
– Mensagens instantâneas;
– Acesso a computadores remotos;
– Compartilhamento de arquivos;
– Transferência de arquivos;
– Jogos;
– Telefonia e Videoconferência;
– etc.
Camada de Aplicação
• Aplicações são a razão de ser de uma rede de 
computadores
• Todas as camadas inferiores provêm serviços 
que tornam possível a implementação das 
aplicações
• Sintaxe Abstrata de Comunicação
– Especificação de uma estrutura de dados 
independente da codificação interna utilizada pelas 
máquinas e na comunicação
– Sintaxe Concreta
4
Sintaxe Abstrata
• Independente da implementação
• Facilidade de interpretação
• Liberdade para novas implementações
• Sintaxe de Transferência
Tipos de Aplicações de Rede
• Diferentes:
– Arquiteturas
– Protocolos 
• Arquitetura: Primeira escolha da aplicação
– Cliente-servidor
– Peer-to-Peer
– Híbrida
• A escolha envolve especificar como os recursos 
serão compartilhados
5
Compartilhamento de Recursos
Arquitetura Cliente-Servidor
6
Arquitetura Cliente-Servidor
• Um host servidor que atende a requisições de 
muitos outros hosts (clientes)
– Servidor pode ser dedicado ou não
• Problemas de performance
– Escalabilidade
– Servidor é um gargalo da rede
– Confiabilidade
– Servidores virtuais
– Servidores ocultos
– Proteção contra ataques
– Segurança
Arquitetura Peer-to-Peer
7
Arquitetura Peer-to-Peer
• A idéia do servidor não dedicado é levada ao 
extremo
– Pares comunicam-se diretamente entre si
• Traz escalabilidade e distribuição do tráfego
– Dificuldade de gerenciamento
– Disponibilidade
• Soluções híbridas
– Conteúdos trocados via P2P
– Servidor armazena os conteúdos disponíveis
– Napster, Skype etc.
Napster
8
Skype
Comunicação entre as Aplicações
• É preciso definir como as aplicações 
comunicam-se entre si
– Troca de mensagens por meio da rede
– Uma aplicação pode definir várias comunicações 
simultâneas. Assim, não são as aplicações que se 
comunicam, mas seus processos.
– Um processo cria e envia mensagens pela rede
– Um processo destinatário recebe-as e possivelmente 
responde
– Essa comunicação é virtual e se desenvolve através 
das camadas de protocolos inferiores
9
Protocolos
• Assim como em todas as camadas, é 
necessário especificar como as funções das 
aplicações são implementadas.
– Os tipos de mensagens trocadas (solicitação, 
resposta etc.)
– A sintaxe e a semântica das mensagens, incluindo 
os campos e seus significados
– As regras (quando e como um processo envia ou 
responde uma mensagem etc.)
Protocolos
• Domínio Público ou Privado
– RFC (Request For Comments)
• HTTP (HyperText Transfer Protocol)
– RFC 2616
• FTP (File Transfer Protocol)
– RFC 959
• SMTP (Simple Mail Transfer Protocol)
– RFC 821 
• DNS (Domain Name Service)
– RFC 1035
10
Recordando...
Fornecedores e Usuários de 
Serviços
• Um serviço representa um conjunto de funções 
oferecidas a um usuário por um provedor 
(fornecedor)
• O serviço oferecido por um provedor é 
acessado por um usuário através de um ponto 
de acesso ao serviço (Service Access Point 
SAP)
• O usuário é a camada N e o provedor a 
camada N-1
11
Fornecedores e Usuários de Serviços
Socket
• Na Arquitetura Internet, um socket é a 
interface entre a camada de aplicação e de 
transporte
– Porta (especificação do processo receptor)
– Protocolo de Transporte
– Parâmetros do transporte (buffer, segmentos etc.)
• Transferência de mensagens fim-a-fim (porta-
a-porta) e entrega aos processos das 
aplicações
– API de Transporte
12
Socket
• Duas API’s mais conhecidas para Unix
– Berkeley Sockets
– TLI (System Transport Layer Interface)
– Estendidas para outros sistemas operacionais, como 
o Win Socket
• Interfaces desenvolvidas para C.
– Atualmente com interfaces de acesso em outras 
linguagens.
Socket
13
Serviços da Camada de Transporte
• Protocolos:
– UDP (User Datagram Protocol)
– TCP (Transmission Control Protocol)
• Diferentes tipos de serviços
– Quanto à perda de dados
• Tolerância à perdas ou transferência 100% confiável
– Quanto à largura de banda
• Requisitos mínimos de banda ou uso da banda disponível 
(ajuste elástico)
– Quanto aos requisitos temporais
• Suporte ao atraso, variação estatística do mesmo ou 
aplicações de tempo real.
Aplicações
14
TCP
• Serviço orientado a conexão
– Antes da transmissão é requerida uma negociação 
entre os processos
• Transporte confiável
– Comunicação livre de erros entre processos
• Controle de fluxo
– Evita a perda de dados em um receptor mais lento
• Controle de congestionamento
– Diminui o fluxo do emissor quando a rede está 
congestionada
– Não oferece garantias temporais ou banda mínima
UDP
• Transporte não confiável
– Não há garantia de entrega de dados
• Não implementa:
– Conexão
– Controle de fluxo
– Controle de congestionamento
– Garantias temporais
– Garantia de banda mínima
15
Aplicações
HTTP
• O HTTP (Hypertext Transfer Protocol) é um 
protocolo usado para a transferência de 
informações na Web
• Os dados transferidos podem ser texto, 
imagens, vídeos, áudios, ou qualquer outro 
tipo de mídia
– As mídias são organizadas como (objetos)
– A maioria dos objetos são formados por arquivos 
html que, por sua vez, fazem referência a outros 
objetos 
16
HTTP
• As referências aos objetos são realizadas 
através de URL (Uniform Resource Locator)
– http://www.cesjf.br/node/11
– Protocolo
– Nome do Computador
– Caminho
– Recurso
• Navegadores são agentes usuários (user 
agent) que implementam o lado cliente do 
protocolo. Os servidores estão em máquinas 
acessíveis na Internet
HTTP
17
HTTP
• Protocolo de transporte TCP
– Conexões persistentes e não persistentes
– Porta 80 (default)
• HTTP 1.0 – Conexões não persistentes
• HTTP 1.1 – Conexões persistentes
– Com e sem paralelismo
Formato das Mensagens
• Dois tipos de Mensagens
– Requisição (GET, POST, HEAD)
– Duas partes: linha de requisição e linhas de 
cabeçalho 
18
Formato das Mensagens
• Dois tipos de Mensagens
– Resposta
– Três partes: linha de estado, linhas de cabeçalho e 
corpo
Códigos de Estado
• 200 OK: requisição bem-sucedida e a informação é 
entregue com a resposta
• 301 Moved Permanently: objeto requisitado foi 
removido. Novo URL é especificado no cabeçalho 
Location da mensage de resposta
• 400 Bad Request: a requisição não pôde ser entendida 
pelo servidor
• 404 Not Found: o documento não existe no servidor
• 505 HTTP Version Not Supported: a versão do 
protocolo HTTP requisitada não é suportada
19
Exemplo
HTTP
• Protocolo sem estado
– Facilita a implementação dos servidores
– Processamento de requisições individuais
– Dificuldade de identificar preferências
– Perda de trabalho
• Soluções
– Cookies
– Log-in de usuários
– Carregamento de variáveis entre requisições (GET e 
POST)
20
HTTP e Cache Web
• O cache pode reduzir o tempo de resposta 
para uma requisição do cliente
– Conexão de alta velocidade entre o cliente e o 
cache e de baixa velocidade entre o cache e a 
Internet
• O cache pode reduzir também o tráfego no 
enlace de acesso à Internet 
– Melhoria da performance por redução do tráfego
• E se a cópia do objeto no cache estiver 
desatualizada?
Cache
21
Get Condicional
Transferência de Arquivos - FTP
• Protocolo por autenticação e autorização de 
acesso
– Da mesma forma que o HTTP também utiliza o TCP
• Utiliza duas conexões paralelas:
– Conexão de controle– Conexão de dados
• A primeira para troca de informações entre os 
sistemas finais e a segunda para a troca de 
dados
– Informações de controle fora da banda
22
FTP
FTP
• Mantém informações de estado
– Controla a utilização dos serviços pelos usuários
• Comandos
– user “username”
– pass “password”
– list
– retr “filename”
– stor “filename”
• Cada comandos é seguido de uma resposta
23
FTP - Respostas
• 331 Nome de usuário OK, senha requisitada
• 125 Conexão de dados aberta: iniciando 
transferência
• 425 Não é possível abrir a conexão de dados
• 452 Erro ao escrever o arquivo
• ...
• E muitas outras informações de estado
– Consultar a RFC 959
Correio Eletrônico
• Modelo de comunicação assíncrono
– Os usuários não precisam estar on-line para trocar 
as mensagens
• Arquitetura
– Agentes
– Servidores
• Protocolo de troca de informações entre os 
servidores: SMTP
– Simple Mail Transfer Protocol
– RFCs: 821, 2821, 1869 e 1891
24
Correio Eletrônico
Popularidade
• Hotmail
– E-mail grátis e o acesso aos servidores através da Web
– Ano 1995
– 17 funcionários trabalhando durante 7 meses
• Lançamento 1996
– 100 mil assinantes
– Dezembro 1997: 400 milhões de assinantes
• Comprado pela Microsoft
– 400 milhões de dólares
25
SMTP
• Não utiliza servidores intermediários
– Transmissão entre os servidores através do TCP
• Se o servidor não estiver disponível novas 
tentativas posteriores são realizadas
– Conexão através da porta 25
Cliente/Servidor
26
Protocolos de Aceso
• Protocolos de acesso ao correio que transferem 
dados dos servidores para as máquinas locais
– POP3 (Post Office Protocol version 3)
– IMAP (Internet Mail Access Protocol)
– HTTP
DNS
• Domain Name System
– Tradução de nomes na Web
– Usualmente utilizado por outros procolos de 
aplicação: HTTP, FTP, SMTP etc.
• Funciona como um banco de dados distribuído 
e hierárquico
– Existe um servidor raiz
– Distribuição de traduções de acordo com o domínio
– Muita redundância entre os servidores.
27
DNS
Servidor de Nomes Raiz

Continue navegando