-
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