90
Artur Arsenio Redes de Computadores 2010/2011 Departamento de Engenharia Informática 1 Redes de Computadores Redes de Computadores Camada Aplicação

Camada Aplicação

  • Upload
    lamtu

  • View
    228

  • Download
    3

Embed Size (px)

Citation preview

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática1

    Redes de ComputadoresRedes de Computadores

    Camada Aplicação

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática2 Camada de Aplicação

    Introdução às Redes de Computadores e Internet – Revisão

    � A Internet

    � Protocolos

    � Estrutura da rede– A periferia da rede

    – O núcleo da rede

    – Redes de Acesso e Meio Fisico

    � Desempenho: atraso e perda

    � Camadas de protocolos e modelos de serviço– TCP/IP e OSI

    � Estrutura da Internet e ISPs

    � A Internet

    � Protocolos

    � Estrutura da rede– A periferia da rede

    – O núcleo da rede

    – Redes de Acesso e Meio Fisico

    � Desempenho: atraso e perda

    � Camadas de protocolos e modelos de serviço– TCP/IP e OSI

    � Estrutura da Internet e ISPs

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática3 Camada de Aplicação

    Camada Aplicação

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol, POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    Segue Capitulo 2 do livro de J.F Kurose e K.W. Ross

    Objectivos:

    Adquirir os conceitos e aspectos de implementação dos protocolos de aplicação em rede, através do estudo de protocolos populares da camada aplicação.

    Objectivos:

    Adquirir os conceitos e aspectos de implementação dos protocolos de aplicação em rede, através do estudo de protocolos populares da camada aplicação.

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática4 Camada de Aplicação

    Algumas aplicações distribuidas

    VoIP Call – N – Share

    Mobile IM w/ Presence

    Multiplayer

    Gaming

    Network Address Book

    Mobile & IPTV

    Rich Media IMRingback Tones

    Picture ShareMobile

    Conferencing Video Surveillance Remote Monitoring

    � E-mail

    � Web

    � Instant messaging

    � Login remoto

    � Partilha de ficheiros P2P

    � Jogos de rede multi-utilizador

    � Vídeo-clips

    � Voz sobre IP

    � Vídeo-conferência em tempo real

    � Computação paralela em larga escala

    � IPTV, MobileTV

    � Redes Sociais (FaceBook, Hi5, LinkedIn)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática5 Camada de Aplicação

    My TV, My IM

    My cell phone…

    • IPTV will change the user TV experience from passive zapping to active browsing

    • High frustration with broadcast TV• Demand for better TV

    Already Today

    My choice on

    TV

    My choice on

    TV

    IPTV – Televisão sobre a Internet Still Today

    “I have 100 channels,

    but nothing to watch”

    “I have 100 channels,

    but nothing to watch”

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática6 Camada de Aplicação

    Aplicações em Telemóveis

    Applicações:� Segurança: telemóvel como chave

    � Saúde: mediar comunicações com dispositivos pessoais de saúde

    � Entretenimento: MobileTV, jogos

    Applicações:� Segurança: telemóvel como chave

    � Saúde: mediar comunicações com dispositivos pessoais de saúde

    � Entretenimento: MobileTV, jogos

    ... Edge Gateway

    ... New Multimedia Computer

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática7 Camada de Aplicação

    Open Internet – Novas Applicações... focus na Conectividade Social

    Video Sharing

    YouTube

    Flickr

    Photo Sharing

    Wikipedia

    Colaborativeencyclopedia

    BusinessConnections

    LinkedIn

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática8 Camada de Aplicação

    Open Internet – Novas Applicações... focus na Conectividade Social

    Virtual Worlds

    SecondLife

    Trust+Plus

    Colaborative Trust

    Where and Whatare you doing?

    Twitter

    MySpace

    Personal space

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática9 Camada de Aplicação

    Criando uma aplicação distribuida

    Aplicações distribuídas� programas que executam em diferentes sistemas

    terminais

    � necessitam trocar mensagens através da rede para fornecerem o resultado para que foram desenhadas

    � E.g., e-mail, transferência de ficheiros – Web: servidor Web (Apache, Microsoft) envia página

    Web (documento HTML) requisitada pelo navegador (browser-Internet Explorer) através de uma troca de mensagens (HTTP)

    � Dispositivos do núcleo da rede não executam aplicações de utilizadores

    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

    aplicaçãotransporte

    redeligaçãofísica

    aplicaçãotransporte

    redeligaçãofísica

    aplicaçãotransporte

    redeligaçãofísica

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática10 Camada de Aplicação

    Protocolos da Camada de Aplicação – o que definem?

    � Tipos de mensagens trocadas

    – eg mensagens de pedido e resposta

    � Sintaxe dos tipos das mensagens

    – campos presentes nas mensagens

    – e como são identificados

    � Semântica dos campos

    – significado da informação nos campos

    � Regras para quando os processos

    enviam e respondem às mensagens

    Protocolos de domínio público:

    � definidos em RFCs

    � Permitem a interoperação

    � ex, HTTP e SMTP

    Protocolos proprietários:

    � Ex., KaZaA, Skype

    Protocolos de domínio público:

    � definidos em RFCs

    � Permitem a interoperação

    � ex, HTTP e SMTP

    Protocolos proprietários:

    � Ex., KaZaA, Skype

    Aplicação

    DistribuidaProtocolo de

    Camada Aplicação

    Aplicação

    Distribuida

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática11 Camada de Aplicação

    Processos em comunicação- Endereçamento de processos

    Processo: programa que éexecutado numa máquina

    � processos na mesma máquina comunicam (típicamente) usando comunicação entre processos(interprocess communication) do sistema operativo (SO)

    � Processos que se executam em máquinas diferentes comunicam através de um protocolo da camada de aplicação, trocando mensagens através da rede

    � Processo servidor: processo que espera para ser contactado

    � Processo cliente: processo que inicia a comunicação– Faz a interface com o utilizador

    “acima” e com a rede “abaixo”

    – implementa protocolos nível de aplicação

    – Ex. WWW: “browser”, E-mail: leitor de correio, audio/video: “media player”

    Aplicações com arquitecturas P2P possuem processos clientes e processos servidores

    ProcessoProcesso Canal de comunicaçãoCanal de comunicaçãoporto

    Processoporto

    � Para o processo receber mensagens, precisa de um identificador

    – endereço IP único de 32 bits do host

    – e número do porto associado com o processo na máquina

    � e.g. Servidor HTTP: porto 80

    � Servidor de Correio: porto 25

    � Para o processo receber mensagens, precisa de um identificador

    – endereço IP único de 32 bits do host

    – e número do porto associado com o processo na máquina

    � e.g. Servidor HTTP: porto 80

    � Servidor de Correio: porto 25

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática12 Camada de Aplicação

    � Os processos enviam /recebem mensagens para /de outros processos através dos seus sockets– Um socket corre no sistema terminal e é

    análogo a uma porta entre os processos da aplicação e o protocolo de transporte

    – O processo que envia empurra a mensagem para fora da porta

    – assume que a infraestrutura de transporte do outro lado da porta leva a mensagem até ao socket do processo que a recebe

    � Protocolo de transporte: transferência de bytes de um processo para outro

    � API (Interface de Programação da Aplicação)– Permite escolher o protocolo de transporte

    – E definir alguns parâmetros� Tamanho buffers e segmentos do TCP

    Sockets

    processo

    TCP com

    buffers,

    variáveis

    socket

    Cliente

    processo

    TCP com

    buffers,

    variáveis

    socket

    Servidor

    Internet

    Controlado pelo SO

    controlado pelo

    programador da

    aplicação

    socket

    Ou UDP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática13 Camada de Aplicação

    Sockets com Ligação

    socket

    bind

    listen socket

    connectaccept

    read

    write read

    write

    ClienteServidor

    ClienteServidor

    Socket

    Cliente

    Socket

    Escuta

    Socket

    Ligação

    3-way handshake

    bytes

    bytes

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática14 Camada de Aplicação

    import java.net*;

    import java.io*;

    public class TCPClient{

    public static void main(String args[]){

    // args: message and destin. hostname

    Socket s = null;

    try{

    int server Port = 7896;

    s = new Socket (args[1], serverPort);

    DataInputStream = new DataInputStream(s.getInputStream());

    DataOutputStream out =

    newDataOutputStream (s.getOutputStream());

    out.writeUTF(args[0]);

    String data = in.readUTF();

    System.out.prtintln(“Received: ” + data);

    }catch (UnknownHostException e){

    System.out.println(“Sock:” + e.getMessage());

    }catch (EOFException e){System.out.println(“EOF:”e.getMessage());

    }catch (IOException e){System.out.println(“IO:”e.getMessage());

    }finally {if(s!=null) try{s.close();}catch (IOException e}

    }

    • classe Socket – suporta o socket cliente. Argumentos: nome DNS do servidor e o porto.• Construtor não só cria o socket como efectua a ligação TCP

    Métodos getInputStream / getOutputStream – permitem aceder aos dois streamsdefinidos pelo socket

    WriteUTF / readUTF –para Universal transferformat / para as cadeias de caracteres

    Sockets Stream em Java (Cliente)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática15 Camada de Aplicação

    import java.net*;

    import java.io*;

    public class TCPServer{

    public static void main(String args[]){

    try{

    int server Port = 7896;

    ServerSocket listenSocket = new ServerSocket(serverPort);

    while(true){

    Socket connectionSocket = listenSocket.accept();

    myConnection c = new myConnection(connectionSocket);

    }

    }catch (IOException e){System.out.println(“Listen:”

    +e.getMessage());}

    }

    }

    Bloqueia até cliente estabelecer ligação.

    Cria socket servidor que fica àescuta no porto “serverPort”

    Sockets Stream em Java (Servidor)

    Cria novo socket servidor com quem é estabelecida ligação com o cliente

    e onde os dados são recebidos

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática16 Camada de Aplicação

    Sockets Stream em Java

    � Socket – classe que suporta o socket cliente e que tem como argumentos a identificação remota do servidor: o nome DNS do servidor e o porto– O construtor não só cria o socket como efectua a ligação

    � Métodos– getInputStream; getOutputStream – permite aceder aos dois streams definidos pelo socket

    � ServerSocket – classe para o servidor

    � Métodos– Accept

    � Recebe um socket cliente sempre que é invocado o connect

    � WriteUTF e readUTF – Universal Transfer Format– para as cadeias de caracteres

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática17 Camada de Aplicação

    Sockets sem Ligação

    socket

    bind

    recvfrom

    sendto

    socket

    bind

    sendto

    recvfrom

    ClienteServidor

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática18 Camada de Aplicação

    Sockets UDP em Java (Cliente)

    import java.net*;

    import java.io*;

    public class UDPClient{

    public static void main(String args[]){

    // args give message contents and server hostname

    DatagramSocket aSocket = null;

    try {

    aSocket = new DatagramSocket();

    byte [] m = args [0].getBytes();

    InetAddress aHost = InetAddress.getByName(args[1]);

    Int serverPort = 6789;

    DatagramPacket request =

    new DatagramPacket(m, args[0].length(), aHost, serverPort);

    aSocket.send(request);

    byte[]buffer = new byte[1000];

    DatagramPacket reply = new DatagramPacket(buffer, buffer.length);

    aSocket.receive(reply);

    System.out.println(“Reply:” + new String(reply.getData()));

    } catch (SocketException e){System.out.println(“Socket:” + e.getMessage());

    } catch (IOException e){System.out.println(“IO:” + e.getMessage());

    } finally { if(aSocket ! = null) aSocket.close();}

    }

    }

    Conversão do nome DNS para endereço IP

    Constrói um socket datagram(associado a qualquer porto disponível)

    Cada mensagem enviada tem que levar junto identificador do processo destino: IP e porto

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática19 Camada de Aplicação

    Sockets UDP em Java (Servidor)import java.net*;

    import java.io*;

    public class UDPServer{

    public static void main(String args[]){

    DatagramSocket aSocket = null;

    try{

    aSocket = new DatagramSocket(6789);

    byte[] buffer = new byte [1000];

    while(true){

    DatagramPacket request = new DatagramPacket(buffer, buffer.legth);

    aSocket.receive(request);

    DatagramPacket reply = new DatagramPacket(request.getData(),

    request.getLength(); request.getAddress(), request.getPort());

    aSocket.send(reply);

    }

    } catch (SocketException e){System.outprintln(“Socket:”+ e.getMessage());

    } catch (IOException e){System.out.println(“IO:” + e.getMessage());

    } finally {if(aSocket ! = null) aSocket.close();}

    }

    }

    Constrói um socket datagram (associado ao porto 6789)

    Recebe mensagem

    Extrai da mensagem o IP e porto do processo

    origem para responder

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática20 Camada de Aplicação

    Sockets Datagram em Java

    � DatagramSocket – classe que suporta os socketsdatagram e que tem como argumento um porto

    � Métodos

    – send; receive

    – setSoTimeout – temporizador que limita o tempo de espera do receive

    – connect – define um porto remoto

    � Conversão do nome DNS para um endereço Internet com o método InetAddress.getByName

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática21 Camada de Aplicação

    Serviço TCP:

    � com ligação: inicialização requerida entre cliente e servidor

    � transporte fiável entre processos remetente e receptor

    � controlo do fluxo: remetente não vai “inundar” receptor

    � controlo de congestão: bloqueio do remetente quando a rede estácarregada

    � não oferece: garantias temporais ou de banda mínima

    Serviço UDP:

    � transferência de dados não fiável entre processos remetente e receptor

    � não oferece: estabelecimento da ligação, fiabilidade, controlo do fluxo, controlo do congestão, garantias temporais ou de banda mínima

    � Protocolo leve

    Serviços fornecidos pelos protocolos de transporte Internet (recapitular)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática22 Camada de Aplicação

    De que serviços de transporte necessita uma aplicação?

    Requisitos sobre os serviços de transporte

    Perdas de dados� algumas aplicações (e.g. áudio)

    toleram perdas de informação

    � outras (eg transferência de ficheiros, telnet) requerem transferências 100% fiáveis

    Temporização� algumas aplicações (e.g.,

    telefone sobre a internet -VoIP, jogos interactivos) exigem um pequeno atraso extremo a extremo aproximadamente constante durante a sua execução

    Largura de banda

    � algumas aplicações (eg

    aplicações multimedia)

    requerem um ritmo mínimo de

    transferência de informação

    para funcionarem

    adequadamente

    � outras aplicações conseguem

    usar qualquer largura de banda

    disponível em cada instante

    – Eg. Aplicações “elásticas” como

    transferência de ficheiros

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática23 Camada de Aplicação

    Aplicação

    transferência ficheiros

    Correio electrónico

    documentos Web

    áudio/vídeo de

    tempo real

    videoconferência

    áudio/vídeo gravado

    jogos interativos

    Mensagem

    Instantânea

    aplicações financeiras

    Perdas

    intolerante

    intolerante

    intolerante

    tolerante

    tolerante

    tolerante

    intolerante –

    sem perdas

    intolerante

    Largura de

    Banda

    elástica

    elástica

    elástica

    áudio: 5Kb-1Mb

    vídeo:10Kb-5Mb

    como anterior

    > alguns Kbps

    elástica

    elástica

    Sensibilidade

    temporal a atrasos

    não

    não

    não

    sim, 100’s mseg

    sim, alguns segs

    sim, 100’s mseg

    sim e não

    ---

    A Internet de hoje ainda não dá garantias de Banda e Sensibilidade Temporal

    Requisitos sobre o Serviço de Transporte de Aplicações Comuns

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática24 Camada de Aplicação

    Aplicação Internet

    correio electrónico

    acesso em terminal remoto

    Web

    transferência de ficheiros

    streaming multimedia

    servidor de ficheiros remoto

    Telefone sobre Internet

    Protocolo da

    camada de aplicação

    SMTP [RFC 2821]

    telnet [RFC 854], ssh

    HTTP [RFC 2616]

    FTP [RFC 959]

    HTTP(ex. YouTube), RTP

    NFS

    Proprietários (Skype)

    Protocolo de

    transporte usado

    TCP

    TCP

    TCP

    TCP

    TCP ou UDP

    TCP ou UDP

    tipicamente UDP

    Aplicações Internet: protocolos de aplicação e de transporte

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática25 Camada de Aplicação

    Camada Aplicação - Revisão

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext TransferProtocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext TransferProtocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Aplicações

    Distribuidas

    � Processos

    � Programação de

    aplicações de Rede

    (API dos Sockets)

    � Requisitos sobre os

    serviços de

    transporte

    � Aplicações

    Distribuidas

    � Processos

    � Programação de

    aplicações de Rede

    (API dos Sockets)

    � Requisitos sobre os

    serviços de

    transporte

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática26 Camada de Aplicação

    Web (ou www – World Wide Web)

    � Página Web (Web page) é constituida por objectos

    – Objecto pode ser um ficheiro HTML (que referencia outros objectos), imagem JPEG, vídeo-clip, ficheiro de áudio,…

    – Cada objecto é endereçado por um URL

    – Se pagina Web tiver texto HTML mais n objectos referenciados (egimagens), então o número total de objectos é n+1

    � Um URL (Uniform Resource Locator) tem duas componentes: “host name” e “path name”

    www.ist.utl.pt/secretaria/pautas.html

    nome da máquina host / servidor nome do caminho

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática27 Camada de Aplicação

    Modelo Cliente/Servidor

    � “browser” é o agente de utilizador Web, ou cliente HTTP– MS Internet Explorer, Netscape

    Navigator, Mozilla Firefox, Google Chrome

    – pede, recebe, mostra objectos Web

    PC executaExplorer

    Mac executaNavigator

    pedido http

    pedido

    http

    Servidor Web

    (ex. IST)resposta http

    respos

    ta htt

    p

    HyperText Transfer Protocol – protocolo de transferência de hipertexto

    Protocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616Protocolo da camada de aplicação da WebHTTP 1.0: RFC 1945, HTTP 1.1: RFC 2616

    � O servidor Web chama-se “Web Server”– eg. Apache, MS Internet Information Server

    – Implementa lado servidor do HTTP

    – envia objectos www em resposta a pedidos

    Protocolo HTTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática28 Camada de Aplicação

    Protocolo HTTP (cont.)

    Usa serviço de transporte TCP1. cliente inicia ligação TCP (cria

    um socket) com o servidor no porto 80

    2. servidor aceita ligação TCP do cliente

    3. mensagens HTTP (mensagens do protocolo da camada de aplicação) trocadas entre browser (cliente HTTP) e o WebServer (servidor HTTP)

    4. Encerramento da ligação TCP

    Usa serviço de transporte TCP1. cliente inicia ligação TCP (cria

    um socket) com o servidor no porto 80

    2. servidor aceita ligação TCP do cliente

    3. mensagens HTTP (mensagens do protocolo da camada de aplicação) trocadas entre browser (cliente HTTP) e o WebServer (servidor HTTP)

    4. Encerramento da ligação TCP

    HTTP “não mantem estado”� servidor não mantém

    informação sobre pedidos anteriores do cliente

    Protocolos que mantêm “estado” são complexos!

    � história passada (estado) tem que ser guardada

    � Caso o servidor ou o cliente vá abaixo, as visões do “estado” destes podem ficar inconsistentes, e devem portanto ser sincronizadas

    Nota

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática29 Camada de Aplicação

    Ligações HTTP

    HTTP não persistente

    � O servidor interpreta o pedido, responde e fecha a ligação TCP – No máximo um objecto é enviado

    numa ligação TCP

    – Mas, na maioria dos casos, usam-se várias ligações TCP em paralelo

    � Ineficiente– Cada transferência é sujeita ao

    período “slow start” do TCP

    – Com paralelismo consegue-se aumentar eficiência

    � HTTP/1.0 usa HTTP não persistente

    HTTP persistente

    � Múltiplos objectos podem ser enviados sobre 1 única ligação TCP entre cliente e servidor– na mesma ligação TCP o

    servidor responde a vários pedidos

    – o cliente envia pedidos para todos os objectos referenciados na mesma página de base

    � HTTP/1.1 usa ligações persistentes no seu modo default

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática30 Camada de Aplicação

    Exemplo: Utilizador introduz o URL: www.ist.utl.pt/dei/index.html

    1a. Cliente http inicia ligação TCP ao servidor http

    (processo) www.ist.utl.pt

    na Porta 80, padrão para

    servidor http.

    1b. servidor http no hostwww.ist.utl.pt espera por ligação TCP na porta 80. “aceita” ligação, avisando o cliente

    3. servidor http recebe mensagem de pedido, elabora a mensagem de resposta contendo o objecto solicitado www.ist.utl.pt/dei/index.html, e envia mensagem via socket

    tempo

    2. cliente http envia mensagem de pedidode http (incluindo o URL) através do socket da ligação TCP

    HTTP com ligação não persistente

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática31 Camada de Aplicação

    Exemplo de HTTP não persistente (cont.)

    6. passos 1 a 5 repetidos para cada um dos n objectos jpeg

    4. servidor http encerra ligação TCP

    tempo

    5. cliente http recebe mensagem de resposta a qual contem o ficheiro html, mostra html. No ficheiro html, encontra referências para n objectos jpeg

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática32 Camada de Aplicação

    RTT (Round Trip Time)

    � intervalo de tempo entre a ida e a volta de um pacote (tamanho pequeno) entre um cliente e um servidor

    Tempo de resposta:

    � um RTT para iniciar a ligação TCP

    � um RTT para o pedido HTTP e o retorno dos primeiros bytes da resposta HTTP

    � O RTT inclui os atrasos

    RTT (Round Trip Time)

    � intervalo de tempo entre a ida e a volta de um pacote (tamanho pequeno) entre um cliente e um servidor

    Tempo de resposta:

    � um RTT para iniciar a ligação TCP

    � um RTT para o pedido HTTP e o retorno dos primeiros bytes da resposta HTTP

    � O RTT inclui os atrasos

    tempo para

    transmitir

    o ficheiro

    Iniciar a ligação

    TCP

    RTT

    pedir

    ficheiro

    RTT

    ficheiro

    recebidotempo tempo

    Tempo total = 2RTT + tempo de transmissão

    Modelo do tempo de resposta

    propqueueproc ,, ddd

    �Tempo total = 2RTT + tempo de transmissão do ficheiro

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática33 Camada de Aplicação

    HTTP não persistente – Problemas

    � requer 2 RTTs para cada objecto

    � SO aloca recursos do host para cada

    ligação TCP

    � o browser abre com frequência

    ligações TCP paralelas para recuperar

    os objectos referenciados

    � requer 2 RTTs para cada objecto

    � SO aloca recursos do host para cada

    ligação TCP

    � o browser abre com frequência

    ligações TCP paralelas para recuperar

    os objectos referenciados

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática34 Camada de Aplicação

    HTTP persistente

    � o servidor deixa a

    ligação aberta após

    enviar a resposta

    � As mensagens

    HTTP seguintes

    entre o mesmo

    cliente/servidor são

    enviadas nesta

    ligação

    Persistente sem pipelining (paralelismo):

    � o cliente envia um novo pedido apenas quando a resposta anterior tiver sido recebida

    � um RTT para cada objecto referenciado

    Persistente com pipelining

    � default no HTTP/1.1

    � o cliente envia os pedidos logo que encontra um objecto referenciado

    � pode ser necessário apenas um RTT para todos os objectos referenciados

    HTTP com ligação persistente

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática35 Camada de Aplicação

    Formato de mensagem HTTP: pedido

    Dois tipos de mensagem HTTP: pedido (request), resposta (response)

    GET /somedir/page.html HTTP/1.1

    Host: www.someschool.edu

    Connection: close

    User-agent: Mozilla/4.0

    Accept-language:fr

    (caracteres adicionais de carriage return - CR, line feed - LF)

    linha do pedido (comandos GET, POST, HEAD, PUT, DELETE)

    linhas do

    cabeçalho

    linha em branco

    (carriage return, line

    feed) indica o fim

    do cabeçalho

    ASC II - American Standard Code for Information Interchange II

    256 caracteres codificados em 8 bits (formato legível por pessoas)ASC II - American Standard Code for Information Interchange II

    256 caracteres codificados em 8 bits (formato legível por pessoas)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática36 Camada de Aplicação

    Mensagem de pedido HTTP

    Linhas do

    Cabeçalho

    (header lines)

    Linha de

    pedido

    (request line)

    Linha em

    branco

    Corpo da

    mensagem

    (entity body)

    formato geral

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática37 Camada de Aplicação

    Formato de mensagem HTTP: pedido

    GET /somedir/page.html HTTP/1.1

    Host: www.someschool.edu

    Connection: close

    User-agent: Mozilla/4.0

    Accept-language:fr

    Sistema terminal em que os

    objectos residem

    Tipo de browser

    Não utilizar ligações persistentes

    O cliente prefere obter a versão

    francesa do objecto

    Método URL Versão HTTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática38 Camada de Aplicação

    Tipos de métodos

    HTTP/1.0

    � GET– Utilizador pede um objecto ou envia

    formulário no campo URL da linha de pedido

    � POST– Utilizador introduz dados na página

    web preenchendo formulário

    – Dados enviados no corpo da mensagem

    � HEAD– Pede ao servidor para não incluir o

    objecto na resposta

    HTTP/1.0

    � GET– Utilizador pede um objecto ou envia

    formulário no campo URL da linha de pedido

    � POST– Utilizador introduz dados na página

    web preenchendo formulário

    – Dados enviados no corpo da mensagem

    � HEAD– Pede ao servidor para não incluir o

    objecto na resposta

    HTTP/1.1

    � GET, POST, HEAD

    � PUT– Envio (Upload) de

    ficheiro no corpo da mensagem para o caminho especificado no campo URL

    � DELETE– Apaga do servidor

    Web ficheiro especificado no campo URL

    HTTP/1.1

    � GET, POST, HEAD

    � PUT– Envio (Upload) de

    ficheiro no corpo da mensagem para o caminho especificado no campo URL

    � DELETE– Apaga do servidor

    Web ficheiro especificado no campo URL

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática39 Camada de Aplicação

    HTTP/1.0 200 OK

    Connection: close

    Date: Thu, 06 Aug 2009 12:00:15 GMT

    Server: Apache/1.3.0 (Unix)

    Last-Modified: Mon, 22 Jun 2009...

    Content-Length: 6821

    Content-Type: text/html

    dados dados dados dados ...

    linha de estado (protocolo, código de estado, frase descritiva do estado)

    linhas de cabeçalho

    dados, eg ficheiro html (ou imagem, etc) pedido

    Mensagem HTTP de resposta

    formato

    data em que objecto foi

    criado ou modificado

    número de bytes do

    objecto

    tipo de objecto

    servidor que gerou a

    resposta

    data em que resposta

    foi criada no servidor

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática40 Camada de Aplicação

    Códigos de estado da resposta HTTP

    200 OK

    – sucesso, objecto pedido segue mais adiante nesta mensagem

    301 Moved Permanently

    – objecto pedido mudou de lugar, nova localização especificada mais adiante nesta mensagem (cabeçalho Location:)

    400 Bad Request

    – mensagem de pedido não entendida pelo servidor

    404 Not Found

    – objecto pedido não foi encontrado neste servidor

    505 HTTP Version Not Supported

    – versão de http do pedido não usada por este servidor

    Na primeira linha da mensagem de resposta servidor->cliente

    Alguns códigos típicos

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática41 Camada de Aplicação

    Analisador de Pacotes de Rede Wireshark –Captura HTTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática42 Camada de Aplicação

    Interacção utilizador/servidor: Autenticação

    Autenticação: controlo de acesso aosdocumentos no servidor

    � Credenciais de Autorização: tipicamentenome (username) e senha (password) na linha do cabeçalho do pedido

    � Sem estado (stateless): o clienteapresenta autorização em cada pedido

    – Linha de cabeçalho Authorization em cada pedido

    – Sem cabeçalho Authorization, o servidor recusa o acesso, e responde com o cabeçalho www authenticate

    � o “browser” memoriza a autorização, repetindo-a a cada pedido

    Autenticação: controlo de acesso aosdocumentos no servidor

    � Credenciais de Autorização: tipicamentenome (username) e senha (password) na linha do cabeçalho do pedido

    � Sem estado (stateless): o clienteapresenta autorização em cada pedido

    – Linha de cabeçalho Authorization em cada pedido

    – Sem cabeçalho Authorization, o servidor recusa o acesso, e responde com o cabeçalho www authenticate

    � o “browser” memoriza a autorização, repetindo-a a cada pedido

    cliente servidor

    msg pedido http

    401 authorization reqwww authenticate

    msg pedido httpauthorization

    resposta normal http

    msg pedido httpauthorization

    resposta normal httptempo

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática43 Camada de Aplicação

    Cookies: manutenção do “estado” da ligação

    Exemplo:� Ana surfa na Internet

    sempre do mesmo PC

    � Ela visita um site específico de comércio electrónico pela primeira vez

    � Quando os pedidos iniciais HTTP chegam ao site Web, este cria um identificador (ID) único e cria também uma entrada para o ID na sua Base de Dados

    Exemplo:� Ana surfa na Internet

    sempre do mesmo PC

    � Ela visita um site específico de comércio electrónico pela primeira vez

    � Quando os pedidos iniciais HTTP chegam ao site Web, este cria um identificador (ID) único e cria também uma entrada para o ID na sua Base de Dados

    Permitem que sites identifiquem e monitorizem os seus utilizadores

    Vários sites Web usam cookies

    Quatro componentes:

    1. linha de cabeçalho do cookie na mensagem de resposta HTTP – Set-cookie: 1678

    2. linha de cabeçalho do cookie na mensagem de pedido HTTP– Cookie: 1678

    3. ficheiro de cookies mantido na máquina do utilizador e gerido pelo browser deste– armazenado no disco rígido com

    dados do utilizador

    4. Base de Dados (BD) de apoio no site Web

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática44 Camada de Aplicação

    Cookies: manutenção do “estado” (cont.)

    cliente servidor

    msg pedido http

    resposta http +Set-cookie: 1678

    msg pedido httpcookie: 1678

    resposta http

    msg pedido httpcookie: 1678

    resposta http

    servidor valida o

    “cookie”

    Acção específica

    do cookie

    acção

    específica

    do cookie

    servidor

    cria o ID 1678 e

    envia ao

    utilizador

    entrada na BD

    de apoio

    acesso

    aces

    so

    ficheiro de Cookiesamazon: 1678

    ebay: 8734

    ficheiro de Cookies

    Host - ID

    ebay: 8734

    ficheiro de Cookies

    amazon: 1678

    ebay: 8734

    uma semana depois:

    cliente apresenta “cookie” em

    futuras mensagens “request”

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática45 Camada de Aplicação

    Cookies (continuação)

    O que os cookies podem fazer:

    � Autorização após armazenar o registo da pessoa

    � Registo da lista de compras no E-commerce

    � Sugestões – recomendar produtos

    � estado da sessão do utilizador (Web email) –identificação do utilizador

    � Cookies armazenam coisas que utilizador acedeu, e também info este nunca viu

    Cookies e privacidade:

    � cookies permitem que os sites aprendam muito sobre o utilizador

    � mecanismos de busca usam redirecionamento e cookies para aprender ainda mais sobre utilizador

    � agências de publicidade obtêm perfil de utilizadores a partir dos sites visitados e oferecem a estes produtos de forma agressiva (eg DoubleClick)

    Nota

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática46 Camada de Aplicação

    Cache Web (servidor proxy)

    � O utilizador configura o “browser” para aceder a web 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”cria ligação TCP com o servidor origem, consulta este, e memoriza o objecto retornado na resposta (para futura utilização)

    � e responde ao pedido do cliente na ligação TCP que tinha com este

    Objectivo: satisfazer o pedido de um cliente sem envolver o servidor origem

    clienteServidorproxy

    cliente

    pedido http

    pedido

    http

    resposta http

    respos

    ta htt

    p

    pedido

    http

    respos

    ta htt

    p

    Servidor de origem

    Servidor de origem

    pedido httpresposta http

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática47 Camada de Aplicação

    Caches Web

    � Cache actua tanto como cliente

    quanto como servidor

    � Guarda as suas próprias cópias

    dos objectos no seu próprio

    sistema de armazenamento

    � Tipicamente a cache é instalada

    por um ISP (universidade,

    empresa, ISP residencial)

    � Redução do tempo de resposta

    para os pedidos do cliente

    � Redução do tráfego no canal de

    acesso de uma instituição

    � A Internet cheia de caches

    permitem que provedores de

    conteúdo “pobres” efectivamente

    forneçam conteúdo!!!!!

    � Redução do tempo de resposta

    para os pedidos do cliente

    � Redução do tráfego no canal de

    acesso de uma instituição

    � A Internet cheia de caches

    permitem que provedores de

    conteúdo “pobres” efectivamente

    forneçam conteúdo!!!!!

    Quais as vantagens da Web Cache?

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática48 Camada de Aplicação

    Exemplo de cache Servidores de origem

    Internetpública

    Rede dainstituição LAN 10 Mbps

    ligação de acesso 1,5 Mbps

    Hipóteses

    � Tamanho médio dos objectos = 100k bits

    � Taxa média de solicitações dos browsers de uma instituição para os servidores originais = a = 15/seg

    � Atraso do roteador institucional para qualquer servidor origem e de volta ao roteador = 2seg

    Consequências

    � Utilização da LAN = aL/R = 15/seg x 100Kb / 10Mbps=15%

    � Utilização do canal de acesso = 15 / seg x 100Kb x / 1,5Mbps = 100%

    � Atraso total = atraso da Internet + atraso de acesso + atraso na LAN =

    2 seg + minutos (100%) + milisegundos (15%)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática49 Camada de Aplicação

    Exemplo de cache- Solução de Upgrade

    Solução Potencial

    � Aumento da largura de banda do canal de acesso para, por exemplo, 10 Mbps

    Consequências

    � Utilização da LAN = 15%

    � Utilização do canal de acesso = 15%

    � Atraso total = atraso da Internet + atraso de acesso + atraso na LAN =

    2 seg + msegs + msegs

    � Frequentemente esta é uma ampliação cara– Requer upgrade da ligação da instituição

    à internet

    Servidores de origem

    Internetpública

    Rede dainstituição LAN 10 Mbps

    ligação de acesso 10 Mbps

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática50 Camada de Aplicação

    Exemplo de cache- Uso de uma Web Cache

    Instalação de uma cache

    � Assumir que a taxa de reutilização seja de 0,4 (tipicamente entre 0,2 e 0,7)

    Consequências

    � 40% dos pedidos serão atendidos quase imediatamente

    � 60% dos pedidos serão servidos pelos servidores de origem

    � Utilização do canal de acesso é reduzido para 60%, resultando em atrasos desprezíveis– e.g. 0,01 segs

    � Atraso total = atraso da Internet + atraso de acesso + atraso na LAN =

    0,6 x 2 seg + 0,6 x 0,01 segs + 0,4 x 0,01seg

    < 1,3 segs

    Servidores de origem

    Internetpública

    Rede dainstituição LAN 10 Mbps

    ligação de acesso 1,5 Mbps

    cache institucional

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática51 Camada de Aplicação

    Interacção utilizador/servidor: GET condicional

    � Objectivo: evitar a transmissão de um objecto que existe memorizado no cliente (na cache)

    � Cliente: especifica a data da cópia que possui na mensagem request

    If-modified-since:

    � Servidor: a resposta não inclui o objecto se o cliente o tem actualizado

    HTTP/1.0 304 Not Modified

    � Objectivo: evitar a transmissão de um objecto que existe memorizado no cliente (na cache)

    � Cliente: especifica a data da cópia que possui na mensagem request

    If-modified-since:

    � Servidor: a resposta não inclui o objecto se o cliente o tem actualizado

    HTTP/1.0 304 Not Modified

    cliente servidor

    msg de pedido httpIf-modified-since:

    resposta httpHTTP/1.0

    304 Not Modified

    Objecto não modificado

    msg de pedido httpIf-modified-

    since:

    resposta httpHTTP/1.1 200 OK

    Objecto modificado

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática52 Camada de Aplicação

    A Web e o HTTP - Revisão

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � A Web e o Protocolo

    HTTP

    � Modelo do tempo de

    resposta

    � HTTP persistente e

    não persistente

    � Formato de

    mensagens HTTP

    – Pedido

    – Resposta

    � Cookies

    � Web Caches

    � GET Condicional

    � A Web e o Protocolo

    HTTP

    � Modelo do tempo de

    resposta

    � HTTP persistente e

    não persistente

    � Formato de

    mensagens HTTP

    – Pedido

    – Resposta

    � Cookies

    � Web Caches

    � GET Condicional

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática53 Camada de Aplicação

    Transferência de ficheiros - FTP

    � Transferência de ficheiros de/para um computador remoto

    � Modelo cliente/servidor

    – cliente: inicia a transferência

    – servidor: computador remoto (Servidor ftp: porto 21)

    � Transferência de ficheiros de/para um computador remoto

    � Modelo cliente/servidor

    – cliente: inicia a transferência

    – servidor: computador remoto (Servidor ftp: porto 21)

    transferênciado ficheiro Servidor

    FTP

    Interface FTP do

    utilizador

    cliente FTP

    sistema de ficheiros local

    sistema de ficheiros remoto

    Utilizador na máquina

    [RFC 959]

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática54 Camada de Aplicação

    Separação das ligações de dados e de controlo

    � O cliente FTP contacta o servidorFTP especificando o protocolo de transporte TCP e o porto 21

    � São criadas ligações TCP em paralelo “out of band control”: – controlo: troca de comandos e respostas entre o cliente e

    o servidor. � Persistente – sempre aberta durante a sessão do utilizador.

    � Envio de informação de autorização

    � Consulta da directoria remota

    � Envio de comandos put e get

    – dados: transferência de dados (ficheiros) entre o cliente e o servidor. Uma ligação TCP por cada ficheiro a enviaro após a transmissão de um ficheiro o servidor fecha a ligação

    � O servidor FTP mantém o estado em cada sessão – identificação do utilizador, directoria actual

    – limite do nº de sessões paralelas

    cliente

    FTPservidor

    FTP

    Ligação de controloTCP, porto 21

    Ligação de dados TCP, porto 20

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática55 Camada de Aplicação

    FTP: Comandos e Respostas

    Comandos� enviados em texto ASCII (7-

    bit) pelo canal de controlo

    � USER nome

    � PASS senha

    � LIST (envia a lista de ficheirosda directoria actual)

    � RETR filename – cliente lê(get) ficheiro do servidor

    � STOR filename - o clienteescreve (put) o ficheiro no servidor, o qual o armazena

    Respostas

    � Inclui um código e frase de

    status (como no http)

    � 331 Username OK,

    password required

    � 125 data connection already

    open; transfer starting

    � 425 Can’t open data

    connection

    � 452 Error writing file

    CR e LF terminam cada comando

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática56 Camada de Aplicação

    Wireshark – Captura FTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática57 Camada de Aplicação

    Transferência de Ficheiros - Revisão

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Separação das

    ligações no FTP

    – Controlo

    – Dados

    � FTP: Comandos e

    Respostas

    � Separação das

    ligações no FTP

    – Controlo

    – Dados

    � FTP: Comandos e

    Respostas

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática58 Camada de Aplicação

    Três componentes principais� agentes de utilizador

    � servidores de correio

    � protocolo de transferência de mensagens SMTP - Simple Mail Transfer Protocol

    caixa de correio (mailbox)do utilizador

    fila demensagens de saída

    Correio Electrónico

    Servidor de mensagens

    SMTP

    SMTP

    SMTP

    agente de utilizador

    Servidor demensagens

    Servidor de mensagens

    agente de utilizador

    agente de utilizador agente de

    utilizador

    agente de utilizador

    agente de utilizador

    Agente de Utilizador� Interface para compor, modificar e

    ler mensagens de correio electrónico– leitor de mensagens (mail reader)

    – e.g. Eudora, Outlook, elm, Netscape Messenger

    � Mensagens que chegam ou a ser enviadas são armazenadas no servidor

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática59 Camada de Aplicação

    Servidor de Correio ElectrónicoComponentes

    � Caixa do correio (“Mailbox”) que contém as mensagensdo utilizador ainda não lidas

    � Fila de mensagens de saídapara as que ainda nãoforam enviadas

    � Implementação do protocoloSMTP (push- envio de mensagem) paracomunicação entreservidores: – cliente: aquele que envia

    mensagens

    – servidor: aquele que recebe

    Servidor de mensagens

    SMTP

    SMTP

    SMTP

    agente de utilizador

    Servidor demensagens

    Servidor de mensagens

    agente de utilizador

    agente de utilizador agente de

    utilizador

    agente de utilizador

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática60 Camada de Aplicação

    SMTP “Simple Mail Transfer Protocol”

    [RFC 2821]

    Endereço de e-mail: [email protected]

    Nome local Nome do Servidor

    � Usa o protocolo de transporte TCP para transferência fiável de mensagens

    � 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 da ligação

    � Interacção na forma de comando - resposta– comando: texto ASCII

    – resposta: código de status e frase explicativa

    � As mensagens têm de ser formadas em ASCII de 7-bits

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática61 Camada de Aplicação

    CenárioAlice envia mensagem para Bob

    useragent

    mailserver

    mailserver user

    agent

    Cliente SMTP Servidor SMTP

    SMTP

    caixa de correio (mailbox)do utilizador

    fila demensagens de saída

    2

    2) Alice envia a mensagem para o seu servidor de mensagens

    - a mensagem é colocada na fila

    3

    3) O lado cliente do SMTP abre uma ligação TCP com o servidor de mensagens do Bob

    1

    1) Alice compõe uma mensagem para [email protected]

    4

    4) Caso consiga a ligação, o cliente SMTP envia a mensagem de Alice através da ligação TCP

    6

    6) Bob usa o seu Agente de Utilizador para ler a mensagem

    5

    5) Servidor de mensagens de Bob coloca a mensagem na caixa de e-mail de Bob

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática62 Camada de Aplicação

    Exemplo de interacção SMTP

    S: 220 doces.pt

    C: HELO consumidor.pt

    S: 250 Hello consumidor.pt, pleased to meet you

    C: MAIL FROM:

    S: 250 [email protected]... Sender ok

    C: RCPT TO:

    S: 250 [email protected] ... Recipient ok

    C: DATA

    S: 354 Enter mail, end with "." on a line by itself

    C: Gostas de chocolate?

    C: Durante a abertura da nossa loja, são gratuitos!

    C: .

    S: 250 Message accepted for delivery

    C: QUIT

    S: 221 doces.pt closing connection

    Linhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida

    • Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT

    • Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)

    Linhas enviadas por cliente e servidor para o seu socket TCP, após ligação estabelecida

    • Cliente C (envia msg correio) – 5 comandos: HELO, MAIL FROM, RCPT TO, DATA, QUIT

    • Serviror S (recebe msg correio) – respostas: código e explicações(opcionais)

    Várias

    mensagens

    podem ser

    enviadas entre

    servidores de

    correio numa

    única ligação

    MAIL FROM

    .

    MAIL FROM

    .

    Códigos de

    explicação

    são opcionais

    Cliente envia

    endereço de

    correio do

    destinatário

    Cliente envia

    endereço de

    correio do

    remetente

    CRLF.CRLF

    para servidor

    reconhecer o

    final da msg

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática63 Camada de Aplicação

    SMTPResumo e Comparação com HTTP

    � Usam ambos interacção de comando / resposta em ASCII� Transferem ficheiros usando ligações persistentes

    � Múltiplos objectos podem constituir uma única mensagem de correio

    � Cada objecto é encapsulado numa mensagem de resposta

    � SMTP: push (cliente empurramensagem para servidor)

    � pull (cliente puxa objecto do servidor)

    � Transfere mensagens de correio entre servidores SMTP� SMTP requer que a mensagem (corpo ecabeçalho) seja em ASCII de 7-bits

    – dados binários (e.g. uma imagem jpeg) devem ser codificados em ASCII antes de serem enviados – receptor deve descodificar

    � Transfere ficheiros do Servidor Web para o Cliente Web (normalmente Browser)

    SMTPHTTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática64 Camada de Aplicação

    Formato das Mensagens

    O protocolo SMTP não define o formato das mensagens

    SMTP: protocolo para trocar mensagens

    S: 220 doces.br

    C: HELO consumidor.pt

    S: 250 Hello consumidor.pt, pleased to meet you

    C: MAIL FROM:

    S: 250 [email protected]... Sender ok

    C: RCPT TO:

    S: 250 [email protected] ... Recipient ok

    C: DATA S: 354 Enter mail, end with "." on a line by itself

    C: Gostas de chocolate?

    C: Durante a abertura da nossa loja, são gratuitos!

    C: .

    S: 250 Message accepted for delivery

    C: QUIT

    S: 221 doces.pt closing connection

    cabeçalho

    corpo

    linha

    em

    branco

    As mensagens de texto são normalizadas pelo RFC 822

    Linhas de cabeçalho

    obrigatórias

    Linhas de cabeçalho

    opcionais

    � Cabeçalho, por e.g.

    – To:

    – From:

    – Subject:

    – ...

    diferentes dos comandos de smtp!

    � Corpo da mensagem

    – a “mensagem”, em caracteres ASCII

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática65 Camada de Aplicação

    Formato das Mensagens: Extensões Multimédia

    From: [email protected]

    To: [email protected]

    Subject: Imagem de uma bela torta

    MIME-Version: 1.0

    Content-Transfer-Encoding: base64

    Content-Type: image/jpeg

    base64 encoded data .....

    .........................

    ......base64 encoded data

    � MIME – Multipurpose Internet Mail Extensions (extensões do [RFC 822])– Extensão do e-mail para multimédia [RFC 2045, 2046]

    – Não é um protocolo de e-mail, não substitui o SMTP

    Dados multimédia

    tipo, subtipo, parâmetros

    Método usadopara codificar

    dados

    versão MIME

    (1) Linhas adicionais no cabeçalho para declarar o tipo do conteúdo MIME

    (1)

    Dados codificados

    (2) Permite dados que não são ASCII (SMTP usa formato ASCII de 7 bits)

    (2)

    Exemplo imagem JPEG

    Recepor 1º usa Content-

    Transfer-Encoding para

    descodificar ASCII para

    binário, e depois Content-

    Type para uma aplicação

    de descompressão JPEG

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática66 Camada de Aplicação

    Tipos MIME

    Text

    � exemplos de subtipos: plain, html

    � charset=“iso-8859-1”, ascii

    Image

    � exemplos de subtipos: jpeg, gif

    Video

    � exemplos de subtipos: mpeg, quicktime

    Audio� exemplos de subtipos: 32k

    adpcm (codificação 32 kbps), basic (8-bit mu-law)

    Application

    � dados que têm de ser processados por uma aplicação

    � exemplos de subtipos: msword, octet-stream

    Content-Type: tipo/subtipo; parâmetros

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática67 Camada de Aplicação

    From: [email protected]

    To: [email protected]

    Subject: Imagem de saboroso doce.

    MIME-Version: 1.0

    Content-Type: multipart/mixed; boundary=StartOfNextPart

    --StartOfNextPart

    Bruno, junto envio imagem de um doce.

    --StartOfNextPart

    Content-Transfer-Encoding: base64

    Content-Type: image/jpeg

    dados codificados em base64 .....

    .................................

    ......dados codificados em base64

    --StartOfNextPart

    Queres a receita?

    Formato das mensagens:

    Tipo “Multipart”

    Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMT

    From: [email protected]

    To: [email protected]

    Subject: Imagem de saboroso doce.

    MIME-Version: 1.0

    Content-Type: multipart/mixed; boundary=StartOfNextPart

    --StartOfNextPart

    Bruno, junto envio imagem de um doce.

    --StartOfNextPart

    Content-Transfer-Encoding: base64

    Content-Type: image/jpeg

    dados codificados em base64 .....

    .................................

    ......dados codificados em base64

    --StartOfNextPart

    Queres a receita?

    Tipo “Multipart” – Recepção

    Received: from hamburger.edu by sushi.jp; 12 Oct 98 15:30:01 GMT

    Received: from doces.pt by hamburger.edu; 12 Oct 98 15:27:39 GMT

    From: [email protected]

    To: [email protected]

    Subject: Imagem de saboroso doce.

    MIME-Version: 1.0

    Content-Type: multipart/mixed; boundary=StartOfNextPart

    --StartOfNextPart

    Bruno, junto envio imagem de um doce.

    --StartOfNextPart

    Content-Transfer-Encoding: base64

    Content-Type: image/jpeg

    dados codificados em base64 .....

    .................................

    ......dados codificados em base64

    --StartOfNextPart

    Queres a receita?

    Tipo “Multipart” – Encaminhamento

    Linha de cabeçalho adicionada

    pelo servidor que recebe a

    mensagem

    Nome do servidor SMTP que

    recebe a mensagem

    Nome do servidor SMTP que

    envia a mensagem

    Hora a que o servidor SMTP

    recebeu a mensagem

    O agente receptor recebe um

    trace por onde a mensagem

    passou e quando

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática68 Camada de Aplicação

    Protocolos de acesso ao e-mail

    � SMTP: usado para enviar/armazenar mensagens para os servidores – SMTP não pode ser usado por agente utilizador receptor (e.g. Bob) para obter e-mail

    – pois tal requer uma operação “pull” (puxar), e SMTP é um protocolo “push” (empurrar)

    � Protocolos de acesso: usados para receber/ler mensagens presentes nos servidores– Transfere mensagens de correio do servidor SMTP receptor para agente utilizador receptor

    servidor de e-mail do remetente

    SMTP SMTP

    POP3 ou IMAP ou HTTP

    useragent

    useragent

    Protocolos de acesso:servidor de e-mail

    do receptor

    BobAlice

    � E se servidor de e-mail do remetente estivesse contido no agente de utilizador (e.g. Alice)?– Quando agente de utilizador não estivesse ligado à rede, mensagens de correio perdiam-se!

    � Porque não usar apenas um servidor SMTP? Assim, agente de utilizador (e.g. Alice) enviava directamente mensagens de correio ao servidor de e-mail do receptor...– Não seria possível o servidor de e-mail do remetente continuar a tentar enviar mensagem se o servidor de

    e-mail do receptor estivesse em baixo

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática69 Camada de Aplicação

    Post Office Protocol v.3 (POP3)

    (1) Fase de autorização� comandos do cliente

    – user: username

    – pass: password

    � respostas do servidor – +OK

    – -ERR (problema com comando anterior)

    (2) Fase de transferência, cliente:� list: lista os números e tamanho das msgs

    � retr: transfere msg pelo número

    � dele: apaga msg

    � quit: termina a sessão POP3

    (3) Fase de Actualização (update)servidor de correio apaga mensagens marcadas para remoção

    C: list

    S: 1 498

    S: 2 912

    S: .

    C: retr 1

    S:

    S: .

    C: dele 1

    C: retr 2

    S:

    S: .

    C: dele 2

    C: quit

    S: +OK POP3 server signing off

    S: +OK POP3 server ready

    C: user ana

    S: +OK

    C: pass faminta

    S: +OK user successfully logged on

    Descarrega e-mails para a máquina actualApós cliente abrir ligação TCP no servidor de e-mail usando o porto 110

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática70 Camada de Aplicação

    POP3 (cont.)

    Agente de utilizador pode ser configurado pelo utilizador

    � O exemplo anterior usa o modo “download e delete”.

    – Bob não pode reler as mensagens se mudar de cliente

    � “Download-e-mantenha”: copia as mensagens em clientes diferentes

    � POP3 não mantém estado entre ligações

    – Só mantém estado na mesma sessão do utilizador, não entre sessões diferentes do utilizador

    – Simplifica bastante a implementação do servidor POP3

    � Protocolo muito simples

    – Porém de funcionalidade limitada

    [RFC 1939]

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática71 Camada de Aplicação

    IMAP e HTTPProtocolos de Acesso

    IMAP [RFC 2060]

    � Mantém todas as mensagens num único lugar: o servidor– mais comandos (mais complexo)

    � Permite ao utilizador organizar as mensagens em pastas no servidor remoto– Criar pastas, reorganizar mais tarde

    mensagens nas pastas

    � O IMAP mantém o estado do utilizador entre sessões:– nomes das pastas e mapeamentos entre as

    IDs das mensagens e o nome da pasta

    � Permite obter apenas componentes de mensagens– Linhas de cabeçalho

    – Uma parte de uma mensagem multipart

    – E.g. Obter mensagem de texto sem descarregar imagem numa ligação de baixa largura de banda

    �e.g., Hotmail , Yahoo! Mail, Webmail, etc.

    servidor de e-mail do remetente

    HTTP SMTP HTTPuseragent

    useragent

    Protocolo deacesso:

    servidor de e-maildo receptor

    BobAlice

    Servidor

    HTTP

    ScriptsServidor

    IMAP

    Protocolo

    IMAP

    HTTP

    � Cliente Web (e.g. Browser) é o agente de utilizador que comunica com a sua caixa de correio em HTTP

    � Permite a manipulação de mensagens no servidor remoto (como o IMAP)– Numa implemantação alternativa o

    servidor HTTP usa um servidor IMAP para fornecer a funcionalidade de pastas

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática72 Camada de Aplicação

    Correio Electrónico - Revisão

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Componentes do

    Correio

    Electrónico

    � SMTP

    � Formato das

    Mensagens

    – Extensões

    Multimédia

    � Protocolos de

    acesso ao e-mail– POP3, IMAP, HTTP

    � Componentes do

    Correio

    Electrónico

    � SMTP

    � Formato das

    Mensagens

    – Extensões

    Multimédia

    � Protocolos de

    acesso ao e-mail– POP3, IMAP, HTTP

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática73 Camada de Aplicação

    DNS: Domain Name System

    Como fazer o mapeamento entre os endereços IP e nome da máquina?

    Pessoas: muitos identificadores:– BI, nome, nº passaporte

    Sistemas terminais da Internet, routers– Endereço IP (32 bit)

    � Usado simultaneamente paraendereço de datagramas e comoidentificador

    – “Nome”, e.g., ww.yahoo.com –usado pelos seres humanos

    � DNS: Protocolo que usa o serviço de transporte não fiável UDP, no porto 53 – complexo, usado por outros protocolos da camada aplicação: HTTP, SMTP e FTP

    � Os servidores de nomes funcionam, em geral, como cliente e servidor– estão normalmente em máquinas UNIX a correr o software Berkeley Internet

    Name Domain (BIND)

    DNS: Domain Name System� Base de Dados Distribuida

    implementada como uma Hierarquia de muitos Servidores de nomes

    � Protocolo da Camada Aplicação quepermite máquinas interrogarem a Base de Dados para resolverem nomes– Função core da Internet, implementada

    num protocolo da camada aplicação

    – Complexidade na fronteira da rede

    DNS: Domain Name System� Base de Dados Distribuida

    implementada como uma Hierarquia de muitos Servidores de nomes

    � Protocolo da Camada Aplicação quepermite máquinas interrogarem a Base de Dados para resolverem nomes– Função core da Internet, implementada

    num protocolo da camada aplicação

    – Complexidade na fronteira da rede

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática74 Camada de Aplicação

    Serviços e Escalabilidade

    Porque não centralizar o DNS?

    � ponto único de falha

    � volume de tráfego

    � base de dados centralizada distante

    � manutenção

    Não é escalável!

    � nenhum sevidor tem todos os mapeamentos de nome para endereço IP

    Serviços DNS

    � (principal) Translação do nome damáquina para endereço IP

    � Host aliasing (ou nome alternativo)– Nome Real vs Alias

    – DNS pode também ser invocado com o nome alias para pedir o nome real

    � Aliasing de Servidor de Correio

    � Distribuição de Carga– Replicação de Servidores Web – conjunto

    de endereços IP para um nome real

    – Servidor responde com todos os endereços IP que mapeiam ao nome mas roda a ordem a cada pedido

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática75 Camada de Aplicação

    DNS: Exemplo de Distribuição de Carga

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática76 Camada de Aplicação

    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� Também chmado “default name server”

    – Sistemas terminais interrogam primeiro o Servidor de Nomes Local, sendo um pedido “DNS query” enviado ao servidor DNS local

    � Actua como uma proxy, reencaminha query na hierarquia

    � Servidores de Nomes Raiz “Root Name Servers”– Interrogado por servidor de nomes local se este não consegue resolver um pedido

    � Servidores de Nomes de Dominio de Nível Topo “TLD –Top Level Domain”– Responsável por com, org, net, edu, etc, e todos dominios nacionais uk, fr, ca, jp

    � Servidores de Nomes Oficial “Authoritative Name Servers”– Cada organização com máquinas de acesso público tem um servidor de nomes

    oficial onde a tradução nome/endereço está armazenada obrigatoriamente� Para um sistema terminal: guarda o nome, endereço IP

    � Pode executar a tradução nome/endereço para este sistema terminal

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática77 Camada de Aplicação

    Root DNS Servers

    com DNS servers org DNS servers edu DNS servers

    poly.edu

    DNS servers

    umass.edu

    DNS servers

    yahoo.com

    DNS serversamazon.com

    DNS serverspbs.org

    DNS servers

    Base de Dados Distribuida e de estrutura Hierárquica

    b USC-ISI Marina del Rey, CA

    l ICANN Los Angeles, CA

    e NASA Mt View, CA

    f Internet Software C. Palo Alto, CA

    (and 17 other locations)

    i Autonomica, Stockholm (plus 3 other locations)

    k RIPE London (also Amsterdam, Frankfurt)

    m WIDE Tokyo

    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)

    13 servidores de nomes raiz no mundo

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática78 Camada de Aplicação

    Browser extrai gaia.cs.umass.edu

    1. Máquina contacta o seu servidor de nomes local dns.eurecom.fr� com query gaia.cs.umass.edu

    2. Se for necessário, servidor local de nomes dns.eurecom.fr contacta um servidor de nomes raiz

    3. Se for necessário o servidor de nomes raiz contacta um servidor de nomes de nível topo dns.edu

    4. Se for necessário o servidor de nomes de nível topo contacta o servidor de nomes oficial“authoritative” dns.umass.edu

    5. (6, 7 e 8) Servidor de nomes “authoritative” retorna endereço IP de gaia.cs.umass.edu de volta

    ProcedimentoRecursivo

    requesting hostsurf.eurecom.fr gaia.cs.umass.edu

    root name server

    local name serverdns.eurecom.fr

    1

    2

    7

    authoritative name serverdns.umass.edu

    8

    3

    45

    6

    A máquina � surf.eurecom.fr

    pretende o endereço IP� cs.umass.edu

    � Coloca o esforço da resolução de nomes no servidor de nomes contactado

    � O servidor de nomes de nível topo pode não conhecer o endereço do servidor oficial, mas de um servidor intermédio 10 ou mais mensagens

    TLD DNS server

    Utilizador usa browser, URL: gaia.cs.umass.edu/index.html

    dns.edu

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática79 Camada de Aplicação

    1. Máquina contacta o seu servidor de nomes local dns.eurecom.fr

    2. Se for necessário, servidor local de nomes dns.eurecom.fr interroga um servidor de nomes raiz para descobrir servidor DNS edu

    3. Servidor local recebe um IP dns.edudo servidor de nomes raiz

    4. Servidor local interroga servidor de nomes de nível topo para descobrir servidor DNS umass.edu

    5. Servidor local recebe um IP dns.umass.edu do servidor TLD

    6. Servidor local interroga servidor de nomes oficial “authoritative” para descobrir IP de gaia.cs.umass.edu

    7. (e 8) Envio do IP para cliente

    ProcedimentoIterativo

    � Pedidos iterativos – “I don’t know this name, but ask this server”

    � Cada servidor de nomes apenas fornece o endereço do próximo servidor a contactar

    requesting hostsurf.eurecom.fr gaia.cs.umass.edu

    root name server

    local name serverdns.eurecom.fr

    1

    2

    3

    authoritative name serverdns.umass.edu

    8

    4

    6

    TLD DNS server

    5

    7

    dns.edu

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática80 Camada de Aplicação

    DNS: Caches e Actualização dos Registos

    � Assim que um servidor de nomes recebe um mapeamento nome/IP, armazena-o em cache

    – Redução do número de mensagens na internet

    – Maior eficiência no mapeamento

    – As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)

    – TLD servers são tipicamente colocados em cache nosServidores de Nomes Locais

    � Assim, os servidores de nomes raiz não são visitados com frequência

    � Assim que um servidor de nomes recebe um mapeamento nome/IP, armazena-o em cache

    – Redução do número de mensagens na internet

    – Maior eficiência no mapeamento

    – As entradas da cache têm um temporizador (timeout) pelo quesão removidas após um certo tempo (e.g. dois dias)

    – TLD servers são tipicamente colocados em cache nosServidores de Nomes Locais

    � Assim, os servidores de nomes raiz não são visitados com frequência

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática81 Camada de Aplicação

    Registos DNS

    Cada resposta DNS contém 1 ou mais Registo de Recursos “Resource Records” (RR)

    � Type=NS – nome - dominio (e.g. foo.com)

    – valor - endereço IP do servidor de nomes“authoritative” que sabecomo obter o IP de máquinas deste dominio

    Formato de um RR (4-tuple): (nome, valor, tipo, ttl)Formato de um RR (4-tuple): (nome, valor, tipo, ttl)

    � Type=A

    – nome - hostname

    – valor - endereço IP

    � Type=CNAME

    – nome - nome alternativo para uma

    dada máquina, e.g.

    www.ibm.com é de facto

    servereast.backup2.ibm.com

    – valor - nome real da máquina

    � Type=MX

    – valor - nome da máquina servidor

    de correio associada com nome

    Inserção de registos no DNS

    Supõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS) (dns1.foo.com, 212.212.212.1, A)

    (foo.com, mail.foo.com, MX)

    (mail.foo.com, 212.212.211.23, A)

    Inserção de registos no DNS

    Supõe que crias um novo domínio, foo.com(foo.com, dns1.foo.com, NS) (dns1.foo.com, 212.212.212.1, A)

    (foo.com, mail.foo.com, MX)

    (mail.foo.com, 212.212.211.23, A)

    RR armazenados em cache no servidor DNS – de acordo com time to live (ttl)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática82 Camada de Aplicação

    Mensagens do Protocolo DNSAs mensagens pergunta e resposta têm o mesmo formato

    msg header� identification: 16 bit # for query,

    reply to query uses same #

    � flags

    – query or reply

    – recursion desired

    – recursion available

    – reply is authoritative

    Name, type fields para pergunta

    RRs na resposta à pergunta

    Registos para authoritative servers

    Informação adicional de ajuda que pode ser utilizada

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática83 Camada de Aplicação

    Serviço de nomes da Internet - Revisão

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada de aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer Protocol,

    POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � O protocolo DNS

    � Tipos de

    Servidores de

    Nomes

    � Mensagens do

    Protocolo DNS

    � Registos DNS

    � O protocolo DNS

    � Tipos de

    Servidores de

    Nomes

    � Mensagens do

    Protocolo DNS

    � Registos DNS

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática84 Camada de Aplicação

    P2P file sharing – Pesquisa emDirectório Centralizado

    Desenho original do “Napster”1. Registo

    – Peer liga-se e informa servidor central � Do seu endereço IP

    � Conteúdo– e.g. Lista de ficheiros MP3

    2. Pedido– Alice pede a canção “Hey Jude”

    3. Transferência de dados– Alice pede ficheiro a Bob

    Servidor de directóriocentralizado

    peers

    Alice

    Bob1

    1

    1

    12

    3Transferência de dados

    Registo

    Pedido

    Problemas

    � Ponto único de falha

    � Estrangulamento de desempenho

    � Infracções de direitos de autor

    Problemas

    � Ponto único de falha

    � Estrangulamento de desempenho

    � Infracções de direitos de autor

    Transferência de ficheiro é descentralizada, mas a

    localização de conteúdos é centralizada

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática85 Camada de Aplicação

    Pesquisa sem Directório“Query flooding”: Gnutella

    � Totalmente distribuido– sem servidor central

    – sem hierarquia

    � Usa nó de arranque para conhecer outros nós

    � Vários clientes Gnutella implementam o protocolo, queé de dominio publico

    Juntar a um par (mensagem de associação)

    � Para o par X se juntar tem que acharoutro par já na rede Gnutella� para tal usa uma lista de pares candidatos

    � X tenta estabelecer ligações TCP de forma sequencial com pares na lista atéconseguir ligação com Y

    � X envia uma mensagem Ping a Y� Y reencaminha a mensagem Ping

    � Todos os pares Z que recebem a msgPing respondem com mensagem Pong� Esta contém o endereço IP de Z, número

    e tamanho dos ficheiros partilhados por Z

    � X recebe muitas mensagens Pong� pode estabelecer ligações TCP adicionais

    Associação

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática86 Camada de Aplicação

    Query

    QueryHit

    Query

    Query

    QueryHit

    Query

    Query

    QueryHit

    Transferência de ficheiro: HTTP

    � fora da rede sobreposta

    � Mensagem de pedido “Query”

    enviada sobre as ligações TCP

    � Inclui keywords descritivas do

    conteúdo procurado

    � Cada par vizinho reencaminha

    a mensagem de pedido

    � Se um tem o objecto pedido

    (QueryHit), envia uma mensagem

    de volta para o par que perguntou

    � enviada pelo caminho inverso

    � com nome e tamanho do ficheiro

    � Mensagem de pedido “Query”

    enviada sobre as ligações TCP

    � Inclui keywords descritivas do

    conteúdo procurado

    � Cada par vizinho reencaminha

    a mensagem de pedido

    � Se um tem o objecto pedido

    (QueryHit), envia uma mensagem

    de volta para o par que perguntou

    � enviada pelo caminho inverso

    � com nome e tamanho do ficheiro

    Gnutella: Mensagens de Pedidos

    Query

    Query

    Query

    Query

    Query

    Query flooding – Inundação de pedidos

    � de raio (alcance) limitado (e.g. 7)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática87 Camada de Aplicação

    Vantagens

    � Simples

    � Altamente descentralizado

    � O mais dificil de “desligar”

    � Pares têm responsabilidades semelhantes: não hálideres de grupo

    � Nenhum par mantém informação de directório

    Desvantagens

    � Tráfego de pedidos excessivo

    � Raio de alcance limitado do pedido: pode não encontrar o conteúdo quando este existe

    � Nó de arranque

    � Manutenção da rede sobreposta

    Inundação de Pedidos

    Escalabilidade Limitada:

    Inundação da rede (flooding)Escalabilidade Limitada:

    Inundação da rede (flooding)

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática88 Camada de Aplicação

    KaZaA: Pesquisa emDirectório Distribuído

    � Nó de arranque– Cada par é um lider de grupo, ou

    está associado a um líder de grupo

    – O lider de grupo conhece o conteúdo de todos os seus filhos

    � Ligação TCP entre par e o seulíder de grupo

    � Ligações TCP entre pares de lideres de grupo

    � Rede sobreposta, hierárquica– Pares são nós

    – Arcos entre pares e o seu líder de grupo

    – Arcos entre alguns pares de líderes de grupos

    – Vizinhos virtuais

    Par líder de grupo

    Par na rede

    Par na rede

    Par líder de grupo

    Relações entre

    vizinhos na rede

    sobreposta.

    hierárquica

    Junta conceitos do Napster e Gnutella• Explora a heterogeneidade dos nós

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática89 Camada de Aplicação

    KaZaA: Descrição

    � Identificação dos ficheiros– Hash

    – Descriptor� Nome do ficheiro

    � Descrição textual não estruturada

    � Cliente envia keywords ao líder de grupo

    � Líder de grupo responde c/ lista de pares cuja descrição corresponde às keywords– Enviando: metadata, hash, endereço IP

    � Se o líder de grupo reencaminha pedido a outros líderes de grupo, estes respondemcom correspondências

    � Cliente selecciona ficheiros para download– Pedido HTTP usa hash como identificador,

    é enviado aos pares que contêm o ficheiro

    � Cifra as mensagens de controlo– mas não as de dados

    Vantagens

    � Não há servidor de directório

    centralizado

    – Serviço de localização

    distribuido pelos pares

    – Mais dificil de desactivar

    � Rede sobreposta hierárquica

    – Maior alcançe dos pedidos

    Desvantagens

    � Necessários nós de arranque

    � Líderes de grupo podem ser

    sobrecarregados

    Truques

    � Limites nos uploads simultâneos

    � Pôr pedidos em filas

    � Prioridade por incentivos

    � Downloads paralelos

  • Artur Arsenio

    Redes de Computadores 2010/2011

    Departamento de Engenharia Informática90 Camada de Aplicação

    Partilha de Ficheiros Peer-to-Peer(P2P) – Revisão

    � Princípios e caracteristicas dos protocolos da camada aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer

    Protocol, POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System

    protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � Princípios e caracteristicas dos protocolos da camada aplicação

    � A Web e o HTTP (Hypertext Transfer Protocol)

    � Transferência de Ficheiros (File Transfer)– File Transfer Protocol (FTP)

    � Correio Electrónico– SMTP: Simple Mail Transfer

    Protocol, POP3, IMAP

    � Serviço de nomes da Internet– DNS: Domain Name System

    protocol

    � Partilha de Ficheiros Peer-to-Peer (P2P)

    � P2P File sharing

    – Um peer é tanto um cliente

    Web como um servidor Web

    temporário

    – Todos os peers são servidores

    = facilmente escalável !

    � Napster - Pesquisa em

    Directório Centralizado

    � Pesquisa sem Directório

    “Query flooding”: Gnutella

    � KaZaA Pesquisa em Directório

    Descentralizado

    � P2P File sharing

    – Um peer é tanto um cliente

    Web como um servidor Web

    tempor