Você está na página 1de 70

TCP/IP

OSI X TCP/IP

Aplicação | Apresentação | Sessão Aplicação

Transporte Transporte

Inter-rede
Rede

Interface de rede

Enlace
Física Intra-rede: hardware

© 2009 by Almir Silveira 11


Protocolos incorporados
DS, MHS T
Aplicação Shell ping
FTAM S e
DNS F H
M T N l
ISO T POP
Apresentação NCP T T F n
Presentation P
P P S e
t
Sessão ISO Session
Winsock socket TLI
ISO
Transporte Transport SPX TCP, UDP
C4

X.25
Rede IPX IP, ICMP
SNDCP

LLC LSL Binding A


Enlace R Unix PPP
IEEE 802.2
DD MLID DD NDIS P
X.25
IEEE 802.3
Ethernet Ethernet Ethernet
Físico IEEE 802.5 Serial

© 2009 by Almir Silveira 22


Divisão em camadas da arquitetura TCP/IP

© 2009 by Almir Silveira 33


Camada de Rede
A camada de rede é responsável pelo envio de datagramas construídos pela
camada Inter-Rede. Esta camada realiza também o mapeamento entre um
endereço de identificação de nível Inter-rede para um endereço físico ou lógico
do nível de Rede. A camada Inter-Rede é independente do nível de Rede.

Alguns protocolos existentes nesta camada são:

• Protocolos com estrutura de rede própria (X.25, Frame-Relay, ATM)


• Protocolos de Enlace OSI (PPP, Ethernet, Token-Ring, FDDI, HDLC, SLIP, …)
• Protocolos de Nível Físico (V.24, X.21)
• Protocolos de barramento de alta-velocidade (SCSI, HIPPI, …)
• Protocolos de mapeamento de endereços (ARP - Address Resolution Protocol) -
Este protocolo pode ser considerado também como parte da camada Inter-Rede.

© 2009 by Almir Silveira 44


Camada Inter-rede
 Esta camada realiza a comunicação entre máquinas vizinhas através do protocolo IP.

 Para identificar cada máquina e a própria rede onde estas estão situadas, é definido
um identificador, chamado endereço IP, que é independente de outras formas de
endereçamento que possam existir nos níveis inferiores. No caso de existir
endereçamento nos níveis inferiores é realizado um mapeamento para possibilitar a
conversão de um endereço IP em um endereço deste nível.

 Os protocolos existentes nesta camada são:

o Protocolo de transporte de dados: IP - Internet Protocol


o Protocolo de controle e erro: ICMP - Internet Control Message Protocol
o Protocolo de controle de grupo de endereços: IGMP - Internet Group Management
Protocol
o Protocolos de controle de informações de roteamento

© 2009 by Almir Silveira 55


Esquema de Roteamento

© 2009 by Almir Silveira 66


Camada de Transporte
 Esta camada reúne os protocolos que realizam as funções de transporte de dados fim-a-fim, ou
seja, considerando apenas a origem e o destino da comunicação, sem se preocupar com os
elementos intermediários. São dois os protocolos : O UDP (User Datagram Protocol) e TCP
(Transmission Control Protocol).

 O protocolo UDP realiza apenas a multiplexação para que várias aplicações possam acessar o
sistema de comunicação de forma coerente. O protocolo TCP realiza, além da multiplexação,
uma série de funções para tornar a comunicação entre origem e destino mais confiável. São
responsabilidades do protocolo TCP: o controle de fluxo, o controle de erro, a sequênciação e a
multiplexação de mensagens.

 É oferecido um conjunto de funções e procedimentos para acesso ao sistema de comunicação


de modo a permitir a criação e a utilização de aplicações de forma independente da
implementação. Desta forma, as interfaces socket ou TLI (ambiente Unix) e Winsock
(ambiente Windows) fornecem um conjunto de funções-padrão para permitir que as aplicações
possam ser desenvolvidas independentemente do sistema operacional no qual rodarão.

© 2009 by Almir Silveira 77


Diferenças em relação à arquitetura OSI x TCP/IP
 OSI trata todos os níveis, enquanto TCP/IP só trata a partir do nível de Rede OSI

 OSI tem opções de modelos incompatíveis. TCP/IP é sempre compatível entre as


várias implementações

 OSI oferece serviços orientados a conexão no nível de rede, o que necessita de


inteligência adicional em cada equipamento componente da estrutura de rede. Em
TCP/IP a função de roteamento é bem simples e não necessita de manutenção de
informações complexas

 TCP/IP tem função mínima (roteamento IP) nos nós intermediários (roteadores)

 Aplicações TCP/IP tratam os níveis superiores de forma monolítica, Desta forma OSI
é mais eficiente pois permite reaproveitar funções comuns a diversos tipos de
aplicações. Em TCP/IP, cada aplicação tem que implementar suas necessidades de
forma completa.
© 2009 by Almir Silveira 88
Diferenças em relação à arquitetura OSI x TCP/IP
Protocolos

 O Nível Inter-rede compreende principalmente os protocolos IP e ICMP e IGMP (Internet


Group Management Protocol). Os protocolos ARP e RARP são pertencentes na verdade aos
dois níveis, Inter-rede e Rede pois realizam funções com informações de ambos.

© 2009 by Almir Silveira 99


Camada de Aplicação
 A camada de aplicação reúne os protocolos que fornecem serviços de
comunicação ao sistema ou ao usuário. Pode-se separar os protocolos de
aplicação em protocolos de serviços básicos ou protocolos de serviços
para o usuário:

 Protocolos de serviços básicos, que fornecem serviços para atender as


próprias necessidades do sistema de comunicação TCP/IP: DNS, BOOTP,
DHCP

 Protocolos de serviços para o usuário: FTP, HTTP, Telnet, SMTP, POP3,


IMAP, TFTP, NFS, NIS, LPR, LPD, ICQ, RealAudio, Gopher, Archie,
Finger, SNMP e outros

© 2009 by Almir Silveira 1010


TCP/IP
 Nível de aplicação
• Aplicações que acessam serviços disponíveis através da Internet
TCP/IP
• Aplicações interagem com um protocolo do nível de transporte
para enviar/receber dados
• Aplicações escolhem o tipo de serviço de transporte requerido:
– Sequência de mensagens individuais
– Fluxo contínuo de bytes

 Nível de transporte
• Comunicação fim-a-fim entre aplicações
• Controle de fluxo

© 2009 by Almir Silveira 1111


TCP/IP
• Serviço confiável
– Controle de erro
– Controle de sequência
• Divisão de mensagens em segmentos
• Mecanismos de identificação de processos origem e destino

 Nível inter-rede
• Comunicação entre hosts
• Divisão de segmentos do nível de transporte em datagramas IP
• Mecanismo de identificação de hosts origem e destino
• Serviço não confiável
• Roteamento de datagramas IP

© 2009 by Almir Silveira 1212


TCP/IP
 Nível de interface de rede
• Aceita datagramas IP para transmissão sobre uma
rede específica

• Encapsulamento de datagramas IP em quadros da rede

• Geralmente implementado através de Device Drivers

• Permite a implantação de TCP/IP sobre qualquer


hardware de rede ou subsistema de comunicação

© 2009 by Almir Silveira 1313


TCP/IP
 Nível de Interface de Rede
 Tradução de endereços
• Conversão de endereços IP em endereços físicos

 Encapsulamento

• Transporte de datagramas IP em quadros da rede física

 Multi-Tecnologia

• Suporte a diversas tecnologias de redes


– Ethernet – Frame Relay
– Token Ring – ATM
– FDDI – Linhas Seriais
– X.25 1414
© 2009 by Almir Silveira
TCP/IP
 Nível Inter-Rede
 Características:

• Datagrama
– Unidade básica de transferência de dados
– Especifica o formato dos dados na rede

• Roteamento
– Escolha do caminho para enviar os dados

• Regras
– Processamento de datagramas
– Geração de mensagens de erro
– Condições de descarte de pacotes
© 2009 by Almir Silveira 1515
TCP/IP
 Composição

• IP (Internet Protocol)
– Serviço de entrega de datagramas

• ICMP (Internet Control Message Protocol)


– Serviço de informações de controle e erro

• IGMP (Internet Group Management Protocol)


– Serviço de entrega multiponto

© 2009 by Almir Silveira 1616


TCP/IP
 Internet Protocol - IP
 Serviço de entrega de datagramas
 Sem conexão
 Sem reconhecimento
 Sem garantia de entrega (não confiável)
• Datagramas podem ser perdidos, duplicados, retardados ou
entregues fora de ordem
 Independência entre datagramas
• Trafegam através de caminhos diferentes

© 2009 by Almir Silveira 1717


Campos IP

0 4 8 16 19 24 31
Vers Hlen Service Type Total Length

Identification Flags Fragment Offset


Time to Live Protocol Header Checksum
Source IP Address
Destination IP Addres
Options (if any) Padding
Data
...

© 2009 by Almir Silveira 1818


Campos IP
 Campos do Datagrama
• Vers
 Versão do IP (atualmente 4)
• Hlen
 Tamanho do cabeçalho do datagrama
 Unidade: 4 octetos
• Total Length
 Tamanho do datagrama
 Unidade: 1 octeto
 Máximo: 64K octetos
• Service Type
 Define a qualidade de serviço desejada Informa como o pacote deve ser tratado, de
acordo com sua prioridade e o tipo de serviço desejado como Baixo Retardo, Alta
Capacidade de Banda ou Alta Confiabilidade. Normalmente este campo não é utilizado na
Internet.
© 2009 by Almir Silveira 1919
Campos IP
• Identification
– Identificador do datagrama
– Único para cada datagrama
– Auxilia o algoritmo de roteamento

• Time to Live
– Tempo de vida máximo do datagrama
– Decremento a cada roteador intermediário
» Descarta datagrama e gera mensagem de erro quando TTL atingir 0

• Protocol
– Especifica o protocolo de nível superior

• Header Checksum
© 2009 by Almir Silveira 2020
Campos IP
• Source IP Address
– Endereço IP do sistema origem
• Destination IP Address
– Endereço IP do sistema destino
• IP Options / Padding
– Teste e debugging (opcional)
• Data
– Transporta dados do datagrama
 Encapsulamento do Datagrama
• Idealmente um datagrama preenche um quadro físico
• MTU (Maximum Transfer Unit)
– Aplicado a cada nível de enlace de dados

© 2009 by Almir Silveira 2121


Campos IP
 Fragmentação

• Mecanismo de divisão do datagrama original em pequenos


fragmentos
– Ocorre sempre que o datagrama atravessar uma rede que
possui largura de banda menor que o tamanho do datagrama

Header (20) 600 600 200

Datagrama
Header (20) 600 Fragmento 1 (Offset 0)
Header (20) 600 Fragmento 2 (Offset 600)
Header (20) 200 Fragmento 3 (Offset 1200)
© 2009 by Almir Silveira 2222
Fragmentação

© 2009 by Almir Silveira 2323


Fragmentação
A figura abaixo mostra a fragmentação de um pacote, quando este passa para uma
rede com MTU menor que o tamanho do pacote IP

© 2009 by Almir Silveira 2424


Campos IP
 Controle da Fragmentação
• Identification
– Copiado do datagrama inicial
• Fragment Offset
• Posição do fragmento no datagrama original
– Unidade: 8 octetos
• Total Length
– Tamanho do fragmento
 Processamento de Datagramas
• Gateway
– Recebe datagrama
» Se memória insuficiente, descarta datagrama
– Calcula checksum
» Se diferente, descarta datagrama
© 2009 by Almir Silveira 2525
Campos IP

– Decrementa o TTL
» Se zero, descarta datagrama
e gera mensagem de erro
– Aplica algoritmo de
roteamento
» Fragmentação pode ser
necessária
» Trata os campos Service Type e
IP Options
o Options IP
– O formato das opções é descrita no
quadro abaixo:

© 2009 by Almir Silveira 2626


Campos IP - Options

 As opções IP são utilizadas basicamente como forma de verificação e monitoração de uma


rede IP.
 As opções que especificam a rota até o destino não são utilizadas normalmente pois o IP é
baseado na técnica de Next-Hop routing. Ainda assim, estes mecanismos são pouco
utilizados como ferramenta de testes e verificação, sendo raros os programas que os
implementam.
© 2009 by Almir Silveira 2727
Campos IP
Destino

Recebe datagrama
Se memória insuficiente, descarta datagrama

Calcula checksum
Se diferente, descarta datagrama

Se fragmento de datagrama
Inicializa Temporizador
Remonta datagrama original
Entrega datagrama ao protocolo indicado no campo protocol

© 2009 by Almir Silveira 2828


TCP/IP
 Nível de Transporte
 Características
o Portas:
– Identificam os processos origem e destino

– Viabilizam a comunicação fim-a-fim

– Sistema operacional oferece interface que permite as aplicações


especificarem ou acessarem portas

– Permite as diversas aplicações especificarem ou acessarem portas

© 2009 by Almir Silveira 2929


TCP/IP
– Permite as diversas aplicações (processos) em um determinado host enviarem e
receberem datagramas de forma independente
– Geralmente utilizam buffers de recepção e transmissão

Porta 1 Porta 2 Porta n

Nível de Transporte

Internet Protocol

© 2009 by Almir Silveira 3030


Protocolo da Camada de Transporte

Aplicação
 Protocolos
TCP – Transmission o UDP
Control Protocol – Serviço sem conexão
Transporte
UDP – User – Não confiável
– Detecção de erro
Datagram Protocol
Internet » Sem controle de
sequência
Interface de o TCP
Rede – Serviço orientado a conexão
– Confiável
– Detecção e correção de
erros
– Sequenciamento

© 2009 by Almir Silveira 3131


TCP/IP
 UDP
 Quando utilizar o UDP?
o Pequena quantidade de dados a transmitir
o Aplicações tipo query/response
o Aplicações que implementam mecanismo de entrega confiável
 Encapsulamento

Segmento UDP Header Data

Datagrama Header Data


Quadro
Header Data

© 2009 by Almir Silveira 3232


TCP/IP
 Formato do Datagrama:
o Checksum
Source Port Destination Port o VeDados drificação de erros sobre
o datagrama (opcional)
Length Checksum
o Data
Data o os usuário
...
 Campos do Datagrama:
o Source/Destination Port
o Portas usadas pelos processos
o Source Port é opcional
o Length
o Tamanho do datagrama

© 2009 by Almir Silveira 3333


Encaminhamento
 Cada computador que necessita de fazer encaminhamento, tem que possuir tabelas de
encaminhamento ou routing

 As tabelas de encaminhamento relacionam endereços de rede IP destino com


interfaces ou endereços IP de routers

 Quando se faz encaminhamento, só entra em jogo a parte do endereço IP que diz


respeito à rede, não o endereço completo

 O encaminhamento difere de acordo com as tabelas de encaminhamento. Assim,


existem três tipos de encaminhamento:
o Encaminhamento Direto
o Encaminhamento Indireto
o Encaminhamento por Defeito
© 2009 by Almir Silveira 3434
Formas de encaminhamento
 Encaminhamento Direto :
- Ocorre quando tanto o endereço IP do host como o endereço IP destino,
estão na mesma rede física. Por isso, os pacotes IP vão diretamente da
origem ao destino pois o router ou host tem uma interface nessa rede

 Encaminhamento Indireto

- Ocorre quando tanto o endereço IP origem como o destino, não se


encontram na mesma rede física. A única forma de encaminhar os
pacotes é entregá-los a um ou mais routers. O endereço IP do primeiro
router ( next hop ) deve pois ser conhecido.

 Encaminhamento por defeito :

- Ocorre quando na tabela de routing não existe nenhuma informação


sobre encaminhamento direto ou indireto e um caminho por defeito é
conhecido.

© 2009 by Almir Silveira 3535


Endereço IP dentro do cabeçaho IP

 O endereço IP é representado por um número binário de 32 bits

 Cada dígito binário pode ser representado por 0 ou representa um bit 1

 O Valor de um octeto é 255 ( maior número binário de 8 bits é 11111111,


e esses bits representam 1, 2, 4, 8, 16, 32, 64 e 128, totalizando 255)

 American Registry for Internet Numbers (ARIN)

© 2009 by Almir Silveira 3636


Classes
 Classe A - Para grandes redes, que possuem muitos hosts. Poderiam existir na
Internet até 126 redes com 16,777.214 hosts cada uma. Os endereços da rede vão
desde 1.x.y.z até 126.x.y.z, ou seja, reservam 3 octetos (24 bits) para identificar o
equipamento dentro da rede. Reservado 10.0.0.0 – 10.255.255.255

 Classe B - Para redes de tamanho médio a grande. Poderiam existir até 16.384 redes
com 65.534 hosts cada uma. O primeiro octeto do endereço vai de 128 até 191, mas
são utilizados 2 octetos para identificar a rede, sobrando apenas 16 bits para a
identificação do equipamento. Um exemplo de rede Classe B: 129.96.y.z, que poderia
conter, por exemplo, os equipamentos 129.96.132.44 e 129.96.122.212. Reservado
172.16.0.0 – 172.16.31.255

 Classe C - Para pequenas redes, que possuam poucos hosts. Poderiam existir até
2.097.152 redes com 254 hosts cada uma. Os primeiro octeto do endereço vai de 192
até 223. São utilizados 3 octetos para a identificação da rede, sobrando apenas 8
bits para a identificação do host. Reservado 192.168.0.0 – 192.168.255.255

© 2009 by Almir Silveira 3737


Classes de Redes
Classes 7 24

A 0

14 16
B 1 0

21 8
C 1 1 0

D 1 1 1 0

E 11 1 1

Rede Computador Multicast Reservado


© 2009 by Almir Silveira 3838
Subnet Equação Genérica

Equação Genérica
Para Subrede e número de máquinas na rede

2n – 2,
onde “n” é o número de bits para subrede ou o
número de bits na de máquina

© 2009 by Almir Silveira 3939


TCP/IP

© 2009 by Almir Silveira 4040


Exemplo de endereço classe B
Número de 6
Subredes
128 64 32 16 8 4 2 1
(3 Bits)
0 0 0 0 0 1 1 0
Valor Binário representam
o número 6

Convertend 4+2 =6
o para
Decimal 11111111 . 11111111 . 11100000 . 00000000

Mascará 255 . 255 . 224 . 0

1 x 27 + 1 x 26 + 1 x 25 + 0 x 24 + 0 x 23 + 0 x 22 + 0 x 21 + 0 x 20 = 224

© 2009 by Almir Silveira 4141


Para que serve a Mascara ?
A máscara de rede serve para quebrar um endereço IP em um
endereço de rede e um endereço de host.

Todos os computadores em uma mesma rede local (fisicamente


falando, por exemplo, um mesmo barramento Ethernet) devem
ter o mesmo endereço de rede, e cada um deve ter um
endereço de host diferente.

Tomando-se o endereço IP como um todo, cada computador em


uma rede TCP/IP (inclusive em toda a Internet) possui um
endereço IP único e exclusivo.

© 2009 by Almir Silveira 4242


Tabelas de Conversão – Classe A

Número de Número de bits Máscara Número de hosts


subredes requeridos por subrede

0 1 Invalido Invalido

2 2 255.192.0.0 4194302

6 3 255.224.0.0 2097150

14 4 255.240.0.0 1048574

30 5 255.248.0.0 524286

62 6 255.252.0.0 262142

126 7 255.254.0.0 131070

254 8 255.255.0.0 65534

© 2009 by Almir Silveira 4343


Tabelas de Conversão – Classe B

Número de Número de bits Máscara Número de hosts


subredes requeridos por subrede

0 1 Invalido Invalido

2 2 255.255.192.0 16382

6 3 255.255.224.0 8190

14 4 255.255.240.0 4094

30 5 255.255.248.0 2046

62 6 255.255.252.0 1022

126 7 255.255.254.0 510

254 8 255.255.255.0 254

© 2009 by Almir Silveira 4444


Tabelas de Conversão – Classe C

Número de Número de bits Máscara Número de


subredes requeridos hosts por
subrede

Invalido 1 Inválido Invalido

1-2 2 255.255.255.192 62

3-6 3 255.255.255.224 30

7-14 4 255.255.255.240 14

15-30 5 255.255.255.248 6

31-62 6 255.255.255.252 2

inválido 7 inválido inválido

Inválido 8 inválido inválido


© 2009 by Almir Silveira 4545
TCP/IP

© 2009 by Almir Silveira 4646


TCP/IP

© 2009 by Almir Silveira 4747


TCP/IP

© 2009 by Almir Silveira 4848


Tabelas de encaminhamento
Acessível num computador através dos comandos:
netstat -r ou route por exemplo

Endereço destino Máscara Next hop

34.1.0.0 255.255.0.0 ou /16 54.34.23.12


38.3.0.0 255.255.0.0 ou /16 54.34.23.12
192.182.1.0 255.255.255.0 ou /24 54.34.12.65

54.34.23.0 255.255.255.0 ou /24 directo (e.g. Eth0)


54.34.12.0 255.255.255.0 ou /24 directo (e.g. Eth1)

0.0.0.0 0.0.0.0 ou /0 54.34.12.65

© 2009 by Almir Silveira 4949


Tratamento do pacote
O pacote
é para
mim ?
sim Host local
fico
Não com o
O pacote
é para um prefixo pacote
de rede local?
sim
re-envio Host
Não usando
Tenho ARP
Directamente
algum acessível
encaminhamento
específico ? sim
Envio Host
Não para o remoto
router
Tenho um
encaminhamento sim
por defeito ? Envio Host
Não para o
router
remoto
Não encaminho

© 2009 by Almir Silveira 5050


Rede exemplo
routing table in A
Dest. Net. next router Nhops
223.1.1 eth0 1
223.1.2 223.1.1.4 2
Datagrama IP: 223.1.3 223.1.1.4 2
misc source dest
fields IP addr IP addr data
A 223.1.1.1

223.1.2.1
223.1.1.2
223.1.1.4 223.1.2.9
B
223.1.2.2
223.1.1.3 223.1.3.27 E

223.1.3.1 223.1.3.2

© 2009 by Almir Silveira 5151


Encaminhamento directo
Dest. Net. next router Nhops
misc
fields 223.1.1.1 223.1.1.3 data 223.1.1 eth0 1
223.1.2 223.1.1.4 2
Datagrama com origem em A 223.1.3 223.1.1.4 2
e destinado a B:
A 223.1.1.1
• Extrair o endereço de
rede: 223.1.1 223.1.1.2
223.1.2.1

• B está na mesma rede 223.1.1.4 223.1.2.9


B
• O nível data-link envia 223.1.2.2
223.1.1.3 223.1.3.27 E
diretamente o datagrama
de A para B 223.1.3.1 223.1.3.2

© 2009 by Almir Silveira 5252


Encaminhamento indirecto
misc
fields 223.1.1.1 223.1.2.2 data Dest. Net. next router Nhops
Datagrama com origem em A e 223.1.1 eth0 1
destinado a E: 223.1.2 223.1.1.4 2
• Extrair endereço de rede – 223.1.3 223.1.1.4 2
223.1.2
• Está na outra rede - indireto A 223.1.1.1
• A tabela de routing diz para
enviar via 223.1.1.4 223.1.2.1
223.1.1.2
• O nível data-link sabe enviar
223.1.1.4 223.1.2.9
para esse endereço visto que o
B
mesmo está na mesma rede de A 223.1.2.2
• O datagrama chega ao router e o 223.1.1.3 223.1.3.27 E
processo continua
223.1.3.1 223.1.3.2

© 2009 by Almir Silveira 5353


Continuação
misc
Dest. next
fields 223.1.1.1 223.1.2.3 data
network router Nhops interface
223.1.1 eth0 1 223.1.1.4
O datagrama chegou a 223.1.1.4 223.1.2 eth1 1 223.1.2.9
com destino a 223.1.2.3 223.1.3 eth2 1 223.1.3.27
• Extrair o endereço de rede
• Está numa rede diretamente A 223.1.1.1
acessível via a interface
223.1.2.1
223.1.2.9 223.1.1.2
• O nível data-link dessa 223.1.1.4 223.1.2.9
interface sabe como enviar B
223.1.2.2
diretamente para o destino: 223.1.1.3 223.1.3.27 E
223.1.2.9
• O datagrama chega ao destino 223.1.3.1 223.1.3.2

- 223.1.2.2

© 2009 by Almir Silveira 5454


Como fazer “Bootstrap” a um End Host - DHCP and
ARP

 Que servidor DNS local usar?


 Qual o meu endereço IP?
 Como enviar pacotes para destinos remotos?
 Como assegurar que os pacotes remotos me chegam ?

??? 1.2.3.7 1.2.3.156


host ... DNS host ... DNS
host host

1.2.3.0/24 5.6.7.0/24
1.2.3.19
router router router

© 2009 by Almir Silveira 5555


Tem de se evitar a configuração manual

 Dynamic Host Configuration Protocol (DHCP)


 Os hosts aprendem como enviar pacotes para outros hosts remotos
 Isto é, adquirem o IP address, DNS servers, e router por defeito
 Address Resolution Protocol (ARP)
 Os outros hosts passam a saber como enviar pacotes para mim
 Isto é, passamos a ter uma relação entre endereços IP e endereços
aas placas

??? 1.2.3.7 1.2.3.156


host ... DNS host ... DNS
host host

1.2.3.0/24 5.6.7.0/24
1.2.3.19
router router router

© 2009 by Almir Silveira 5656


Ideias Base de Ambos os Protocolos
 Broadcasting: quando tiver dúvidas pergunte alto!
 Envie um Broadcast para todos os hosts da rede local
 … mas só quando não sabe já o que pretende

 Caching: guarde o que aprendeu por algum tempo


 Guarde o que aprendeu para não repetir o processo
 Lembre-se do seu endereço e do dos outros hosts

 Soft state: … mas mais tarde ou mais cedo esqueça-se do passado


 Associe um time-to-live (TTL) à informação
 … e refresque ou suprima a informação
 Isto é fundamental para se adaptar a modificações inesperadas

© 2009 by Almir Silveira 5757


Precisamos de outro tipo de endereços
 As LANs foram desenhadas para protocolos arbitrários
 Não só para IP e a Internet

 Usar endereços IP exigiria reconfigurações constantes


 Usar endereços IP exigiria reconfigurações sempre que a placa mudasse de
computador ou este arrancasse de novo

 Broadcasting constante para todas as placas é “caro”


 Pois exigiria que cada host analisasse cada pacote

Assim temos os chamados

Medium Access Control (MAC) addresses


© 2009 by Almir Silveira 5858
MAC Address vs. IP Address
 Endereços MA — MAC addresses
 Gravados numa memória quando a placa é construída
 Como um número de bilhete de identidade
 Espaço de nomes horizontal (flat name space) 48 bits (e.g., 00-0E-9B-6E-49-76)
 Portáteis pois podem ficar com o host mesmo que este se mude
 Usados para enviar pacotes na mesma rede local

 Endereços IP — IP addresses
 Configurados ou aprendidos dinamicamente
 Como o endereço postal
 Espaço hierárquico de nomes de 32 bits (e.g., 12.178.66.9)
 Não é portátil pois depende do local onde o host está
 Usado para encaminhamento na rede IP
© 2009 by Almir Silveira 5959
MAC Addresses numa LAN

1A-2F-BB-76-09-AD

LAN
= adapter

71-65-F7-2B-08-53
58-23-D7-FA-20-B0

0C-C4-11-6F-E3-98

© 2009 by Almir Silveira 6060


Como se enviam pacotes por um link?
1.2.3.53 1.2.3.156
host ... Web
host
IP packet
1.2.3.53
1.2.3.156
router

 As placas Ethernet só conhecem endereços MAC


É necessário traduzir o endereço IP de destino num
endereço MAC
 E encapsular o pacote IP num link-level frame

© 2009 by Almir Silveira 6161


Address Resolution Protocol (ARP) Table
 Cada nó tem uma tabela ARP
 Com pares (IP address, MAC address)

 E consulta a tabela antes de enviar um pacote


 Se encontrar o endereço MAC correspondente ao endereço IP de destino
 Encapsula o pacote IP num frame e envia-o

 Mas, se o endereço IP não está na tabela ?


 O emissor envia um broadcast: “Who has IP address 1.2.3.156?”
 O receptor responde: “MAC address 58-23-D7-FA-20-B0”
 O emissor coloca esses dados na tabela ARP
 E procede como acima

 Tudo se passa automaticamente

© 2009 by Almir Silveira 6262


Protocolo ARP
Numa rede com suporte de broadcast, uma única interface dá acesso a todos os hosts da
mesma rede. Para determinar o endereço físico do host de destino o software da interface
ao nível data-link usa o protocolo ARP (Address Resolution Protocol) que é suportado
diretamente através de frames especiais (por exemplo nas redes ethernet)

A B

Quem tem o
endereço IP B ?

Eu tenho o endereçoIP B

Existe um protocolo simétrico (RARP - reverse address resolution protocol) que permite a
um host determinar o seu endereço IP (na inicialização), a partir do seu endereço ethernet
– hoje em dia foi substituído pelo DHCP.

© 2009 by Almir Silveira 6363


ICMP - Internet Control Message Protocol

• Utilizado para transmitir


IP header
informação do nível rede
Type Code Checksum ICMP header
• erros: unreachable host,
network, port, protocol, ...
data • echo request/reply
ICMP data (utilizado pelo ping)
data
• ICMP message: tipo, código e
os primeiros 8 bytes do
datagrama IP que provocou o
envio do ICMP

© 2009 by Almir Silveira 6464


ICMP
 O protocolo ICMP é um protocolo auxiliar ao IP, que carrega informações de controle e diagnóstico, informando
falhas como TTL do pacote IP expirou, erros de fragmentação, roteadores intermediários congestionados e outros.

 Uma mensagem ICMP é encapsulada no protocolo IP, conforme ilustrado na figura abaixo. Apesar de
encapsulado dentro do pacote IP, o protocolo ICMP não é considerado um protocolo de nível mais alto.

 A mensagem ICMP é sempre destinada ao host origem da mensagem, não existindo nenhum mecanismo para
informar erros aos roteadores no caminho ou ao host destino.

 As mensagens ICMP possuem um identificar principal de tipo (TYPE) e um identificador de sub-tipo (CODE),
conforme pode ser visto no formato de mensagem ilustrado abaixo

© 2009 by Almir Silveira 6565


Exemplos de mensagens ICMP
Type Code description
0 0 echo reply (ping)
3 0 dest. network unreachable
3 1 dest host unreachable
3 2 dest protocol unreachable
3 3 dest port unreachable
3 6 dest network unknown
3 7 dest host unknown
4 0 source quench (congestion
control - not used)
8 0 echo request (ping)
9 0 route advertisement
10 0 router discovery
11 0 TTL expired
12 0 bad IP header

© 2009 by Almir Silveira 6666


Traceroute e ICMP
• A fonte envia uma sequência de • Quando a mensagem ICMP chega à
segmentos UDP para o destino: origem pode-se calcular o RTT
– Primeiro com TTL =1
• Em cada passo enviam-se 3 segmentos
– Segundo com TTL=2, etc. Terminação

• O segmento UDP chega ao destino


– Número de porta arbitrário
• O destino envia uma mesnagem ICMP
• Quando o enésimo segmento chega ao “host unreachable” (type 3, code 3)
enésimo router:
– O router suprime o segmento
• O número máximo de testes é
alcançado.
– E envia para a origem uma
mensagem ICMP (type 11, code 0)

– As mensagens têm por endereço


© 2009 by Almir Silveira 6767
NAT: Network Address Translation

Internet local network


endereços (e.g., home network)
10.0.0/24 10.0.0.1
públicos

10.0.0.4
10.0.0.2
138.76.29.7

10.0.0.3

Todos os datagramas que saem da Os datagramas com origem


rede local têm o mesmo endereço ou destino nesta rede têm o
público: 138.76.29.7, endereço 10.0.0/24
mas diferentes números de porta Estes endereços dizem-se
privados

© 2009 by Almir Silveira 6868


Continuação
 Motivação: toda a rede interna só usa um único endereço público
 Assim, o número de endereços afetado pelo ISP é menor
 A configuração e a alteração da rede interna (privada) não é visível do exterior
 Pode-se mudar de ISP sem modificar a configuração da rede interna
 A rede interna não é visível no exterior o que constituí uma barreira de segurança
suplementar

 Mas criam-se dificuldades suplementares a certas aplicações e não é fácil fornecer


serviços na Internet pública

© 2009 by Almir Silveira 6969


© 2009 by Almir Silveira 7070

Você também pode gostar