You are on page 1of 117

Redes de Comunicao

Professor Machado

O que uma rede de


comunicao ?
Transmisso -> Meio -> Recepo
Tipo de dados:
Analgico
Digital
Direo dos dados:
Unidirecional (Simplex)
Bidirecional exclusivo (Half-duplex)
Bidirecional simultneo (Full-duplex)
Destino dos dados:
Receptor nico (Unicast)
Receptores especficos (Multicast)
Receptores gerais (Broadcast)

Redes de Computadores
LAN (Local rea Network): situada dentro de um
prdio ou campus de no mximo alguns kilometros;
MAN (Metropolitan rea Network): abrange a
extenso de vrios prdios situados dentro de uma
mesma regio metropolitana (entre 10 a 100Km);
WAN (Wide rea Network): redes que permitem
abranger extenses muito grandes como um pas ou
continente. So normalmente formadas por varias
LANs (pequenas sub-redes);
3

Meios fsicos de transmisso

Topologias de Rede

O que um protocolo?
Protocolos humanos:
Que horas so?
Eu tenho uma
pergunta

Msgs especficas
enviadas
Aes especficas
tomadas frente ao
recebimento das
msgs

Protocolos de Redes:
Mquinas ao invs de
humanos
Toda comunicao em
redes regida por
protocolos

Protocolos definem o
formato, a ordem de
envio e recebimento de
msgs entre entidades e
aes realizadas
6

Protocolos
Exemplos de protocolos humanos e de computadores

Oi

Solicitao de
conexo TCP

Oi

Resposta de
conexo TCP

Que horas
so?

Get http://gaia.cs.umass.edu/index.htm

2:00
<arquivo>
tempo

O que a Internet?
Milhes de dispositivos
interconectados: hosts,
sistemas finais
Estaes de trabalho,
servidores
PDAs, fones, torradeiras

roteador
servidor

estao
mvel

ISP local

executando aplicativos

Enlaces de comunicao

ISP regional

fbras ticas, cobre, rdio,


satlite

roteadores: encaminham
pacotes (blocos) de dados
ao longo da rede
rede
coorporativa
8

O que a Internet
protocolos: controla o envio e
recebimento de msgs
e.g., TCP, IP, HTTP, FTP, PPP

Internet: rede de redes

roteador
servidor

estao
mvel

ISP local

Fracamente hierarquizada
Internet pblica versus intranet
privativas

ISP regional

Padres Internet
RFC: Request for comments
IETF: Internet Engineering Task
Force
rede
coorporativa

Histria da Internet
1961-1972: Primrdios dos Princpios de redes:
comutao de pacotes
1961: Kleinrock - teoria das
filas demonstra eficincia
da comutao por pacotes
1964: Baran - comutao de
pacotes em redes militares
1967: concepo da ARPAnet
pela ARPA (Advanced
Reearch Projects Agency)
1969: entra em operao o
primeiro n da ARPAnet

1972:
Demosntrao pblica da
ARPAnet
NCP (Network Control
Protocol) - primeiro
protocolo host-host
primeiro programa de email
ARPAnet com 15 ns

10

Histria da Internet
1972-1980: Interconexo, novas redes privativas
1970: rede de satlite ALOHAnet
no Hava
1973: Metcalfe prope a Ethernet
em sua tese de doutorado
1974: Cerf e Kahn - arquitetura
para a interconexo de redes
fim dos anos 70: arquiteturas
proprietrias: DECnet, SNA,
XNA
fim dos anos 70: comutao de
pacotes de comprimento fixo
(precursor do ATM)
1979: ARPAnet tem 200 ns

Cerf and Kahns princpios de


interconexo:
minimalismo, autonomia,
no h necessidade de
mudana interna para
interconexo
modelo de servio melhor
esforo (best effort)
roteadores sem estado
controle descentralizado
define a arquitetura da
Internet de hoje

11

Histria da Internet
1980-1990: novos protocolos, proliferao de redes
1983: implantao do TCP/IP
1982: definio do protocolo
smtp para e-mail
1983: definio do DNS para
traduo de nome para
endereo IP
1985: definio do protocolo
ftp
1988: controle de
congestionamento do TCP

Novos backbones
nacionais: Csnet,
BITnet, NSFnet, Minitel
100,000 hosts conectados
numa conferederao
de redes

12

Histria da Internet
1990s, 2000s: comrcio, WWW, novas aplicaes
incio dos anos 90: ARPAnet
desativada
1991: NSF remove restries ao
uso comercial da NSFnet
(desativada em 1995)
incio dos anos 90 : WWW
hypertexto [Bush 1945,
Nelson 1960s]
HTML, http: Berners-Lee
1994: Mosaic, posteriormente
Netscape
fim dos anos 90:
comercializao da Web

Final dos anos 90:


est. 50 milhes de
computadores na
Internet
est. mais de 100 milhes de
usurios
enlaces de backbone a
Gbps
1996: criao do projeto
INTERNET2
Segurana: uma
necessidade
Novas aplicaes (killer
applications): napster

13

Internet/BR
RNP teve incio em 1989.
Aberta para uso comercial em 1994
Posio absoluta (Network Wizards, 1/00):
Nmero de hosts: 446.444
13o do Mundo
3o das Amricas
1o da Amrica do Sul

4.500.000 Internautas (2/00)

14

Servios da Internet
Infraestrutura de
comunicao permite
aplicaes distribudas:
WWW, e-mail, jogos, comrcio
eletrnico, banco de dados.,
compartilhamento de
arquivos (MP3)

Servios de comunicao:
sem conexo
orientado conexo

15

Estrutura da Rede
Periferia da rede:
aplicaes e hosts
Ncleo da rede:
roteadores
redes de redes

redes de acesso, meio


fsico: enlaces de
comunicao

16

Periferia da Rede:
Sistemas finais (hosts):
executam aplicativos
WWW, email
na periferia da rede

modelo cliente/servidor
host cliente envia requisio, servidor
executa servio
e.g., cliente WWW(browser)/ servidor;
email cliente/servidor

modelo ponto-a-ponto :
Interao simtrica entre hosts;
Mnimo (ou nenhum) uso de servidores
dedicados;

17

Periferia da Rede: servios orientados conexo


Objetivo: transferncia
de dados entre
sistemas finais
handshaking:
estabelecimento de
conexo - preparao
para transferncia de
dados
TCP - Transmission Control
Protocol
Servio orientado
conexo da Internet

Servios TCP [RFC 793]


Confivel, em seqncia,
(byte-stream)
Perdas: confirmaes e
retransmisses

Controle de fluxo:
transmissor no sobrecarrega
o receptor;

Controle de
congestionamento:
transmissor dimui taxa de
transmisso quando a rede est
congestionada

18

Servios no orientados a conexo


Objetivo: transferncia de
dados entre sistemas
finais
UDP - User Datagram
Protocol [RFC 768]:
servios sem conexo da
Internet
transferncia noconfivel
sem controle de fluxo
sem controle de
congestionamento

Aplicaes tpicas que


usam TCP:
HTTP (WWW), FTP, Telnet,
SMTP (e-mail)

Aplicaes tpicas que


usam UDP
udio sob medida,
teleconferncia,
Telefonia Internet

19

O Ncleo da Rede
Malha de roteadores
interconectados
Questo fundamental: Como
os dados so transferidos
na rede?
comutao de circuitos:
circuitos dedicados rede telefnica
comutao de pacotes:
dados enviados pela
rede em blocos

20

Camadas de Protocolos
As redes so complexas!
muitos pedaos:
hosts
roteadores
enlaces de diversos
meios
aplicaes
protocolos
hardware, software

Pergunta:
H alguma esperana em
organizar a estrutura da
rede?
Ou pelo menos a nossa
discusso sobre redes?

21

Pilha de protocolos Internet


aplicao: d suporte a aplicaes de
rede
ftp, smtp, http

transporte: transferncia de dados


host-a-host

aplicao
transporte

tcp, udp

rede: roteamento de datagramas da


origem at o destino
ip, protocolos de roteamento

enlace: transferncia de dados entre


elementos de rede vizinhos

rede
enlace
fsica

ppp, ethernet

fsica: bits no fio


22

Camadas: comunicao lgica


Cada camada:
distribuda
entidades
implementam
as funes em
cada n
entidades
executam
aes, trocam
mensagens com
os pares

aplicao
transporte
redes
enlace
fsica
aplicao
transporte
redes
enlace
fsica

rede
enlace
fsica

aplicao
transporte
redes
enlace
fsica

aplicao
transporte
redes
enlace
fsica

23

Camadas: comunicao lgica


Ex.: camada de
transporte
recebe dados da
aplicao
adiciona endereo e
verificao de erro
para formar o
datagrama
envia o datagrama
para a parceira
espera que a parceira
acuse o
recebimento (ack)
analogia: correio

dados
aplicao
transporte
transporte
redes
enlace
fsica
ack
aplicao
transporte
redes
enlace
fsica

dados

redes
enlace
fsica

aplicao
transporte
redes
enlace
fsica

dados
aplicao
transporte
transporte
redes
enlace
fsica

24

Camadas: Comunicao Fsica


dados
aplicao
transporte
redes
enlace
fsica

aplicao
transporte
redes
redes
fsica

redes
enlace
fsicol

aplicao
transporte
redes
enlace
fsica

dados
aplicao
transporte
redes
enlace
fsicaa

25

Camadas de protocolos e dados


Cada camada recebe dados da camada superior
adiciona informao no cabealho para criar uma
nova unidade de dados
passa a nova unidade de dados para a camada
inferior

origem

destino
M

mensagem

Ht

segmento

redes

HnHt

datagrama

enlace

enlace

Hl HnHt

fsica

fsica

aplicao

aplicao

Ht

transporte

transporte

HnHt

redes

Hl HnHt

quadro

26

Modelo OSI-ISO
ISO - International Organization for Standards
OSI - Open Systems Interconnection
Modelo em 7 camadas:
OSI

TCP/IP

Aplicao
Aplicao

Apresentao
Sesso
Transporte

Transporte

Rede

Internet

Enlace

Host-tonetwork

Fsica

27

Princpio de projeto do Modelo OSI-ISO


Uma camada deve ser criada se houver
necessidade de abstrao
Camadas devem executar funes bem definidas
A definio da camada deve levar em conta
protocolos padronizados internacionalmente

28

Princpio de projeto do Modelo OSI-ISO


Os limites de cada camada devem ser escolhidos a
fim de reduzir o fluxo de informao transportada
entre as interfaces;
O nmero de camadas deve ser suficientemente
grande para que funes distintas no precisem ser
desnecessariamente colocadas na mesma camada
e suficientemente pequeno para que o projeto no
se torne difcil de controlar;

29

A Camada Fsica
Especificao das interfaces mecnicas,
eltricas e procedurais

30

A Camada de Enlace de
Dados
Transformar um canal de transmisso
bruta de dados em uma linha que
parea livre de erros - controle de erro
Enquadramento de dados;
Delimitao de quadros;
Controle de fluxo - acoplamento de
velocidade de transmisso - transmisor
/ receptor

31

A Camada de Rede
Controla a operao da sub-rede
Roteamento
Controle de congestionamento
Contabilidade
Interconexo de redes
32

A Camada de Transporte
Aceitar dados da camada de sesso e
dividi-los em unidades menores
(pacotes);
Gerenciamento de conexes:
estabelecimento, encerramento e multiplexao;

Primeira camada fim-a-fim;


Controle de fluxo;
33

A Camada de Sesso
Gerenciamento de sesses;
Gerenciamento de tokens;
Sincronizao;

34

A Camada de Apresentao
Sintaxe e semntica da informao a ser
transferida
Codificao dos dados
Converso de estruturas de dados

35

A Camada de Aplicao
Contm uma srie de protocolos
comumente necessrios;
Protocolo de terminal virtual;
Protocolo de transferncia de arquivos;

36

Camada de Enlace: Introduo

enlace

Alguma terminologia:
hosts e roteadores so ns
(pontes e comutadores tambm)
Enlaces so canais de comunicao
que conectam ns adjacentes ao
longo dos caminhos de
comunicao
Enlaces cabeados
Enlaces sem fios
LANs
2-PDU um quadro, que encapsula
um datagrama

Camada de enlace tem a


responsibilidade de transferir
datagramas de um n para o n
adjacente sobre um enlace

37

Camada de Enlace: contexto


Datagramas so transferidos por
diferentes protocolos de enlace
sobre diferentes tipos de enlace:
e.g., Ethernet no primeiro enlace,
frame relay nos enlaces
intermedirios, e 802.11 no
ltimo enlace
Cada protocolo de enlace prov
diferentes servios

Analogia de transporte
Viagem de Campinas Parintins

carro: Campinas a So Paulo


avio: So Paulo Manaus
barco: Manaus Parintins
turista = datagrama
Segmento de transporte = enlace de
comunicao
Modo de transporte = protocolo da
camada de enlace
Agente de viagem = algoritmo de
roteamento

38

Protocolos da Camada de Enlace

39

Servios da Camada de
Enlace (mais)
Controle de Fluxo:
compatibilizar taxas de produo e consumo de
quadros entre remetentes e receptores
Deteco de Erros:
erros so causados por atenuao do sinal e por rudo
receptor detecta presena de erros
receptor sinaliza ao remetente para retransmisso,
ou simplesmente descarta o quadro em erro
Correo de Erros:
mecanismo que permite que o receptor localize e
corrija o erro sem precisar da retransmisso
Half-duplex e full-duplex
Com half duplex, os dois ns do enlace podem
40
transmitir, mas no ao mesmo tempo

Implementao de Protocolo
da Camada de Enlace
Protocolo da camada de enlace implementado totalmente
no adaptador (p.ex., carto PCMCIA).
Adaptador tipicamente inclui: RAM, circuitos de
processamento digital de sinais, interface do
barramento do computador, e interface do enlace
Adaptador semi-autnomo
Enlace e camadas fsicas
n
emissor

datagrama
protocolo da camada de enlace
quadro
adaptador

enlace comunicao

n
receptor

quadro
adaptador
41

Implementao de Protocolo da Camada


de Enlace
transmisso do adaptador:
encapsula (coloca nmero de
seqncia, info de
realimentao, etc.)
inclui bits de deteco de
erros
implementa acesso ao canal
para meios compartilhados
coloca no enlace

recepo do adaptador:
verificao e correo de
erros
interrompe computador para
enviar quadro para a
camada superior
atualiza info de estado a
respeito de realimentao
para o remetente, nmero
de seqncia, etc.

42

CSMA: Carrier Sense Multiple Access


CSMA: escuta antes de transmitir:
Se o canal parece vazio: transmite o pacote
Se o canal est ocupado, adia a transmisso
CSMA Persistente: tenta outra vez imediatamente com
probabilidade p quando o canal se torna livre (pode
provocar instabilidade)
CSMA No-persistente: tenta novamente aps um intervalo
aleatrio
analogia humana: no interrompa os outros!

43

CSMA/CD (Deteco de Coliso)


CSMA/CD: deteco de portadora, deferncia como no CSMA
colises detectadas num tempo mais curto
transmisses com colises so interrompidas, reduzindo o
desperdcio do canal
retransmisses persistentes ou no-persistentes
deteco de coliso:
fcil em LANs cabeadas: (p.ex., E-net): pode-se medir a
intensidade do sinal na linha, detectar violaes do cdigo, ou
comparar sinais Tx e Rx
difcil em LANs sem fio: o receptor desligado durante
transmisso, para evitar danific-lo com excesso de potncia
CSMA/CD pode conseguir utilizao do canal perto de 100% em redes
locais (se tiver baixa razo de tempo de propagao para tempo
de transmisso do pacote)
analogia humana: o bom-de-papo educado
44

Endereos fsicos e ARP


Endereos IP de 32-bit:
endereos da camada de rede
usados para levar o datagrama at a rede de destino (lembre da
definio de rede IP)

Endereo de LAN (ou MAC ou fsico):


usado para levar o datagrama de uma interface fsica a outra
fisicamente conectada com a primeira (isto , na mesma rede)
Endereos MAC com 48 bits (na maioria das LANs)
gravado na memria fixa (ROM) do adaptador de rede

45

Endereos fsicos e ARP


Cada adaptador numa LAN tem um nico endereo de LAN

46

Endereos de LAN (mais)


A alocao de endereos MAC administrada pelo IEEE
O fabricante compra pores do espao de endereo MAC (para
assegurar a unicidade)
Analogia:
(a) endereo MAC: senelhante ao nmero do CPF
(b) endereo IP: semelhante a um endereo postal
endereamento MAC flat => portabilidade
possvel mover uma placa de LAN de uma rede para outra
sem reconfigurao de endereo MAC
endereo MAC de difuso (broadcast): 1111.1111
endereamento IP hierrquico => NO portvel
depende da rede na qual se est ligado

47

ARP: Address Resolution Protocol


Questo: como determinar
o endereo MAC de B
dado o endereo IP de B?

Cada n IP (Host, Roteador) numa


LAN tem um mdulo e uma
tabela ARP
Tabela ARP: mapeamento de
endereos IP/MAC para alguns
ns da LAN
< endereo IP; endereo MAC;
TTL>

TTL (Time To Live): tempo


depois do qual o
mapeamento de
endereos ser esquecido
(tipicamente 20 min)

48

Protocolo ARP
A conhece o endereo IP de B, quer aprender o endereo fsico
de B
A envia em broadcast um pacote ARP de consulta contendo o
endereo IP de B
todas as mquinas na LAN recebem a consulta ARP
B recebe o pacote ARP, responde a A com o seu (de B) endereo
de camada fsica
A armazena os pares de endereo IP-fsico at que a informao
se torne obsoleta (esgota a temporizao)
soft state: informao que desaparece com o tempo se no
for re-atualizada

49

Protocolo ARP
A deseja enviar um datagrama
para B, e conhece o seu
endereo IP;
Suponha que o endereo MAC de
B no esteja na tabela ARP de
A;

A envia em broadcast um
pacote ARP de consulta com
o endereo IP de B
todas as mquinas na LAN
recebem a consulta
B recebe o pacote ARP,
responde a A com o seu
endereo de camada fsica
Quadro enviado para o
endereo MAC de A;

A armazena os pares de
endereo IP-fsico at que a
informao se torne
obsoleta (esgota a
temporizao)
soft state: informao que
desaparece com o tempo
se no for re-atualizada
ARP plug-and-play:
Ns criam suas tabelas ARP
sem a interveno do
administrador da rede;

50

Estrutura do Quadro Ethernet


Adaptador do transmissor encapsula o datagrama IP (ou
outro pacote de protocolo da camada de rede) num
quadro Ethernet

Prembulo:
7 bytes com padro 10101010 seguido por um byte com
padro 10101011
usado para sincronizar as taxas de relgio do transmissor
e do receptor

51

Estrutura de Quadro Ethernet (cont)


Cabealho contm Endereos de Destino e Origem e
um campo Tipo
Endereos: 6 bytes, o quadro recebido por todos
adaptadores numa rede local e descartado se no
casar o endereo de destino com o do receptor
Tipo: indica o protocolo da camada superior,
usualmente IP, mas existe suporte para outros (tais
como IPX da Novell e AppleTalk)
CRC: verificado pelo receptor: se for detectado um
erro, o quadro ser descartado

52

Funes da camada de rede


transporta pacote da estao
remetente receptora
protocolos da camada de rede em
cada estao, roteador
trs funes importantes:
determinao do caminho: rota
seguida por pacotes da origem
ao destino. Algoritmos de
roteamento
comutao: mover pacotes dentro
do roteador da entrada sada
apropriada
estabelecimento da chamada:
algumas arquiteturas de rede
requerem determinar o caminho
antes de enviar os dados

aplicao
transporte
rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica

rede
enlace
fsica
rede
enlace
fsica

aplicao
transporte
rede
enlace
fsica

53

Modelo de servio de rede

abstrao do servio

Q: Qual o modelo de
servio para o canal
que transporta pacotes
do remetente ao
receptor?
largura de banda garantida?
preservao de temporizao
entre pacotes (sem jitter)?
entrega sem perdas?
entrega ordenada?
realimentar informao sobre
congestionamento ao
remetente?

A abstrao mais
importante provida
pela camada de rede:

? ?
?

circuito virtual
ou
datagrama?

54

Rede de datagramas ou CVs: por qu?


Internet

ATM

troca de dados entre


evoluiu da telefonia
computadores
conversao humana:
servio elstico, sem reqs.
temporizao estrita,
temporais estritos
requisitos de
sistemas terminais inteligentes
confiabilidade
(computadores)
requer servio garantido
podem se adaptar, exercer
sistemas terminais burros
controle, recuperar de erros
telefones
ncleo da rede simples,
complexidade dentro da
complexidade na borda
rede
muitos tipos de enlaces
caractersticas diferentes
servio uniforme difcil
55

Roteamento
protocolo de roteamento
5

meta: determinar caminho


(seqncia de roteadores) bom
pela rede da origem ao destino

Abstrao de grafo para


algoritmos de roteamento:
ns do grafo so roteadores
arestas do grafo so os
enlaces fsicos
custo do enlace: retardo,
financeiro, ou nvel de
congestionamento

B
2

C
3

caminho bom:
tipicamente significa
caminho de menor custo
outras definies so
possveis
56

Endereamento IP: introduo


endereo IP: ident. de
32-bits para interface
de estao, roteador
interface: conexo entre
estao, roteador e
enlace fsico
roteador tpico tem
mltiplas interfaces
estao pode ter
mltiplas interfaces
endereo IP associado
interface, no
estao ou roteador

223.1.1.1
223.1.2.1

223.1.1.2
223.1.1.4

223.1.1.3

223.1.2.9

223.1.3.27

223.1.2.2

223.1.3.2

223.1.3.1

223.1.1.1 = 11011111 00000001 00000001 00000001


223

1
57

Endereamento IP
endereo IP:
parte de rede (bits de
mais alta ordem)
parte de estao (bits de
mais baixa ordem)

O que uma rede IP? (da


perspectiva do endereo
IP)
interfaces de dispositivos
com a mesma parte de
rede nos seus
endereos IP
podem alcanar um ao
outro sem passar por
um roteador

223.1.1.1
223.1.2.1

223.1.1.2
223.1.1.4

223.1.1.3

223.1.2.9

223.1.3.27

223.1.2.2

LAN
223.1.3.1

223.1.3.2

Esta rede consiste de 3 redes IP


(para endereos IP comeando com
223, os primeiros 24 bits so a parte
de rede)
58

Endereamento IP
Como achar as redes?
dissociar cada interface
do seu roteador,
estao
criar ilhas de redes
isoladas

223.1.1.2

223.1.1.1

223.1.1.4

223.1.1.3

223.1.9.2

223.1.7.0

223.1.9.1

223.1.7.1
223.1.8.1

223.1.8.0

223.1.2.6

Sistema interligado
consistindo de
seis redes

223.1.2.1

223.1.3.27
223.1.2.2

223.1.3.1

223.1.3.2

59

Endereos IP
dada a noo de rede, vamos reexaminar endereos IP:

endereamento baseado em classes:


classe
A

16 777 216

65 536

C
256

0 rede
10
110
1110

1.0.0.0 to
127.255.255.255

estao
rede

estao

rede

estao

endereo multiponto

128.0.0.0 to
191.255.255.255
192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255

32 bits
60

Endereamento IP:

CIDR

Endereamento baseado em classes:


uso ineficiente e esgotamento do espao de endereos
p.ex., rede da classe B aloca endereos para 65K estaes,
mesmo se houver apenas 2K estaes nessa rede

CIDR: Classless InterDomain Routing


parte de rede do endereo de comprimento arbitrrio
formato de endereo: a.b.c.d/x, onde x no. de bits na parte de
rede do endereo
parte
de rede

parte de
estao

11001000 00010111 00010000 00000000


200.23.16.0/23
61

Endereos IP: como conseguir um?


Estaes (parte de estao):
codificado pelo administrador num arquivo

Windows: control-panel->network>configuration->tcp/ip->properties
UNIX: /etc/rc.config
DHCP: Dynamic Host Configuration Protocol: obtm
endereo dinamicamente: plug-and-play
estao difunde mensagem DHCP discover
servidor DHCP responde com DHCP offer
estao solicita endereo IP: DHCP request
servidor DHCP envia endereo: DHCP ack

62

Formato do datagrama IP
nmero da verso
do protocolo IP
comprimento do
cabealho (bytes)
tipo dos dados (DS)
nmero mximo
de enlaces restantes
(decrementado a
cada roteador)

comprimento total
do datagrama
(bytes)

32 bits
tipo de
ver comp.
cab servio
ident. 16-bits
sobre- camada
vida TTL superior

comprimento
bits

incio do
fragmento
checksum
Internet

para
fragmentao/
remontagem

endereo IP de origem 32 bits

protocolo da camada
superior ao qual
entregar os dados

endereo IP de destino 32 bits

Qual o overhead
com TCP?
20 bytes of TCP
20 bytes of IP
= 40 bytes +
overhead aplic.

dados
(comprimento varivel,
tipicamente um segmento
TCP ou UDP)

Opes (se tiver)

p.ex. temporizador,
registrar rota
seguida, especificar
lista de roteadores
a visitar.

63

IP: Fragmentao & Remontagem


cada enlace de rede tem MTU
(max.transmission unit) - maior
tamanho possvel de quadro
neste enlace.
tipos diferentes de enlace tm
MTUs diferentes
datagrama IP muito grande
dividido (fragmentado) dentro
da rede
um datagrama vira vrios
datagramas
remontado apenas no
destino final
bits do cabealho IP usados
para identificar, ordenar
fragmentos relacionados

fragmentao:
entrada: um datagrama
grande
sada: 3 datagramas
menores

remontagem

64

IP: Fragmentao & Remontagem


Exemplo
Datagrama com 4000
bytes
MTU = 1500 bytes

compr ID bit_frag
=4000 =x
=0

incio
=0

um datagrama grande vira


vrios datagramas menores
compr ID bit_frag
=1500 =x
=1

incio
=0

compr ID bit_frag incio


=1500 =x
=1
=1480
compr ID bit_frag incio
=1040 =x
=0
=2960

65

ICMP: Internet Control Message Protocol


usado por estaes, roteadores
para comunicar informao s/
camada de rede
relatar erros: estao, rede,
porta, protocolo
inalcanveis
pedido/resposta de eco (usado
por ping)
camada de rede acima de IP:
msgs ICMP transportadas em
datagramas IP
mensagem ICMP: tipo, cdigo
mais primeiros 8 bytes do
datagrama IP causando erro

Tipo
0
3
3
3
3
3
3
4
8
9
10
11
12

Cdigo descrio
0
resposta de eco (ping)
0
rede dest. inalcanvel
1
estao dest inalcanvel
2
protocolo dest inalcanvel
3
porta dest inalcanvel
6
rede dest desconhecida
7
estao dest desconhecida
0
abaixar fonte (controle de
congestionamento - usado)
0
pedido eco (ping)
0
anncio de rota
0
descobrir roteador
0
TTL (sobrevida) expirada
0
erro de cabealho IP

66

DHCP: Dynamic Host Configuration Protocol


Objetivo: permite que endereos IPs sejam
dinamicamente atribudos pelos servidores de
rede aos hosts quando estes se conectam a rede
Permite a reutilizao de endereos (os endereos so
mantidos enqunto a mquina est ligada)
D suporte a usurios mveis que desejem conectar-se a rede

Viso geral DHCP:


host envia msg DHCP discover via broadcast
Servidor DHCP responde com msg DHCP offer
host requisita endereo IP: msg DHCP request
Servidor DHCP envia endereo: msg DHCP ack
67

DHCP: cenrio cliente-servidor


A

servidor
DHCP

223.1.1.1

223.1.2.1

223.1.1.2
223.1.1.4

223.1.2.9

B
223.1.1.3
223.1.3.1

223.1.3.27

223.1.2.2

223.1.3.2

Cliente DHCP
que chega necessita
de um endereo
nesta rede

68

DHCP: cenrio cliente-servidor


Servidor DHCP : 223.1.2.5

DHCP discover

Cliente que chega

src : 0.0.0.0, 68
dest.: 255.255.255.255,67
yiaddr: 0.0.0.0
transaction ID: 654
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs
temp
o

DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
Lifetime: 3600 secs

69

NAT: Network Address Translation


Restante da
rede

Rede local
(e.g., home network)
10.0.0/24
10.0.0.4

10.0.0.1

10.0.0.2

138.76.29.7
10.0.0.3

Todos os datagramas saindo da rede


local tem o mesmo endereo NAT IP:
138.76.29.7, diferentes nmeros de
portas fontes

Datagramas com origem ou


destino nesta rede tem endereo
10.0.0/24 para fonte, e de
destino o usual

70

NAT: Network Address Translation


Motivao: rede local usa apenas um endereo IP:
No h necessidade de alocar faixas de endereos de
um ISP
apenas um endereo IP usado para todos os
dispositivos
Permite mudar o endereo dos dispositivos internos sem
necessitar notificar o mundo externo;
Permite a mudana de ISPs sem necessitar mudar os
endereos dos dispositivos internos da rede local
Dispositivos internos a rede, no so visveis nem
endereaveis pelo mundo externo (melhora
segurana);
71

NAT: Network Address Translation


Implementao: roteador NAT deve;
Datagramas que saem: trocar (endereo IP fonte, porta
#) de cada datagrama de sada para (endereo NAT IP,
nova porta #)
. . . clientes/servidores remotos iro responder usando
(endereo NAT IP, nova porta #) como endereo
destino.
guardar (na tabela de traduo de endereos NAT): os
pares de traduo de endereos (endereo IP fonte,
porta #) para (endereos NAT IP, nova porta #)
Datagramas qeu chegam: trocar (endereo NAT IP, nova
porta #) no campo de destino de cada datagrama que
chega com o correspondente (endereo IP fonte, porta
#) armazenado na tabela NAT
72

NAT: Network Address Translation


2: roteador NAT
muda o endereo
de origem
10.0.0.1, 3345 de
10.0.0.1, 3345 para
138.76.29.7, 5001,
e atualiza a tabela

Tabela de traduo NAT


WAN addr
LAN addr

1: host 10.0.0.1
envia datagrama para
128.119.40, 80

138.76.29.7, 5001 10.0.0.1, 3345

S: 10.0.0.1, 3345
D: 128.119.40.186, 80

10.0.0.1

1
2

S: 138.76.29.7, 5001
D: 128.119.40.186, 80

138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001

10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345

10.0.0.2

10.0.0.3
4: roteador NAT muda o
3: resposta chega no endereo endereo de destino de
de destino:
138.76.29.7, 5001 para 10.0.0.1, 3345
138.76.29.7, 5001
73

NAT: Network Address Translation


Campo de porta de 16-bit :
60,000 conexes simultneas com um nico
endereo de rede;

NAT controverso:
Roteadores devem fazer processamentos at no
mximo a camada 3;
Viola o conceito fim-a-fim
A possibilidade de suporte a NAT deve ser levado em
considerao pelos desenvolvedores de aplicaes;

O problema de diminuio do nmero de


endereos deveria ser tratada por IPv6;
74

Aplicaes de rede: algum jargo


Um processo um programa
que executa num
hospedeiro (host).
2 processos no mesmo
hospedeiro se comunicam
usando comunicao entre
processos definida pelo
sistema operacional (SO).
2 processos em hospedeiros
distintos se comunicam
usando um protocolo da
camada de aplicao.

Um agente de usurio
(UA) uma interface
entre o usurio e a
aplicao de rede.
WWW: browser
Correio: leitor/compositor
de mensagens
streaming audio/video:
tocador de mdia

75

Aplicaes e protocolos da camada de aplicao


Aplicao: processos distribudos
em comunicao
executam em hospedeiros no
espao de usurio
trocam mensagens para
implementar a aplicao
p.ex., correio, transf. de
arquivo, WWW
Protocolos da camada de aplicao
uma parte da aplicao
define mensagens trocadas por
apls e aes tomadas
usam servios providos por
protocolos de camadas
inferiores (TCP, UDP)

aplicao
transporte
rede
enlace
fsica

aplicao
transporte
rede
enlace
fsica

aplicao
transporte
rede
enlace
fsica

76

Camada de aplicao define:


Tipo das mensagens
trocadas: ex, mensagens
de requisio & resposta
Sintaxe das mensagens:
quais os campos de uma
mensagem & como estes
so delineados;
Semntica dos campos:
qual o significado das
informaes nos campos;
Regras: definem quando e
como os processos
enviam & respondem
mensagens;

Protocolos de domnio
pblico:
Definidos por RFCs
Garante interoperabilidade
ex, HTTP, SMTP
Protocolos proprietrios:
ex, KaZaA

77

Paradigma cliente-servidor (C-S)


Apl. de rede tpica tem duas
partes: cliente e servidor
Cliente:
inicia contato com o servidor (fala
primeiro)
tipicamente solicita servio do
servidor
para WWW, cliente implementado
no browser; para correio no
leitor de mensagens
Servidor:
prov ao cliente o servio
requisitado
p.ex., servidor WWW envia pgina
solicitada; servidor de correio
entrega mensagens

aplicao
transporte
rede
enlace
fsica

pedido

resposta
aplicao
transporte
rede
enlace
fsica

78

Comunicao entre processos na rede


processos se comunicam
enviando ou recebendo
mensagens atravs de um
socket;
socket
O processo emissor joga a
mensagem por seu socket;
O processo emissor assume
que h uma infra-estrutura
de transporte no lado oposto
do socket que ir transmitir
a mensagem at o socket do
processor receptor;

host ou
servidor

host ou
servidor

processo

Controlado pelo
Desenvolvedor
da aplicao

socket

socket
TCP com
buffers,
Variveis

processo

Internet

TCP com
buffers,
Variveis

Controlado
pelo OS

API: (1) escolhe do protocolo de transporte; (2) abilidade para


fixar alguns parmetros (voltamos mais tarde a este assunto)

79

Identificando processos:
Para que um processo possa
receber mensagens, ele
precisa ter um identificador;
Cada host tem um endereo
nico de 32 bits endereo
IP;
Q: O endereo IP de um host
no qual um processo est
executando suficiente
para identificar este
processo?
Resposta: No, muitos
processos podem estar em
execuo em um mesmo
host

O identificador inclue
tanto o endereo IP
como tambm o
nmero de porta
associado com o
processo no host;
Exemplo de nmero de
portas:
Servidor HTTP: 80
Servidor de Correio: 25

Voltaremos a este
assunto mais tarde
80

Requisitos do servio de transporte de apls comuns

Aplicao Perdas
transferncia de arqs
correio
documentos WWW
udio/vdeo de
tempo real
udio/vdeo gravado
jogos interativos
apls financeiras

sem perdas
sem perdas
sem perdas
tolerante
tolerante
tolerante
sem perdas

Banda
elstica
elstica
elstica
udio: 5Kb-1Mb
vdeo:10Kb-5Mb
como anterior
> alguns Kbps
elstica

Sensibilidade
temporal
no
no
no
sim, 100s mseg
sim, alguns segs
sim, 100s mseg
sim e no

81

Servios providos por protocolos de


transporte Internet
servio TCP:

servio UDP:

orientado a conexo: negociao


e definio da conexo (setup)
requerida entre cliente,
servidor
transporte confivel entre
processos remetente e
receptor
controle de fluxo: remetente no
vai sobrecarregar o receptor
controle de congestionamento:
estrangular remetente quando
a rede est sobrecarregada
no prov: garantias temporais
ou de banda mnima

transferncia de dados no
confivel entre processos
remetente e receptor
no prov: setup da conexo,
confiabilidade, controle de
fluxo, controle de
congestionamento, garantias
temporais ou de banda
mnima
P: Qual o interesse em ter um
UDP?

82

Apls Internet: seus protocolos e seus protocolos


de transporte
Protocolo da
Aplicao camada de apl
correio eletrnico smtp [RFC 821]
accesso terminal remoto telnet [RFC 854]
WWW http [RFC 2068]
transferncia de arquivos ftp [RFC 959]
streaming multimdia proprietrio
(p.ex. RealNetworks)
servidor de arquivo remoto NSF
telefonia Internet proprietrio
(p.ex., Vocaltec)

Protocolo de
transporte usado
TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
tipicamente UDP

83

WWW e HTTP: algum jargo


Pgina WWW:
consiste de objetos
endereada por uma URL

Quase todas as pginas


WWW consistem de:
pgina base HTML, e
vrios objetos referenciados.

URL tem duas partes: nome


de hospedeiro, e nome
de caminho:

Agente de usurio para


WWW se chama de
browser:
MS Internet Explorer
Netscape Communicator

Servidor para WWW se


chama servidor WWW:
Apache (domnio pblico)
MS Internet Information
Server (IIS)

www.someschool.edu/someDept/pic.gif
nome do caminho
nome do host

84

Protocolo HTTP: viso geral


HTTP: hypertext transfer
protocol
protocolo da camada de
aplicao para WWW
modelo cliente/servidor
cliente: browser que pede,
recebe, visualiza
objetos WWW
servidor: servidor WWW
envia objetos em
resposta a pedidos
http1.0: RFC 1945
http1.1: RFC 2068

PC executa
Explorer

pe
did
o

res
p

htt

ost
ah
ttp

ttp
h
ido
tp
d
t
e
h
p
sta
o
p
res

Servidor
executando
servidor
WWW
do NCSA

Mac executa
Navigator

85

Mais sobre o protocolo HTTP


HTTP: servio de
transporte TCP:
cliente inicia conexo TCP (cria
socket) ao servidor, porta 80
servidor aceita conexo TCP do
cliente
mensagens HTTP (mensagens
do protocolo da camada de
apl) trocadas entre browser
(cliente HTTP) e servidor e
WWW (servidor HTTP)
encerra conexo TCP

HTTP sem estado


servidor no mantm
informao sobre pedidos
anteriores do cliente

Nota

Protocolos que mantm


estado so complexos!
histria passada (estado) tem
que ser guardada
Caso servidor/cliente parem de
executar, suas vises do
estado podem ser
inconsistentes, devendo
ento ser reconciliadas
86

Conexes HTTP
HTTP: no persistente
No mximo um objeto
enviado em uma
conexo TCP;
HTTP/1.0 usa conexes
no persistentes

HTTP: persistente
Mltiplos objetos podem
ser enviados numa
nica conexo TCP
entre o servidor e o
cliente;
HTTP/1.1 usa conexes
persistentes no modo
default;

87

Ex: HTTP no-persistente (cont.)


4. servidor http encerra conexo
5. cliente http recebe mensagem

TCP .

de resposta contendo arquivo


html, visualiza html.
Analisando arquivo html,
encontra 10 objetos jpeg
referenciados

6. Passos 1 a 5 repetidos para

cada um dos 10 objetos jpeg

tempo

88

HTTP persistente
HTTP no-persistente:
servidor analisa pedido, responde, e
encerra conexo TCP
requer 2 RTTs para trazer cada
objeto
mas os browsers geralmente abrem
conexes TCP paralelas para
trazer cada objeto
HTTP- persistente
servidor mantm conexo aberta
depois de enviar a resposta;
mensagens HTTP subsequentes
entre o o mesmos cliente/servidor
so enviadas por esta conexo;
na mesma conexo TCP: servidor
analisa pedido, responde, analisa
novo pedido e assim por diante

Persistente sem pipelining:


Cliente s faz nova requisio
quando a resposta de uma
requisio anterior foi
recebida;
um RTT para cada objeto
Persistente com pipelining:
default in HTTP/1.1
O cliente envia a requisio
assim que encontra um
objeto;
Um pouco mais de um RTT
para trazer todos os objetos

89

Formato de mensagem HTTP: pedido


Dois tipos de mensagem HTTP: pedido, resposta
mensagem de pedido HTTP:
ASCII (formato legvel por pessoas)
linha do pedido
(comandos GET,
POST, HEAD)

GET /somedir/page.html HTTP/1.0


User-agent: Mozilla/4.0
Accept: text/html, image/gif,image/jpeg
linhas do Accept-language:fr
cabealho
(carriage return (CR), line feed(LF) adicionais)

Carriage return,
line feed
indica fim
de mensagem

90

Mensagem de pedido HTTP: formato geral

91

Formato de mensagem HTTP: resposta


linha de status
(protocolo,
cdigo de status,
frase de status)
linhas de
cabealho

HTTP/1.0 200 OK
Date: Thu, 06 Aug 1998 12:00:15 GMT
Server: Apache/1.3.0 (Unix)
Last-Modified: Mon, 22 Jun 1998 ...
Content-Length: 6821
Content-Type: text/html
dados dados dados dados ...

dados, p.ex.,
arquivo html
solicitado

92

Cdigos de status da resposta HTTP


Na primeira linha da mensagem de resposta
servidor->cliente. Alguns cdigos tpicos:
200 OK
sucesso, objeto pedido segue mais adiante nesta mensagem

301 Moved Permanently


objeto pedido mudou de lugar, nova localizao especificado
mais adiante nesta mensagem (Location:)

400 Bad Request


mensagem de pedido no entendida pelo servidor

404 Not Found


documento pedido no se encontra neste servidor

505 HTTP Version Not Supported


verso de http do pedido no usada por este servidor

93

Experimente voc com http (do lado cliente)


1. Use cliente telnet para seu servidor WWW favorito:
telnet www.ic.uff.br 80

Abre conexo TCP para a porta 80


(porta padro do servidor http) a www.ic.uff.br.
Qualquer coisa digitada enviada para a
porta 80 do www.ic.uff.br

2. Digite um pedido GET http:


GET /~michael/index.html HTTP/1.0

Digitando isto (deve teclar


ENTER duas vezes), est enviando
este pedido GET mnimo (porm
completo) ao servidor http

3. Examine a mensagem de resposta enviado pelo


servidor http !
94

HTML (HyperText Markup Language)


HTML: uma linguagem simples para hipertexto
comeou como verso simples de SGML
construo bsica: cadias de texto anotadas

Construtores de formato operam sobre cadias


<b> .. </b>
bold (negrito)
<H1 ALIGN=CENTER> ..ttulo centrado .. </H1>
<BODY bgcolor=white text=black link=red ..> .. </BODY>

vrios formatos
listas de bullets, listas ordenadas, listas de definio
tabelas
frames

95

FTP: o protocolo de transferncia de


arquivos
Interface
cliente
do usurio
FTP
FTP
usurio
na
estao

transferncia
do arquivo

sistema de
arquivos
local

FTP
servidor
sistema de
arquivos
remoto

transferir arquivo de/para hospedeiro remoto


modelo cliente/servidor
cliente: lado que inicia transferncia (pode ser de ou para
o sistema remoto)
servidor: hospedeiro remoto
ftp: RFC 959
servidor ftp: porta 21
96

FTP: conexes separadas p/ controle, dados


Cliente FTP contacta servidor ftp na
porta 21, especificando TCP
como protocolo de transporte
Cliente obtem autorizao atravs
da conexo de controle;
O cliente acessa o diretrio remoto
atravs do envio de comandos
pela conexo de controle;
Quando o servidor recebe um
comando para transferncia de
arquivo, o servidor abre uma
conexo TCP com o cliente;
Depois de transferir o arquivo a
conexo finalizada;

conexo de controle
TCP, porta 21

cliente
FTP

conexo de dados
TCP, porta 20

servidor
FTP

so abertas duas conexes TCP


paralelas:
controle: troca comandos,
respostas entre cliente,
servidor.
controle fora da banda
dados: dados de arquivo
de/para servidor

97

FTP: comandos, respostas


Comandos tpicos:

Cdigos de retorno tpicos

enviados em texto ASCII pelo canal cdigo e frase de status (como para
de controle
http)
USER nome
331 Username OK, password
required
PASS senha
125 data connection already
LIST devolve lista de arquivos no
open; transfer starting
directrio corrente
425 Cant open data connection
RETR arquivo recupera (l)
452 Error writing file
arquivo remoto
STOR arquivo armazena (escreve)
arquivo no hospedeiro remoto

98

Correio Eletrnico
agente
de
usurio

Trs grandes componentes:


agentes de usurio (UA)
servidores de correio
SMTP: simple mail transfer protocol
Agente de Usurio
a.k.a. leitor de correio
compor, editar, ler mensagens de
correio
p.ex., Eudora, Outlook, elm,
Netscape Messenger
mensagens de sada e chegada so
armazenadas no servidor

fila de
msg de sada
caixa de
correio do
usurio
agente
de
usurio

servidor
de correio

SMTP
servidor
de correio

SMTP

agente
de
usurio

SMTP
agente
de
usurio

servidor
de correio

agente
de
usurio

agente
de
usurio
99

Correio Eletrnico: servidores de correio


agente
de
usurio

Servidores de correio
caixa de correio contm
mensagens de chegada
(ainda no lidas) p/ usurio
fila de mensagens contm
mensagens de sada (a
serem enviadas)
protocolo SMTP entre servidores
de correio para transferir
mensagens de correio
cliente: servidor de correio
que envia
servidor: servidor de
correio que recebe

agente
de
usurio

servidor
de correio

SMTP
servidor
de correio

SMTP
SMTP
agente
de
usurio

servidor
de correio

agente
de
usurio

agente
de
usurio
100

Correio Eletrnico: SMTP [RFC 821]


usa TCP para a transferncia confivel de msgs do correio do
cliente ao servidor, porta 25
transferncia direta: servidor remetente ao servidor receptor
trs fases da transferncia
handshaking (cumprimento)
transferncia das mensagens
encerramento
interao comando/resposta
comandos: texto ASCII
resposta: cdigo e frase de status

mensagens precisam ser em ASCII de 7-bits

101

Cenrio: Alice envia msg para Bob


1) Alice usa UA para compor a
mensagem e envi-la para
bob@someschool.edu
2) O UA da Alice envia a
mensagem para o seu
servidor de correio; a msg
colocada na fila de
mensagens;
3) O cliente SMTP abre uma
conexo TCP com o servidor
de correio do Bob

1
agente
usurio

4) SMTP cliente envia a msg da


Alice atravs da conexo
TCP;
5) Servidor de correio de Bob
coloca a msg na caixa de
correio de Bob;
6) Bob invoca o seu UA para
ler a sua msg;

servidor
correio

servidor
correio
2

agente
usurio

102

Interao SMTP tpica


S:
C:
S:
C:
S:
C:
S:
C:
S:
C:
C:
C:
S:
C:
S:

220 doces.br
HELO consumidor.br
250 Hello consumidor.br, pleased to meet you
MAIL FROM: <ana@consumidor.br>
250 ana@consumidor.br... Sender ok
RCPT TO: <bernardo@doces.br>
250 bernardo@doces.br ... Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Voce gosta de chocolate?
Que tal sorvete?
.
250 Message accepted for delivery
QUIT
221 doces.br closing connection

103

Experimente voc uma interao SMTP :


telnet nomedoservidor 25
veja resposta 220 do servidor
entre comandos HELO, MAIL FROM, RCPT TO, DATA,
QUIT
estes comandos permite que voc envie correio sem
usar um cliente (leitor de correio)

104

SMTP: ltimas palavras


SMTP usa conexes persistentes
smtp requerque a mensagem
(cabealho e corpo) sejam em
ASCII de 7-bits
algumas cadeias de caracteres
no so permitidas numa
mensagem (p.ex., CRLF.CRLF).
Logo a mensagem pode ter
que ser codificada
(normalmente em base-64 ou
quoted printable)
servidor SMTP usa CRLF.CRLF
para reconhecer o final da
mensagem

Comparao com http


HTTP : pull (puxar)
email: push (empurrar)
ambos tem interao
comando/resposta, cdigos
de status em ASCII
HTTP: cada objeto
encapsulado em sua prpria
mensagem de resposta
SMTP: mltiplos objetos de
mensagem enviados numa
mensagem de mltiplas
partes

105

Formato de uma mensagem


SMTP: protocolo para trocar
msgs de correio
RFC 822: padro para formato
de mensagem de texto:
linhas de cabealho, p.ex.,
To:
From:
Subject:
diferentes dos comandos de
SMTP!

cabealho

linha em
branco

corpo

corpo
a mensagem, somente de
caracteres ASCII

106

Formato de uma mensagem: extenses


para multimdia
MIME: multimedia mail extension, RFC 2045, 2056
linhas adicionais no cabealho da msg declaram tipo do
contedo MIME

verso MIME
mtodo usado
p/ codificar dados
tipo, subtipo de
dados multimdia,
declarao parmetros

From: ana@consumidor.br
To: bernardo@doces.br
Subject: Imagem de uma bela torta
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Type: image/jpeg
base64 encoded data .....
.........................
......base64 encoded data

Dados codificados
107

Protocolos de accesso ao
correio
agente
de
usurio

SMTP

servidor de correio
do remetente

SMTP

POP3 ou
IMAP

agente
de
usurio

servidor de correio
do receptor

SMTP: entrega/armazenamento no servidor do receptor


protocolo de accesso ao correio: recupera do servidor
POP: Post Office Protocol [RFC 1939]
autorizao (agente <-->servidor) e transferncia
IMAP: Internet Mail Access Protocol [RFC 1730]
mais comandos (mais complexo)
manuseio de msgs armazenadas no servidor
HTTP: Hotmail , Yahoo! Mail, Webmail, etc.

108

Protocolo POP3
fase de autorizao
comandos do cliente:
user: declara nome
pass: senha
servidor responde
+OK
-ERR

fase de transao, cliente:


list: lista nmeros das msgs
retr: recupera msg por nmero
dele: apaga msg
quit

S:
C:
S:
C:
S:

+OK POP3 server ready


user ana
+OK
pass faminta
+OK user successfully logged

on

C: list
S: 1 498
S: 2 912
S: .
C: retr 1
S: <message 1 contents>
S: .
C: dele 1
C: retr 2
S: <message 1 contents>
S: .
C: dele 2
C: quit
S: +OK POP3 server signing off
109

POP3 e IMAP
Mais sobre POP3
O exemplo anterior usa o
modo ler-e-apagar.
Bob no pode reler suas msgs
se ele mudar de cliente;
POP3 no mantm estado;

IMAP
Usa o modo: ler-e-guardar
que posibilita acessar
mensagens de vrios
clientes;
Mantm todas as mensagens
em um nico lugar:
servidor;
Permite que o usurio organize
suas msgs em pastas
remotas como se fosse
locais;
IMAP mantm estado dos
usurios durante as
sesses:
Nomes e pastas e mapeia
os IDs das msgs e o
nome das pastas;

110

DNS: Domain Name System


Pessoas: muitos
identificadores:
CPF, nome, no. da
Identidade

hospedeiros, roteadores
Internet :
endereo IP (32 bit) - usado
p/ enderear datagramas
nome, ex., jambo.ic.uff.br
- usado por gente

P: como mapear entre


nome e endereo IP?

Domain Name System:


base de dados distribuda
implementada na hierarquia de
muitos servidores de nomes
protocolo de camada de aplicao
permite que hospedeiros,
roteadores, servidores de nomes se
comuniquem para resolver nomes
(traduo endereo/nome)
note: funo imprescindvel da
Internet implementada como
protocolo de camada de
aplicao
complexidade na borda da rede

111

DNS
Roda sobre UDP e usa a
porta 53
Especificado nas RFCs
1034 e 1035 e
atualizado em outras
RFCs.

Outros servios:
apelidos para hospedeiros
(aliasing)
apelido para o servidor de
mails
distribuio da carga

112

Servidores de nomes DNS


Por que no centralizar o Nenhum servidor mantm todos
os mapeamento nome-paraDNS?
endereo IP
ponto nico de falha
servidor de nomes local:
volume de trfego
cada provedor, empresa tem
servidor de nomes local (default)
base de dados centralizada
pedido DNS de hospedeiro vai
e distante
primeiro ao servidor de nomes
manuteno (da BD)
local
servidor de nomes oficial:
p/ hospedeiro: guarda nome,
No escalvel!
endereo IP dele
pode realizar traduo
nome/endereo para este nome

113

Exemplo simples do DNS


hospedeiro manga.ic.uff.br
requer endereo IP de
www.cs.columbia.edu
1. Contata servidor DNS local,
pitomba.ic.uff.br
2. pitomba.ic.uff.br contata
servidor raiz, se necessrio
3. Servidor raiz contata
servidor oficial
cs.columbia.edu, se
necessrio

4
5

servidor local
pitomba.ic.uff.br

solicitante

servidor de
nomes raiz

servidor oficial

cs.columbia.edu

manga.ic.uff.br

www.cs.columbia.edu

114

Exemplo de DNS
Servidor raiz:
pode no conhecer o
servidor de nomes
oficial
pode conhecer servidor
de nomes
intermedirio: a quem
contatar para
descobrir o servidor de
nomes oficial

servidor de
nomes raiz
6

2
7

servidor local

pitomba.ic.uff.br

solicitante

servidor intermedirio
saell.cc.columbia.edu
4

servidor oficial
cs.columbia.edu

manga.ic.uff.br

www.cs.columbia.edu
115

Registros DNS
DNS: BD distribudo contendo registros de recursos (RR)
formato RR: (nome, valor, tipo, sobrevida)

Tipo=A
nome nome de hospedeiro
valor o seu endereo IP
Tipo=NS
nome domnio (p.ex.
foo.com.br)
valor endereo IP de servidor
oficial de nomes para este
domnio

Tipo=CNAME
nome nome alternativo
(alias) para algum nome
cannico (verdadeiro)
valor o nome cannico

Tipo=MX
nome domnio
valor nome do servidor de
correio para este domnio
116

Referencias
Ross e Kurose: Redes de Computadores e a
Internet
Tanenbaum: Redes de Computadores

117

You might also like