Redes de Computadores Aula 4 - Land

Transcrição

Redes de Computadores Aula 4 - Land
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
Figueiredo – 2011
DNS: Domain Name System
Domain Name System:
Pessoas: muitos
idenftificadores:
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ção
Complexidade está nas
extremidade da rede –
princípio da Internet
Por que não centralizado?
CPF, passaporte, nome
Má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?
Figueiredo – 2011
Banco de Dados Distribuído
e Hierárquico
Root DNS Servers
br DNS servers
com DNS servers
yahoo.com
DNS servers
amazon.com
DNS servers
ufrj.br
DNS servers
edu DNS servers
poly.edu
umass.edu
DNS servers DNS servers
land.ufrj.br
DNS servers
cos.ufrj.br
DNS servers
Figueiredo – 2011
DNS: Root name servers
contacted by local name server that can not resolve name
root name server:
contacts authoritative name server if name mapping not known
gets mapping
returns mapping to local name server
a Verisign, Dulles, VA
c Cogent, Herndon, VA (also LA)
d U Maryland College Park, MD
g US DoD Vienna, VA
h ARL Aberdeen, MD
j Verisign, ( 21 locations)
e NASA Mt View, CA
f Internet Software C. Palo Alto, CA k RIPE London (also 16 other locations)
i Autonomica, Stockholm (plus 28 other locations)
m WIDE Tokyo (also Seoul, Paris, SF)
(and 36 other locations)
13 root name
servers worldwide
b USC­ISI Marina del Rey, CA
l ICANN Los Angeles, CA
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” TLD
Educause for “edu” TLD
NIC.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 hierarchy
each 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
DNS name
resolution example
root DNS server
2
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”
3
4
TLD DNS server
5
local DNS server
dns.poly.edu
1
8
7
6
authoritative DNS server
dns.cs.umass.edu
requesting host
cis.poly.edu
gaia.cs.umass.edu
Figueiredo – 2011
DNS name
resolution example
recursive query:
root DNS server
2
❒ puts burden of name
3
7
resolution on
contacted name server
❒ heavy load?
6
TLD DNS server
local DNS server
dns.poly.edu
1
5
4
8
authoritative DNS server
dns.cs.umass.edu
requesting host
cis.poly.edu
gaia.cs.umass.edu
Figueiredo – 2011
DNS: caching and updating
records
once (any) name server learns mapping, it caches
mapping
cache entries timeout (disappear) after some time
TLD servers typically cached in local name servers
Thus root name servers not often visited
update/notify mechanisms under design by IETF
RFC 2136
Figueiredo – 2011
Comunicação entre Processos
Como processos se comunicam?
o que é um processo?
IPC: sinais, pipes, etc
Como processos em máquinas
distintas se comunicam?
Sockets, RPC
Figueiredo – 2011
Sockets
Interface 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
processo
Controlado pelo
desenvolvedor
processo
socket
socket
TCP with
buffers,
variables
TCP with
buffers,
variables
Internet
Controlado pelo SO
camada de transporte faz
a entrega
Aplicação escolhe serviço de transporte (TCP,
UDP), seta alguns parâmetros
(buffer, etc)
Figueiredo – 2011
Endereçando Processos
Como 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
Processo servidor
Cria socket local
Cria socket local
escolhe porta
escolhe porta local
Especifica IP e porta do
processo servidor
Aguarda conexão do
cliente na porta
Estabelece conexão do
socket
Ao receber conexão do
cliente, cria novo socket
para comunicação com
cliente
conexão TCP
Permite atender
múltiplos clientes
Figueiredo – 2011
Endereçando Processos
com 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
processo
socket
socket socket
IP: 146.164.35.46
Porta: 2198
IP: 146.164.34.2
Porta: 80
processo
socket
IP: 146.164.35.5
Porta: 3121
Figueiredo – 2011
Funcionamento
Processo Servidor
(146.164.34.2, 80)
create socket,
port=80, for
incoming request:
welcomeSocket = ServerSocket()
Processo Cliente
TCP
connection setup
wait for incoming
connection request
connectionSocket =
welcomeSocket.accept()
create socket,
connect to 146.164.34.2, port=80
clientSocket = Socket()
send message using
clientSocket (write)
receive message from
connectionSocket (read)
Receive message from
clientSocket (read)
write reply to
connectionSocket (write)
close
connectionSocket (close)
close
clientSocket
Figueiredo – 2011
Trabalho
Aprender 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!
Figueiredo – 2011

Documentos relacionados