CamadaAplicacao parte2

download CamadaAplicacao parte2

of 22

  • date post

    06-Jun-2015
  • Category

    Documents

  • view

    162
  • download

    0

Embed Size (px)

Transcript of CamadaAplicacao parte2

Camada de aplicaoConceitos, implementao de protocolos da camada de aplicao

Paradigma cliente-servidor Modelos de servio HTTP FTP SMTP, POP DNS Interface de sockets

Protocolos da camada de aplicao

Programao de protocolos da camada de aplicao

Camada de aplicao

1

Aplicaes em redeProcesso um programa a ser executado numa mquina Na mesma mquina comunicao entre-processos (sistema operativo) Em mquinas distintas protocolo da camada de aplicao Agente de utilizador (user agent)

Interface com o utilizador e com a rede Implementa o protocolo da camada de aplicao WWW: browser email: leitor de correio (mail reader)Camada de aplicao 2

Paradigma cliente-servidorEm geral, protocolo da camada de aplicao tem duas componentes: cliente e servidor Cliente

Inicia o contacto com o servidor Solicita pedidos ao servidor WWW: cliente implementado no browser email: cliente (SMTP e POP) implementado no leitor de correio Fornece os servios solicitados pelo cliente WWW: servidor Web entrega pginas solicitadas Email: servidor entrega correio ao destinatrioCamada de aplicao 3

Servidor

Endereamento e APIIdentificao de um processo

Endereo IP identifica a estao onde reside o processo Porta identifica processo dentro de uma estao Portas bem-conhecidas (0-1023): servidor HTTP 80; SMTP 25;SSH - 22 Portas aleatrias: cliente (acima de 1024)

Portas

Interface entre a camada de aplicao e a camada de transporte (Application Programming Interface, API)

Camada de aplicao escreve e l em sockets

Camada de aplicao

4

Requisitos das aplicaesPerdas

Tolerante a perdas: udio Intolerante a perdas: transferncia de arquivos Tolerante a atrasos: transferncia de arquivos, WWW Intolerante a atrasos: VoIP, jogos distribudos

Atrasos

Entrega sequencial dos pacotes Largura de banda

Aplicaes tolerantes: transferncia de ficheiros Aplicaes de tempo-real: multimidia

Camada de aplicao

5

Requisitos: exemplosAplicao Transferncia arquivos email Pginas Web udio/vdeo tempo-real udio/vdeo armazenado Jogos interactivos Aplicaes financeiras Perdas no no no tolerante tolerante tolerante no Largura de banda varivel varivel varivel udio: 5kb-1Mb vdeo:10kb-5Mb como o anterior ordem dos kbit/s varivel Atrasos tolerante tolerante tolerante no, 100s ms no, seg no, 100s ms sim e no !

Camada de aplicao

6

Servios fornecidos pela camada de transporteTransmission Control Protocol (TCP)

Orientado sesso (connection-oriented) Transferncia fivel Entrega sequencial Controlo de fluxo e de congesto

User Datagram Protocol (UDP)

No orientado sesso No d garantias s aplicaes

Camada de aplicao

7

Aplicaes e servios: exemplosProtocolo da camada de aplicao SMTP [RFC 821] Telnet [RFC 854] HTTP [RFC 2068] FTP [RFC 959] proprietrio NFS proprietrio Camada de transporte TCP TCP TCP TCP TCP ou UDP TCP ou UDP Tipicamente UDP

Aplicao email Acesso remoto WWW Transferncia de ficheiros streaming multimedia Ficheiros em rede VoIP

Camada de aplicao

8

Hypertext Transport Protocol (HTTP)O protocolo da camada de aplicao da WWW Cliente

Ped

ido

Browser que solicita, recebe e apresenta objectos

PC com Explorer

Re

sp o

HT TP

st a

HT TP

Servidor

Envia dados em resposta aos pedidos No guarda informao de estado sobre pedidos anterioresPC com Netscape

TP HT TP HT Pe sta o sp Re o did

Servidor Apache

Porta usada: 80 Camada de transporte: TCP

Camada de aplicao

9

HTTP: exemplohttp://www.ist.utl.pt/index.html BrowserSesso TCP www.ist.utl.pt Porta +1024 Pedido URL: index.html

Servidor HTTP www.ist.utl.ptEscuta sesses TCP Porta 80

Aceita sesso Resposta OK: index.html Fecha sesso

Recebe pedido Mostra pgina Identifica imagens

Camada de aplicao

10

PersistnciaNo persistente

HTTP/1.0 Servidor fecha a sesso TCP depois de satisfazer o pedido 2 x RTT at recepo do objecto Browsers podem abrir sesses paralelas HTTP/1.1 Mltiplos pedidos na mesma sesso TCP Browser envia pedidos logo que os identifica (pipelining) Mais rpido do que com sesses no-persistentes

Persistente

Camada de aplicao

11

Pedido: exemploLinha de pedido (GET, HEAD, POST)GET /index.html HTTP/1.1 Accept: text/html, image/gif, image/jpg Accept-Language: en-us User-agent: Mozilla/4.0 Host: www.ist.utl.pt

Linhas de cabealho

cr + lf

Camada de aplicao

12

Anatomia de um pedidoMtodo URL Nome do cabealho : Verso cr lf Valor cr lf Linha de pedido

Linhas de cabealhos Nome do cabealho : cr lf Valor cr lf

Corpo da mensagemCamada de aplicao 13

Resposta: exemploLinha de respostaHTTP/1.1 200 OK Date: Fri, 22 Feb 2001 13:20:50 GMT Server: Apache/1.3.6 (Unix) Content-type: text/html Content-Length: 327 Instituto Superior Tcnico

Corpo da mensagem

Linhas de cabealho

cr + lf

Camada de aplicao

14

Anatomia de uma respostaVerso Cdigo Expresso cr lf Nome do cabealho : Valor cr lf Linha de resposta

Linhas de cabealhos Nome do cabealho : cr lf Valor cr lf

Corpo da mensagemCamada de aplicao 15

POST e Common Gateway Interface (CGI)Gerao de contedo dinmico Browser apresenta um formulrio Pedido do browser ao servidor

Mtodo POST URL de um cgi a ser executado no servidor Corpo da mensagem contem os dados introduzidos no formulrio

Servidor executa o cgi Servidor envia o resultado ao browser

Camada de aplicao

16

Cdigos de resposta200 OK

Pedido bem sucedido. Objecto no corpo da mensagem Localizao do objecto foi alterada. Nova URL indicada no cabealho Location: Objecto no foi modificado desde a data contida no cabealho If-modified-since Erro genrico. Pedido no entendido pelo servidor O documento no existe no servidor

301 Moved Permanently

304 Not Modified

400 Bad Request

404 Not Found

505 HTTP Version Not SupportedCamada de aplicao 17

CabealhosPedidos

Respostas

Host: User-Agent: Accept: (text/*, image/gif) If-Modified-Since:

Date: Server: Last-Modified:

Comuns a pedidos e respostasContent-Type: Content-Length: Transfer-Encoding: chunked Connection: close

Camada de aplicao

18

CookiesInformao de estado permite manter correlao entre pedidos de um utilizador para um mesmo servidor Cabealho na primeira resposta do servidor

Set-cookie: 1458279

Entrada numa base de dados do servidor Ficheiro na estao do utilizador

Associao servidor-cookie Cookie: 1458279

Cabealhos nos pedidos sucessivos do utilizador

Camada de aplicao

19

Servidores proxy (Web cache)Utilizador configura o browser para usar o servidor proxy Browser faz pedido ao servidor proxy

Servidor originalPed ido

Se servidor proxy tiver objecto, envia-o ao cliente Caso contrrio, faz o pedido ao servidor origem, recebe o objecto, envia-o ao cliente Servidor proxy guarda o cliente objecto em cache

R cliente espo

HT TP st a HT TP P TT oH TP did HT Pe sta o sp Re

Servidor proxy

TTP oH di d TTP Pe ta H pos s Re

Servidor originalCamada de aplicao 20

Vantagem dos servidores proxyMelhor tempo de resposta, em geral Diminui o trfego com destino em servidores distantesEthernet local

Servidores origemInternet

Ligao a 1.5 Mbps

10 Mbps LAN

Servidor proxyCamada de aplicao 21

File Transfer Protocol (FTP)Interface Cliente FTP FTP utilizador Transferncia de ficheiros Servidor FTP Sistema de arquivos remoto

Sistema de arquivos local

Transferncia de arquivos de e para uma estao remota (inicializada pelo cliente) Porta bem-conhecido: 21 (controle) e 20 (dados) Camada de transporte: TCP Servidor guarda informao de estadoCamada de aplicao 22

Sesso de controle e dadosSesso de controle

Envio de comando e recepo de respostas Uma por cada arquivo transferido (end-of-file) O servidor inicia o estabelecimento da sesso para a transferncia de dados (modo ativo)

Sesso de dados

Sesso de controle na porta 21

Cliente FTP

Sesso de dados na porta 20

Servidor FTP

Camada de aplicao

23

Comandos e respostas FTPComandos

Respostas

USER username PASS password LISTdir : lista de ficheiros na directoria actual RETR ficheiro: buscar (get) STOR ficheiro: colocar (put) PORT n: porto onde o cliente escuta o pedido de sesso de dados do servidor

331 Username OK, password required 125 data connection already open 425 Cant open data connection 452 Error writing file

Camada de aplicao

24

Correio eletrnicoMailbox do usurio

Componentes

Clientes (leitores de correio) Servidores de correio Simple Mail Transfer Protocol (SMTP)

Agente de utilizador Servidor de mail

Fila de mensagens a enviar Agente de utilizador

SMTP SMTP SMTPServidor de mail Agente de utilizador Agente de utilizador

Servidor de mail Agente de utilizador

Agente de utilizador

Camada de aplicao

25

Simple Mail Transfer Protocol (SMTP)Porta bem-conhecido: 25 Camada de transporte: TCP Servidor de correio

Atua como cliente quando envia mensagens Atua como servidor quando recebe mensagens Comandos Mensagem (Cabealhos + corpo) RespostasCamada de aplicao 26

Cliente

Servidor

SMTP: exemploS: C: S: C: S: C: S: C: S: C: C: S: C: S: 220 destino.pt HELO origem.pt 250 Hello origem.pt, pleased to meet you MAIL FROM