Vous êtes sur la page 1sur 60

Redes de Computadores

Protocolo Internet
Gustavo Reis
gustavo.reis@ifsudestemg.edu.br

- Protocolos de Internet

Mensagem

Aplicao

HTTP, SMTP, FTP, DNS

Segmento

Ht

Transporte

TCP, UDP

Hr

Ht

Rede

Hr

Ht

Enlace

Datagrama
Quadro

He

Fsica

UDP
Ethernet, PPP

- Protocolos de Internet
Arquitetura cliente-servidor
Servidor:

Hospedeiro sempre ativo


Endereo IP permanente
Fornece servios solicitados
pelo cliente
Clientes:
Comunicam-se com o servidor
Pode ser conectado
intermitentemente
Pode ter endereo IP dinmico
No se comunicam diretamente
uns com os outros

- Protocolos de Internet
Arquitetura P2P pura
Nem sempre no servidor
Sistemas finais arbitrrios
comunicam-se diretamente
Pares so intermitentemente
conectados e trocam
endereos IP
Altamente escalveis mas
difceis
de gerenciar

- Protocolos de Internet
Hbrida cliente-servidor e P2P

Napster
Transferncia de arquivo P2P
Busca centralizada de arquivos:
Contedo de registro dos pares no servidor central
Consulta de pares no mesmo servidor central para localizar o
contedo
Instant messaging
Bate-papo entre dois usurios P2P
Deteco/localizao centralizada de presena:
Usurio registra seu endereo IP com o servidor central quando fica
on-line
Usurio contata o servidor central para encontrar endereos IP dos
vizinhos

- Protocolos de Internet
Processos de Endereamento
Para um processo receber mensagens, ele deve ter um
identificador
Um hospedeiro possui um nico endereo IP de 32 bits
P.: O endereo IP do hospedeiro onde o processo est
executando suficiente para identificar o processo?
R.: No, muitos processos podem estar em execuo no mesmo
hospedeiro.

O identificador inclui o endereo IP e o nmero da porta


associada ao processo no hospedeiro

Exemplos de nmeros de porta

Servidor HTTP: 80
Servidor de Correio: 25

- Protocolos de Internet
O protocolo da camada de aplicao define
Tipo das mensagens trocadas, mensagens de requisio e resposta
Sintaxe dos tipos de mensagem: os campos nas mensagens e como
so delineados
Semntica dos campos, ou seja, significado da informao nos
campos
Regras para quando e como os processos enviam e respondem s
mensagens
Protocolos de domnio pblico
Definidos nas RFCs
Recomendados para interoperabilidade
Ex.: HTTP, SMTP
Protocolos proprietrios
Ex.: KaZaA

- Protocolos de Internet
De qual servio de transporte uma aplicao necessita?
Perda de dados
Algumas aplicaes (ex.: udio) podem tolerar alguma perda
Outras aplicaes (ex.: transferncia de arquivos, telnet) exigem
transferncia de dados 100% confivel

Temporizao
Algumas aplicaes (ex.: telefonia Internet, jogos interativos) exigem
baixos atrasos para serem efetivos

Banda passante
Algumas aplicaes (ex.: multimdia) exigem uma banda mnima para
serem efetivas
Outras aplicaes (aplicaes elsticas) melhoram quando a banda
disponvel aumenta

- Protocolos de Internet

Aplicao Perdas
file transfer
e-mail
Web documents
real-time udio/vdeo

sem perdas
sem perdas
tolerante
tolerante

stored udio/video tolerante


jogos interativos tolerante
e-business sem perda

Banda

Sensvel ao atraso

elstica
elstica
elstica
adio: 5 Kb-1 Mb
vdeo:10 Kb-5 Mb
igual anterior
kbps
elstica

no
no
no
sim, dcimo de segundo
sim, alguns segundos
sim, dcimo de segundo
sim e no

- Protocolos de Internet

Aplicao
e-mail
acesso de terminais remotos
Web
transferncia de arquivos
streaming multimdia
servidor de arquivos remoto
telefonia Internet

Protocolo de
aplicao

Protocolo de
transporte

smtp [RFC 821]


telnet [RFC 854]
http [RFC 2068]
ftp [RFC 959]
RTP ou proprietrio
(ex.: RealNetworks)
NSF
RTP ou proprietrio
(ex.: Vocaltec)

TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
tipicamente UDP

Camada de Aplicao

- Web e HTTP
Primeiro alguns jarges
Pgina Web consiste de objetos
Objeto pode ser arquivo HTML, imagem JPEG, Java applet,
arquivo de udio,
A pgina Web consiste de arquivo-HTML base que inclui
vrios objetos referenciados
Cada objeto endereado por uma URL (Uniform Resource
Locator)
Exemplo de URL:

www.someschool.edu/someDept/pic.gif
Nome do hospedeiro

Nome do caminho

- Viso geral do HTTP


HTTP: hypertext transfer
protocol
Protocolo da camada de
aplicao da Web

HTTP 1.0: RFC 1945

HTTP 1.1: RFC 2068

Modelo cliente/servidor

Cliente: browser que solicita,


recebe e apresenta objetos da
Web

Servidor: envia objetos em


resposta a pedidos

- Viso geral do HTTP


Utiliza TCP:

Cliente inicia conexo TCP (cria socket canal de comunicao)


para o servidor na porta 80
Servidor aceita uma conexo TCP do cliente
mensagens HTTP (mensagens do protocolo de camada de
aplicao) so trocadas entre o browser (cliente HTTP) e o
servidor Web (servidor HTTP)
A conexo TCP fechada

HTTP stateless

O servidor no mantm informao sobre os pedidos passados


pelos clientes

- Conexes HTTP

HTTP no persistente

No mximo, um objeto enviado sobre uma conexo TCP


O HTTP/1.0 utiliza HTTP no persistente

HTTP persistente

Mltiplos objetos podem ser enviados sobre uma conexo TCP entre o
cliente e o servidor
O HTTP/1.1 utiliza conexes persistentes em seu modo padro

- HTTP no persistente
Usurio entra com a URL:

(contm texto,referncias a 10 imagens jpeg)

www.someSchool.edu/someDepartment/home.index
1a.

Cliente HTTP inicia


conexo
TCP ao servidor
HTTP em
www.someschool.edu.
Porta 80 a default para
o servidor HTTP.

1b.

Servidor HTTP no hospedeiro


www.someschool.edu esperando
pela conexo TCP na porta 80.
Aceita conexo, notificando
o cliente

2. Cliente HTTP envia HTTP


request message (contendo a
URL) para o socket da conexo
TCP

Tempo

3. Servidor HTTP recebe mensagem


de pedido, forma response message
contendo o objeto solicitado
(someDepartment/home.index), envia
mensagem para o socket

- HTTP no persistente
4. Servidor HTTP fecha conexo TCP.
5. Cliente HTTP recebe mensagem
de resposta contendo o
arquivo html, apresenta o
contedo html. Analisando o
arquivo html, encontra 10
objetos jpeg referenciados

Tempo

6. Passos 1-5 so repetidos para cada


um dos 10 objetos jpeg.

- Modelagem do tempo
de resposta
Definio de RTT (Round
Trip Time): tempo para
enviar um pequeno
pacote que vai do cliente
para o servidor e
retorna.

Tempo de resposta:

Um RTT para iniciar a


conenexo TCP
Um RTT para
requisio HTTP e
primeiros bytes da
resposta
HTTP
para retorno
Tempo de
transmisso de
arquivo

Total = 2RTT+ tempo de transmisso

- HTTP persistente
Caractersticas do HTTP persistente:

Requer 2 RTTs por objeto


Os browsers freqentemente abrem conexes TCP paralelas para
buscar objetos referenciados

HTTP persistente

Servidor deixa a conexo aberta aps enviar uma resposta


Mensagens HTTP subseqentes entre o mesmo cliente/servidor
so enviadas pela conexo

Persistente sem paralelismo (pipelining):

O cliente emite novas requisies apenas quando a resposta


anterior for recebida
Um RTT para cada objeto referenciado

Persistente com paralelismo:

Padro no HTTP/1.1
O cliente envia requisies assim que encontra um objeto
referenciado

- Tipos de mtodos
HTTP/1.0

GET: principal mtodo de requisio de documentos


HEAD: pede para o servidor deixar o objeto requisitado fora
da resposta
POST: usado para fornecer alguma informao ao servidor

HTTP/1.1

GET, POST, HEAD


PUT: envia o arquivo no corpo da entidade para o caminho
especificado no campo de URL
DELETE: apaga o arquivo especificado no campo de URL do
servidor

- Mensagem HTTP request


HTTP request message:
ASCII (formato legvel para humanos)

Linha de pedido
(comandos GET, POST,
HEAD )

GET /somedir/page.html HTTP/1.0

User-agent: Mozilla/4.0
Linhas de Accept: text/html, image/gif,image/jpeg
cabealho
Accept-language:fr
Carriage return,
(extra carriage return, line feed)
line feed
indica fim da mensagem

- Mensagem HTTP response


Linha de status
(protocolo
cdigo de status
frase de status)
Linhas de
cabealho

Dados, ex.:
arquivo html

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

- Cdigos de status de resposta


Na primeira linha da mensagem de resposta (servidor cliente)
Alguns exemplos de cdigos:
200 OK:
Requisio bem-sucedida, objeto requisitado a seguir nesta mensagem

301 Moved permanently:

Objeto requisitado foi movido, nova localizao no cabealho Location: da


mensagem de resposta. O software do clinete recuperar automaticamente o
novo URL.

400 Bad request


Cdigo genrico de erro: mensagem de requisio no compreendida pelo
servidor

404 Not Found

Documento requisitado no encontrado neste servidor

505 HTTP version not supported


A verso do protocolo HTTP requisita no suportada pelo servidor

- Correio eletrnico
Trs componentes principais:

Agentes de usurio
Servidores de correio
Simple mail transfer protocol:
SMTP

Agente de usurio

leitor de correio
Composio, edio, leitura de
mensagens de correio
Ex.: Eudora, Outlook, Netscape
Messenger
Mensagens de entrada e de
sada so armazenadas no
servidor

- Correio eletrnico
Servidores de correio

Caixa postal contm


mensagens que chegaram
(ainda no lidas) para o
usurio
Fila de mensagens contm as
mensagens de correio a
serem enviadas

Protocolo SMTP permite aos


servidores de correio
trocarem mensagens entre si

Cliente: servidor de correio


que envia
servidor: servidor de
correio que recebe

- Correio eletrnico
Usa TCP para transferncia confivel de mensagens de correio do
cliente ao servidor, porta 25

Transferncia direta: servidor que envia para o servidor que


recebe

Trs fases de transferncia

Interao comando/resposta

Handshaking (apresentao)
Transferncia de mensagens
Fechamento

Comandos: texto ASCII


Resposta: cdigo de status e frase

Mensagens devem ser formatadas em cdigo ASCII de 7 bits

- Cenrio: Alice envia e-mail


para Bob
1) Alice usa o agente de usurio (UA) para compor a mensagem e para
bob@someschool.edu
2) O agente de usurio dela envia a mensagem para o seu servidor de correio;
a mensagem colocada na fila de mensagens.
3) O lado cliente do SMTP abre uma conexo TCP com o servidor de correio do
Bob.
4) O cliente SMTP envia a mensagem de Alice pela conexo TCP.
5) O servidor de correio de Bob coloca a mensagem na caixa de correio de
Bob.
6) Bob invoca seu agente de usurio para ler a mensagem.

- DNS: Domain Name System


DNS: Domain Name System
RFC: 1034 e 1035
Porta: 53 (normalmente UDP)
Pessoas: muitos identificadores
RG, nome, passaporte
Nome x 128.11.25.41
P.: Como relacionar nomes com endereos IP?
Domain Name System:
Base de dados distribuda implementada numa hierarquia de
muitos servidores de nomes
Protocolo de camada de aplicao hospedeiro, roteadores se
comunicam com servidores de nomes para resolver nomes
(translao nome/endereo)
Nota: funo interna da Internet, implementada como protocolo da
camada de aplicao

- Base de dados distribuda e


hierrquica

Cliente quer o IP para www.amazon.com:


Cliente consulta um servidor de raiz 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 endereo IP para
www.amazon.com

- Servidores Raiz
So contatados pelos servidores de nomes locais que no podem resolver um nome
Servidores de nomes raiz:
Buscam servidores de nomes autorizados se o mapeamento do nome no for conhecido
Conseguem o mapeamento
Retornam o mapeamento para o servidor de nomes loca

Existem 13 servidores
de nomes raiz no
mundo

- Servidores TLD e autoritrios


Servidores top-level domain (TLD): responsveis pelos domnios com,
org, net, edu etc e todos os domnios top-level nacionais uk, fr, ca,
jp.

Network Solutions mantm servidores para o TLD com


Educause para o TLD edu

Servidores de nomes com autoridade: servidores DNS de organizaes,


provm nome de hospedeiro autorizado para mapeamentos IP para
servidores de organizaes (ex.: Web e mail).
Podem ser mantidos por uma organizao ou provedor de servios

- Servidores de nomes local


No pertence estritamente a uma hierarquia
Cada ISP (ISP residencial, companhia, universidade) possui
um
Tambm chamado de servidor de nomes default

Quando um hospedeiro 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

- Exemplo

O hospedeiro em
cis.poly.edu quer o
endereo IP para
gaia.cs.umass.edu

- Resolvendo nomes

Consulta recursiva:

Transfere a tarefa de resoluo do nome para o servidor de


nomes consultado

Consulta encadeada (iterativa):

Servidor contatado responde com o nome de outro servidor de


nomes para contato

- Resoluo recursiva
edu

2
5

fh.edu

1
6

Cliente

csu.edu

- Resoluo Iterativa
edu

eu no sei isto, mas


pergunte a este servidor

4
fh.edu

5
2

Cliente

csu.edu

- Exemplo
Resoluo recursiva
ou iterativa?

O hospedeiro em
cis.poly.edu quer o
endereo IP para
gaia.cs.umass.edu

- DNS: protocolo e mensagem


Protocolo DNS: mensagem de consulta e resposta , ambas com o
mesmo formato de mensagem

Cabealho da msg
Identificao: nmero de 16
bits para consulta, resposta
usa o mesmo nmero
Flags:

Consulta ou resposta
Recurso desejada
Recurso disponvel
Resposta autorizada

Camada de Transporte

- Protocolos e servios de
transporte
Fornecem comunicao lgica
entre processos de aplicao em
diferentes hospedeiros
Os protocolos de transporte so
executados nos sistemas finais
Lado emissor: quebra as
mensagens
da aplicao
em segmentos e envia
para a
camada de rede
Lado receptor: remonta os
segmentos em mensagens e
passa
para a camada de
aplicao
H mais de um protocolo de
transporte disponvel para as
aplicaes
Internet: TCP e UDP

- Camada de transporte vs
camada de rede
Camada de rede: comunicao lgica entre os hospedeiros
Camada de transporte: comunicao lgica entre os processos
Depende dos servios da camada de rede

Analogia com uma casa familiar:


12 crianas enviam cartas para 12 crianas
Processos = crianas
Mensagens da aplicao = cartas nos envelopes
Hospedeiros = casas
Protocolo de transporte = Anna e Bill
Protocolo da camada de rede = Servio Postal

- Protocolos da camada de
transporte da Internet
Confivel, garante ordem de
entrega: TCP
Controle de congestionamento
Controle de fluxo
Orientado conexo

No confivel, sem ordem de


entrega: UDP
Extenso do melhor esforo do IP

- Mecanismo de
endereamento
Aplicao

HTTP

DNS

SMTP

80

53

25

TCP / UDP

Transporte

TRANSPORTE VIRTUAL
e-mail

web

ftp

- Mecanismo de
endereamento
Nmero de porta
Nmero de porta destino: identifica o endereo de entrega
Nmero de porta origem: identifica o endereo de resposta
Discrimina entre os muitos processos que podem rodar
simultaneamente
Identificado por nmeros inteiros de 16-bits (0 a 65535)
IANA (Internet Assigned Number Authority)
Portas conhecidas ou permanentes: 0 a 1023
Portas registradas: 1024 a 49151
Portas dinmicas: 49152 a 65535
Alguns portas bem conhecidas RFC 1700
HTTP: porta 80
SMTP: porta 25

- Mecanismo de
endereamento
Identificado por nmeros inteiros de 16-bits (0 a 65535)
0

1023

1024

49.152

65.535

49.151

IANA (Internet Assigned Number Authority)


Portas conhecidas ou permanentes: 0 a 1023
As portas com nmeros bem conhecidos so atribudas e controladas pelo IANA e so as
portas pblicas conhecidas.
Portas registradas: 1024 a 49151
As portas registradas no so atribudas ou controladas pelo IANA e podem ser registradas
por empresas comerciais junto ao IANA para evitar duplicao.
Portas dinmicas: 49152 a 65535
As portas dinmicas ou temporrias no so controladas nem registradas e podem ser
utilizadas por qualquer processo.

- Exemplo de endereamento
SOCKET: portas pelas quais dados passam da rede para o processo e do processo para a rede (KUROSE, 2006).

Este
o pedido
Processo
Socket

Cliente

Porta Fonte
50.001

Porta Fonte
25

Porta destino
50.001

Porta destino
25

Servidor

- UDP checksum
Objetivo: detectar erros (ex.: bits trocados) no segmento
transmitido
Transmissor:
Trata o contedo do segmento como seqncia de inteiros de 16
bits
Checksum: soma (complemento de 1 da soma) do contedo do
segmento
Transmissor coloca o valor do checksum no campo de checksum do
UDP
Receptor:
Computa o checksum do segmento recebido
Verifica se o checksum calculado igual ao valor do campo
checksum:
NO - erro detectado
SIM - no h erros. Mas, talvez haja erros apesar disso?

- Soma de verificao UDP


RFC 1071
Suponha 3 palavras de 16 bits
0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0

(I)
(II)
(III)

A soma das duas primeiras palavras de 16 bits


+

0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0
0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

(I)
(II)

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1

(IV)

Adicionando a terceira palavra soma (IV), temos:


+

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1
1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0
1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1

(IV)
(III)
(V)

- Soma de verificao UDP


RFC 1071
Note que:
Ao se adicionar nmeros, um vai um do bit mais significativo deve
ser acrescentado ao resultado.

1 0 1 1 1 0 1 1 1 0 1 1 0 1 0 1
1 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0
wraparound

sum
checksum

(IV)
(III)

1 0 1 0 0 1 0 1 0 1 1 0 0 0 0 0 1
1
1
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1 0
1 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1

(V)

- Tabela hexa vs binrio


Hexadecimal

Binrio

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

- Exerccio
Qual a palavra a ser inserida no campo checksum, se o
segmento contm as seguintes palavras: 4465, 7477, 6F72, 6B73

Camada de Rede

- A camada de rede
- Transporta segmentos do
hospedeiro transmissor para o
receptor
- No lado transmissor encapsula os
segmentos em datagramas
- No lado receptor, entrega os
segmentos camada de
transporte
- Protocolos da camada de rede em
cada hospedeiro, roteador
- Roteador examina campos de
cabealho em todos os
datagramas IP que passam por
ele

- Funes-chave da camada
de rede

- Comutao: mover pacotes da entrada do roteador para a sada


apropriada do roteador
- Roteamento: determinar a rota a ser seguida pelos pacotes desde
a origem at o destino
- Algoritmos de roteamento

Analogia:
- Roteamento: processo de planejar a viagem da origem ao destino
- Comutao: processo de passar por um determinado caminho

- Funes-chave da camada
de rede
Entidade de rede em roteadores ou hospedeiros:
Camada de Transporte: TCP, UDP

Camada de
rede

protocolo de
roteamento
- Escolha de caminhos
- RIP, OSPF, BGP
Tabela
de rotas

protocolo IP
- Endereamento
- Formato dos datagramas
- Tratamento de pacotes
protocolo ICMP
- Aviso de erros
- Sinalizao de rotas

Camada de enlace
Camada fsica

- Funes-chave da camada
de rede
32 bits

verso do protocolo IP

tamanho do header
(bytes)
(Type of Service)
classe de servio

nmero mximo
de saltos
protocolo da camada
superior

ver head. TOS


len

length
fragment
16-bit identifier flgs
offset
TTL

protocol

Internet
checksum

32 bit endereo IP de origem


32 bit endereo IP de destino
Opes (se houver)
data
(tamanho varivel,
tipicamente um segmento
TCP ou UDP)

tamanho total
do datagrama
(bytes)
para
fragmentao/
remontagem
Fragment offset
(mltiplo de 8 bytes)

Soma de
verificao
do cabealho
Ex.: marca de
tempo,registro
de rota lista de
roteadores a
visitar.

- Endereamento IP
- Endereo IP: identificador de 32
bits para interfaces de
roteadores e hospedeiros
- Interface: conexo entre
roteador ou hospedeiro e
enlace fsico
- Roteador tem tipicamente
mltiplas interfaces
- Hospedeiros podem ter
mltiplas interfaces
- Endereos IP so associados
com interfaces, no com o
hospedeiro ou com o
roteador
223.1.1.1 = 11011111 00000001 00000001 00000001
Notao decimal separada por ponto

223

- Endereamento IP
Prefixo e sufixo
Cada endereo IP de 32 bits dividido em duas partes:
prefixo e sufixo.
- Prefixo: identifica a rede fsica (NetID)
- Sufixo: identifica o computador da rede (HostID)
Propriedades
- a cada computador atribudo um endereo nico
- o nmero de rede coordenado globalmente
- os sufixos poder ser atribudos localmente

- Endereamento IP
- conhecido como endereamento IP de classes (classfull IP Addressing)
- conveno utilizada nos protocolos TCP/IP
- Classe A
- Classe B

Classes primrias

- Classe C
- Classe D

Multicast

- Classe E

Reservado

Identificao de Classe
1
1o.
1o.bit?
bit?
0
Classe
ClasseAA

1
2o.
2o.bit?
bit?
0
Classe
ClasseBB

1
3o.
3o.bit?
bit?
0
Classe
ClasseCC

4o.
4o.bit?
bit?

11

0
Classe
ClasseDD

Classe
ClasseEE

- Endereamento IP
Classe A: 1.0.0.0 at 127.0.0.0 - Permite at 16.777.216 de computadores em
cada rede (mximo de 127 redes);
Classe B: 128.0.0.0 at 191.255.0.0 - Permite at 65.536 computadores em
uma rede (mximo de 16.384 redes);
Classe C: 192.0.0.0 at 223.255.255.254 - Permite at 256 computadores em
uma rede (mximo de 2.097.150 redes);
Classe D: 224.0.0.0 at 239.255.255.255 - multicast
Classe E: 240.0.0.0 at 255.255.255.255 multicast reservado

Vous aimerez peut-être aussi