Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.1 Aplic. distribuídas e protocolos da camada de aplic. Aplicações distribuídas programas que se executam nos computadores da rede necessitam trocar mensagens através da rede para fornecerem o resultado para que foram desenhadas e.g., e-mail, WWW, tranferência de ficheiros Protocolos da camada de aplicação são partes integrantes de uma aplicação distribuída definem as mensagens a trocar e as acções que resultam dessas mensagens usam serviços de comunicação fornecidos pelas entidades das camadas de protocolo inferiores application transport network data link physical application transport network data link physical application transport network data link physical 1º Semestre 2005/2006 Redes de Computadores I 2.2 1
Aplicações distribuídas: definição de termos Um processo é um programa que se executa num único computador. No mesmo computador, dois processos comunicam usando ferramentas do sistema operativo ( interprocess communication ). Processos que se executam em diferentes computadores comunicam através de um protocolo da camada de aplicação. Um e de utilizador ( ) é uma interface entre um utilizador e uma aplicação distribuída. WWW: browser E-mail: leitor de correio audio/video: media player 1º Semestre 2005/2006 Redes de Computadores I 2.3 Modelos de serviço: Cliente/Servidor Cliente: inicia o contacto com o servidor tipicamente é o cliente que faz um pedido de serviço Servidor: tipicamente encontra-se à espera de pedidos de serviços que satisfaz quando requisitados pelo cliente application transport network data link physical request reply A maior parte das aplicações distribuidas existentes funcionam segundo o modelo cliente/servidor application transport network data link physical 1º Semestre 2005/2006 Redes de Computadores I 2.4 2
Modelos de serviço: P2P ( Peer-to-Peer ) Servidores não necessariamente sempre activos Sistemas terminais arbitrários podem comunicar directamente Sistemas pares têm ligações intermitentes e mudam de endereço Exemplo: Gnutella 1º Semestre 2005/2006 Redes de Computadores I 2.5 Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) DNS ( Domain Name System protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.6 3
Requisitos sobre os serviços de transporte Perdas algumas aplicações (e.g., audio) toleram perdas de informação outras aplicações (e.g., telnet ) exigem fiabilidade total Largura de banda algumas aplicações (e.g., multimedia) exigem uma banda mínima para funcionar correctamente outras aplicações ( elastic apps ) conseguem usar a banda disponível em cada instante Timing algumas aplicações (e.g., telefone, jogos interactivos) exigem um pequeno atraso extremo a extremo aproximadamente constante durante a sua execução 1º Semestre 2005/2006 Redes de Computadores I 2.7 Requisitos sobre os serviços de transporte Aplicação Perdas Banda Time Sensitive transf. de ficheiros e-mail documentos WWW audio/vídeo tempo real audio/vídeo gravado jogos interactivos aplic. financeiras intolerante intolerante intolerante tolerante tolerante tolerante intolerante elástica elástica elástica audio: 5Kb-1Mb vídeo:10kb-5mb audio: 5Kb-1Mb vídeo:10kb-5mb > 10Kb elástica não não não 100 mseg alguns seg 100 mseg ---- 1º Semestre 2005/2006 Redes de Computadores I 2.8 4
Aplicações, protocolos de aplicação e transporte Aplicação e-mail acesso remoto WWW transf. de ficheiros multimedia servidor de ficheiros telefone Prot. da camada de aplicação smtp [RFC 2821] telnet [RFC 854] http [RFC 2616] ftp [RFC 959] proprietários (e.g. RealNetworks) NFS proprietários (e.g., Vocaltec) Prot. da camada de transporte TCP TCP TCP TCP TCP or UDP TCP or UDP tipicamente UDP 1º Semestre 2005/2006 Redes de Computadores I 2.9 Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.10 5
WWW: algumas designações Web page : é constituida por objectos ; em geral, uma página HTML que referencia outros objectos endereçada por um URL Um URL tem duas componentes: host name e path name : www.ist.utl.pt/secretaria/pautas.html O e de utilizador WWW chama-se browser : MS Internet Explorer Netscape Communicator O servidor Web chama-se Web : Apache MS Internet Information Server A aplicação World Wide Web foi introduzida por Berners-Lee em 1994 1º Semestre 2005/2006 Redes de Computadores I 2.11 O protocolo HTTP http: hypertext transfer protocol Protocolo da camada de aplicação modelo cliente/servidor cliente: browser que pede, recebe e apresenta objectos servidor: Web que envia objectos em resposta aos pedidos do cliente http1.0: RFC 1945 http1.1: RFC 2616 PC running Explorer http request http response http request http response Server running NCSA Web Mac running Navigator 1º Semestre 2005/2006 Redes de Computadores I 2.12 6
O protocolo HTTP Não tem memória O servidor não mantém informação sobre os pedidos anteriores do cliente Usa o serviço de transporte TCP o cliente inicia uma ligação TCP (cria um socket ) com o servidor no porto 80 o servidor aceita ligações TCP do cliente trocam-se mensagens http (mensagens do protocolo da camada de aplicação) entre o browser (cliente http) e o Web (servidor http) a ligação TCP é encerrada 1º Semestre 2005/2006 Redes de Computadores I 2.13 Exemplo HTTP URL: www.someschool.edu/somedepartment/home.index 1a. http client initiates TCP connection to http (process) at www.someschool.edu. Port 80 is default for http. (contains text, references to 10 jpeg images) 1b. http at host www.someschool.edu waiting for TCP connection at port 80. accepts connection, notifying client 2. http client sends http request message (containing URL) into TCP connection socket 3. http receives request message, forms response message containing requested object (somedepartment/home.index), sends message into socket time 1º Semestre 2005/2006 Redes de Computadores I 2.14 7
Exemplo HTTP (cont.) 4. http closes TCP connection. time 5. http client receives response message containing html file, displays html. Parsing html file, finds 10 referenced jpeg objects 6. Steps 1-5 repeated for each of 10 jpeg objects 1º Semestre 2005/2006 Redes de Computadores I 2.15 Ligações persistentes e não persistentes Não persistentes HTTP/1.0 o servidor interpreta o pedido, responde e fecha a ligação TCP 2 RTTs para obter cada objecto; no entanto, na maior parte dos casos, usam-se várias ligações TCP em paralelo Cada transferência é sujeita ao período slow start do TCP Persistentes HTTP/1.1 (por omissão) na mesma ligação TCP o servidor pode responder a vários pedidos o cliente envia pedidos para todos os objectos referenciados na mesma página de base. 1º Semestre 2005/2006 Redes de Computadores I 2.16 8
Formato da mensagem http Dois tipos de mensagens http: request, response (ASCII) request request line (GET, POST, HEAD commands) header lines GET /somedir/page.html HTTP/1.0 User-: Mozilla/4.0 Accept: text/html, image/gif,image/jpeg Accept-language:fr (extra carriage return, line feed) Carriage return line feed indicates end of message 1º Semestre 2005/2006 Redes de Computadores I 2.17 Formato da mensagem http: request 1º Semestre 2005/2006 Redes de Computadores I 2.18 9
Formato da mensagem http response status line (protocol status code status phrase) data, e.g., requested html file header lines HTTP/1.0 200 OK Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... 1º Semestre 2005/2006 Redes de Computadores I 2.19 Interacção utilizador/servidor: autenticação client Objectivo: controlo de acesso aos documentos no servidor stateless : O cliente tem de apresentar autorização em cada pedido autorização: tipicamente name e password numa linha do cabeçalho de um pedido o browser memoriza normalmente o conjunto name e password para evitar perguntar ao seu utilizador em cada pedido usual http request msg 401: authorization req. WWW authenticate: usual http request msg + Authorization:line usual http response msg usual http request msg + Authorization:line usual http response msg time 1º Semestre 2005/2006 Redes de Computadores I 2.20 10
Interacção utilizador/servidor: cookies O servidor envia um cookie ao cliente na mensagem response Set-cookie: 1678453 o cliente apresenta o cookie em futuras mensagens request cookie: 1678453 o servidor valida o cookie autenticação preferências do utilizador client usual http request msg usual http response + Set-cookie: # usual http request msg cookie: # usual http response msg usual http request msg cookie: # usual http response msg cookiespecific action cookiespecific action 1º Semestre 2005/2006 Redes de Computadores I 2.21 Interacção utilizador/servidor: GET condicional Objectivo: evitar a transmissão de um objecto que existe memorizado no cliente cliente: especifica a data da cópia que possui na mensagem request If-modified-since: <date> servidor: a resposta não inclui o objecto se o cliente o tem actualizado: HTTP/1.0 304 Not Modified client http request msg If-modified-since: <date> http response HTTP/1.0 304 Not Modified http request msg If-modified-since: <date> http response HTTP/1.1 200 OK <data> object not modified object modified 1º Semestre 2005/2006 Redes de Computadores I 2.22 11
Web Caches (proxy ) Objectivo: satisfazer o pedido de um cliente sem envolver o servidor origem O utilizador instrói o browser para aceder via web cache todos os pedidos http são enviados à web cache se o objecto existe na web cache o pedido é imediatamente satisfeito caso contrário a web cache consulta o servidor origem, memoriza o objecto (para futura utilização) e responde ao pedido do cliente. client client http request http response http request http response Proxy http request http response http request http response origin origin 1º Semestre 2005/2006 Redes de Computadores I 2.23 Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.24 12
DNS ( Domain Name System ) Motivação as máquinas ligadas à Internet têm um nome, e.g., mega.ist.utl.pt, mas para lhe enviar pacotes é necessário conhecer o endereço IP não é razoável colocar num único ponto o mapeamento nome/endereço IP (falhas, volume de tráfego, distância, manutenção) Solução Muitos servidores de nomes ( name s ), com informação parcial, organizados de forma hierárquica, que colaboram, em cada caso, para a tradução nome/endereço através de um protocolo de comunicação da camada de aplicação (protocolo DNS). Outros serviços: Para além da tradução nome/endereço IP a aplicação presta ainda serviços de host aliasing, mail aliasing, e distribuição de carga 1º Semestre 2005/2006 Redes de Computadores I 2.25 Tipos de servidores de nomes Servidores de nomes locais Cada máquina, para conhecer um mapeamento nome/endereço começa por interrogar o seu servidor local. Em geral, cada ISP tem um servidor de nomes local Servidores de nomes authoritative Cada máquina tem um servidor de nomes onde a tradução nome/endereço está armazenada obrigatoriamente Servidores de nomes raiz ( root ) Quando um servidor de nomes local não consegue resolver um pedido interroga um dos root s. 1º Semestre 2005/2006 Redes de Computadores I 2.26 13
Servidores Root a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations) k RIPE London (also Amsterdam, Frankfurt) i Autonomica, Stockholm (plus 3 other locations) e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) m WIDE Tokyo b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 1º Semestre 2005/2006 Redes de Computadores I 2.27 Exemplo A máquina surf.eurecom.fr pretende o endereço IP de gaia.cs.umass.edu 1. Contacta o seu servidor de nomes local, dns.eurecom.fr 2. Se for necessário, dns.eurecom.fr contacta um servidor de nomes raiz 3. Se for necessário o servidor de nomes raiz contacta o servidor de nomes authoritative dns.umass.edu local name dns.eurecom.fr 1 2 6 surf.eurecom.fr root name 5 3 4 authoritative name dns.umass.edu gaia.cs.umass.edu 1º Semestre 2005/2006 Redes de Computadores I 2.28 14
Exemplo root name O servidor de nomes raiz pode não conhecer o endereço do servidor authoritative, mas de um servidor intermédio 2 7 3 6 Procedimento recursivo local name dns.eurecom.fr 1 8 requesting host surf.eurecom.fr intermediate name dns.umass.edu 4 5 authoritative name dns.cs.umass.edu gaia.cs.umass.edu 1º Semestre 2005/2006 Redes de Computadores I 2.29 Exemplo root DNS Cada servidor de nomes pode apenas fornecer o endereço do próximo servidor 2 3 4 TLD DNS 5 Procedimento iterativo local DNS dns.poly.edu 1 8 requesting host cis.poly.edu 7 6 authoritative DNS dns.cs.umass.edu gaia.cs.umass.edu 1º Semestre 2005/2006 Redes de Computadores I 2.30 15
Registos DNS DNS: base de dados distribuida que armazena Resource Records (RR) RR format: (name, value, type,ttl) Type=A name - hostname value - endereço IP Type=NS name - domain (e.g. foo.com) value - endereço IP do servidor de nomes authoritative deste domain Type=CNAME name - nome alternativo para uma dada máquina value - nome real da máquina Type=MX value - nome da máquina servidora de mail associada com name Ex.: Suponha que cria um novo domínio, xxx.com. Os registos a inserir são: (xxx.com, dns.xxx.com, NS) (dns.xxx.com, 212.212.212.1, A) 1º Semestre 2005/2006 Redes de Computadores I 2.31 Protocolo DNS Protocolo que usa o serviço de transporte não fiável UDP; porto 53 Os servidores de nomes funcionam, em geral, como cliente e servidor As mensagens pergunta e resposta têm o mesmo formato: 1º Semestre 2005/2006 Redes de Computadores I 2.32 16
Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.33 Transferência de ficheiros - FTP at host FTP interface FTP client local file system file transfer FTP remote file system Transferência de ficheiros de/para um computador remoto Modelo cliente/servidor cliente: inicia a transferência servidor: computador remoto Servidor ftp: porto 21 RFC 959 1º Semestre 2005/2006 Redes de Computadores I 2.34 17
Separação das ligações de dados e de controlo O cliente FTP contacta o servidor FTP especificando o protocolo de transporte TCP e o porto 21. São criadas ligações TCP em paralelo: controlo: troca de comandos e respostas entre o cliente e o servidor - out of band control dados: transferência de dados (ficheiros) entre o cliente e o servidor. Uma ligação TCP por cada ficheiro a enviar. O servidor FTP mantém o estado em cada sesssão: identificação do utilizador, directoria actual. FTP client TCP control connection port 21 TCP data connection port 20 FTP 1º Semestre 2005/2006 Redes de Computadores I 2.35 Comandos e respostas Comandos: enviados em texto ASCII através do canal de controlo Exemplos: USER name PASS password LIST (envia a lista de ficheiros da directoria actual) RETR filename (o servidor envia o ficheiro para o cliente) STOR filename (o cliente envia o ficheiro para o servidor que o armazena) Respostas Constituídos por um número e uma frase (como no HTTP) Exemplos: 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 1º Semestre 2005/2006 Redes de Computadores I 2.36 18
Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.37 Correio Electrónico Componentes principais: es de utilizador servidores de correio o protocolo SMTP Simple Mail Transfer Protocol Agente de Utilizador Interface para compor, modificar e ler mensagens de correio electrónico Mensagens que chegam ou que vão ser enviadas são armazenadas no servidor Exemplos: Eudora, Outlook, elm, Netscape Messenger mail SMTP mail SMTP SMTP outgoing message queue mail mailbox 1º Semestre 2005/2006 Redes de Computadores I 2.38 19
Servidor de correio electrónico Componentes Caixa do correio ( Mailbox ) que contém as mensagens do utilizador ainda não lidas Fila de mensagens de saída para as que ainda não foram enviadas Implementação do protocolo SMTP para comunicação entre servidores: cliente: aquele que envia mensagens servidor: aquele que recebe mail SMTP mail SMTP SMTP mail 1º Semestre 2005/2006 Redes de Computadores I 2.39 SMTP ( Simple Mail Transfer Protocol ) Usa o protolo de transporte TCP para transferência fiável de mensagens de correio Modelo cliente/servidor; ao servidor corresponde o porto 25 Transferência directa entre emissor e receptor Três fases na comunicação entre cliente e servidor apresentação ( handshaking ) transferência de mensagens fecho Interacção na forma de comando - resposta comando: texto ASCII resposta: código e frase (como nos protocolos anteriores) As mensagens têm de ser formadas em 7-bit ASCII RFC 2821 1º Semestre 2005/2006 Redes de Computadores I 2.40 20
Exemplo de interacção SMTP S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Estas bem por ai? C: Confirmo a minha chegada ai no Sabado. Um abraco. C:. S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection 1º Semestre 2005/2006 Redes de Computadores I 2.41 Comparação SMTP/HTTP HTTP a informação é puxada pelo cliente cada objecto é encapsulado numa mensagem de resposta SMTP a informação (mensagens) é empurrada pelo cliente múltiplos objectos podem constituir uma única mensagem de correio usa CRLF.CRLF para identificar o fim da mensagem e portanto esta sequência não pode aparecer no texto Ambos usam interacção na forma de comando/resposta em ASCII 1º Semestre 2005/2006 Redes de Computadores I 2.42 21
Formato das mensagens O protocolo SMTP não define o formato das mensagens As mensagens de texto são normalizadas pelo RFC 822: Cabeçalho, To: From: Subject: Corpo da mensagem apenas caracteres ASCII header body Linha em branco 1º Semestre 2005/2006 Redes de Computadores I 2.43 Formato das mensagens: extensões MIME: Multipurpose Internet Mail Extensions, RFC 2045, 2046 MIME version method used to encode data multimedia data type, subtype, parameter declaration encoded data From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data 1º Semestre 2005/2006 Redes de Computadores I 2.44 22
Tipos MIME Tipo/subtipo Text exemplos de subtipos: plain, html Video exemplos de subtipos : mpeg, quicktime Image exemplos de subtipos : jpeg, gif Audio exemplos de subtipos : basic (8- bit mu-law), 32kadpcm Application dados que têm de ser processados por uma aplicação exemplos de subtipos : msword, octet-stream 1º Semestre 2005/2006 Redes de Computadores I 2.45 Formato das mensagens: tipo multipart From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=98766789 --98766789 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain Dear Bob, Please find a picture of a crepe. --98766789 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --98766789-- 1º Semestre 2005/2006 Redes de Computadores I 2.46 23
Protocolos de acesso SMTP SMTP POP3 or IMAP or HTTP sender s mail receiver s mail SMTP: usado para enviar/armazenar mensagens para os servidores Protocolos de acesso: usados para receber/ler mensagens presentes nos servidores POP: Post Office Protocol [RFC 1939] autorização (e <-->servidor) e transferência IMAP: Internet Mail Access Protocol [RFC 2060] manipulação de mensagens no servidor HTTP: manipulação de mensagens no servidor; e.g., Hotmail, Yahoo! 1º Semestre 2005/2006 Redes de Computadores I 2.47 Post Office Protocol v.3 (POP3) Fase de autorização comandos do cliente: : name pass: password respostas do servidor +OK -ERR Fase de transacção, cliente: list: mostra o nº das mens. retr: transfere a mens. pelo nº dele: apaga quit S: +OK POP3 ready C: alice S: +OK C: pass hungry S: +OK successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 signing off 1º Semestre 2005/2006 Redes de Computadores I 2.48 24
Camada de Aplicação Características dos protocolos da camada de aplicação modelos de serviço (cliente/servidor; P2P) Requisitos sobre os serviços de transporte Protocolos comuns: HTTP ( Hypertext Transfer Protocol ) DNS ( Domain Name System protocol ) FTP ( File Transfer Protocol ) SMTP ( Simple Mail Transfer Protocol ) Partilha de ficheiros ( Peer-to-Peer P2P file sharing ) 1º Semestre 2005/2006 Redes de Computadores I 2.49 Peer-to-Peer File Sharing Pesquisa em Directório Centralizado (e.g., NAPSTER) Registo Registo Pedido Registo Transferência de dados 1º Semestre 2005/2006 Redes de Computadores I 2.50 25
Peer-to-Peer File Sharing Pesquisa sem Directório (e.g., GNUTELLA) Query QueryHit Query QueryHit Query QueryHit Query Query 1º Semestre 2005/2006 Redes de Computadores I 2.51 Peer-to-Peer File Sharing Pesquisa em Directório Distribuído (e.g., KAZAA) Ordinary peer Group-leader peer 1º Semestre 2005/2006 Redes de Computadores I 2.52 26