Camada de Aplica��o

Sum�rio

A camada de aplica��o � uma camada de abstra��o que engloba protocolos que realizam a comunica��o fim-a-fim entre aplica��es. � respons�vel por prover servi�os para aplica��es de modo a separar a exist�ncia de comunica��o em rede entre processos de diferentes computadores.

Ela, basicamente, cria as especifica��es de como ser� a comunica��o entre duas aplica��es entre hosts.

O protocolo da camada de aplica��o define:

  • Tipo das mensagens trocadas, mensagens de requisi��o e resposta;
  • Sintaxe dos tipos de mensagem: os campos nas mensagens e como s�o delineados ;
  • Sem�ntica dos campos, ou seja, significado da informa��o nos campos;
  • Regras para quando e como os processos enviam e respondem �s mensagens.

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, sess�o remota) exigem transfer�ncia de dados 100% confi�vel
  • Temporiza��o
  • Algumas aplica��es (ex.: telefonia IP, jogos interativos) exigem baixos atrasos para serem �efetivos�
  • Banda passante
  • 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

Arquiteturas de Aplica��o:

  • Cliente-Servidor.
  • Servidor:

    • Hospedeiro sempre ativo
    • Endere�o IP permanente
    • Fornece servi�os solicitados pelo cliente
  • Clientes:

    • Comunicam-se com o servidor
    • Pode ser conectado intermitentemente
    • Pode ter endere�o IP din�mico
    • N�o se comunicam diretamente uns com os outros
  • P2P

    • Nem sempre no servidor
    • Sistemas finais arbitr�rios comunicam-se diretamente
    • Pares s�o intermitentemente conectados e trocam endere�os IP
    • Ex.: Gnutella
    • Altamente escal�veis, mas dif�ceis de gerenciar
  • H�brida

    • Napster
    • Transfer�ncia de arquivo P2P
    • Busca centralizada de arquivos:
    • Conte�do de registro dos pares no servidor central
    • Consulta de pares no mesmo servidor central para localizar o conte�do
    • Instant messaging
    • Bate-papo entre dois usu�rios � P2P
    • Detec��o/localiza��o de presen�a � centralizada:
    • Usu�rio registra seu endere�o IP com o servidor central quando fica on-line.
    • Usu�rio contata o servidor central para encontrar endere�os IP dos �amigos�.

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 processos 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, controle de fluxo e de congestionamento, garantia de temporiza��o e de banda m�nima.

HTTP - Hypertext Transfer Protocol

Vis�o geral:

  • Protocolo da camada de aplica��o da Web
  • Modelo cliente/servidor
  • Cliente: navegador que solicita, recebe e apresenta objetos da Web
  • Servidor: envia objetos em resposta a pedidos
  • HTTP 1.0: RFC 1945
  • HTTP 1.1: RFC 2068
  • Utiliza TCP:
  • Cliente inicia conex�o TCP (cria socket) para o servidor na porta 80
  • Servidor aceita uma conex�o TCP do cliente
  • Mensagens HTTP (mensagens do protocolo de camada de aplica��o) s�o trocadas entre o browser (cliente HTTP) e o servidor Web (servidor HTTP)
  • A conex�o TCP � fechada
  • HTTP � �stateless�
  • Por default, o servidor n�o mant�m informa��o sobre os pedidos passados pelos clientes
  • Protocolos que mant�m informa��es de �estado� s�o complexos!
  • Hist�rico do passado (estado) deve ser mantido
  • Se o servidor/cliente quebra, suas vis�es de �estado� podem ser inconsistentes, devendo ser reconciliadas

Modelagem do Tempo de Resposta

  • Defini��o de RTT: tempo para enviar um pequeno pacote que vai do cliente para o servidor e retorna.
  • Tempo de resposta:
  • Um RTT para iniciar a conex�o TCP
  • Um RTT para requisi��o HTTP e primeiros bytes da resposta HTTP para retorno
  • Tempo de transmiss�o de arquivo
  • Total = 2 RTT+ tempo de transmiss�o

Conex�o HTTP

  • HTTP n�o persistente

    • No m�ximo, um objeto � enviado sobre uma conex�o TCP
    • O HTTP/1.0 utiliza HTTP n�o persistente
    • Caracter�sticas do HTTP n�o persistente: Requer 2 RTTs por objeto
    • Sistema Operacional deve manipular e alocar recursos do hospedeiro para cada conex�o TCP (Mas os browsers freq�entemente abrem conex�es TCP paralelas para buscar objetos referenciados)
  • HTTP persistente
  • M�ltiplos objetos podem ser enviados sobre uma conex�o

    • TCP entre o cliente e o servidor
  • O HTTP/1.1 utiliza conex�es persistentes em seu modo padr�o
  • HTTP persistente
  • Servidor deixa a conex�o aberta ap�s enviar uma resposta
  • Mensagens HTTP subsequentes entre o mesmo cliente/servidor s�o enviadas pela conex�o
  • Persistente sem pipelining: O cliente emite novas requisi��es apenas quando a resposta anterior for recebida
  • Um RTT para cada objeto referenciado
  • Persistente com pipelining: Padr�o no HTTP/1.1
  • O cliente envia requisi��es assim que encontra um objeto referenciado
  • T�o curto quanto um RTT para todos os objetos referenciados
Edite esta página