Redes de Computadores
Camada de Aplicação
Prof. MSc. Hugo Souza
Percorrendo o caminho. . .
• É a camada que dispõe a programação para as
aplicações de rede através dos protocolos de aplicação;
• Provém a implantação da arquitetura de redes com o
modelo Cliente-Servidor com requisições req
e
respostas aos pedidos com resp;
• Também provém a implantação da arquitetura Peer-2Peer;
• Infraestrutura voltada para os serviços de internet, com
aplicações diversas e o gerenciamento de mensagens de
texto, imagens, e arquivos, etc.;
Percorrendo o caminho. . .
• Mas na verdade, o que é uma aplicação de rede?
• É um software que possibilita a execução de processos
comuns na rede entre os hospedeiros que enviam e
recebem dados através de uma interface entre o
usuário “parte de cima” e a rede “parte de baixo”;
• Utilizam protocolos finais que compatibilizam a
linguagem da rede para a linguagem do usuário final,
como parte da aplicação;
• O browser depende de quem para traduzir as
informações?
• Será que o MSN deve possuir protocolos para que as
mensagens cheguem aos usuários?
Percorrendo o caminho. . .
• Aplicações de rede que usamos todos os dias;
Percorrendo o caminho. . .
• Para que haja comunicação é necessário alguém pedir
primeiro: “Eu quero que alguém para varrer a rua!”
para receber uma resposta: “Temos 3 garis hoje!”;
• Alguém solicita e outro alguém serve;
• Na web, no caso, o WWW quem pede algum site é
chamado de cliente, e na maioria dos casos e quem
inicia o processo de conexão partindo de um certo
dispositivo em uma certa rede;
• Para receber o recurso solicitado é necessário averiguar
se o destinatário recebeu o pedido. Neste caso o
servidor confirma o pedido e emite um “Ok!”;
• Os processos enviam e recebem dados através de
conexões denominadas sockets;
Percorrendo o caminho. . .
Percorrendo o caminho. . .
• Como havíamos falado antes, um cliente e um servidor
buscam fornecer um serviço de internet através de
conexões. Essas conexões são formuladas através de
objetos indexados em Unirform Resource Locator;
• Esses objetos são divididos em “pedaços” distintos para
identificar o fornecimento de um recurso
disponibilizado pela rede e o mapeamento que precisa
ser realizado para garantir a organização baseada em
“caminhos” que facilitem o acesso :
objeto
• protocolo://máquina/caminho/recurso
Percorrendo o caminho. . .
• Exemplificando, teríamos o seguinte endereço de URL:
protocolo
servidor
• http://www.facol.com/facol2010/downloads/trab2011.
doca
recurso
• O que temos aqui?
• Neste caso temos o chamado “hospedeiro” +
“caminho”;
o
Percorrendo o caminho. . .
• O protocolo HTTP, também conhecido como protocolo
da internet estabiliza o modelo cliente-servidor
utilizando-se de objetos durante as conexões orientadas
pelo TCP tramitando pedidos e respostas desses
objetos;
• O cliente inicia a conexão TCP ao servidor pela porta 80.
O servidor aceita a conexão TCP do cliente através de
mensagens HTTP via browser e posteriormente o
servidor Web (servidor HTTP) encerra conexão TCP;
• Conexões persistentes e não persistentes;
Percorrendo o caminho. . .
• O HTTP persistente é caracterizado pelo o envio de
múltiplos objetos sobre uma única conexão TCP entre
cliente e servidor - HTTP/1.1 no seu modo default;
• Usa somente um RTT para envio de objetos;
• O servir deixa a conexão aberta após o envio da
resposta;
• O HTTP não persistente é caracterizado pelo o envio de
um objeto em uma conexão TCP - HTTP/1.0 em
conexões não persistentes;
• Usa dois RTT para o envio de dados (pedido e
resposta);;
• Cada objeto enviado é criada uma nova conexão;
Percorrendo o caminho. . .
• Devido as conexões, as transmissões e recepções de
dados demandam tempo entre a movimentação dos
pacotes. Esse tempo é denominado Round Trip Time
(RTT);
• Um RTT indica o tempo de resposta para iniciar a
conexão TCP, com um pedido HTTP e o retorno dos
primeiros bytes da resposta HTTP, durante a
transmissão de um determinado arquivo;
2RTT
+
• Tempo de transmissão
•
Percorrendo o caminho. . .
Inicia a conexão TCP
RTT
Solicita o arquivo
RTT
Arquivo recebido
Tempo para transmitir o
arquivo
Percorrendo o caminho. . .
GET = pedido
GET /somedir/page.html HTTP/1.0
User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
Accept-language:pt
dados. . .
dados. . .
dados. . .
Percorrendo o caminho. . .
• O estado de atividade ou inatividade da conexão atual
tem uma manutenção provida pelo cookie - arquivo do
cookie mantido no host do usuário e gerenciado pelo
browser do usuário;
• Dados da conexão em um dado momento podem ser
reaproveitados - login, senha, etc.;
• “ID” que o usuário possui em um site;
• “dados” de visita as sites no histórico, etc;
• Privacidade?
Percorrendo o caminho. . .
• O protocolo File Transfer Protocol, também conhecido
como FTP é o responsável por prover o serviços de
transferência de arquivos através de conexões
“separadas” para estabelecer um controle dos dados
que estão trafegando pela rede;
• Utiliza duas portas principais:
• Porta 21: Estabelecimento da conexão com
requisição e resposta do cliente com o servidor;
• Porta 20: Após a conexão está assegurada, o envio
do arquivos é realizado nesta porta;
• Como?
Percorrendo o caminho. . .
Controle da conexão
TCP – Porta 21
Conexão,dos dados
TCP – Porta 20
• O cliente contata o servidor através do prot. TCP – Porta
21;
• O TCP estabelece uma conexão com controle entre
cliente-servidor;
• Após a conexão está “garantida” o servidor verifica o
status;
• O dado é enviado pelo prot. FTP – Porta 20 por uma
conexão de dados;
• O cliente envia uma resposta afirmando que o dado foi
recebido;
Percorrendo o caminho. . .
• Os dados das conexões são enviados/recebidos pelo
canal de controle e canal dos dados através de quatro
possíveis padrões:
• Texto ASCII: Utilização de caracteres em 8 bits
representativos antes,durante e após a transmissão.
Inviável para dados numéricos binários e pontos
flutuantes;
• Modo imagem: Também chamado de modo binário,
é representado em blocos de bytes para obter um
controle mais seguro;
• Modo local: Transmissão Peer-to-Peer
sem a
necessidade de conversão para ASCII – direto;
Percorrendo o caminho. . .
• Quando mandamos hypertexto + arquivos para nossos
amigos, será que essa mensagem precisa ter algum
controle?
• No caso de e-mails, temos a “gerência das mensagens”
enviadas e recebidas com dois protocolos chamados de
servidores de e-mails;
• Conceito de fila de mensagens, ordem, tamanho, etc.;
• Clientes que enviam para servidores diferentes com
funções diferentes;
• A pessoa não envia um e-mail de um computador
diretamente para outro e vice-versa;
Percorrendo o caminho. . .
• O protocolo Simple Mail Transfer Protocol utiliza os
conceitos de orientação por conexão para controlar o
fluxo de mensagens, receptores e emissores de
mensagens em três fases de transferência;
• Handshaking;
• Transferências de mensagens;
• Encerramento;
• As mensagens são representadas em textos ASCII de 7
bits - utiliza a porta 25;
• SMTP: entrega/armazenamento no servidor do
receptor;
Percorrendo o caminho. . .
1) Fabiana utiliza sua aplicação de rede para
compor uma mensagem “para” [email protected]; 4) O cliente SMTP envia a
mensagem de Fabiana através
2) O Microsoft Outlook de Fabiana envia a da conexão TCP;
mensagem para o seu servidor de correio;
5) O servidor de correio de José
A mensagem é colocada na fila de mensagens;
coloca a mensagem na caixa
3) O lado cliente do SMTP abre uma conexão de entrada de José
TCP com o servidor de correio de José;
6) José chama o seu Mozilla
Thunderbird para ler a
mensagem;
2
user
mail
server
4
mail
5
server
6
user
Percorrendo o caminho. . .
• Outros protocolos de Correio Eletrônico são os
protocolos de Acesso ao Correio: POP e o IMAP;
• Complementando o serviço de entrega de mensagens, a
função dos protocolos de Acesso é recuperar as
mensagens do servidor e torná-las em filas para os
usuários;;
• Post Office Protocol: Autorização entre aplicação<>servidor;
• Internet Mail Access Protocol: Códigos de acesso as
mensagens;
SMTP
Agente
gente
de
usuário
SMTP
POP3 ou
IMAP
Agente
de
usuário
Percorrendo o caminho. . .
• Finalmente, se pensarmos que as mensagens são
enviadas e recebidas através de redes e dispositivos,
como será que os dados são identificados através de
hypetexto?
• O protocolo Domain Name System (DNS) é o
responsável por mapear os endereços dos objetos
formulados através de URLS e convertê-los para
endereços IPS;
• Protocolo conhecido por “resolver” nomes de
“dispositivos” na internet;
• Utiliza o protocolo UDP para efetivar conexão;
• Organizado em servidores para obtenção de acesso;
Percorrendo o caminho. . .
. (root)
com
edu
net
Apple
cisco
sourceforge
support www
org
download
mil
br
org
tre
ufpe facol gov ...
fieb
uol
ftp
www mail www2
fr
sesc
www
us
...
gov
rj
pms
Hierarquia dos servidores
www
Percorrendo o caminho. . .
Hospedeiro
secretaria.facol.net requer
endereço IP de
educacao.edu
1. secretaria.facol.net
contata servidor DNS local,
serv-net.facol.net;
2. serv-net.facol.net contata
servidor raiz, se
necessário;
Servidor de nomes
raiz
2
4
5
3
Servidor local
Servidor oficial
serv-net.facol.net
educacao.edu
1
6
3. Servidor raiz contata
Requisitante
servidor oficial educação secretaria.facol.net
.edu, se necessário;
www.ministerio.educacao.edu
Percorrendo o caminho. . .
• A Web provém uma “linguagem” comum para
conversação entre os dispositivos através das aplicações
de rede;
• HTML;
• HTTP, HTTPS;
• FTP;
• DNS;
• Dúvidas?;
• Lista de exercícios: Unidade II disponível no site;
http://hugovlsouza.com
Download

Aula - Camada de Aplicação