Arquitetura e Protocolos de
Redes de Computadores
Prof. Rafael Paoliello Guimarães, PhD
[email protected]
Nossa Agenda
• Arquitetura de redes locais e de longa distância
– Modelo OSI
– Modelo TCP/IP
• Conceitos sobre as camadas física e de enlace
– Cabos e Modulações
– Ethernet
• TCP/IP
– Como utilizar para interligação de redes
heterogêneas
– Os componentes da arquitetura TCP/IP (IP, ARP,
RARP, ICMP, TCP e UDP)
– As ferramentas TCP/IP
As redes de computadores
• Classificação
–
–
–
–
LAN (Local Area Network)
MAN (Metropolitan Area Network)
WAN (Wide Area Network)
PAN (Personal Area Network)
TCP/IP
TCP/IP
LAN
TCP/IP
TCP/IP
TCP/IP
WAN
TCP/IP
LAN
LAN
TCP/IP
TCP/IP
TCP/IP
LAN
Redes de computadores
• Estruturação do projeto de uma rede em
camadas hierárquicas
– Modelo OSI (Open Systems Interconnection)
Aplicações que utilizam a rede OSI
Aplicação
Transformação nos dados: criptografia, compressão, etc
Apresentação
Controle das sessões de comunicação
Sessão
Isola camadas superiores da parte de transmissão.
Controles de comunicação fim-a-fim
Transporte
Cuida basicamente de endereçamento das
estações e roteamento dos dados
Rede
Enlace
Transforma canal não-confiável em confiável.
Detecção/Correção de erros, controle de fluxo, etc
Física
Resolver problemas de representação de 0 e 1.
Adaptação software-hardware
Redes de computadores
• Estruturação do projeto de uma rede em
camadas hierárquicas
– Modelo OSI (Open Cabeçalho
Systems
Interconnection)
(Header)
Usuário A
Usuário B
Aplicação
Aplicação
Apresentação
Apresentação
Sessão
Sessão
Transporte
Transporte
Rede
Rede
Enlace
Enlace
Física
Física
Modelo TCP/IP
• Simplificação do modelo OSI
– Camadas de sessão e apresentação
desaparecem
• Funcionalidades devem ser implementadas pelas
aplicações
Aplicação
Aplicação
– Apresentação
Enlace e Físico se juntam
na camada intra-rede
Sessão
Transporte
Rede
Transporte
Inter-rede
Interface de rede
Enlace
Intra-rede
Física
MODELO
OSI
MODELO
TCP/IP
A camada física
• Técnicas de codificação do sinal
– NRZ (Non-Return to Zero), Manchester
• Multiplexação do sinal
–
–
–
–
TDM (Time Division Multiplexing)
FDM (Frequency Division Multiplexing)
CDM (Code Division Multiplexing)
SDM (Space Division Multiplexing)
Camada Física
• Cabos e conectores
–
–
–
–
Par trançado
Coaxial
Fibra ótica (monomodo, multimodo)
Meio aéreo (wireless)
Camada de Enlace
• Delimitação de Quadros
– Camada de Enlace recebe seqüência de bits. Onde
começa e onde termina cada quadro?
• Controle de Erros
– Bits transmitidos podem conter erros devido a
interferência durante a transmissão. Como detectar e/ou
corrigir esses erros?
• Controle de Fluxo
– Como garantir que o transmissor não enviará dados em
uma velocidade maior do que o receptor é capaz de
processá-los
• Controle de Acesso
– Se vários quiserem utilizar o meio, como ordenar a
utilização?
Delimitação de Quadros
• Contagem de caracteres
– Campo no cabeçalho informa número de caracteres no
quadro
• Caracteres delimitadores e transparência
– Caracteres especiais indicam ínicio e fim do quadro
– Se caracter especial fizer parte dos dados, se insere
(stuff) um caracter especial antes dele
• Seqüência de bits (flags) e transparência de bits
– HDLC: 01111110 como delimitador
– Encontra 5 bits 1 consecutivos nos dados, insere bit 0
• Violação de códigos do nível físico
– Manchester: Sem transição poderia ser utilizado para
delimitar quadros
Controle de Erros
• Reconhecimento positivo (ACK) e temporizador
(timeout): Satisfatório
• Transmissão -> Erro -> timeout -> Retransmissão -> ACK
• Transmissão e retransmissão com mesmo número de seq
• Introdução de FCS (Frame Sequence Check) ao final do
quadro
– Bit de paridade (controle fraco)
– CRC (controle forte)
• Cyclic Redundancy Check
• Seqüência de bits visto como polinômio
• 101001 -> x5 + x3 + 1
– Códigos de correção de erros (Hamming)
CRC
• Baseado na divisão de polinômios
– Divisor deve ser conhecido por ambas as partes
• CRC-16 = x16 + x15 + x2 + 1
• CRC-CCITT = x16 + x12 + x5 + 1
• CRC-32 = x32 + x26 + x23 + x22 + x16 + x12 + x11 +
x10 + x8 + x7 + x5 + x4 + x2 + x + 1
– Aritmética Módulo-2: soma é um XOR
–T=M+R
• T é a mensagem a ser transmitida (n+k bits)
• M são os dados (k bits)
• R é o CRC (n bits)
– P é o divisor (n+1) bits
Exemplo CRC
• M = 1010001101
(10 bits)
• P = 110101
(6 bits)
101000110100000 | 110101
110101
111011
O transmissor insere 5 bits 0 (tamanho do CRC)
110101
ao final da mensagem e divide pelo polinômio
111010
110101
O transmissor transmite a mensagem seguida
do CRC
111110
110101
O receptor, divide tudo pelo polinômio e, se não
101100
houve erros, o resto deve ser zero
110101
110010
110101
01110  CRC
Controle de erros
• Técnicas de retransmissão
– Bit alternado (stop and wait)
• TX  ACK  TX  ACK  TX  ACK  …
– Janela N com retransmissão integral (Go-back-N)
• Um ACK a cada N quadros, confirma a recepção
de todos os anteriores
• Caso não receba um ACK do quadro i, retransmite
tudo a partir de i
– Janela N com retransmissão seletiva (Selective
repeat)
• Caso não receba um ACK do quadro i, retransmite
somente i
Controle de Fluxo
• Bit alternado
– Controla o fluxo automaticamente
• Janela N  técnica de janela deslizante
– Janela de Transmissão: envia até T quadros sem
ACK
– Janela de Recepção: quando R quadros são
recebidos e não foram processados pela camada
de rede, se envia um receive-not-ready à origem,
a transmissão é suspensa e retormada quando
se envia receive-ready
Tipos de serviço
• Sem conexão e sem reconhecimento
– Datagrama não-confiável
– Redes onde a taxa de erro do nível físico é muito
baixa
• Sem conexão e com reconhecimento
– ACK ou NACK
• Orientado à conexão
– Estabelece conexão
– Dados
– Fim da conexão
Com ACK
Controle de Acesso
• Várias máquinas ligadas ao meio
– Controle centralizado (polling)
– Controle distribuído
• Subdivisão adotada proposta pelo IEEE 802
– Adotada pela ISO
CAMADA
DE
ENLACE
LLC
MAC
Interface com a camada de Rede
- controle de fluxo e de erros
Controle de acesso ao meio
CSMA/CD (Collision Detection)
• Estação “ouve” meio antes de transmitir
– Se meio estiver livre, transmite, senão espera período de
tempo e tenta novamente
– Se há colisão durante sua transmissão, aborta a
transmissão
• envia sinal Jam, 48 bits: garante que todos detectam colisão
– Detectada colisão, estação espera um tempo para
retransmissão
• Espera aleatória exponencial truncada: tempo de espera
entre 0 e um limite superior. Limite superior é dobrado a
cada colisão sucessiva.
– ETHERNET: Escolhe K entre 0 e 2j-1 na j-ésima colisão
– ETHERNET: Espera o tempo de transmissão de K x 512 bits
• Utilizado nas redes Ethernet
Ethernet (IEEE 802.3)
• Estrutura do quadro
Preâmbulo Destino Origem T
Dados
FCS
• Preâmbulo: 7 bytes 10101010, 1 byte 10101011
• Destino, Origem: endereços MAC (6 bytes cada),
receptores checam endereço destino, se diferente,
descartam quadro
• T (Tipo): indica protocolo de rede usado (IP, IPX,
Appletalk etc)
• FCS: CRC do quadro
Interconexão de LANs
• Por que não só uma grande LAN?
– Nós de uma LAN devem compartilhar largura de
banda
– Tamanho máximo do cabeamento
– Domínio de colisão seria muito grande
• Hubs
HUB
HUB
HUB
HUB
– São repetidores
– Não isolam tráfego (domínio de colisão é
extendido)
– Podem ser interconectados hierarquicamente
– Todas LANs interconectadas devem implementar
o mesmo protocolo
Bridges
• Trabalham na camada de enlace
– Permitem a conexão de
diferentes protocolos de
enlace
• Switches
– Permitem o isolamento de
tráfego
– Aprende que nós estão
conectados em cada porta
e direcionam tráfego
apenas para aquela porta
– Caso não conheçam destino, enviam a todas as
portas
Camada de rede
• Vamos focalizar nossa atenção ao protocolo IP
– Mais difundido dentre os protocolos de rede
• IP (Internet Protocol)
– Chaveamento de pacotes c/ datagrama não-confiável
• Não faz nenhum tipo de verificação de entrega dos pacotes
• Não estabelece nenhum tipo de circuito/conexão
–
–
–
–
Função básica: rotear pacotes baseado no end. IP
Define o endereçamento universal da Internet
Atualmente o IP se encontra na versão 6
Versão 4 ainda é a mais difundida, apesar do futuro
apontar para a versão 6
Histórico
• 1969
– DARPA (Defense Advanced Research Project Agency) cria
um projeto de pesquisa para o desenvolvimento da rede
de comutação de pacotes ARPANET
• Robusta, confiável, independente de fornecedor
• 1975
– ARPANET deixa de ser experimental e passa a ser
operacional, família de protocolos TCP/IP começa a ser
concebida
• 1979
– Internet Control and Configuration Board define o projeto
de um protocolo para interconexão de redes
• 1980
– TCP/IP torna-se padrão na ARPANET
Histórico
• 1983
– TCP/IP adotado como padrão militar
– Defense Communication Agency pede divisão entre
ARPANET e MILNET (rede militar)
• Internet = ARPANET + MILNET
– TCP/IP é integrado ao BSD/Unix e amplamente
disponibilizado
• 1985
– NSF (National Science Foundation) promove expansão da
Internet para comunidade acadêmica (NSFNET)
• 1986-1992
– NSF abre acesso à Internet para comunidade científica
fora do EUA
Algumas características do TCP/IP
• Órgão controlador central da Internet
– NIC (Network Information Center): mantém e distribui
informações sobre TCP/IP
• Todos documentos Internet - TCP/IP
– Organizados em RFC (Request for Comments)
– Numeradas em ordem cronológica
– Podem ser encontrados em:
• http://www.ietf.org/rfc.html
• http://www.rfc.net
• Principais protocolos
– IP (Internet Protocol)
– TCP (Transfer Control Protocol)
– UDP (User Datagram Protocol)
A camada IP (rede)
• O endereçamento feito por esta camada é universal
(único para toda a rede)
– A cada máquina se atribui um endereço de 32 bits
– Endereço IP foi pensado de forma a tornar o roteamento
mais eficiente
– Formado por um prefixo que indica a rede e um sufixo que
indica a máquina dentro de uma rede
• Endereçamento hierárquico: como o telefone, DDD+número
32 bits (4 bytes)
00001010 10101010 01110001 00000111
10.170.113.7
Classes de endereço
• Inicialmente 3 classes de endereço foram criadas:
– Classe A: 0.0.0.0 a 127.255.255.255
0
Rede
Máquina (Host)
– Classe B: 128.0.0.0 a 191.255.255.255
10
Rede
Máquina (Host)
– Classe C: 192.0.0.0 a 223.255.255.255
110
Rede
Máquina (Host)
Classes de endereço
• Duas outras classes foram criadas posteriormente
– Classe D: 224.0.0.0 a 239.255.255.255
• Utilizada para Multicast
1110
– Classe E: 240.0.0.0 a 247.255.255.255
• Reservada para uso futuro
1110
Redes
Endereços
Classe A
126
16.777.214
Classe B
16.382
65.534
Classe C
2.097.150
254
Regras de endereçamento
• Endereço IP contém informações sobre a rede e
a máquina
– Como fazer com máquinas que estejam
conectadas a mais de uma rede? Roteadores,
por exemplo…
– Cada uma destas redes possui um “prefixo”
diferente de endereço IP
• Como o endereço codifica tanto a máquina
quanto a rede, ele não especifica uma máquina
e sim uma conexão a uma rede
– Se uma máquina está conectada a duas redes,
cada conexão receberá um endereço IP diferente
Regras de endereçamento
Rede A
Rede B
222.10.13.1
217.12.15.7
Roteador
• Endereços de rede
– Assim como as interfaces de máquina, as redes também
tem seus endereços IP
• Endereços compostos pelo prefixo de rede, porém com a
parte da máquina preenchida com zeros
• Estes endereços não podem ser utilizados para máquinas
• Exemplos: 120.0.0.0 (classe A),
150.10.0.0 (classe B),
215.123.12.0 (classe C)
Regras de endereçamento
• Endereços de broadcast
– Ao enviar para este endereço, envia-se a todas as
máquinas da rede
• Endereços compostos pelo prefixo de rede, porém com a
parte da máquina preenchida com uns
• Estes endereços não podem ser utilizados para máquinas
• Exemplos: 120.255.255.255 (classe A)
150.10.255.255 (classe B),
215.123.12.255 (classe C)
• Sendo assim, o primeiro e o último endereço de cada
rede nunca podem ser utilizados por máquinas
Regras de endereçamento
• Endereço de Loopback
– Toda máquina rodando TCP/IP possui uma interface de
loopback
– Esta interface não conecta a máquina a rede alguma
– Seu objetivo é permitir a comunicação entre processos de
uma mesma máquina
• Fluxo normal dos dados:
Aplicação  TCP/UDP  IP  Enlace  Físico 
transmissão
recepção  Físico  Enlace  IP  TCP/UDP  Aplicação
• Fluxo utilizando loopback:
Aplicação  TCP/UDP  IP  loopback  IP  TCP/UDP
 Aplicação
– O endereço classe A 127.0.0.0 é reservado para loopback
e não pode ser utilizado por nenhuma rede
• Quase todas as implementações utilizam 127.0.0.1
como endereço de loopback
Regras de endereçamento
• Endereços IP reservados
– Alguns outros endereços são reservados e não podem ser
utilizados por nenhuma máquina conectada diretamente à
Internet
– São reservados para máquinas não conectadas à Internet
ou conectadas através de um proxy
– Os endereços reservados são especificados pela
RFC1597 e são os seguintes
Rede
10.0.0.0
Máscara
255.0.0.0
172.16.0.0
255.240.0.0
192.168.0.0
255.255.0.0
Falaremos sobre
máscaras mais
tarde
Exemplo
• Exemplo de endereçamento IP
• Token Ring: 192.3.40.0 (classe C)
• Ethernet: 146.134.0.0 (classe B)
• Ethernet: 12.0.0.0 (classe A)
Ethernet 146.134.0.0
146.134.223.1
192.3.40.7
146.134.10.7 146.134.15.3
192.3.40.37
Token Ring
192.3.40.0
192.3.40.2
12.130.0.2
192.3.40.6
12.130.0.3
192.3.40.98
146.134.223.2
12.3.20.21
Ethernet 12.0.0.0
Máscaras
• Só a identificação da classe não é mais suficiente para indicar bits
de rede e bits de máquina
– Necessidade de outro mecanismo que indique isso: Máscaras!
• A máscara de um endereço possui 32 bits e
– seus bits são 1, se os bits correspondentes no endereço IP
representam a rede
– seus bits são 0, se representam a máquina
Classe A
11111111 00000000 00000000 00000000
Classe B
11111111 11111111 00000000 00000000
Classe C
11111111 11111111 11111111 00000000
255.0.0.0
255.255.0.0
255.255.255.0
– Os bits de rede e máquina não precisam ser contíguos, porém
isso gera endereços muito confusos (melhor evitar!)
11111111 00100100 00111000 00000000 (máscara válida)
Sub-redes não utilizáveis
• A especificação TCP/IP diz que a primeira e a última sub-redes não
devem ser utilizadas
• Exemplo:
– Dividimos uma rede classe C (200.241.14.0) em 8 sub-redes,
cada uma podendo conter até 32 endereços
• 30, se desconsideramos o end. de rede e de broadcast de cada
uma
200
241
14
11001000 11110001 00001110 00000000
11001000 11110001 00001110 00100000
11001000 11110001 00001110 01000000
11001000 11110001 00001110 01100000
6 sub-redes utilizáveis
11001000 11110001 00001110 10000000
11001000 11110001 00001110 10100000
11001000 11110001 00001110 11000000
11001000 11110001 00001110 11100000
• Máscara
11111111 11111111 11111111 11100000 (255.255.255.224)
Máscaras
• As máscaras também farão parte das tabelas de rotas
• Algoritmo de roteamento com sub-redes
– Verifique no datagrama IP o endereço IP do destino
– Bate com alguma das suas interfaces?
• Sim. Joga fora o cabeçalho IP e entrega o campo de dados
aos protocolos de mais alto nível (transporte)
• Não. Percorra a Tabela de Rotas
– Faça um AND bit-a-bit do IP de destino com a máscara
– Compare o resultado com a rede destino
– Se for igual envia o pacote para o roteador indicado na tabela
• Se não encontrou uma rota, envia mensagem de erro à
origem
ARP (Address Resolution Protocol)
• Duas máquinas de uma mesma rede física só podem se
comunicar se souberem o endereço MAC uma da outra
• De alguma forma, se deve obter o endereço MAC de
uma máquina a partir do endereço IP
• ARP é utilizado
– A envia um broadcast perguntando qual máquina possui o
IPB
– Todas máquinas recebem, mas só B responde com o seu
endereço MACB
– A armazena o par (IPB, MACB) e B armazena o par (IPA,
MACA) obtido ao receber o broadcast.
– Essa informação fica nos caches de A e B por um período
apropriado (TTL, ou Time To Live)
Exemplo ARP
• 146.134.10.7 quer enviar dados a 146.134.15.3
– 146.134.10.7 envia um pacote de ARP Request
– 146.134.15.3 envia um pacote de ARP Response
– A partir daí, os pacotes IP podem ser encapsulados em quadro
de enlace (Ethernet, no caso) Ethernet 146.134.0.0
146.134.223.1
192.3.40.7
146.134.10.7 146.134.15.3
192.3.40.37
Token Ring
192.3.40.0
192.3.40.2
12.130.0.2
192.3.40.6
12.130.0.3
192.3.40.98
146.134.223.2
12.3.20.21
Ethernet 12.0.0.0
Pacote ARP
• Formato do pacote ARP
Hardware Type
HLEN
PLEN
Protocol Type
Operation
Sender HA (octetos 0-3)
Sender HA (octetos 4-5) Sender IP (octetos 0-1)
Sender IP (octetos 2-3) Target HA (octetos 0-1)
Target HA (octetos 2-5)
Target IP (octetos 0-3)
– Hardware Type: especifica a interface de hardware pela
qual o usuário espera uma resposta (1 se for Ethernet)
– Protocol Type: tipo de endereço que o usuárioestá
procurando (0800H se for IP)
– HLEN e PLEN: Tamanho dos endereços MAC e de rede
– Operation: 1 – ARP Request, 2 – ARP Response, 3 –
RARP Request, 4 – RARP Response
RARP (Reverse ARP)
• ARP mapeia endereço IP em endereço MAC
• RARP faz o serviço contrário, de posse do
endereço MAC, obtém o endereço IP
– Utilizado em máquinas sem disco que dão boot
via rede e necessitam de um endereço IP ainda
durante o boot
– Ao iniciar, a máquina envia um broadcast
perguntando qual o enderço IP correspondente
ao seu endereço MAC
– Um servidor RARP responde e a máquina pode
falar com qualquer outra a partir de então
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source IP Address
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
16
19
Type of Service
Version (4 bits): Indica a
Identification
Flags
versão do IP
Time to Live (TTL)
Protocol
24
31
Total Length
Fragment Offset
Header Checksum
Source IP Address
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
16
19
Type of Service
24
31
Total Length
Identification
Flags
IHL, IP Header Length
(4 bits):
Fragment Offset
Indica o tamanho do datagrama IP
(emProtocol
palavras de 32 bits) Header Checksum
Time to Live (TTL)
Source IP Address
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
19
16
Type of Service
Identification
24
31
Total Length
Flags
Fragment Offset
Type of Service (8 bits): Especifica
como o protocolo de mais alto nível
Time to Live
(TTL) que Protocol
Header Checksum
gostaria
o datagrama fosse
manuseado
0 1
2 3 4 5
6 7
Source IP Address
Precedência D T R
Precedência: Destination
Importância
do pacote
IP Address
D:
Baixo Delay
Alto throughput
IP Options T:
(if any)
R:
Alta confiabilidade
Data
Padding
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
19
16
Type of Service
Identification
24
31
Total Length
Flags
Fragment Offset
Difícil ser garantido pela Internet,
considerado uma dica e não uma
Time to Live
(TTL)
Protocol
Header Checksum
demanda
Redefinido em 1990 pela IETF para
acomodar os Differentiated
Services
Source IP Address
0
1
2 3 4
Code Point
5
6
7
Destination IP Address
IP Options
(if any)
Definições
nas RFC2474, RFC3168 e
RFC3260
Data
Padding
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
16
19
Type of Service
24
31
Total Length
Flagstotal do Fragment Offset
TotalIdentification
Length (16 bits): Tamanho
pacote IP, se pacote for fragmentado,
indica
tamanho
do fragmento
Time to Live
(TTL)
Protocol
Header Checksum
Source IP Address
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Identification (16 bits): Valor inteiro que
identifica o datagrama. Auxilia na
IP Address
remontagem de pacotesSource
fragmentados
Fragment Offset
Header Checksum
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
Total Length
Flags
Protocol
31
Fragment Offset
Header Checksum
Flags (3 bits): Os dois bits de mais baixa
ordem controlam a fragmentação. Um bit
especifica se um pacoteSource
pode IP
ouAddress
não ser
fragmentado. O segundo bit especifica se o
Destination IP Address
pacote é o último fragmento
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset (13 bits): posição do
fragmento no pacote original (em bytes)
Fragment Offset
Header Checksum
Source IP Address
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source IPquanto
Address
Time-to-live (8 bits): Especifica
tempo o pacote pode ficar na rede
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Protocol (8 bits): Indica Source
qual IP Address
protocolo de transporte está sendo
Destination
IP Address
transportado pelo pacote
IP
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source IP Address
Header checksum (16 bits):
Soma de
complemento 1 de blocos de 16 bits
Destination IP Address
do cabeçalho IP
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source IP Address
Destination IP Address
Source IP Address (32 bits):
Endereço IP da origem
IP Options (if any)
Data
Padding
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
24
31
Total Length
Flags
Protocol
Fragment Offset
Header Checksum
Source IP Address
Destination IP Address
IP Options (if any)
Destination IP Address (32 bits):
Endereço IP do destino
Data
Padding
O pacote IP
• Unidade básica de transferência
0
19
16
IP4 Options8 (tamanho variável):
Um octeto
do24código da opção31
seguido
octeto
com o tamanho Total
da opção,
IHL de um
Type
of Service
Length seguido de
Version
um conjunto de octetos com os dados da opção
0
1
2
Copy Classe
3 4 5
6 7
Flags
Número da opção
Identification
Time to Live (TTL)
Protocol
Fragment Offset
Header Checksum
Copy: Se for 1, opções são copiadas em todos fragmentos
Classe: 0 – datagrama
de controle,
Source
IP Address 2 – Debug,
1 ou 3 – Reservado para uso futuro
Destination IP Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
31
Total Length
Flags
Protocol
24
Fragment Offset
Header Checksum
Padding
(tamanho
variável): Faz
Source
IP Address
com que o cabeçalho seja
múltiplo
de 32IP
bits
Destination
Address
IP Options (if any)
Padding
Data
O pacote IP
• Unidade básica de transferência
0
4
Version
8
IHL
Type of Service
Identification
Time to Live (TTL)
19
16
31
Total Length
Flags
Protocol
24
Fragment Offset
Header Checksum
Data (tamanho variável): Dados a
serem Source
transmitidos
pelo pacote IP.
IP Address
Máximo:
Destination IP Address
Cabeçalho + dados = 65.535 bytes
IP Options (if any)
Padding
Data
Algumas opções IP
• Opções IP
Option Number
1
2
3
7
8
9
11
12
4
18
Descrição
No operation
Security
Loose Route
Recorde Route
Stream Identifier
Strict Source Route
MTU Probe
MTU Reply
Timestamp
Traceroute
Algumas opções IP
• Record Route Option (Opção 7)
– Cada roteador pelo qual o pacote passe acrescenta seu
0
8
16
24
endereço IP na lista
CODE
31
LENGTH POINTER
Primeiro Endereço IP
Segundo Endereço IP
• Source Route Option
...
– Indica a rota a ser seguida pelo pacote IP
• Strict (Opção 9): tem que seguir exatamente o caminho
0
8
16
24
definido
CODE
LENGTH POINTER
• Loose (Opção 3):
Endereço IP do primeiro hop
tem que passar pelos
Endereço IP do segundo hop
roteadores indicados,
...
mas podem haver mais
roteadores intermediários
31
Algumas opções IP
• Timestamp (Opção 4)
– Similar ao Record Route, porém cada roteador coloca na
lista, além do seu IP, o tempo em que o pacote chegou
0
8
CODE
16
24
31
LENGTH POINTER
Endereço IP do primeiro hop
Tempo de chegada ao primeiro hop
Endereço IP do primeiro hop
Tempo de chegada ao primeiro hop
...
– OFLOW: número de roteadores que não puderam incluir
informações na lista
– FLAGS: controla formato da lista de endereços
Fragmentação
• Cada protocolo de enlace possui um tamanho
máximo de quadro (MTU, Maximum Transfer
Unit)
– Ethernet: 1500 bytes
– ATM: 53 bytes
– FDDI: 4500 bytes etc
• O pacote IP tem que caber dentro de um quadro
de enlace
– Se no enlace anterior o MTU era menor do que
no enlace atual, o pacote IP pode não caber no
novo quadro: deve ser fragmentado em pacotes
menores
Fragmentação
• Cada fragmento recebe uma cópia do
cabeçalho IP original e uma porção dos dados
Cabeçalho IP
Dados (1400 bytes + 20 bytes cabeçalho)
Fragmentos
MTU = 600
(FRAGMENTAÇÃO)
Cabeçalho IP
Dados 1
ID = xxxx
DF = 0 MF =1 OFFSET = 0
Cabeçalho IP
Dados 2
ID = xxxx
DF = 0 MF = 1 OFFSET = 580
Cabeçalho IP
Dados 3
ID = xxxx
DF = 0 MF = 0 OFFSET = 1160
Original
Fragmentação
• Exemplo:
MTU = 1500 bytes
1 Datagrama Origem
1500 bytes
ID = 12345, DF = 0 MF = 0
Offset = 0, len = 1500
R1
MTU = 600 bytes
2 fragmentos de
600 bytes e
1 de 340 bytes
R2
MTU = 1500 bytes
2 fragmentos de
600 bytes e
1 de 340 bytes
ID = 12345, DF = 0 MF = 1
Offset = 0, len = 600
ID = 12345, DF = 0 MF = 1
Offset = 0, len = 600
ID = 12345, DF = 0 MF = 1
Offset = 580, len = 600
ID = 12345, DF = 0 MF = 1
Offset = 580, len = 600
ID = 12345, DF = 0 MF = 0
Offset = 1160, len = 340
ID = 12345, DF = 0 MF = 0
Offset = 1160, len = 340
Fragmentação
• Exemplo (caso em que DF=1):
MTU = 1500 bytes
1 Datagrama Origem
1500 bytes
ID = 12345, DF = 1 MF = 0
Offset = 0, len = 1500
ICMP – Destination Unreachable
Fragmentation Needed and DF = 1
R1
MTU = 600 bytes
0 fragmentos
Mensagem ICMP
Datagrama
descartado
ICMP – Destination Unreachable
Fragmentation Needed and DF = 1
Mensagem de erro gerada e
recebida pela origem do datagrama
Fragmentação
• Os fragmentos são remontados só no destino
– Remontagem em roteadores intermediários
causa gasto de memória e de processamento
• No processo de remontagem, se o tempo de
espera por fragmentos se esgota
– Fragmentos são descartados
– Envia mensagem de erro (ICMP Time
Exceeded) à origem
• Fragmentos diferentes podem ir por rotas
diferentes
Roteamento de datagramas IP
• Roteamento: processo de escolha de um caminho
através do qual serão enviados pacotes
• Roteador: máquina que realiza essas decisões
• Dois tipos de roteamento
– Direto: duas máquinas que participam de uma
conversação IP estão na mesma rede física
Comunicação entre A e B
ARP Request (IPB)
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
• Roteamento: processo de escolha de um caminho
através do qual serão enviados pacotes
• Roteador: máquina que realiza essas decisões
• Dois tipos de roteamento
– Direto: duas máquinas que participam de uma
conversação IP estão na mesma rede física
Comunicação entre A e B
ARP Response (MACB)
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
• Roteamento: processo de escolha de um caminho
através do qual serão enviados pacotes
• Roteador: máquina que realiza essas decisões
• Dois tipos de roteamento
– Direto: duas máquinas que participam de uma
conversação IP estão na mesma rede física
Comunicação entre A e B
Pacotes IP
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
ARP Request (IPR1)
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
ARP Response (MACR1)
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
Pacotes IP para IPC
IPR1
IPR2
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
IPR1
IPR2 ARP Request (IPC)
MACR1
MACR2
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
IPR1
IPR2
MACR1
MACR2
ARP Response (MACC)
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Roteamento de datagramas IP
– Indireto: duas máquinas que participam de uma
conversação IP estão em redes físicas distintas.
Roteadores terão que manusear esse pacote até que ele
chegue ao destino
• A máquina deve identificar qual roteador servirá de
intermediário da comunicação
• O roteador deverá estar necessariamente na mesma rede
física da máquina
Comunicação entre A e C
Pacotes IP para IPC
IPR1
IPR2
MACR1
MACR2
Pacotes IP para IPC
IPA
IPB
IPC
IPD
MACA
MACB
MACC
MACD
Tabelas de rotas
• Algumas perguntas
– Como a máquina sabe se o roteamento será direto ou
indireto?
– Caso seja direto, como sabe a qual roteador enviar a
informação?
– Como o roteador sabe qual é a porta de saída dos
pacotes?
• Resposta
– Cada máquina/roteador mantém uma tabela com as rotas
através da qual se toma todas as decisões
– Cada rota é composta de um par (N,G), onde N é o
endereço IP da rede destino e G é o endereço do próximo
roteador no caminho da rede N.
Tabelas de rotas
• Exemplo:
20.0.0.5
30.0.0.6
F
Rede
10.0.0.0
G
Rede
20.0.0.0
10.0.0.5
20.0.0.6
40.0.0.7
H
Rede
30.0.0.0
Rede
40.0.0.0
30.0.0.7
– A tabela do roteador G é:
Rede Destino
10.0.0.0
20.0.0.0
30.0.0.0
40.0.0.0
Mandar Para
20.0.0.5
Direto
Direto
30.0.0.7
Tabelas de rotas
20.0.0.5
30.0.0.6
F
Rede
10.0.0.0
G
Rede
20.0.0.0
10.0.0.5
40.0.0.7
H
Rede
30.0.0.0
20.0.0.6
Rede
40.0.0.0
30.0.0.7
40.0.0.8
50.0.0.8
70.0.0.5
60.0.0.6
F
Rede
80.0.0.0
G
Rede
70.0.0.0
80.0.0.5
70.0.0.6
50.0.0.7
H
Rede
60.0.0.0
Rede
50.0.0.0
60.0.0.7
Tabelas de rotas
– Tabela do roteador G
Rede
Mandar
Destino
Para
10.0.0.0 20.0.0.5
20.0.0.0 Direto
30.0.0.0 Direto
40.0.0.0 30.0.0.7
50.0.0.0 30.0.0.7
60.0.0.0 30.0.0.7
70.0.0.0 30.0.0.7
80.0.0.0 30.0.0.7
SIMPLIFICAÇÃO
Rede
Destino
10.0.0.0
20.0.0.0
Mandar
Para
20.0.0.5
Direto
30.0.0.0
Default
Direto
30.0.0.7
Usada sempre que nenhuma
outra regra for encontrada na tabela
Sub-redes
• Divisão dos endereços IP tem por objetivo simplificar o
roteamento
– Pela classe, se pode saber quantos bits representam a
rede e quantos representam a máquina (o roteamento é
feito pela rede!)
• Um endereço classe C é normalmente utilizado em
redes pequenas
– Uso de um classe C implica na alocação de 254
endereços, mesmo que nem todos sejam utilizados
– Imagine um classe A!
• Crescimento da Internet  escassez de endereços IP
– Solução: dividir uma classe de endereço IP em
duas ou mais redes menores (sub-redes)
Sub-redes
• No exemplo abaixo dividiu-se um classe B
– 3º octeto representa a sub-divisão em redes internas
– Para a Internet, 128.10.0.0 é uma rede só
Rede 128.10.1.0
Internet
128.10.1.1
128.10.1.2
Rede 128.10.2.0
Todo o tráfego
para 128.10.0.0
128.10.2.1
128.10.2.2
Tabelas de rotas
Ethernet 146.134.20.0
H1
146.134.20.8
G3
H2
192.3.40.22
146.134.20.2 146.134.20.7
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.2
192.3.40.20
G1
146.134.21.2
200.241.155.10
200.241.155.9 Ligação ponto-a-ponto
Internet
146.134.20.1
G4
G2
146.134.21.1
Ethernet 146.134.21.0
146.134.21.12
Tabelas de rotas
Rede Destino
Máscara
Próximo Hop
146.134.21.0
255.255.255.0
192.3.40.20
Ethernet 146.134.20.0
146.134.20.0
255.255.255.0
192.3.40.22
H1
146.134.20.8
G3
H2
192.3.40.0
255.255.255.0
--192.3.40.22255.255.255.252
200.241.155.8
146.134.20.2 146.134.20.7
Default
---
---
192.3.40.2
192.3.40.20
G1
146.134.21.2
200.241.155.10
200.241.155.9 Ligação ponto-a-ponto
Internet
TR
TR
TR
PaP
200.241.155.9 146.134.20.1
PaP
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
Interface
G4
146.134.21.12
G2
146.134.21.1
Ethernet 146.134.21.0
200.241.255. 000010 00
000010 01
000010 10
000010 11
Rede
Hosts
Broadcast
Tabelas de rotas
Rede Destino
Máscara
Próximo Hop
146.134.21.0
255.255.255.0
146.134.20.0H1 255.255.255.0
146.134.20.8
192.3.40.0
255.255.255.0
Default
--- 192.3.40.22
Interface
--- Ethernet 146.134.20.0
ETH
146.134.21.12 ETH
G3
H2
--TR
192.3.40.2
146.134.20.2 146.134.20.7
TR
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.2
192.3.40.20
G1
146.134.21.2
200.241.155.10
200.241.155.9 Ligação ponto-a-ponto
Internet
146.134.20.1
G4
G2
146.134.21.1
Ethernet 146.134.21.0
146.134.21.12
Tabelas de rotas
Ethernet 146.134.20.0
H1
146.134.20.8
G3
H2
192.3.40.22
146.134.20.2 146.134.20.7
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.20
146.134.20.1
G4
146.134.21.12
G2
192.3.40.2 Rede
G1 Destino Máscara 146.134.21.1
Próximo Hop
146.134.21.2
146.134.21.0
255.255.255.0
146.134.20.1
200.241.155.10
Ethernet 146.134.21.0
ponto-a-ponto
200.241.155.9 Ligação146.134.20.0
Interface
ETH
255.255.255.0
---
ETH
192.3.40.0
255.255.255.0
---
TR
DefaultInternet
---
192.3.40.2
TR
Tabelas de rotas
Ethernet 146.134.20.0
H1
G3
146.134.20.8
H2
192.3.40.22
146.134.20.2 146.134.20.7
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.2
192.3.40.20
G1
ETH2
146.134.20.1
146.134.21.2
200.241.155.10
G4
146.134.21.12
ETH1
G2
146.134.21.1
MáscaraEthernet 146.134.21.0
Próximo Hop
Interface
255.255.255.0
---
ETH1
146.134.20.0
Internet
255.255.255.0
---
ETH2
Default
---
146.134.20.8
ETH2
Rede Destino
200.241.155.9 Ligação ponto-a-ponto
146.134.21.0
Tabelas de rotas
Ethernet 146.134.20.0
H1
G3
146.134.20.8
H2
192.3.40.22
146.134.20.2 146.134.20.7
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.2
192.3.40.20
G1
146.134.21.2
200.241.155.10
Rede Destino
200.241.155.9 Ligação ponto-a-ponto
146.134.20.0
DefaultInternet
146.134.20.1
G4
146.134.21.12
G2
146.134.21.1
MáscaraEthernet 146.134.21.0
Próximo Hop
Interface
255.255.255.0
---
ETH
---
146.134.20.8
ETH
Tabelas de rotas
Ethernet 146.134.20.0
H1
G3
146.134.20.8
H2
192.3.40.22
146.134.20.2 146.134.20.7
192.3.40.21
Token Ring
192.3.40.0
192.3.40.1
192.3.40.2
192.3.40.20
G1
146.134.21.2
200.241.155.10
Rede Destino
200.241.155.9 Ligação ponto-a-ponto
192.3.40.0
DefaultInternet
146.134.20.1
G4
146.134.21.12
G2
146.134.21.1
MáscaraEthernet 146.134.21.0
Próximo Hop
Interface
255.255.255.0
---
TR
---
192.3.40.2
TR
Exercício 1
• Suponha que você disponha de apenas 1 endereço
classe C (200.241.12.0) e que cada uma das 3 redes
abaixo possua 20 máquinas no máximo. Crie as subredes com as respectivas máscaras, indique possíveis
endereços para as interfaces de G1, G2, G3 e para H1,
H2 e H3. Construa também as tabelas de rotas de
todos.
Backbone
G1
G2
G3
Rede 1
Rede 2
Rede 3
H1
H2
H3
Exercício 2
• Escolha livremente os
endereços IPs das redes
a seguir dentre os
endereços reservados,
indicando os endereços
de cada máquina /
roteador representado e
suas respectivas tabelas
de roteamento.
Rede 4
H3
G3
Rede 3
H2
G2
Rede 2
G1
Rede 5
ponto a ponto
Rede 1
H1
Exercício 3
• Suponha que você disponha de apenas 1 endereço
classe C (197.12.1.0) e que cada uma das 2 redes
abaixo possua 40 máquinas no máximo. Crie as subredes com as respectivas máscaras, indique possíveis
endereços para os hosts e os roteadores. Construa
também as tabelas de rotas de todos os indicados.
200.251.155.129
Internet
200.251.155.133
G1
H2
G2
H1
IPv6
• Esgotamento dos endereços IPv4
Blocos de /8
IPv6
• Endereço IPv6 = 128 bits
– Espaço de endereçamento de
340.282.366.920.938.463.463.374.607.431.768.211.456
– Cerca de 79 trilhões de trilhões de vezes o
espaço disponível no IPv4
– Equivale a cerca de 5,6 x 1028 endereços IP por
ser humano
– Aproximadamente 66.557.079.334.886.694.389
de endereços por cm2 na superfície da Terra.
IPv6
• Os Registros Locais, hoje, recebem alocações /12
• Um AS (Sistema Autônomo) recebe um /32.
• Usuários finais recebem alocações que variam entre /48
e /56, conforme o tamanho de suas redes ou
necessidade
– /48 equivale a 1.208.925.819.614.629.174.706.176
endereços
– /56 equivale a 4.722.366.482.869.645.213.696 endereços
• Em um espaço de endereçamento de 128 bits, é
possível atribuir 281.474.976.710.656 blocos /48
diferentes
– 40 mil vezes mais do que a população atual do planeta
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
IPv6
• Zeros contínuos podem ser substituídos por ::
• Pode-se omitir os zeros à esquerda
– Exemplo:
• 2001:0db8:0000:130F:0000:0000:087C:140b
• É igual a
• 2001:db8:0:130F::87C:140b
IPv6
• Endereços especiais:
– FE80::/64 – Link local
• Válidos apenas no mesmo enlace
– FC00::/7 – Unique local
• Válidos apenas em um local limitado
• Um enlace ou conjunto de enlaces
– ::FFFF:wxyz – IPv4 mapeado em IPv6
• wxyz é o endereço IPv4 convertido em hexadecimal
– ::1 – Loopback
– ::0 – Não especificado
• Indica a ausência de endereços
– FF00::/8 – Multicast
• Agora é obrigatório, todos os nós devem suportar
• FF02::1 é o multicast chamado all node on link, equivale ao
broadcast do IPv4
IPv6
• Transição de IPv4 para IPv6
• 3 alternativas
– Pilha dupla
• Suporte a ambos protocolos no mesmo dispositivo
– Tunelamento
• Permite tráfego de IPv6 sobre IPv4 e vice-versa
– Tradução
• Permite comunicação entre nós que suportem
apenas IPv6 com nós que suportem apenas IPv4
Download

Arquitetura e Protocolos de Redes de Computadores