Camada de Aplicação
Prof. Larissa Natália V. Carneiro carneiroln@gmail.com
Princípios básicos
Aplicações como razão de uma rede de computadores:
correio eletrônico; acesso remoto;
transferência de arquivos; bate-papo;
Princípios básicos
Aplicações como razão de uma rede de computadores:
mensagem instantânea com lista de compartilhamento;
telefonia por internet;
transmissão e compartilhamento de vídeo; rádio via internet;
Princípios básicos
Aspectos conceituais;
Princípios básicos
Suponha que você tenha uma grande ideia para uma nova aplicação de rede.
Como transformar essa ideia em uma aplicação no mundo real??
A comunicação de rede ocorre entre
sistemas finais na camada de aplicação
Arquitetura de aplicação de
rede
Elaborar plano geral de arquitetura. Determina como a aplicação é
organizada nos vários sistemas finais. Arquiteturas mais utilizadas:
cliente-servidor; P2P.
Arquitetura de aplicação de
rede
Arquitetura cliente-servidor: hospedeiro sempre em
funcionamento (servidor);
atende requisições de outros hospedeiros (clientes);
Arquitetura de aplicação de
rede
Arquitetura cliente-servidor:
cliente não se comunica com cliente;
servidor possui endereço IP fixo; ex: Web, FTP, Telnet e e-mail.
Arquitetura de aplicação de
rede
Arquitetura cliente-servidor: data center;
Arquitetura de aplicação de
rede
Arquitetura P2P:
servidores sempre em funcionamento; confiança mínima;
comunicação entre pares (não são propriedades dos provedores -
Arquitetura de aplicação de
rede
Arquitetura P2P:
pares se comunicam sem passar por servidor (par-to-par);
Arquitetura de aplicação de
rede
Arquitetura P2P:
requer pouca infraestrutura; baixa segurança;
o sucesso depende da estrutura dos usuários (largura de banda).
Comunicação entre processo
Comunicação entre sistemas finais: processo que se comunicam.
Comunicação interprocessos. Comunicam pela troca de
Comunicação entre processo
Aplicação consiste em pares de processo (ex. web).
Comunicação é feita entre cliente e servidor.
O mesmo pode ser servidor e cliente.
Comunicação entre processo
Definição:
“No contexto de uma sessão de
comunicação entre um par de
processos, o processo que inicia a comunicação (isto é, o primeiro a
contatar o outro) é rotulado cliente. O processo que espera ser contatado
A interface entre o processo
e a rede de computadores
Toda mensagem precisa passar pela rede.
Socket: interface de software. Analogia: casa e sua porta.
A interface entre o processo
e a rede de computadores
Toda mensagem precisa passar pela rede.
Socket: interface de software. Analogia: casa e sua porta.
A interface entre o processo
e a rede de computadores
Desenvolvedor possui total controle do lado da aplicação.
Na camada de transporte o desenvolvedor controla:
escolha do protocolo de transporte;
Serviço de transporte
disponíveis para aplicação
Como escolher o protocolo da camada de transporte?
avalia os serviços providos pelos protocolos;
Tipos de serviço de transporte
disponíveis para aplicação
Transferência confiável de dados:
fornece o garantia de recebimento de dados;
indicadas para correio eletrônico, transferência de arquivos, acesso
remoto, transferência de documentos da web e aplicações financeiras.
Tipos de serviço de transporte
disponíveis para aplicação
Vazão:
é a taxa à qual o processo remetente pode enviar bits ao processo
destinatário;
garantia de taxa específica;
Tipos de serviço de transporte
disponíveis para aplicação
Temporização:
garantia de tempo para entrega;
indicada para aplicações interativas em tempo real (ex.: telefonia,
ambientes virtuais, teleconferência e jogos com multijogadores)
Tipos de serviço de transporte
disponíveis para aplicação
Segurança:
garante a codificação dos dados; indicada para aplicações que
Serviços de transporte
provido pela internet
Suporte de aplicação providos pela internet.
Internet disponibiliza dois protocolos: UDP e TCP
Serviços de transporte
provido pela internet
Serviço TCP:
orientado a conexões (troca
informações de controle de camada antes dos dados);
confiável a transferência (dados entregues sem erros e na ordem);
Serviços de transporte
provido pela internet
Serviço UDP:
simples e leve; minimalista;
não orientado a conexão; não confiável;
Serviços não providos pelos
protocolos da internet
TCP fornece:
transferência confiável de dados; segurança.
TCP e UDP não fornecem vazão e temporização.
Aplicações, seus protocolos de camada
de aplicação e protocolos de transporte
Endereçamento de processo
Como um processo indica qual processo quer comunicar-se?
Endereçamento de processo
É preciso especificar:
o nome ou endereço da máquina hospedeira;
identificador que especifique o processo destinatário no
Endereçamento de processo
Hospedeiro possui endereço IP (são 32 bits que identifica exclusivamente o
sistema final).
Número de porta (usado para
identificar o processo que está rodando no hospedeiro de destino
Protocolo da camada de
aplicação
Define como o processo de uma aplicação, que funciona em
sistemas finais diferentes, passam mensagens entre si.
Protocolo da camada de
aplicação
Define:
os tipos de mensagens (requisição e resposta);
a sintaxe dos tipos de mensagens (campos); a semântica dos campos (significado);
quando e como o processo envia e responde mensagens.
Protocolo da camada de
aplicação
Protocolos especificados em RFCs, pertencem ao domínio público:
aplicação Web HTTP(Hyper Text Transfer Protocol [RFC2616]).
Browser que segue as regras RCF está habilitado a extrair páginas de
Protocolo da camada de
aplicação
Protocolos de camadas de aplicação proprietários:
sistemas de compartilhamento de arquivos P2P.
Protocolo da camada de
aplicação
É importante distinguir aplicações de redes de protocolos de camada de aplicação:
Um protocolo de camada de
aplicação é apenas um pedaço de aplicação de redes;
Protocolo da camada de
aplicação
Protocolo de camada de aplicação:
ex.: Web - consiste em padrão de documentos (HTML); browser
(mozila, explorer, chrome);
servidores (apache, microsoft) e um protocolo da camada de aplicação (HTTP).
Exercício 1
Relacione cinco aplicações da internet não proprietárias e os
protocolos de camada de aplicação que elas usam.
Exercício 2
O que é um programa cliente? O que é um programa servidor?
Exercício 3
Qual a diferença entre a arquitetura de rede e a arquitetura de
Exercício 4
Quais são os dois tipos de serviços de transporte que a internet provê as suas aplicações? Cite algumas características de cada um desses serviços
Exercício 5
Para uma sessão de comunicação entre par de processo, qual
processo é o cliente e qual é o servidor?
Exercício 6
Qual a diferença entre um
Exercício 7
Utilizando uma analogia com os nossos atos, faça uma breve
descrição de como o serviço
orientado para conexão da Internet prove transporte confiável.
Exercício 8
Em uma aplicação de
compartilhamento de arquivos P2P, você concorda com a afirmação:
“não existe nenhuma noção de lados cliente e servidor de uma
Exercício 9
Que informação é usada por um
processo que esta rodando em um hospedeiro para identificar um
processo que está rodando em outro hospedeiro?
Exercício 10
Suponha que você queira fazer um transação de um cliente remoto
para um servidor da maneira mais rápida possível. Você usaria o UDP ou o TCP? Por quê?
Exercício 12
Relacione quatro classes de serviços que um protocolo de transporte
pode prover. Para cada uma delas, indique se o UDP ou o TCP (ou
Exercício 11
Como visto na tabela de Requisitos de aplicações, nenhuma das aplicações
relacionadas requer ‘sem perda de dados’ e ‘temporização’. Você
consegue imaginar uma aplicação que requeira ‘sem perda de dados’ e seja também altamente sensível ao atraso?
Exercício 13
O TCP pode ser aprimorado com o SSL para fornecer serviços de segurança processo a processo. Pesquise e especifique SSL.
Depois indique se o SSL opera na camada de transporte ou na camada de aplicação.
Se o desenvolvedor da aplicação quer que o TCP seja aprimorado com o SSL, o que ele deve fazer?