Você está na página 1de 34

APLICAÇÕES

Aplicações na Arquitetura TCP/IP

Modelo Cliente-Servidor

Servidor Cliente Cliente


TELNET FTP SMTP TELNET TELNET SMTP
23 21 25 2045 1568 3067
TCP
10.23.8.9 10.8.20.34 10.67.8.0
IP

Acesso
a rede

1
Aplicações

Processo Processo Processo Processo


de usuário de usuário de usuário de usuário Aplicação

TCP UDP Transporte

ICMP IP IGMP Rede

Interface de
ARP hardware RARP Acesso a rede

meio físico 3

Correio eletrônico
• É uma das aplicações mais utilizadas.
• Foi projetado para suportar falhas temporárias de comunicação entre os
sistemas através de uma técnica conhecida como spooling.
• As mensagens são transmitidas atráves de MTAs (Message Transfer
Agents) ou agentes de transferência de mensagens.
• Usuários utilizam o sistema atráves de UAs (User Agents) ou agentes
de usuário.
• Fundamentalmente são utilizados dois protocolos em um sistema de
correio eletrônico: SMTP (Simple Mail Transfer Protocol) para
transferência das mensagens e POP3 (Post Office Protocol) para
acesso remoto a caixas postais.
• O MIME define extensões ao sistema de correio eletrônico permitindo
a troca de mensagens multimídia.
• O endereço de e-mail possui um identificador para o nome do usuário
e um para o domínio separados por @: wzucchi@lps.usp.br

2
Correio eletrônico - Visão geral

agente de
agente de fila de espera
usuário transferência cliente
usuário de saída de mensagem
remetente

conexão TCP

agente de
agente de caixas postais
usuário transferência servidor
usuário de usuário de mensagem
destinatário

Correio eletrônico
Sistema com MTAs repetidores
remetente
usuário

agente de
fila de saída
usuário
organização A
MTA MTA MTA
local local local

fila de MTA
correio repetidor

via Internet
fila de MTA
correio repetidor

MTA MTA MTA


local local local
organização B
agente de caixas postais
usuário do usuário

usuário
destinatário 6

3
SMTP (Simple Mail Transfer
Protocol)
• É especificado pela RFC 821.
• É utilizado na troca de mensagens de correio eletrônico entre MTAs e
na entrega de mensagens do UA para o MTA.
• Implementações mínimas do protocolo implementam 8 funções:

HELO: identifica o sistema transmissor


MAIL: identifica o remetente
RCPT: identifica o destinatário
DATA: marca o início da mensagem a ser transmitida
QUIT: finaliza a transação
RSET: aborta a transação
VRFY: verifica se o endereço de correio eletrônico é válido
NOOP: não executa nada, apenas verifica se há comunicação

Exemplo de transferência da mensagem


Alberto@empresa.com.br... Connecting to server.empresa.com.br.
(smtp)...
220- server.empresa.com.br Sendmail 8.6.11/8.6.9 ready
>>> HELO voz1.lps.usp.br
250- server.empresa.com.br Hello voz1.lps.usp.br
[143.107.160.101]
>>> MAIL From:<wzucchi@lps.usp.br> SIZE=77
250 < wzucchi@lps.usp.br>... Sender ok
>>> RCPT To:<alberto@empresa.com.br>
250 <alberto@empresa.com.br>... Recipient ok
>>> DATA
354 Enter mail, end with "." on a line by itself
>>> .
250 HAA00650 Message accepted for delivery
alberto@empresa.com.br... Sent (HAA00650 Message accepted for
delivery)
Closing connection to server.empresa.com.br.
>>> QUIT 8

4
RFC 822
• Especifica o formato (cabeçalho e corpo) da mensagem de
correio eletrônico que é transmitida pelo protocolo SMTP.
• O cabeçalho das mensagens é utilizado pelos agentes de
usuário:

Received: from zeta.procergs.com.br (zeta.procergs.com.br [200.248.240.33]) by


mail.larc.usp.br (8.6.9/8.6.9) with SMTP id JAA19964 for <wzucchi@lps.usp.br>;
Mon, 23 Sep 1996 09:31:07 -0300
Received: from zeta.procergs.com.br by zeta.procergs.com.br (AIX 3.2/UCB
5.64/4.03)
id AA84170; Mon, 23 Sep 1996 09:16:36 -0300
Message-Id: <3246BA90.C47@zeta.procergs.com.br>
Date: Mon, 23 Sep 1996 09:28:00 -0700
From: Marli Nunes Vieira <marli@zeta.procergs.com.br>
To: wzucchi@lps.usp.br
Subject: estrutura da monografia

Oi Wagner! 9

Elementos de Serviço do SMTP


• DATE
• FROM
• SENDER
• REPLY-TO
• TO
• CC
• BCC
• MESSAGE-ID
• IN-REPLY-TO
• REFERENCES
• KEYWORD
• SUBJECT
• COMMENTS
• RESENT-*
• OUTROS CAMPOS
EXTENSION FIELD
USER-DEFINED-FIELD
10

5
Respostas do SMTP
Numéricas de 3 dígitos

1o. Dígito indica se a resposta é boa, ruim ou incompleta


1yz - Resposta preliminar positiva
2yz - Resposta completa positiva
3yz - Resposta intermediária positiva
4yz - Resposta completa transitoriamente negativa
5yz - Resposta completa permanentemente negativa

Segundo dígito especifica categorias de respostas


x0z - Sintaxe
x1z - Informação
x2z - Referente ao canal de transmissão
x3z - Não especificado
x4z - Não especificado
x5z - Sistema de mensagem
11

MIME (Multipurpose Internet Mail


Extensions)
• Permite a transmissão de dados multimídia (imagens, vídeo, sons, etc.)
em mensagens de correio eletrônico.
• MIME é suportado pelo leitor de e-mail (agente de usuário), não
introduzindo modificações no protocolo SMTP.
• Mensagens MIME incluem informações sobre o tipo de dado e a
codificação utilizada para transportá-lo.

From: bill@acollege.edu
To: john@somewhere.com
MIME-Version: 1.0
Content-Type: image/gif
Content-Transfer-Encoding: base64

...dados da imagem...

• O leitor de e-mail identifica o conteúdo da mensagem, podendo


executar automaticamente um outro programa para mostrar os dados.

12

6
POP 3
Post Office Protocol Version 3
• Permite comunicação entre um host simples que não
suportaria SMTP e um Post Office;

• O host simples teria um Cliente POP, enquanto que o


Post Office teria um Servidor POP;

• O POP utiliza o port 110;

• Norma: RFC 1725 (Versão3).

13

Visão Geral de uma Sessão POP

1 Conexão TCP do cliente para o Servidor

2 Servidor envia GREETINGS (Boas Vindas)


- (Livre)

3 Cliente identifica-se (Fase de Autorização)

4 Servidor identifica recursos do cliente


(Fase de Transação Começa)
14

7
Exemplo de Interação POP (1)
(Conexão TCP estabelecida do Cliente para o Servidor)

GREETING S: +OK POP3 server ready

AUTORIZATION C: USR wzucchi


S: +OK
C: PASS naoconto
S: +OK wzucchi tem 2 mensagens (320 bytes)

TRANSACTION C: STAT
S: + OK 2 320 (nº de mensagens e tamanho total)
C: LIST
S: 1 120
S: 2 200
S: .

15

Exemplo de Interação POP (2)


TRANSACTION C: LIST 2
(continuação) S: +OK 2 200
C: LIST 3
S: -ERR não há tal mensagens
C: RETE 1
S: +OK 120 octetos
S: Caro Zucchi
S:
S: Blá blá blá
S:
S: Tchau
S: .
C: DELE 2
S: +OK mensagem 1 DELETED

UPDATE C: QUIT
S: +OK (mensagem é eliminada)

16

8
Extensões POP 3

• TOP [ msg] - envia cabeçalho da mensagem

• UIDL [msg] - envia identificador da mensagem


sem argumento: envia identificador de
todas as msgs

• APOP [msg] - envia o resultado do algoritmo MD5


(digest)

17

Roteamento do Correio Eletrônico


• O host responsável por receber mensagens para um determinado
domínio é indicado pelo registro MX do DNS.
telebahia.net.br. SOA ns1.telebahia.net.br
root.ns1.telebahia.net.br.
(96112901 3600 300 3600000 86400)
telebahia.net.br. NS ns1.telebahia.net.br
ns1 A 200.254.251.33
telebahia.net.br. NS ns.embratel.net.br
ns.embratel.net.br. A 200.255.253.241
telebahia.net.br. NS ns1.cpqd.br
telebahia.net.br. MX 10 mailhost.telebahia.net.br
telebahia.net.br. MX 20 dco.telebahia.net.br
telebahia.net.br. MX 20 abaete.telebahia.net.br
telebahia.net.br. A 200.254.251.33
piatan A 200.254.251.42
net-pppdco A 200.254.240.96
itapoan A 200.254.251.33
itapoan HINFO IBM RS/6000 250 AIX 3.2.5
www CNAME itapoan.telebahia.net.br
18

9
Web e HTTP
Primeiro alguns jargões
• Página Web consiste de objetos
• Objeto pode ser arquivo HTML, imagem JPEG,
Java applet, arquivo de audio,…
• A página Web consiste de arquivo-HTML base
que inclui vários objetos referenciados
• Cada objeto é endereçado por uma URL
• Example URL:
www.someschool.edu/someDept/pic.gif

nome do host nome do caminho


19

Visão geral do HTTP


HTTP: hypertext
transfer protocol htt
pr
• protocolo da camada de eq u
PC rodando htt es t
aplicação da Web Explorer
pr
esp
ons
• modelo cliente/servidor e
– cliente: browser que
solicita, recebe e ue
st
apresenta objetos da eq Servidor
pr nse
Web htt po rodando
re s
tp NCSA Web
– servidor: envia ht
server
objetos em resposta
a pedidos
Mac rodando
• HTTP 1.0: RFC 1945 Navigator
• HTTP 1.1: RFC 2068

20

10
Visão geral do HTTP (cont.)
Utiliza TCP: HTTP é “stateless”
• cliente inicia conexão TCP • o servidor não
(cria socket) para o mantém informação
servidor na porta 80 sobre os pedidos
• servidor aceita uma passados pelos
conexão TCP do cliente clientes
• mensagens http Protocolos que mantêm
(mensagens do protocolo informações de “estado” são
de camada de aplicação)
são trocadas entre o complexos!
browser (cliente http) e o • histórico do passado (estado)
servidor Web (servidor deve ser mantido
http) • se o servidor/cliente quebra,
• A conexão TCP é fechada suas visões de “estado”
podem ser inconsistentes,
devendo ser reconciliadas
21

Conexões HTTP

HTTP não-persistente HTTP Persistente


• No máximo um objeto é • Múltiplos objetos
enviado sobre uma podem ser enviados
conexão TCP sobre um conexão TCP
entre o cliente e o
• o HTTP/1.0 utiliza
servidor
HTTP não-persistente
• o HTTP/1.1 utiliza
conexões persistentes
em seu modo padrão

22

11
HTTP não-persistente
Usuário entra com a URL:
www.someSchool.edu/someDepartment/home.index
(contém texto,
referências a 10
1a. cliente http inicia conexão imagens jpeg)
TCP ao servidor http
(processo) em 1b. servidor http no host
www.someSchool.edu. Porta www.someSchool.edu
80 é a default para o esperando pela conexão TCP
servidor http . na porta 80. “aceita” conexão,
notificando o cliente
2. cliente http client envia http
request message (contendo a
URL) para o socket da conexão 3. servidor http recebe
TCP mensagem de pedido, forma
response message contendo o
objeto solicitado
(someDepartment/home.index
), envia mensagem para o
tempo socket
23

HTTP não-persistente (cont.)

4. servidor http fecha conexão


5. cliente http recebe mensagem de TCP.
resposta contendo o arquivo html,
apresenta o conteúdo html.
Analisando o arquivo html
encontra 10 objetos jpeg
referenciados
tempo

6. Passos 1-5 são repetidos para cada


um dos 10 objetos jpeg.

24

12
Modelagem do Tempo de Resposta

Definição de RRT: tempo para


enviar um pequeno pacote que
vai do cliente para o servidor e
retorna.
Tempo de Resposta: inicia a
conexão TCP
• um RTT para iniciar a RTT
conenexão TCP
requisição
• um RTT para requisição HTTP e de arquivo
primeiros bytes da resposta tempo para
HTTP para retorno
RTT
transmitir
• tempo de transmissão de arquivo
o arquivo
arquivo recebido
total = 2RTT+ tempo de
transmissão tempo tempo

25

Mensagem HTTP request


• dois tipos de mensagens HTTP: request,
response
• http request message:
– ASCII (formato legível para humanos)
linha de pedido
(comandos GET GET /somedir/page.html HTTP/1.0
, POST,HEAD ) User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
linhas de Accept-language:fr
cabeçalho

Carriage return, (extra carriage return, line feed)


line feed
indica fim da mensagem
26

13
mensagem HTTP request: formato geral

27

Entrada de formulário
Método Post: Método URL:
• Página Web • Utiliza o método GET
frequentemente • A entrada é enviada no
inclui entrada de campo de URL da
formulário linha de requisição:
• A entrada é enviada
para o servidor no
corpo da entidade

www.somesite.com/animalsearch?monkeys&banana

28

14
Tipos de métodos
HTTP/1.0 HTTP/1.1
• GET • GET, POST, HEAD
• POST • PUT
• HEAD – envia o arquivo no corpo
da entidade para o
– pede para o servidor
caminho especificado no
deixar o objeto
campo de URL
requisitado fora da
resposta • DELETE
– apaga o arquivo
especificado no campo
de URL

29

Mensagem HTTP response


linha de status
(protocolo
código de status HTTP/1.0 200 OK
frase de status) Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 …...
linhas de
Content-Length: 6821
cabeçalho
Content-Type: text/html

data data data data data ...


dados, e.x.,
arquivo html

30

15
Códigos de status das respostas
Na primeira linha da mensagem de resposta servidorÆcliente.
Alguns exemplos de códigos:

200 OK
– requisição bem sucedida, objeto requisitado a seguir nesta
mensagem
301 Moved Permanently
– objeto requisitado foi movido, nova localização especificada a
seguir nesta mensagem (Location:)
400 Bad Request
– mensagem de requisição não compreendida pelo servidor
404 Not Found
– Documento requisitado não encontrado neste servidor
505 HTTP Version Not Supported

31

HTTP Cliente: faça você mesmo!

1. Telnet para um servidor Web:


Abre conexão TCP para a porta 80
(porta default do servidor http) em www.lps.usp
telnet www.lps.usp.br 80
Qualquer coisa digitada é enviada
para a porta 80 em www.lps.usp.br

2. Digite um pedido GET http:


Digitando isto (tecle carriage
return duas vezes), você envia este
GET /~ross/ HTTP/1.1
Host: www.lps.usp.br
pedido HTTP GET mínimo (mas completo
ao servidor HTTP

3. Examine a mensagem de resposta enviada pelo


servidor http!
32

16
Estado usuário-servidor: cookies
A maioria dos grandes Exemplo:
Web sites utilizam – Susan acessa a Internet
cookies sempre do mesmo PC
Quatro componentes: – Ela visita um site
específico de e-
1) linha de cabeçalho do commerce pela primeira
cookie na mensagem vez
HTTP response
– Quando a requisição
2) linha de cabeçalho de HTTP inicial chega no
cookie na mensagem site, este cria um ID
HTTP request único e uma entrada no
3) arquivo de cookie banco de dados backend
mantido no host do para este ID
usuário e manipulado
pelo browser do usuário
4) banco de dados back-
end no Web site
33

Cookies: mantendo “estado” (cont.)

cliente servidor
Cookie file usual http request msg servidor de ntrad
e

cria o ID 1678 dado no b


a
usual http response +
s b an
ebay: 8734 Set-cookie: 1678 para o usuário ac co
k en
d
Cookie file
usual http request msg
amazon: 1678 cookie: 1678 especificação
so
ebay: 8734 do cookie aces
usual http response msg
o

uma semana depois:


s
es
ac

usual http request msg


Cookie file especificação
cookie: 1678
amazon: 1678 do cookie
ebay: 8734 usual http response msg

34

17
Cookies (cont.)
À parte
O que os cookies podem Cookies e privacidade:
trazer: • cookies permitem que sites
saibam muito sobre você
• autorização • você pode fornecer nome e e-
• cartões de compra mail para os sites
• recomendações • mecanismos de busca usam
redirecionamento e cookies
• estado de sessão do para saberem mais sobre
usuário (Web e-mail) você
• companhias de advertising
obtêm informações através
dos sites

35

Web Caches (proxy server)


Objetivo: atender o cliente sem envolver o servidor
Web originador da informação
servidor
original

• usuário configura o browser: htt


Proxy
pr st
acesso Web é feito através de equ server reque
clientehttp es t
htt p se
pon
um proxy res
pon p res
• cliente envia todos os se htt
pedidos http para o web est
u
eq
cache pr nse
htt es
po
– se o objecto existe no web r
tp
cache: web cache returna o ht
objecto
– ou o web cache solicita cliente
servidor
objecto do servidor original, original
então envia o objeto ao
cliente.
36

18
Mais sobre Web caching
• O cache atua tanto Porque Web caching?
no servidor como no • Reduz o tempo de
cliente resposta para a
requisição do cliente.
• Tipicamente o cache
• Reduz o tráfego num
é instalado pelo ISP enlace de acesso de uma
(universidade, instituição.
companhia, ISP • A densidade de caches na
residencial) Internet habilita os
“fracos” provedores de
conteúdo a efetivamente
entregarem o conteúdo
(mas fazendo P2P file
sharing)
37

Exemplo de Caching
Suponha: servidores
• tamanho médio objeto = de origem
100,000 bits
Internet
• taxa média de requisições dos pública
browsers da instituição para os
servidores de origem = 15/sec
• atraso do roteador institucional
para ir a qualquer servidor de 1.5 Mbps
origem e retornar ao roteador link de acesso
= 2 seg.
rede
Consequências: institucional
10 Mbps LAN
• utilização da LAN = 15%
• utilização do link de acesso =
100%
• atraso total = atraso da cache
Internet + atraso de acesso + institucional
atraso da LAN = 2 seg + minutos
+ milisegundos 38

19
Exemplo de Caching (cont.)
servidores
Solução Possível de origem
• aumentar a largura de banda
do enlace de acesso, como, 10 Internet
Mbps pública

Conseqüências
• utilização da LAN = 15%
• utilização do enlace de acesso 10 Mbps
link de acesso
= 15%
• atraso total = atraso da rede
institucional
Internet + atraso de acesso + 10 Mbps LAN
atraso da LAN = 2 seg + msegs
+ msegs
• frequentemente é um upgrade
caro cache
institucional

39

Exemplo de Cache (cont)


Instalação do cache servidores
• suponha que a taxa de de origem
acertos seja .4
Internet
Conseqüência pública
• 40% requisições serão
satisfeitas quase que
imediatamente
• 60% requisições satisfeitas
pelo servidor de origem 1.5 Mbps
• utilização do enlace de link de acesso
acesso reduzida para 60%, rede
resultando em atrasos
insignificantes (como 10 institucional
10 Mbps LAN
mseg)
• média de atraso total =
atraso da Internet + atraso
de acesso + atraso da LAN =
.6*(2.01) segs + milisegundos cache
< 1.4 segs institucional

40

20
GET condicional
servidor
• Razão: não enviar objeto cliente
se a versão que o cliente já http request msg
possui está atualizada. If-modified-since:
objeto
<date>
• cliente: especifica data da não
versão armazenada no http response modificado
pedido HTTP HTTP/1.0
If-modified-since: 304 Not Modified
<date>
• servidor: resposta não http request msg
contém objeto se a cópia é If-modified-since:
<date> objeto
atualizada: modificado
HTTP/1.0 304 Not http response
Modified HTTP/1.1 200 OK
<data>
41

DNS: Domain Name System

Pessoas: muitos Domain Name System:


identificadores: • base de dados distribuída
– RG, nome, passporte implementada numa hierarquia
Internet hosts, de muitos servidores de
nomes
roteadores:
• protocolo de camada de
– endereços IP (32 aplicação host, roteadores se
bit) - usados para comunicam com servidores de
endereçar nomes para resolver nomes
datagramas (translação nome/endereço)
– “nome”, ex., – nota: função interna da
gaia.cs.umass.edu - Internet, implementeda
usados por humanos como protocolo da camada
Q: relacionar nomes de aplicação
com endereços IP? – complexidade na “borda”
da rede
42

21
DNS

DNS services Porque não centralizar o


• Nome do host para DNS?
tradução de endereço • ponto único de falha
IP • volume de tráfego
• Host aliasing • base centralizada de
– Nomes canônicos e alias dados distante
• Mail server aliasing • manutenção
• Distribuição de carga
– Servidores Web não é escalável!
replicados: estabelece o
endereço IP para um
nome canônico
43

Base de Dados Distribuida, Hierárquica


Servidor DNS de raíz

servidor DNS com servidor DNS org servidor DNS edu

Servidor DNS Servidor DNS Servidor DNS


Servidor DNS Servidor DNS
pbs.org poly.edu umass.edu
yahoo.com amazon.com

Cliente quer o IP para www.amazon.com; 1ª aprox:


• Cliente consulta a um servidor de raíz para
encontrar o servidor DNS com
• Cliente consulta o servidor DNS com para obter o
servidor DNS amazon.com
• Cliente consulta o servidor DNS amazon.com para
obter o endereço IP para www.amazon.com
44

22
DNS: Servidores de Nomes Raiz
• são contatados pelos servidores de nomes locais que não podem
resolver um nome
• servidores de nomes raiz::
– buscam servidores de nomes autoritativos se o mapeamento do
nome não for conhecido
– conseguem o mapeamento
– returnam o mapeamento para o servidor de nomes local
a NSI Herndon, VA
c PSInet Herndon, VA k RIPE London
d U Maryland College Park, MD i NORDUnet Stockholm
g DISA Vienna, VA
h ARL Aberdeen, MD
j NSI (TBD) Herndon, VA m WIDE Tokyo

e NASA Mt View, CA
f Internet Software C. Palo Alto,
CA
existem 13
servidores de
b USC-ISI Marina del Rey, CA
nomes raiz no
l ICANN Marina del Rey, CA mundo
45

Servidores TLD e Autoritários

• Servidores top-level domain (TLD):


responsáveis pelos domínios com, org, net, edu, etc, e
todos os domínios top-level nacionais uk, fr, ca, jp.
– Network Solutions mantém servidores para o TLD
“com” TLD
– Educause para o TLD “edu”
• Servidores DNS autoritativos: servidores DNS
de organizações, provêm nome de host autoritativo
para mapeamentos IP para servidores de
organizações (ex., Web e mail).
– Podem ser mantidos por uma organização ou
provedor de serviços
46

23
Servidor de nomes local

• Não pertence estritamente a uma hierarquia


• Cada ISP (ISP residencial, companhia,
universidade) possui um.
– Também chamado de “servidor de nomes
default”
• Quando um host faz uma pergunta a um DNS,
a pergunta é enviada para seu servidor DNS
local
– Age como um proxy, encaminhando as
perguntas para dentro da hierarquia.

47

Exemplo
servidor DNS de raíz
• O host em
cis.poly.edu quer o
endereço IP para
2
3
servidor DNS
gaia.cs.umass.edu 4 TLD
5

servidor DNS local


dns.poly.edu
7 6
1 8

servidor DNS autoritativo


dns.cs.umass.edu
host requisitante
cis.poly.edu
48
gaia.cs.umass.edu

24
Consultas recursivas
servidor DNS de
consulta recursiva: raíz
• transfere a tarefa de
resolução do nome
2
para o servidor de 3
nomes consultado 6 servidor
7
• carga pesada? DNS TLD

consulta encadeada:
• servidor contactado servidor DNS local 4
5
responde com o nome
dns.poly.edu

de outro servidor de 1 8
nomes para contato
• “Eu não sei isto ,mas servidor DNS autoritativo
pergunte a este dns.cs.umass.edu
host requisitante
servidor” cis.poly.edu
49

gaia.cs.umass.edu

DNS: armazenando e atualizando registros

• uma vez que um servidor de nomes apreende um


mapeamento, ele armazena o mapeamento num
registro do tipo cache
– registro do cache tornam-se obsoletos
(desapareçem) depois de um certo tempo
– servidores TLD são tipicamente armazenados
em cache nos servidores de nome locais
• mecanismos de atualização e notificação estão
sendo projetados pelo IETF
– RFC 2136
– http://www.ietf.org/html.charters/dnsind-charter.html

50

25
Registros do DNS
DNS: base de dados distribuída que armazena registros de
recursos (RR)
formato dos RR: (name, value,
type,ttl)

• Type=A • Type=CNAME
– name é o nome do – name é um “apelido” para
computador algum nome “canônico” (o
– value é o endereço IP nome real)
www.ibm.com é realmente
• Type=NS servereast.backup2.ibm.com
– name é um domínio (ex.
– value é o nome canônico
foo.com)
• Type=MX
– value é o endereço IP do
servidor de nomes – value é o nome do servidor
autoritativo para este de correio associado com
domínio name
51

DNS: protocolo e mensagens

protocolo DNS: mensagen de consulta e resposta ,


ambas com o mesmo formato de mensagem
cabeçalho da msg
• identificação: número de
16 bit para consulta,
resposta usa o mesmo
número
• flags:
– consulta ou resposta
– recursão desejada
– recursão disponível
– resposta é
autoritativa

52

26
DNS: protocolo e mensagens

Campos de nome e tipo


para uma consulta

RRs de resposta
a uma consulta

registros para
servidores autoritativos

informação adicional
que pode ser útil

53

Inserindo registros no DNS


• Exemplo: empresa recém criada “Network Utopia”
• Registrar o nome networkuptopia.com num “registrar” (ex.,
Network Solutions)
– É necessário fornecer ao registrar os nomes e endereços IP do seu
servidor de nomes autoritativo (primário e secundário)
– Registrar insere dois RRs no servidor TLD do domínio com:

(networkutopia.com, dns1.networkutopia.com, NS)


(dns1.networkutopia.com, 212.212.212.1, A)

• No servidor autoritativo, inserir um registro Tipo A para


www.networkuptopia.com e um registro Tipo MX para
networkutopia.com
• Como as pessoas obtêm o endereço IP do seu Web site?

54

27
DNS Dinâmico
• Permite associar um endereço IP variável a
um nome fixo de host
• Ideal para trabalhar com equipamentos que
recebem endereços IP diferentes ao longo
do tempo, tais como computadores em redes
corporativas ou residenciais
• Existem empresas que oferem serviços
publicamente disponíveis de DNS dinâmico

55

Cliente para DynDNS

56

28
NAT: Network Address Translation

resto da rede local


Internet (ex., rede doméstica)
10.0.0/24 10.0.0.1

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

Todos datagrams que saem da rede


Datagramas com origem ou destino
local possuem o mesmo único
nesta rede possuem endereço
endereço IP do NAT de origem:
10.0.0/24 para origem, destino
138.76.29.7,
(usualmente)
números diferentes de portas de
origem
57

NAT: Network Address Translation

• Motivação: redes locais podem utilizar apenas um endereço IP:


– não é preciso alocar uma gama de endereços do ISP: apenas
um endereço IP é usado para todos os dispositivos
– pode-se alterar os endereços dos dispositivos na rede local
sem precisar notificar o mundo exterior
– pode-se mudar de ISP sem alterar os endereços dos
dispositivos na rede local
– dispositivos da rede local não são explicitamente endereçaveis
ou visíveis pelo mundo exterior (um adicional de segurança).

58

29
NAT: Network Address Translation

Implementação: o roteador NAT deve:

– datagramas que saem: substituir (endereço IP de origem, porta #) de cada


datagrama para (endereço IP do NAT, nova porta #)
. . . clientes/servidores remotos responderão usando (endereço IP do
NAT, nova porta #) como endereço de destino.

– Lembrar (na tabela de tradu’ção do NAT) cada (endereço IP de origem,


porta #) para o par de tradução (endereço IP do NAT, nova porta #).

– datagramas que chegam: substituir (endereço IP do NAT, nova porta #)


nos campos de destino de cada datagrama pelos correspondentes (endereço
IP de origem, porta #) armazenados da tabela NAT

59

NAT: Network Address Translation


tabela de tradução NAT
2: roteador NAT 1: host 10.0.0.1
endereço WAN endereçoLAN
substitui end. origem envia datagrama
138.76.29.7, 5001 10.0.0.1, 3345 para 128.119.40, 80
do datagram de
…… ……
10.0.0.1, 3345 para
138.76.29.7, 5001, S: 10.0.0.1, 3345
atualiza a tabela D: 128.119.40.186, 80
10.0.0.1
1
S: 138.76.29.7, 5001
2 D: 128.119.40.186, 80 10.0.0.4
10.0.0.2
138.76.29.7 S: 128.119.40.186, 80
D: 10.0.0.1, 3345 4
S: 128.119.40.186, 80
D: 138.76.29.7, 5001 3 10.0.0.3
4: roteador NAT
3: Resposta chega substitui o endereço de
ender. destino: destino do datagrama
138.76.29.7, 5001 de 138.76.29.7, 5001
para 10.0.0.1, 3345
60

30
NAT: Network Address Translation

• Campo número de porta com 16-bits:


– 60,000 conexões simultâneas com um único endereço
de LAN
• NAT é controverso:
– roteadores deveriam processar somente até a camada 3
– violação do argumento fim-a-fim
• a possilidade de NAT deve ser levada em conta pelos
desenvolvedores de aplicações, ex, aplicações P2P
– a escassez de endereços deveria ser resolvida pelo IPv6

61

NAT Traversal
• Refere-se ao problema de estabelecimento de
conexões TCP em redes que utilizam NAT
• Problema comum em aplicações peer-to-peer e
VoIP onde é preciso conhecer o endereço IP de
estações de trabalho
• Várias soluções são propostas mas nenhuma
funciona em todas as topologias possíveis
• Soluções transparentes x soluções com controle da
operação do NAT

62

31
Padrões para NAT Traversal
• Padrão H.460.17/18/19 (verão de 2005)
• Trata de tráfego H.225 / H.245 (sinalização)
e de tráfego de dados (RTP)
• Baseado em contribuições de fabricantes

63

Instalação: FAR END NAT

64

32
Instalação: NEAR END NAT

65

STUN – Simple Traversal of UDP


through NATs
• Padrão do IETF para NAT traversal (RFC 3489)
muito utilizado com protocolo SIP
• Baseia-se na existência de um servidor STUN que
é capaz de identificar os mapeamentos de
endereços da Intranet para endereços públicos
• Não funciona com todos os tipos de NAT
• Utiliza um protocolo do tipo cliente-servidor,
portanto exige um cliente STUN no equipamento
que inicia a conexão SIP

66

33
Operação do STUN
Servidor Servidor
STUN de Sinalização

conexão STUN

conexão de controle

conexão de dados
Parceiro
Fim-a-Fim

67

Tipos de NAT
a) Full Cone: é o tipo de NAT onde todos as mensagens provenientes do mesmo endereço interno
e da mesma porta são mapeados no mesmo endereço IP externo e porta. Além disso, qualquer
computador externo pode enviar um pacote para um computador interno enviando o pacote
para o endereço externo mapeado;

b) Cone Restrito: Os endereços internos são mapeados como no caso do full cone, mas um
computador externo (com endereço IP X) pode enviar um pacote para um computador interno
somente se o computador interno previamente enviou algum pacote para o endereço X;

c) Cone Restrito por Porta: a operação é semelhante à do tipo Cone Restrito, mas a restrição
inclui os números das portas. Especificamente um computador externo, com endereço IP X e
porta P, pode enviar um pacote para um computador interno somente se o computador interno
previamente enviou um pacote para o endereço X e para a porta P;

d) Simétrico: todos os pedidos de uma mesmo endereço IP interno e porta e que são destinam a
um específico endereço IP externo e porta são mapeados para o mesmo endereço IP externo e
porta. No entanto, se uma mensagem vinda do mesmo endereço IP interno e da mesma porta
for enviada para um outro computador externo, é usado um mapeamento diferente. Além disso,
somente o computador externo que recebeu um pacote pode enviar um pacote UDP de volta
para o computador interno.
68

34

Você também pode gostar