16
 Figueiredo – 2011 Redes de Computadores Aula 4 Aula passada Protocolo em camadas Aplicações C/S x P2P Web Aula de hoje DNS Sockets Programação com sockets

Redes de Computadores Aula 4classes/coppe-redes-2011/slides/aula_4.pdfFigueiredo – 2011 Redes de Computadores Aula 4 Aula passada Protocolo em camadas Aplicações C/S x P2P Web

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

  •    

    Figueiredo – 2011

    Redes de ComputadoresAula 4

    Aula passadaProtocolo em camadasAplicaçõesC/S x P2PWeb

    Aula de hojeDNSSocketsProgramação com sockets

  •  

    Figueiredo – 2011

    DNS: Domain Name System

    Pessoas: muitos idenftificadores:

    CPF, passaporte, nomeMáquinas na Internet:

    Endereço IP (32 bits) – usado para endereçar hosts“nome”, e.g., ww.yahoo.com – usado por nós

    Prob: Como mapear entre endereço IP e nome?

    Domain Name System:Banco de dados distribuído implementado em hierarquia de servidores de nome (name servers)Protocolo na camada de aplicação máquinas, roteadores, se comunicam para resolver os nomes (traduzir nome/IP)

    Função central da Internet sendo implementada na camada de aplicaçãoComplexidade está nas extremidade da rede – princípio da Internet

    Por que não centralizado?

  •  

    Figueiredo – 2011

    Root DNS Servers

    com DNS servers br DNS servers edu DNS servers

    poly.eduDNS servers

    umass.eduDNS serversyahoo.com

    DNS serversamazon.comDNS servers

    ufrj.brDNS servers

    Banco de Dados Distribuído e Hierárquico

    cos.ufrj.brDNS servers

    land.ufrj.brDNS servers

  •  

    Figueiredo – 2011

    DNS: Root name serverscontacted by local name server that can not resolve nameroot name server:

    contacts authoritative name server if name mapping not knowngets mappingreturns mapping to local name server

    13 root name servers worldwide

    b USCISI Marina del Rey, CAl  ICANN Los Angeles, CA

    e NASA Mt View, CAf  Internet Software C. Palo Alto, CA (and 36 other locations)

    i Autonomica, Stockholm (plus     28 other locations)

    k RIPE London (also 16 other locations)

    m WIDE Tokyo (also Seoul, Paris, SF)

    a Verisign, Dulles, VAc Cogent, Herndon, VA (also LA)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj  Verisign, ( 21 locations)

  •  

    Figueiredo – 2011

    TLD e Authoritative Servers

    Top-level domain (TLD) servers: responsible for com, org, net, edu, etc, and all top-level country domains uk, fr, ca, jp, br.Network Solutions maintains servers for “com” TLDEducause for “edu” TLDNIC.br for “br” TLD

    Authoritative DNS servers: organization’s DNS servers, providing authoritative hostname to IP mappings for organization’s servers (e.g., Web, mail).can be maintained by organization or service provider

  •  

    Figueiredo – 2011

    Local Name Server

    does not strictly belong to hierarchyeach ISP (residential ISP, company, university) has one.

    also called “default name server”when host makes DNS query, query is sent to its local DNS server

    acts as proxy, forwards query into hierarchy

  •  

    Figueiredo – 2011

    requesting hostcis.poly.edu

    gaia.cs.umass.edu

    root DNS server

    local DNS serverdns.poly.edu

    1

    23

    4

    5

    6

    authoritative DNS serverdns.cs.umass.edu

    78

    TLD DNS server

    DNS name resolution example

    Host at cis.poly.edu wants IP address for gaia.cs.umass.edu

    iterated query:❒ contacted server

    replies with name of server to contact

    ❒ “I don’t know this name, but ask this server”

  •  

    Figueiredo – 2011

    requesting hostcis.poly.edu

    gaia.cs.umass.edu

    root DNS server

    local DNS serverdns.poly.edu

    1

    2

    45

    6

    authoritative DNS serverdns.cs.umass.edu

    7

    8

    TLD DNS server

    3recursive query:❒ puts burden of name

    resolution on contacted name server

    ❒ heavy load?

    DNS name resolution example

  •  

    Figueiredo – 2011

    DNS: caching and updating records

    once (any) name server learns mapping, it caches mapping

    cache entries timeout (disappear) after some timeTLD servers typically cached in local name servers

    Thus root name servers not often visitedupdate/notify mechanisms under design by IETF

    RFC 2136

  •    

    Figueiredo – 2011

    Comunicação entre ProcessosComo processos se comunicam?

    o que é um processo?

    Como processos em máquinas distintas se comunicam?

    Sockets, RPC

    IPC: sinais, pipes, etc

  •    

    Figueiredo – 2011

    SocketsInterface entre aplicação e sistema operacional (system call)

    Processo escreve/le dados do socket

    similar a arquivo

    Dados escritos de um lado do socket chegam ao outro lado

    camada de transporte faz a entrega

    processo

    TCP withbuffers,variables

    socket

    processo

    TCP withbuffers,variables

    socket

    Internet

    Controlado pelodesenvolvedor

    Controlado pelo SO

    Aplicação escolhe serviço de transporte (TCP, UDP), seta alguns parâmetros (buffer, etc)

  •    

    Figueiredo – 2011

    Endereçando ProcessosComo endereçar um processo em outra máquina?

    Processos precisam ter endereço único na rede!

    Endereço IP identifica a máquina na Internet

    é suficiente?

    Não! Mais de um processo em execução na mesma máquina

    Porta: identifica processo dentro da máquina

    Ex. 146.164.34.2, porta 80 (servidor HTTP do PESC)

  •    

    Figueiredo – 2011

    Programação Socket com TCP

    Processo cliente

    Cria socket local

    escolhe porta local

    Especifica IP e porta do processo servidor

    Estabelece conexão do socket

    conexão TCP

    Processo servidor

    Cria socket local

    escolhe porta

    Aguarda conexão do cliente na porta

    Ao receber conexão do cliente, cria novo socket para comunicação com cliente

    Permite atender múltiplos clientes

  •    

    Figueiredo – 2011

    Endereçando Processoscom TCP

    IP e porta identifica processo em uma máquina

    Como identificar socket dentro do mesmo processo?

    Utilizar IP/porta de origem!

    4-tupla (origem e destino) identifica conexão TCP

    processo

    socket

    IP: 146.164.35.46Porta: 2198

    processo

    socket

    IP: 146.164.34.2Porta: 80

    processo

    socket

    IP: 146.164.35.5Porta: 3121

    socket

  •    

    Figueiredo – 2011

    Funcionamento

    wait for incomingconnection requestconnectionSocket =welcomeSocket.accept()

    create socket,port=80, forincoming request:welcomeSocket = 

    ServerSocket() create socket,connect to 146.164.34.2, port=80clientSocket = 

    Socket()

    closeconnectionSocket (close)

    Receive message fromclientSocket (read)

    closeclientSocket

    Processo Servidor (146.164.34.2, 80)

    send message usingclientSocket (write)

    receive message fromconnectionSocket (read)

    write reply toconnectionSocket (write)

    TCP connection setup

    Processo Cliente

  •    

    Figueiredo – 2011

    TrabalhoAprender o uso de sockets

    Aplicação cliente/servidor (bem simples)

    a ser definido em breve

    Comunicação entre processos usando sockets

    TCP, sequencial ou com threads

    Sua linguagem de programação preferida

    mas tem que usar sockets!

    Slide 1DNS: Domain Name SystemDistributed, Hierarchical DatabaseDNS: Root name serversTLD and Authoritative ServersLocal Name ServerDNS name resolution exampleSlide 8DNS: caching and updating recordsSlide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16