Buscar

Aula 07-08-09 Redes de Computadores - Camada de 3

Prévia do material em texto

1
Redes de Computadores
Aula 7 e 8
Camada de Rede
Obionor Nóbrega
Internet Protocol
RFC 791
Fonte da RFC: www.ietf.org
Objetivo desta aula
� Conhecer o Protocolo IP
� Aprofundar o conhecimento do IP header
� Entender o endereçamento IP
� Fragmentação e remontagem
� Sub-rede (RFC 950)
� ARP (RFC 826)
Pilha dos Protocolos
Motivação
� Criado para interconectar 
computadores através de sistemas de 
redes comutadas por pacotes.
� Transmitindo datagramas de um host
origem até um host destino através de 
um endereço lógico de tamanho fixo.
� Permitindo fragmentação e 
remontagem
Operação
� O Internet Protocol implementa 
basicamente duas funções:
� Endereçamento
� Roteamento (interpretação do endereço 
Internet)
� Fragmentação 
� É necessário quando mudar o tamanho do 
pacote (para um menor) para chegar a um host 
destino.
2
Internetworking
� Redes são interligadas entre si de modo a 
criar internets:
� A interligação de redes levanta 
essencialmente 2 problemas:
� heterogeneidade;
� escala.
� O Internet Protocol (IP) foi concebido para 
resolver estes problemas em escala global
Internetworking com IP: 
exemplo
� Exemplo de uma internet:
Internetworking com IP: 
exemplo
� Pilha de protocolos usado na comunicação 
entre H1 e H8 :
� Todos os nós executam IP e têm um 
endereço IP único
Modelo de Serviço IP
� Baseado em datagramas (sem conexão)
� Não há conexão ou circuito lógico
� Serviço do tipo best-effort
� Perda/duplicação de pacotes
� Ordem dos pacotes não é preservada
� Atraso arbitrário
Modelo de Serviço IP
� A simplicidade do serviço IP é essencial para 
o seu sucesso:
� Todos os nós têm que implementar IP.
� Não há controle de erros de dados
� Apenas do cabeçalho
� Não há retransmissão ou controle de fluxo
� Erros detectados podem ser reportados via 
ICMP (RFC 792)
Cabeçalho IP
DF Do not Fragment (Não usa fragmentos)
MF More Fragments (mais de um fragmento)
0
0 4 8 16 31
3
Cabeçalho IP
Version (4bits): é o primeiro campo, permite que 
cada versão do protocolo use um formato diferente 
para o header. (ex: este header descreve o IPv4)
IHL
Cabeçalho IP
IHL (4bits): especifica o tamanho do header em 
palavras de 32-bits (tipicamente, o header tem 20 
bytes: sem opções – valor 5)
IHL
Cabeçalho IP
TOS (8bits): permite um serviço diferenciado no 
tratamento de um datagrama ao passar por uma 
rede. Utiliza parâmetros de atraso, velocidade e 
confiabilidade;
IHL
Cabeçalho IP
111- Network control
110 – Internetwork control
101 – CRITIC/ECP
100 – Flash Override
011 – Flash
010 – Immediate
001 – Priority
000 - Routine
0 1 2 3 4 5 6 7
Type of Service : 8 bits
� Bits 0-2 : Precedence (controle usado por gateways)
Cabeçalho IP
� Type of Service : 8 bits
� Bit 3: 
� 0 = Normal delay 1 = Low Delay
� Bit 4: 
� 0 = Normal throughput 1= High throughput 
� Bit 5:
� 0 = Normal relibility 1= High relibility
� Bit 6 – 7 : reserved
0 1 2 3 4 5 6 7
Cabeçalho IP
Length (16bits): é o comprimento do datagrama 
em bytes. No máximo um datagrama IP pode ter 
65535 bytes (incluindo o header). Valor impraticável 
na maioria dos hosts e redes ( padrão 576 bytes).
IHL
4
Cabeçalho IP
Length (16bits): 576 bytes = 512 bytes de dados 
+ 64 bytes de cabeçalho. (tamanho mínimo do 
cabeçalho é 20 bytes)
IHL
Cabeçalho IP
Identification (16bits): Usado para 
fragmentação e remontagem do datagrama
IHL
Cabeçalho IP
Flags (3 bits):Usado para controle de 
fragmentação
IHL
Cabeçalho IP
Flags
Bit 0: reservado, deve ter o valor 0
Bit 1: (DF) 0= May Fragment 1= Don´t Fragment
Bit 2: (MF) 0= Last Fragment 1= More Fragments
0 D
M
M
F
IHL
Cabeçalho IP
Offset (13bits): Usado para fragmentação. Indica 
ao receptor a posição do fragmento no datagrama 
original. O primeiro fragmento sempre recebe o 
valor 0. (medido em unidades de 8 bytes)
IHL
Cabeçalho IP
TTL (Time to live – 8bits): é usado para evitar que 
os datagramas circulem indefinidamente 
consumindo recursos. Este campo é modificado no 
processamento do cabeçalho.
IHL
5
Cabeçalho IP
Protocol (8bits): indica o protocolo da camada que 
enviou o datagrama. ex: UDP é 17 e TCP é 6
IHL
Cabeçalho IP
Checksum (16bits): é um checksum apenas para o 
cabeçalho, devido a mudança de campos no 
processamento do cabeçalho. (TTL)
IHL
Cabeçalho IP
SourceAddr (32bits) e DestinationAddr
(32bits): são os endereços IP da fonte e do destino 
do datagrama.
IHL
Cabeçalho IP
Options+pad (tamanho variável): Utilizado em 
situações de teste e detecção de erros. 
Define traceroute e timestamp..
IHL
Fragmentação: justificativa
� Cada rede especifica o comprimento 
máximo dos seus quadros (Maximum 
Transmission Unit - MTU):
� Ethernet especifica 1500 bytes;
� FDDI especifica 4500 bytes;
Fragmentação: justificativa
� Duas alternativas:
� Especificar o tamanho máximo de um datagrama 
IP igual ao mínimo dos MTUs das redes usadas 
por IP:
� Impossibilita o uso de IP com novas tecnologias.
� Evita a degradação do desempenho em redes que 
suportam MTUs maiores do que esse mínimo: cada 
datagrama representa um overhead.
� Suportar fragmentação de datagramas (e 
posterior reconstrução).
6
Fragmentação e Reconstrução 
de Datagramas
� Estratégia:
� Fragmentar só quando necessário (MTU < 
datagrama);
� Permitir “re-fragmentação”;
� Reconstrução é realizada apenas pelo 
destino;
� Não recuperar da perda de fragmentos.
Fragmentação e Reconstrução 
de Datagramas (cont.)
� Fragmentos são também datagramas IP.
� IP usa os seguintes campos para permitir 
fragmentação e reconstrução de datagramas:
� Ident identifica o datagrama a que o fragmento 
pertence (para não misturar com outros);
� Offset do fragmento em blocos de 8-bytes;
� Flags campo com 3 bits, incluindo don’t-
fragment e more-fragments;
� Fragmentação é considerado um mal 
necessário a evitar: Hosts são encorajados a 
realizar path MTU discovery.
Cabeçalho IP
� FLAGs
� Um datagrama pode ser marcado como 
“Don´t Fragment” , porém se não puder 
ser entregue (por não poder fragmentar), 
será descartado.
Fragmentação e 
Reconstrução: Exemplo
Exemplos
Datagrama de tamanho mínimo
Ver=4 IHL=5 Type of service Total length = 21
Identification = 111 Flg=0 Fragment Offset = 0
Time = 123 Protocol = 1 Header checksum
Source Address
Destination Address
DATA
Exemplos
Datagrama de tamanho 452 bytes de dados
Ver=4 IHL=5 Type of service Total length = 472
Identification = 111 Flg=0 Fragment Offset = 0
Time = 123 Protocol = 6 Header checksum
Source Address
Destination Address
DATA
...
DATA
7
Exemplos
Datagrama fragmentado (tamanho máximo 
permitido = 280 bytes –> 1º fragmento)
Ver=4 IHL=5 Type of service Total length = 276
Identification = 111 Flg=1 Fragment Offset = 0
Time = 119 Protocol = 6 Header checksum
Source Address
Destination Address
DATA
...
DATA
32bytes
Exemplos
Datagrama fragmentado (tamanho máximo 
permitido = 280 bytes –> 2º fragmento)
Ver=4 IHL=5 Type of service Total length = 216
Identification = 111 Flg=0 Fragment Offset = 32
Time = 119 Protocol = 6 Header checksum
Source Address
Destination Address
DATA
...
DATA
Endereçamento IP
� Endereços são usados para identificar os hosts 
numa rede.
� Classes
� Notação decimal ex: 192.34.50.36 (embora o cálculo 
seja me binário: 11000000.00100010.00110010.00100100
Classes de Endereçamento IP
Classes de Endereçamento IP Endereços especiais
� Reservados
� Endereços com todos os bits 0 (rede)
� Endereço com todos os bits 1 (broadcast)
� A rede 127 é reservada para teste de 
loopback (127.0.0.1 = próprio host)8
Endereçamento IP
� Perguntas (para cada classe):
� Qual o menor endereço IP possível ?
� E qual o maior?
Resumo
Classe da rede: A B C
Valores para o primeiro byte 1 a 126 128 a 191 192 a 223
Mascara de rede (HEX) FF.00.00.00 FF.FF.00.00 FF.FF.FF.00
Número de bits para rede 7 14 21
Primeira rede 1 128.1 192.0.1
Última rede 126 191.254 254.255.254
Número de redes possíveis 126 16382 2097150
Número de bits para host 24 16 8
Primeiro host de cada rede 0.0.1 0.1 1
Último host de cada rede 255.255.254 255.254 254
Número de hosts por rede 16777214 65534 254
Encaminhamento de 
datagrama
� Estratégia
� Cada pacote contém endereço do destino
� Se conectado diretamente à rede destino então 
encaminhar para host
� Se não conectado diretamente à rede destino 
então encaminhar para algum roteador
� Tabela de encaminhamento mapea número de 
rede no próximo nó
� Cada host tem um roteador default
� Cada roteador mantém uma tabela de 
encaminhamento
Tabela de Encaminhamento 
para o roteador R2
Número da rede
1
2
3
4
Próximo nó
R3
R1
interface 1
interface 0
Algoritmo de transmissão de um 
Pacote IP
1. Datagrama pronto para ser transmitido
2. Caso:
2.1 Endereço Destino == Endereço Transmissor
2.1.1 Entrega datagrama pela interface loopback (127.0.0.1)
2.2.2 Fim 
2.2 Endereço de rede do destino == endereço de rede local
2.2.1 Descobre o endereço físico do destino (ARP)
2.2.1 Transmite datagrama pela interface correta
2.2.2 Fim
2.3 Endereço de rede do destino != endereço de rede local
2.3.1 Verifica tabela de rotas
2.3.2 Descobre rota que se encaixa com a rede destino
2.3.3 Descobre o endereço físico do gateway (ARP)
2.3.4 Transmite o datagrama para o gateway
2.3.5 Fim
3. Fim
Algoritmo de recepção de um 
Pacote IP
1. Datagrama recebido da camada intra-rede, desfragmentado e testado
2. Caso:
2.1 Endereço Destino = Endereço do Host, ou E.D. = outras interfaces 
do Host, ou E.D. = Broadcast
2.1.1 Passa datagrama para níveis superiores -> FIM
2.2 Caso:
2.2.1 Máquina que recebeu não é roteador
2.2.1.1 Descarta datagrama -> FIM
9
Algoritmo de recepção de um 
Pacote IP
2.2.2 Máquina é roteador (possui mais de uma interface IP)
2.2.2 Caso:
2.2.2.1 Endereço IP destino = Rede IP com interface direta
2.2.2.1.1 Descobre o endereço físico do destino (ARP)
2.2.2.1.2 Transmite datagrama pela interface respectiva -> 
FIM
2.2.2.2 Caso Endereço de rede do destino!= endereço de rede 
local
2.2.2.2.1 Verifica tabela de rotas
2.2.2.2.2 Descobre o endereço físico do gateway (ARP)
2.2.2.2.3 Transmite o datagrama para o gateway -> FIM
3. Fim
Internet Standard Subnetting Procedure
RFC 950
Fonte da RFC: www.ietf.org
Baseado na RFC-917
Máscara de Sub-Rede
� Motivação:
� Quando há necessidade de segmentação 
da rede;
� Diferentes tecnologias
� Limites da tecnologia
� Congestionamento da rede
Máscara de Sub-Rede
� Motivação:
� Melhor adaptação à realidade das 
organizações
� Na prática verifica-se que três classes são 
insuficientes para todo o tipo de situações.
Sub-redes IP - Subnetting
� Sub-redes visíveis apenas dentro da rede
� Máscara de sub-rede (subnet mask): define 
partições variáveis da parte do host
� Adiciona outro nível à hierarquia de 
endereçamento/roteamento
111111111.1111111.11111111 00000000
Número de Rede Número do host Endereço Classe B
Máscara de Subrede
Número de Rede N. de Subrede ID do host Endereço com subrede
Máscara de Sub-Rede
� É formada por 32 bits.
� A máscara é usada fora de seu padrão, 
quando há necessidade de 
segmentação da rede;
Classe A 255.0.0.0
Classe B 255.255.0.0
Classe C 255.255.255.0
10
Algumas Sub-Redes de Classe 
C
Bits para 
sub-rede
2 3 4 5
Mascara de 
rede
FF.FF.FF.C0 FF.FF.FF.E0 FF.FF.FF.F0 FF.FF.FF.F8
Número de 
sub-redes
2 6 14 30
Hosts por 
sub-rede
62 30 14 6
Exemplos de Subredes
Máscara de subrede
255.255.255.128
255.255.255.128
255.255.255.0
Próximo nó
interface 0
interface 1
R2
Número de subrede
128.96.34.0
128.96.34.128
128.96.33.0
Exemplo de segmentação de 
rede
Address Resolution Protocol - ARP
RFC 826
Fonte da RFC: www.ietf.org
Motivação
� Redes baseadas no protocolo TCP/IP 
baseiam-se inteiramente em um 
endereço virtual IP;
� Estes endereços são totalmente 
independentes dos níveis inferiores;
� Alguns problemas...
Motivação
� Problemas:
� Para enviar um "datagrama" a uma dada 
máquina é necessário fornecer à camada 
LLC o respectivo endereço físico que não 
está disponível diretamente no endereço IP.
� Máquina na mesma rede
� ???
� Máquina em outra rede
� Entrega ao roteador padrão
11
Motivação
� Solução para máquinas na mesma rede:
� O protocolo ARP
� permite obter, sempre que necessário, o 
endereço físico de uma máquina mediante o 
conhecimento do seu endereço IP;
� protocolo ARP é responsável por fazer a 
conversão entre os endereços IPs e os 
endereços MAC da rede;
Funcionamento
� Quando uma máquina pretende enviar um 
"datagrama" IP a outra máquina cujo 
endereço IP conhece, usa o protocolo ARP 
para enviar em “broadcast” um pedido no 
qual consta o endereço IP de destino. 
Todas as máquinas escutam o pedido e 
aquela que possui o endereço IP indicado 
responde enviando o seu endereço físico.
Funcionamento do Protocolo 
ARP
Solução para 
congestionamento
� Para evitar o congestionamento na 
rede, o dispositivo transmissor tem 
cache de endereços IP recentemente 
acessados e seus respectivos MACs.
Solução para 
congestionamento
� Mapeamento podem mudar
� Entradas na cache sofre timeout
periodicamente e são removidas
� A cada 15 minutos
� Broadcast de consulta
� Todos aprendem seu MAC e “atualiza” a 
entrada na tabela ARP
� Zera 
� Senão for alvo e não tiver entradas para 
atualizar, não é inserido nenhuma informação
Implementação
� É implementado diretamente sobre o 
nível de ligação lógica (LLC) e a 
informação é colocada diretamente 
sobre “quadros". 
12
Formato do pacote ARP
Hardware type (16bits): especifica o tipo de rede 
física ( ex: Ethernet)
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
Protocol type (16bits): especifica o protocolo de 
nível mais alto ( ex: IP)
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
HLen (8bits): especifica o tamanho do endereço 
(de hardware) do nível de enlace.
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
HLen (8bits): especifica o tamanho do endereço 
(do “ protocolo”) do nível mais alto.
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
Operation (16bits): especifica é um pedido ou 
uma resposta (request/reply)Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
Source HardwareAddr (48bits): especifica é um 
endereço fonte de hardware
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
13
Formato do pacote ARP
Source ProtocolAddr (32bits): especifica é um 
endereço fonte IP
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
Target HardwareAddr (48bits): especifica é um 
endereço destino de hardware.
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Formato do pacote ARP
Target ProtocolAddr (32bits): especifica é um 
endereço destino IP
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Reverse Address Resolution Protocol -
RARP
RFC 903
Fonte da RFC: www.ietf.org
Função
� Faz praticamente o contrario do 
protocolo ARP.
� Requisita o endereço de IP. 
� Para se obter o endereço de IP da 
máquina, o protocolo RARP envia um 
broadcast solicitando-o. 
� Isso é muito usado pelos computadores que 
não tem HD
Formato do pacote RARP
O que diferencia é o valor do campo Operation 
(RARP Request e RARP Reply)
Hardware type = 1 Protocol Type = 0x0800
HLen=48 PLen = 32
Source HardwareAddr (bytes 0-3)
Target HardwareAddr (bytes 2-5)
TargetProtocolAddr (0-3)
Operation
Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1)
Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)

Outros materiais

Materiais relacionados

Perguntas relacionadas

Materiais recentes

Perguntas Recentes