REDES DE COMPUTADORES
Camada de Rede
ROTEIRO
• Introdução: camada de rede
• Redes de circuitos virtuais
• Redes de datagramas
• Estrutura de roteadores
• Protocolo IP
• DHCP, NAT, ICMP
• Algoritmos de roteamento
• Resumo
Introdução
• Camada de rede:
– Recebe segmentos da camada de transporte
– Encapsula em datagramas
– Envia para o próximo roteador até o seu destino final
Relembrando
• Camada de Transporte
– Comunicação lógica de processos – Sistemas Finais
• Camada de Rede
– Comunicação lógica de hospedeiros – Núcleo da rede
Relembrando
• Camada de transporte utiliza
serviços da camada de rede
– Serviços de transporte implementados sobre o serviço de entrega
• Ex protocolo IP: entrega não-confiável
– O envio era responsabilidade da camada de rede
Fundamentos
• Repasse:
– Transferência de um datagrama de um
enlace de entrada para um enlace de saída – Ocorre entre interfaces de um roteador
• Interface: acesso ao enlace de entrada/saída
• Roteamento:
– Determina o caminho a ser seguido por um datagrama, desde o nó de origem até o de destino
– Envolve todos os roteadores de uma rede
Fundamentos
• Cada roteador determina o repasse
– Examina o cabeçalho do datagrama
– Determina para qual interface deve realizar o repasse
– Realiza o repasse
• Envia o datagrama para o enlace de saída
• Tabelas de repasse
– Mantidas em cada roteador
– Indica a interface para a qual o datagrama deve ser repassado
Exercício
1. Determine a sequência de
roteadores que o datagrama A irá
percorrer até o destino (Server)
– Cabeçalho = 0110
Fundamentos
• Interação entre repasse e
roteamento
– Quem determina os valores da tabela de repasse?
Fundamentos
• Estratégias
– Roteamento centralizado:
• Executa em um ponto central e distribui as informações entre os roteadores
– Roteamento descentralizado
• Executa de forma distribuída em cada roteador
Fundamentos
• Existem diversas arquiteturas de
camada de rede
– ATM, Frame-relay
Alguns Serviços
• Rede
poderia
prover:
– Entrega garantida
– Entrega garantida com atraso limitado – Entrega ordenada
– Largura de banda mínima garantida – Jitter máximo garantido
• Quantidade de tempo entre dois pacotes
transmitidos seja igual ao tempo de recebimento dos dois pacotes
– “Espaçamento” não mude mais do que um valor máximo
Internet
• O modelo de serviço da internet é
único
– Serviço de melhor esforço
– Não há garantia de entrega, de ordem, nem de temporização entre os pacotes – Modelo minimalista: responsabilidades
passadas às outras camadas
Internet
• O modelo de serviço da internet é único
– Serviço de melhor esforço
– Não há garantia de entrega, de ordem, nem de temporização entre os pacotes – Modelo minimalista: responsabilidades
passadas às outras camadas
• Por que?
– Exigência mínima sobre a rede
– Facilita a interconexão de redes com tecnologias de enlace muito diferentes
– Facilidade de desenvolvimento de novas aplicações: centradas nos sistemas finais
Exemplos
Arquite-tura de Rede Modelo de Serviço Garantia de largura de banda Garantia contra perda OrdemTempo-rização Conges-tioname nto
Internet Melhor
esforço Nenhuma Nenhuma Qualquer Não garante Nenhuma ATM CBR Taxa
constante Sim Sim Mantida Não haverá ATM ABR Mínima Nenhuma Sim Não
Exemplos
• Modelo CBR (Constant Bit Rate)
– Taxa constante de bits transmitidos – Estabelecimento de conexão
– Túnel virtual que simula um enlace dedicado: garante taxa mínima
– Garante Jitter máximo: acertado entre o remetente e a rede ATM durante a
Exemplos
• Modelo ABR (Available Bit Rate)
– Mais “próximo” do modelo da Internet – Pode haver perdas
– Garante uma taxa mínima de transmissão
• Minimum Cell transmission Rate - MCR
– Recursos livres: taxa superior à MCR – Esse modelo também utiliza controle de
congestionamento assistido pela rede
• Bit de congestionamento • Taxa de envio explícita
Redes de Circuitos Virtuais e
de Datagramas
• Redes orientadas a conexão:
– Redes de Circuitos Virtuais (CVs)
• Redes não orientadas a conexão:
– Redes de Datagramas
• Não confundir:
– Protocolos com formação de conexão na camada de transporte (TCP)
– Redes orientadas a conexão (Redes de CVs)
Redes de Circuitos Virtuais
• Por definição, utilizam conexão na
camada de rede
• ATM (Asynchronous Transfer Mode) e
Frame relay
• Cada conexão é denominada
Redes de CVs
• Um CV consiste de:
– Um caminho virtual entre hospedeiros (origem e destino)
– Números (IDs) de CVs
– Registros na tabela de repasse em cada roteador ao longo do caminho
• Um pacote carrega um ID de CV
• Cada roteador pode substituir o ID
dos pacotes
Fases do CV
1. Estabelecimento de CV
– Através da solicitação de um hospedeiro, a camada de rede determina um caminho
entre ele até o destino (um ID CV para cada enlace)
2. Transferência de dados
– Dados fluem pelo circuito
3. Encerramento do CV
– Um dos lados informa que o CV deve ser desativado, e a rede atualiza suas tabelas de repasse
Estabelecimento e
Transferência
Redes de CVs
• Rede no controle de conexão
• Cada roteador mantem a
informação de estado para a
conexão
• Recursos alocados por CV
• Mensagens de sinalização:
– Definidas por protocolos
– Determinam o estabelecimento, finalização e atualização de CV
Exemplo
• ID CV: 12
• Caminho
A – R1 –
R2 – B
Interfacede Entrada ID de CV de entrada Interface de Saída ID de CV de saída
1 12 2 22
2 63 1 18
3 7 2 17
1 97 3 87
Redes de CVs
• Sempre que um novo circuito é
estabelecido
– Um novo registro na tabela deve ser adicionado
– Para cada tabela do circuito
• Se a conexão é finalizada, o registro
é eliminado
Redes de Datagramas
• Não há conexão
• Datagrama contém o endereço do
sistema final
• Não possuem informações de estado
– Não há formação de CV -> não há conexão!
Redes de Datagramas
• Como é feito o repasse?
• Cada roteador possui sua tabela de
repasse
– Baseada em endereços e interfaces de saída
• Quando um datagrama chega, o
endereço é usado para procurar a
interface de saída apropriada
Redes de Datagramas
• Os caminhos são definidos pelos
algoritmos
– Podem variar ao longo do tempo
• Redes de CV o caminho (circuito) é o
mesmo
• Redes de Datagrama
– Caminho é independente
– Repasse apenas examina o endereço de destino do pacote
Exemplo
• Suponha que os endereços possuem
32 bits
– Mesmo tamanho de um endereço IPv4
• Mapear cada endereço possível é
inviável
– 232 endereços (4.294.967.296)
• Assim, uma abordagem é fatiar o
endereço
Exemplo
Faixa de Endereços Interface de saída 11001000 00010111 00010000 00000000 até 11001000 00010111 00010111 11111111 0 11001000 00010111 00011000 00000000 até 11001000 00010111 00011000 11111111 1 11001000 00010111 00011001 00000000 até 11001000 00010111 00011111 11111111 2 senão 3
Exemplo - Prefixo
• Roteador compara o prefixo do
endereço
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1 11001000 00010111 00011 2
Exemplo - Simplificando
• Exemplo:
32 bits 24 bits 16 bits 8 bits
11001000 00010111 00010110 10100001
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1 11001000 00010111 00011 2
Exemplo - Simplificando
• Exemplo:
32 bits 24 bits 16 bits 8 bits
11001000 00010111 00010110 10100001
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1 11001000 00010111 00011 2
Exemplo 2 - Simplificando
• Exemplo: Qual a interface?
32 bits 24 bits 16 bits 8 bits
11001000 00010111 00011000 10101010
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1 11001000 00010111 00011 2
Exemplo 2 - Simplificando
• Exemplo: Qual a interface?
32 bits 24 bits 16 bits 8 bits
11001000 00010111 00011000 10101010
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1
11001000 00010111 00011 2
Exemplo 2 - Simplificando
• Concordância pelo prefixo mais
longo
32 bits 24 bits 16 bits 8 bits
11001000 00010111 00011000 10101010
Prefixo de Endereços Interface de saída 11001000 00010111 00010 0
11001000 00010111 00011000 1 11001000 00010111 00011 2
Redes de Datagramas
• Essa abordagem é usada
– Veremos que os endereços IP seguem distribuição hierárquica
– Cada interface é destinada à uma faixa de IPs
Estrutura de Roteadores
• Organização
– Componentes
• Arquitetura (alto-nível) do hardware
• Formação de fila
Estrutura de Roteadores
• Papel dos roteadores
– Efetuar o repasse: recebe em um enlace de entrada e envia para o enlace de
saída
– Repasse é “configurado” pelos algoritmos de roteamento
Estrutura de Roteadores
• Visão da arquitetura de um roteador:
– Porta de entrada
– Elemento de comutação – Portas de saída
Estrutura de Roteadores
• Portas de Entrada
– Realiza funções da camada física: termina o link físico de entrada
– Processamento de enlace: Interoperar com a interface do outro dispositivo conectado (Ex: Ethernet)
– Exame e repasse:
• Pacotes de controle são encaminhados ao processador de roteamento
• Datagramas passarão pelo comutador e deverão surgir na porta de saída apropriada
– Cada roteador pode ter várias portas de entrada
Estrutura de Roteadores
Estrutura de Roteadores
• Portas de Entrada
– Pode ocorrer a formação de filas de pacotes
– Buffer armazena os pacotes bloqueados
Estrutura de Roteadores
• Portas de Entrada
– Módulo Exame e Repasse é fundamental para o roteador
– Em muitos roteadores, a escolha de
repasse ocorre na porta de entrada
• Determina qual a porta de saída é apropriada
• Escolha com base na cópia da tabela de repasse – repasse descentralizado
Estrutura de Roteadores
• Portas de Entrada
– Em outros tipos de roteadores, o repasse é centralizado
• Porta de entrada apenas encaminha o pacote ao processador de roteamento
• Processador, neste caso, examina a tabela e determina a porta de saída
• Abordagem usada também quando sistemas finais atuam como roteadores
Estrutura de Roteadores
• Portas de Entrada
– Examinar a cópia da tabela deve ser rápido
• Roteadores de backbone rodam milhões de consultas por segundo
• Porta de entrada deve operar à velocidade da
linha física
– Busca não pode ser linear
• Árvores binárias com os prefixos dos endereços • Caches: registros na tabela recentemente
Estrutura de Roteadores
• Elemento de Comutação
– Conecta as portas de entrada com as portas de saída
– Considerado como o “coração” do roteador
– Responsável pelo repasse (comutação) efetivo
Elemento de Comutação:
formas
• Comutação por
memória
:
– Primeiros e mais simples
– Controle através de uma CPU
• Portas entrada e saída como dispositivos de E/S tradicionais
• Processador extrai o cabeçalho, consultava a tabela e enviava o pacote à porta de saída apropriada
Elemento de Comutação:
formas
Elemento de Comutação:
formas
• Comutação por
memória
:
– Porém, alguns roteadores modernos também comutam por memória
– Usam conceitos de memória compartilhada
• Multiprocessadores comutam os pacotes por meio de uma memória compartilhada
Elemento de Comutação:
formas
• Comutação por
barramento
– Portas de entrada transferem um pacote diretamente por um barramento
compartilhado
– Processador de roteamento não é envolvido diretamente
– Porém, somente um pacote por vez pode atravessar o barramento
Elemento de Comutação:
formas
Elemento de Comutação:
formas
• Comutação por
barramento
– Vantagem:
• Na comutação por memória, o pacote também deve utilizar um barramento • Dessa forma, na comutação apenas por
barramento não há acréscimo de tempo do processador
– Porém o barramento é compartilhado
• Largura de banda de comutação fica limitada à velocidade do barramento
Elemento de Comutação:
formas
• Comutação por
Cross-bar
– Ou rede de interconexão
– Consiste em 2n barramentos
– Conectam n portas de entrada a n portas de saída
Elemento de Comutação:
formas
• Comutação por
Elemento de Comutação:
formas
• Comutação por
Cross-bar
– Supera a limitação da largura de banda de um único barramento compartilhado – Mas também pode formar filas
Estrutura de Roteadores
• Portas de saída
– Armazena pacotes que foram repassados
– Transmite os pacotes até o enlace de saída
– Consiste em:
• Fila de saída
• Processamento de Enlace • Terminação de linha
Estrutura de Roteadores
Estrutura de Roteadores
• Portas de saída
– Fila: Armazena os pacotes para serem enviados para o enlace de saída
– Processamento de enlace: análogo à porta de entrada, realiza a
interoperação com o outro lado da camada de enlace
Estrutura de Roteadores
• Processador de roteamento
– Executa o algoritmo de roteamento
– Mantém e atualiza a tabela de repasse
• Também mantém informações de roteamento específicas ao protocolo
– Processador pode também executar funções de gerenciamento de rede dentro do roteador
Estrutura de Roteadores
• Mesmo após a consulta à tabela de
repasse, um pacote pode ficar
bloqueado
– Pacotes de outras portas usando o elemento de comutação
• Assim, forma-se filas nas portas de
entrada
Formação de filas em
Roteadores
• Onde são formadas filas em
roteadores?
– Portas de entrada e de saída
– Perdas de pacote: buffers cheios
• Formação de fila depende de
1. Carga de tráfego
2. Velocidade do elemento de comutação
3. Taxa da linha (nas portas de entrada e de saída)
• Taxa de transferência do enlace para a porta
Formação de filas em
Roteadores
• Considere que
– As taxas de linha sejam idênticas que haja n portas de entrada e n de saída – Taxa do elemento de comutação: T
– Se T for no mínimo n vezes a taxa da linha de entrada,
• Não haverá formação de fila nas portas de entrada!
Formação de filas em
Roteadores –
Porta de saída
• Por outro lado, na porta de saída há
um problema
– Se o comutador for n vezes mais rápido – Haverá formação de filas na saída
– No pior caso
• Todos os pacotes chegam nas portas de entrada deverão ser destinados para a mesma porta de saída
Formação de filas em
Roteadores –
Porta de saída
• Pior
caso
Resultará
em descarte
de pacotes
Formação de filas em
Roteadores –
Porta de saída
• Formação de fila na porta de saída
exige um escalonador de pacotes
– FCFS (First-Came-First-Served)
• Escolha na ordem da fila
– WFQ (Weighted Fair Queuing)
• Escolha ponderada sobre a fila
• Forma mais sofisticada, tenta distribuir o envio entre pacotes de diferentes conexões
Formação de filas em
Roteadores –
Porta de saída
• Gerenciamento Ativo de Fila
– São conhecidos como políticas de descarte de pacotes
1. Descarte do final da fila
2. Random Early Detection (RED)
• Se o comprimento médio da fila for menor que um valor mínimo, o pacote pode entrar na fila • Se o comprimento médio for maior que um
valor máximo, o pacote é descartado ou marcado
• Se o pacote encontrar um valor de
comprimento dentro do intervalo, ele será marcado ou descartado por meio
Formação de filas em
Roteadores –
Porta de entrada
• Ocorre quando o elemento de
comutação não é suficientemente
veloz
– Pacotes aguardam na porta de entrada para serem repassados
Formação de filas em
Roteadores –
Porta de entrada
• Situação é particularmente ruim
quando ocorre o bloqueio HOL
(Head-of-the-Line)
Formação de filas em
Formação de filas em
Exemplos de roteadores
• Roteadores Cisco 12016/12416
– Arquitetura em Cross bar
Exemplos de roteadores
• Roteadores Cisco 2600
– Comutação por memória compartilhada – Configurações LAN e WAN
Exemplos de roteadores
• Roteadores Cisco 4400 Series
– 2 Gbps a 10 Gbps – Multicore CPU
PROTOCOLO IP:
Protocolo IP
• Internet Protocol
– Conceitos – Estrutura – Endereçamento IPv4 – IPv6Protocolo IP
• Define o formato das mensagens e
endereçamento na Internet
• Objetivo principal: permitir o
roteamento de pacotes em redes de
datagramas
Datagrama IP - Campos
• Número de versão
– IPv4 ou IPv6
• Comprimento do cabeçalho
– IHL – Internet Header Length – Valor típico: 20 bytes
• Tipo de serviço:
– Permite distinguir tráfego, por exemplo de tempo real (telefonia IP)
• Comprimento do Datagrama
– Cabeçalho+Dados
– Dificilmente um datagrama ultrapassa 1500 bytes, mas o valor máximo permitido é 64 KB
• Identificador, flags, deslocamento
Datagrama IP – Campos - 2
• Tempo de vida (TTL)
– Determina se um datagrama deve ser descartado de acordo com o tempo na rede
• Protocolo
– Determina o protocolo de transporte usado – Realiza a “ligação” entre as camadas!
• Soma de Verificação de 16 bits
– Sobre o cabeçalho IP
• Endereços IP
– Fonte e destino - 32 bits no IPv4
• Opções (apenas IPv4) • Campo para os dados
– Carga útil
– Pode conter o segmento (UDP, TCP), mensagens ICMP, entre outros
Endereçamento IPv4
• Endereço IP associado a cada
interface
– Roteador: múltiplas interfaces
– Hospedeiros: podem ter múltiplas interfaces
• Endereço IPv4: Número de 32 bits
– Notação decimal separada por pontos
• 192.168.0.50
Endereçamento IPv4
• Endereço IP 193.32.216.9
– Em notação binária:
11000001 . 00100000 . 11011000 . 00001001
• Cada interface tem um endereço
exclusivo
– Exceto redes mapeadas com NAT
Endereçamento IPv4
• Conceito de Sub-rede
– Interfaces que possuem uma mesma parte de endereço
• “Para determinar as sub-redes
– Destaque cada interface do hospedeiro/roteador
– Fechando as terminações
– Cria-se assim redes isoladas – Cada rede isolada é uma
Endereçamento IPv4 –
Sub-redes
Endereçamento IPv4 –
Sub-redes
• Máscara de rede
– 223.1.1.0/24
– 24 bits mais à esquerda do endereço
definem a sub-rede
– Nesse exemplo
• Todo Host da rede deverá ter um endereço do tipo 223.1.1.xyz
– Endereço de rede:
• 223.1.1.0
– Endereço de broadcast (último)
• 223.1.1.255
Endereçamento IPv4 –
Sub-redes
• Primeiramente, os endereços da
Internet eram divididos em Classes
IP cheias
– “Roteamento Classfull”
• Posteriormente foi definido o
Roteamento Interdomínio sem
Classes (CIDR)
Roteamento Classfull
• Classes IP
– Classe A: N.H.H.H
• Utiliza o primeiro byte para rede
– Classe B: N.N.H.H
• Utiliza os dois primeiros bytes para rede
– Classe C: N.N.N.H
• Utiliza os três primeiros bytes para rede
– N: Endereço de rede – H: endereço de host
Roteamento Classfull
• Classes IP
– Classe A: N.0.0.0/8 (255.0.0.0)
• 27 redes com 224 endereços
– Classe B: N.N.0.0/16 (255.255.0.0)
• 214 redes com 216 endereços
– Classe C: N.N.N.0/24 (255.255.255.0)
• 221 redes com 28 endereços
– Classe D: multicast – Classe E: reservado
• Testes, novas implementações de protocolos TCP/IP
Roteamento Classfull
• Classes IP
– Classe A • Range decimal: 1.0.0.0 para 126.0.0.0 – Classe B: • Range: 128.0.0.0 para 191.254.0.0 – Classe C: • Range: 192.0.0.0 até 223.255.254.0– Rede 0 não é usada
– Rede 127 é para localhost (loopback)
Roteamento Classfull
• ICANN (Internet Corporation for
Assigned Names and Number)
– Autoridade global
– Distribui endereços IP a ISPs e organizações
Roteamento Classfull
Roteamento Classfull
• Endereçamento tem tamanho fixo de
acordo com a classe
• Uso ineficiente do espaço de
endereçamento
– Ex: rede classe B aloca 65 mil endereços para hosts
– Independentemente de quantos estejam na rede
Notação CIDR
• Porção de endereço de rede tem
tamanho arbitrário
– a.b.c.d/x
– x tem tamanho arbitrário (classless)
• Como calcular
Notação CIDR
• Para determinar o endereço da rede
– AND bit a bit entre endereço e máscara
Notação CIDR
• Para determinar o endereço da rede
– AND bit a bit entre endereço e máscara
• Ex: 10.1.0.5, máscara /24
Notação CIDR
• Para determinar o endereço de
broadcast
– OR bit a bit do endereço com o complemento de 1 da máscara
Notação CIDR
• Endereço de broadcast
– OR bit a bit do endereço com o complemento de 1 da máscara
• Ex: 10.1.0.5, máscara /24
Notação CIDR
• Quantos hosts?
10.1.0.5/20
Notação CIDR
• Quantos hosts?
10.1.0.5/20
0000 1010 . 0000 0001 . 0000 0000 . 0000 0101 1111 1111 . 1111 1111 . 1111 0000 . 0000 0000
12 bits para hosts!
Qhosts = 2(32-x) -2 = 212 – 2 = 4094
Exercícios em sala
1. Obtenha os endereços de rede a partir dos endereços IPv4 e suas respectivas
máscaras de rede:
a. 10.1.0.5, 255.0.0.0 (ou /8)
b. 10.1.0.5, 255.255.0.0 (ou /16)
c. 192.168.1.13, 255.255.255.248 (ou /29) 2. Qual o valor de broadcast da rede do ex.
1.c?
3. Quantos hosts podem ser alocados na rede do ex 1.c?
a. Qual o primeiro valor de IP possível? b. Qual o último (exceto broadcast)?
Obtenção de bloco de
endereços
• Endereços IP são hierárquicos
– Notação CIDR permite modificar prefixos de rede
• Prefixo de rede: x bits mais significativos do endereço IP, ou o número da rede
– Resto do mundo não precisa saber qual sub-rede pertence um host
– Organização (ISP) então pode receber um bloco contíguo de endereços
• Sub-redes
Obtenção de bloco de
endereços
• Para a Internet, só existe a rede
150.1.0.0
– Sub-redes só existem para o roteador R1
Obtenção de bloco de
endereços
• Agregação de Endereços (Resumo
de rotas)
– Capacidade de usar um único prefixo de rede para anunciar várias redes
Obtenção de bloco de
endereços
Obtenção de bloco de
endereços
• Exemplo: Dado endereço classe C
192.168.0.0/24
Queremos segmentá-lo em 32
sub-redes
Obtenção de bloco de
endereços
• Dado endereço classe C
192.168.0.0/24
Queremos segmentá-lo em 32 sub-redes Máscara: 24 bits: 255.255.255.0
Qredes = 2n
32 = 2n -> n = 5
Dessa forma, basta adicionar 5 bits à máscara 192.168.0.0/29
Obtenção de bloco de
endereços
• Quais as sub-redes?
• 192.168.0.0/29
– Máscara: 29 bits 255.255.255.248 1111 1111. 1111 1111. 1111 1111 .1111 1000 Qhosts = 2(32-29) - 2 = 6 – Sub-rede 1: 192.168.0.0– Sub-rede 2: Sub1 + Qhosts + 2 S2: 192.168.0.8
Obtenção de bloco de
endereços
• Assim, teremos
# Rede Broadcast 1 192.168.0.0 192.168.0.7 2 192.168.0.8 192.168.0.15 3 192.168.0.16 192.168.0.23 4 192.168.0.24 192.168.0.31 ... ... ... 32 192.168.0.248 192.168.0.47Obtenção de Endereço para
Host
• Duas formas
– Forma manual: administrador de rede configura o IP
– Protocolo de Configuração Dinâmica de Hospedeiros (DHCP)
Fragmentação IP
• Diferentes tecnologias de enlace
– Diferentes tamanhos de quadros – Ex: Ethernet <= 1500 bytes
• MTU: Maximum Transmission Unit
• Solução IPv4
Fragmentação IP
• Fluxo:
– Datagrama chega no roteador – Após determinar o repasse:
• Verifica o MTU do enlace
• Caso o tamanho seja maior que MTU:
Fragmentação
• Pedaços do datagrama são denominados Fragmentos IP – colocados em novos
Fragmentação IP
• Exemplo:
– Datagrama A: 4000 bytes
– Dados úteis: 3980 + 20 cabeçalho – MTU Enlace: 1500 bytes
Fragmentação IP - Exemplo
# Bytes (de carga
útil) ID Deslocamento (para reconstrução) Flag 1 1480 bytes 777 0 1 (há mais) 2 1480 bytes 777 185 (Pois 185*8 bytes = 1480) 1 (há mais) 3 1020 bytes (3980 – 2*1480) 777 370 (Pois 370 * 8 = 2960) 0 (último)
Fragmentação IP
• Problemas
– É possível que um fragmento “se perca” na rede (IP não é confiável)
– Reconstrução dos fragmentos nos sistemas finais
Exercício em sala:
Fragmentação
• Considere o Datagrama B na Figura,
de 3600 bytes
• Carga útil:
3580 bytes
Monte uma tabela com as informações dos fragmentos:
Carga útil, ID, Deslocamento (porções de 4 bytes) e Flag
IPv6
• No começo da década de 1990,
iniciou-se o desenvolvimento de um
sucessor do IPv4
• Estimou-se que os endereços IPs
estavam acabando
– Consequência: nenhuma outra sub-rede poderia se conectar à Internet
IPv6
• Sucessor do IPv4
– IPv5 foi descartado
• Principal modificação
– Aumento na quantidade de bits para endereçamento: 128 bits
– Cabeçalho de 40 bytes
IPv6 - Modificações
• Capacidade de endereçamento Expandida – IP de 128 bits
– “O mundo não ficará sem endereços IP” (Kurose,2010)
• Cabeçalho
– Tamanho fixo de 40 bytes
– Vários campos IPv4 foram descartados ou ficaram como opcionais
• Rotulação do Fluxo
– Permite atribuir prioridade a certos tipos de tráfego dentro de um fluxo
IPv6 - Modificações
• Sem fragmentação e remontagem
– No IPv6, essas operações realizadas apenas na fonte/destino
• Roteador pode devolver: “Erro: pacote muito grande”
– Melhora o desempenho do repasse nos roteadores
• Sem Soma de verificação
– Processo era calculado em cada roteador (IPv4)
– Melhor desempenho nos roteadores; responsabilidade repassada às
Transição IPv4 – IPv6
• Inviável trocar “da noite para o dia”
• Mudança gradual
– Longo prazo
• Duas abordagens de compatibilidade
– Pilha Dupla – Tunelamento
Transição IPv4 – IPv6
Transição IPv4 – IPv6
• Pilha Dupla
– Um datagrama IPv6 é mapeado para um IPv4
• Cabeçalho – IPv6 -> Cabeçalho IPv4 • Dados IPv6 -> Dados IPv4
– Um datagrama IPv4 deverá ser usado – É possível que dois nós IPv6 acabem
usando IPv4
– Dados específicos podem ser perdidos
Transição IPv4 – IPv6
• Tunelamento
– Túnel: conjunto de roteadores IPv4 intervenientes a dois roteadores IPv6 – Resolve o problema dos campos de
cabeçalho perdidos
– Datagrama IPv6 é encapsulado no campo de dados do IPv4
PROTOCOLOS: DHCP, NAT
E ICMP
Protocolo DHCP
• Dynamic Host Configuration Protocol
• Criado para que um host consiga um
endereço IP automaticamente
• Protocolo útil em diversas situações
– IPs temporários permitem utilização de um conjunto menor de endereços
• Organização de 2 mil clientes mas com, no máximo, 400 clientes conectados ao mesmo tempo
Protocolo DHCP
• Características
– Cliente-Servidor
– 4 etapas para alocação de novo endereço
Protocolo DHCP
• Etapas
1. Descoberta DHCP
• Mensagem DHCP DISCOVER é enviada pelo cliente para a rede, com endereço IP de destino:
255.255.255.255 (Broadcast)
2. Oferta DHCP
• Servidor responde com um DHCP OFFER com IP de destino Broadcast e com os IPs disponíveis para o cliente
3. Requisição DHCP
• Cliente requisita um IP da lista de disponíveis
4. DHCP ACK
• Servidor responde a requisição com uma confirmação (ACK)
Protocolo NAT
• Network Address Translation
• Protocolo que traduz endereços de
rede
– Rede Interna e Rede Externa
• Permite a expansão de endereços
IPv4
• Permite a utilização de endereços de
forma exclusiva
Protocolo NAT
• Utiliza uma tabela de tradução no
roteador
– Uma máquina dentro da rede se “passa” pelo roteador
– O roteador sabe mapear requisições de diferentes clientes na sub-rede
Protocolo NAT - Classificações
• NAT estático
– “Um-para-um”
– Cada endereço IP é mapeado para outro de forma fixa
• NAT dinâmico
– Endereços IP internos mapeados para uma faixa de valores
– Dinâmico: útil quando os IPs são temporários • NAT simétrico
– Todo endereço IP é mapeado para um único endereço IP
– Cada host é identificado por um valor de porta (Figura anterior)
Protocolo ICMP
• Protocolo de Mensagens de Controle
da Internet
– Internet Control Message Protocol
• Utilização mais comum para
comunicação de erros
– E de testes na rede: ping ...
• Mensagens ICMP carregadas em
datagramas IP
Protocolo ICMP
• Alguns tipos de mensagens
Tipo de
Mensagem Código Descrição
0 0 Echo reply (ping)
3 0 Rede de destino inalcançável 3 3 Porta de destino inalcançável
... ... ...
8 0 Echo request (ping)
ALGORITMOS DE
ROTEAMENTO
Algoritmos de Roteamento
• Algoritmos de Estado de Enlace
• Algoritmos de Vetor de Distâncias
• Protocolos
– RIP – OSPF – BGP
Algoritmos de Roteamento
• Finalidade simples
– Dado um conjunto de roteadores, um algoritmo descobre um “bom” caminho entre eles
• Problemas de roteamento formulados
com grafos
• Grafo G = (N,E)
– N nós
– E arestas, onde cada aresta é um par de nós do conjunto N
Algoritmos de Roteamento
N = {u,v,x,w,y,z} E ={(u,v), (u,x), (u,w),(v,x), (v,w),(x,w), (x,y), (w,y), (w,z), (y,z)} A cada link é associado um custoAlgoritmos de Roteamento
• Custo entre u e v
– C(u,v)
• Custo de um caminho igual à soma
dos custos de cada link
Algoritmos de roteamento -
Classificação
• Abordagem Centralizada
– Algoritmo contem informação “global” da rede
• Cada nó tem o mapa completo da rede
– Todos os custos devem ser conhecidos – Algoritmos de Estado de Enlace
• Abordagem Distribuída
– Nenhum nó tem informação completa de todos os custos
– Executa de forma iterativa e distribuída
– Algoritmos de Vetor de
Algoritmos de Estado de
Enlace
• Algoritmo de Dijkstra
• Calcula o caminho de menor custo entre um nó fonte (u) e todos os outros nós
• D(v):
– custo do caminho de menor custo da fonte até v (até a v-ésima iteração)
• P(v):
– nó anterior ao longo do caminho de menor custo desde a fonte até v
• N’:
– subconjunto de nós, onde v pertence a N’ se o caminho de menor custo for
Algoritmo de Estado de Enlace
1 Inicialização: 2 N’ = {u}
3 para todos os nos v
4 se v e adjacente a u
5 entao D(v) = c(u,v) 6 senao D(v) = ∞
7
8 Loop
9 ache w não em N’ tal que D(w) é um mínimo 10 acrescente w a N’
10 atualize D(v) para todo v adjacente a w e não em N’:
11 D(v) = min( D(v), D(w) + c(w,v) ) 12 até N’ = N
Algoritmo de Estado de Enlace
1 Inicialização: 2 N’ = {u}
3 para todos os nos v
4 se v e adjacente a u
5 entao D(v) = c(u,v) 6 senao D(v) = ∞
7
8 Loop
9 ache w não em N’ tal que D(w) é um mínimo 10 acrescente w a N’
10 atualize D(v) para todo v adjacente a w e não em N’:
11 D(v) = min( D(v), D(w) + c(w,v) ) 12 até N’ = N
/* novo custo para v é o custo anterior para v
ou o menor custo de caminho conhecido para w mais o custo de w a v */
Exemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞Exemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞ 1 ux 2, u 4, x 2, x ∞Exemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞ 1 ux 2, u 4, x 2, x ∞ 2 uxy 2, u 3, y 4, yExemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞ 1 ux 2, u 4, x 2, x ∞ 2 uxy 2, u 3, y 4, y 3 uxyv 3, y 4, yExemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞ 1 ux 2, u 4, x 2, x ∞ 2 uxy 2, u 3, y 4, y 3 uxyv 3, y 4, y 4 uxyv w 4, yExemplo
Etapa N’ D(v), p(v) D(w), p(w) D(x), p(x) D(y), p(y) D(z), p(z) 0 u 2, u 5, u 1, u ∞ ∞ 1 ux 2, u 4, x 2, x ∞ 2 uxy 2, u 3, y 4, y 3 uxyv 3, y 4, y 4 uxyv w 4, y 5 N’=NAlgoritmo de Estado de Enlace
• Nem sempre o custo é o mesmo– Entre u,v e v,u
• Alguns tipos de custos reais
– Inversamente relacionado à largura de banda – Inversamente relacionado ao congestionamento
• Algoritmos atuais não relacionam o custo explicitamente ao congestionamento
– Diretamente relacionado à distância – Associar um custo monetário
• Como informar os custos?
– Transmissão broadcast de estado de
enlace: Todos os nós têm a visão da rede
Algoritmo de Vetor de
Distâncias
• Não utiliza informação global
• Calcula de forma distribuída, iterativa e
assíncrona
– Não requer que os nós executem
• Algoritmos de Estado de Enlace:
– Cada nó deve ter informação global da rede
• Algoritmos de Vetor de Distâncias
– Custos dos vizinhos diretamente ligados são conhecidos
Algoritmo de Vetor de
Distâncias
• Definições
– Custo c(x,v): custo do vizinho (v) diretamente ligado à x
– Vetor de distâncias Dx contendo estimativa dos custos de x para qualquer y em N
– Vetor de distância dos vizinhos Dv para cada vizinho
Algoritmo de Vetor de
Distâncias
• Equação de Bellman-Ford
Dx(y) = minv {c(x,v) + Dv(y)} para cada y em N
• Min é calculado sobre cada v (vizinho
de x)
– Quando um nó recebe um novo vetor Dv do vizinho, atualiza seu próprio Dx
Algoritmo de Vetor de
Distâncias
1 Inicialização: para cada nó x 2 para todo y em N
3 Dx(y) = c(x,y) /* se não é vizinho = ∞ */ 4 para cada vizinho w
5 Para cada destino y: Dw(y) = ? 6 para cada vizinho w
7 Envia um vetor Dx para w
8 Loop
9 Aguarda; /* até que ocorra alguma mudança */
10 para cada y em N
11 Dx(y) = minv [c(x,y) + Dv(y)] /*Bellman*/
12 Se Dx(y) mudou para algum y
13 Envia um vetor Dx para todos os w
Exemplo
i: 1
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0Após a 1ª iteração, cada nó informa seus custos aos demais
Exemplo
i:
2
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0 X X Y Z X Y 2 0 1 Z 7 1 0 Y X Y Z X 0 2 7 Y Z 7 1 0 Z X Y Z X 0 2 7 Y 2 0 1 Z Em x, novo cálculo é realizado (linhas 10-11) Em y e z também deve ser calculado novamenteExemplo
i:
2
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0 X X Y Z X Y 2 0 1 Z 7 1 0 Y X Y Z X 0 2 7 Y Z 7 1 0 Z X Y Z X 0 2 7 Y 2 0 1 ZDx(y) = min [ c(x,y)+Dx(x) , c(x,z) + Dz(y) ] = min [2+0,7+1] = 2
Dx(z) = min [ c(x,z)+Dz(z) , c(x,y) + Dy(z) ] = min [7+0,2+1] = 3
Exemplo
i:
2
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0 X X Y Z X 0 2 3 Y 2 0 1 Z 7 1 0 Y X Y Z X 0 2 7 Y Z 7 1 0 Z X Y Z X 0 2 7 Y 2 0 1 ZDx(y) = min [ c(x,y)+Dx(x) , c(x,z) + Dz(y) ] = min [2+0,7+1] = 2
Dx(z) = min [ c(x,z)+Dz(z) , c(x,y) + Dy(z) ] = min [7+0,2+1] = 3
Mudou o valor! Informa os demais (linhas 12-13)
Exemplo
i:
2
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0 X X Y Z X 0 2 3 Y 2 0 1 Z 7 1 0 Y X Y Z X 0 2 7 Y 2 0 1 Z 7 1 0 Z X Y Z X 0 2 7 Y 2 0 1 Z 3 1 0Exemplo
i:
3
X X Y Z X 0 2 7 Y ∞ ∞ ∞ Z ∞ ∞ ∞ Y X Y Z X ∞ ∞ ∞ Y 2 0 1 Z ∞ ∞ ∞ Z X Y Z X ∞ ∞ ∞ Y ∞ ∞ ∞ Z 7 1 0 X X Y Z X 0 2 3 Y 2 0 1 Z 7 1 0 Y X Y Z X 0 2 7 Y 2 0 1 Z 7 1 0 Z X Y Z X 0 2 7 Y 2 0 1 Z 3 1 0 X X Y Z X 0 2 3 Y 2 0 1 Z 3 1 0 Y X Y Z X 0 2 3 Y 2 0 1 Z 3 1 0 Z X Y Z X 0 2 3 Y 2 0 1 Z 3 1 0Algoritmo de Vetor de
Distâncias
• Problemas
– Mudança no custo do enlace pode causar um loop de roteamento
Algoritmo de Vetor de
Distâncias
1. Y diz a Z que o custo mudou para 60 2. Z não faz nada, pois ele “tem” um
caminho com custo 5 (4+1):
• É menor que 60 3. Assim Y desejará enviar a X por meio de Z • Novo Dy(Z) = 6 – Loop! • Se destino = X
Algoritmo de Vetor de
Distâncias
– Solução: Adição de reversão
envenenada
• Se a rota de z até x passa por y, então z diz (mente) a y que sua rota até x é infinita
• Evita que y e z causem um loop
– Y envia por (x,y)
• Avisa Z – Z percebe que (z,x) é melhor • Avisa Y – Y muda o roteamento para (y,z)+(z,x)
Roteamento Hierárquico
• Na prática, os roteadores não são homogêneos
– Impossível manter apenas um algoritmo com um n° gigantesco de roteadores
• Solução: Grupos
– Sistemas Autônomos (Autonomous Systems – AS)
– Todos os roteadores de um AS rodam o mesmo algoritmo
• Protocolo Intra-AS
– Roteadores que repassam para fora do AS
• Roteadores de Borda (Gateway Routers)
Roteamento Hierárquico
• Cada AS é um conjunto de
roteadores sob o mesmo controle
administrativo
Protocolos de Roteamento
na Internet
• Intra-AS
– RIP (Routing Information Protocol) – OSPF (Open Shortest Path First)
• Inter-AS
RIP
• Algoritmo do tipo Vetor de Distâncias
• Um dos primeiros protocolos
– Ainda é usado em redes pequenas – RIPv2: 1994
• Utiliza contagem de saltos
– Cada enlace tem custo 1 – Salto
• Número de sub-redes que têm de ser atravessadas (incluindo a de destino)
RIP
• Anúncios de rede
– A cada 30 segundos
– Para atualizar a tabela de repasse – 180 segundos se passaram
RIP – Tabela para D
Sub-rede de
Destino Roteador Seguinte N° de saltos até o destino w A 2 y B 2 z B 7 x - 1 ... ... ...
RIP – Tabela para D
Sub-rede de
Destino Roteador Seguinte N° de saltos até o destino w A 2 y B 2 z B 7 x - 1 ... ... ...
RIP
Sub-rede de
Destino Roteador Seguinte N° de saltos até o destino w A 2 y B 2 z B 7 x - 1 ... ... ... A faz um anúncio:
Rede Destino Roteador Seg. Saltos z C 4 ... ... ...
RIP – Nova Tabela para D
Sub-rede de
Destino Roteador Seguinte N° de saltos até o destino w A 2 y B 2 z C 4 x - 1 ... ... ...
OSPF
• Concebido como o sucessor do RIP
• Protocolo de Estado de Enlace
– Algoritmo de menor custo (Dijkstra) – Broadcasting de informação de enlace
• OSPF permite
– Um roteador construir um mapa de todo o AS
• Custos dos enlaces
– Configurados pelo administrador de rede
• Também pode definir como o n° de saltos
OSPF
• Características
– Transmite o estado do enlace a cada 30 min.
• Independente de mudança
– Mensagem HELLO
• Inspeção de funcionamento aos vizinhos
OSPF
• Avanços do OSPF
– Segurança:
• Troca de mensagens pode requerer autenticação
– Simples ou MD5 com chaves pré-configuradas
• Impede alterações maliciosas em tabelas de roteamento
– Caminhos múltiplos de igual custo
– Suporte integrado para roteamento unicast e multicast
– Suporte para hierarquia dentro de um AS
• Recomendado para grandes instituições
BGP
• Inter-AS
• O protocolo padrão para roteamento
entre ASs atual
• BGP permite
– Obter informações de alcance de sub-rede de AS vizinho
– Propagar informações de alcance para dentro do AS
– Determinar rotas para as sub-redes
BGP
• Em essência, o BGP agrega tudo
– Permite sub-redes se conectarem com o restante da Internet
• Pares de roteadores estabelecem uma
sessão BGP
– Sessão Externa (eBGP): entre AS
– Sessão Interna (iBGP): no mesmo AS
• No BGP
– Destinos não são hospedeiros
– Destinos são prefixos na notação CIDR (classless)
BGP
• Cada AS tem um identificador
– ASN (AS Number)
• Em uma sessão BGP
– Roteador anuncia um prefixo de endereço
– Inclui atributos BGP
• AS-PATH: contém cada AS que o anuncio já percorreu (evita um possível loop)
• NEXT-HOP: interface do roteador que inicia o AS-PATH
BGP
• Assim, por meio de eBGP ou iBGP
– Roteador distribui rotas aos internos no AS
• Seleção de rota (mesmo prefixo)
– Rota recebe um valor de preferência local
• Política do administrador
– Se mesma política, verifica o AS-PATH
• Mais curto é selecionado
– Novo empate?
• NEXT-HOP mais próximo • Identificadores extras
Roteamento Unicast e
Multicast
• Definições
– Unicast: única origem e único caminho – Broadcast: um nó origem para todos
os nós de destino (de uma rede)
– Multicast: um nó origem emitindo para um grupo (subconjunto) de nós na rede
Roteamento Broadcast
• Unicast de N caminhos
• Inundação Não controlada
• Inundação Controlada
Roteamento Broadcast
Unicast de N caminhos
• Abordagem mais simples
• Dados N nós de destino, o nó fonte
– Faz N cópias do datagrama
– Endereça cada cópia a um destino diferente
– Transmite as N cópias usando roteamento unicast
Roteamento Broadcast
Unicast de N caminhos
• Várias desvantagens
– Ineficiência para calcular rotas broadcast
• Enlace único: N datagramas pelo mesmo enlace ao invés de transmitir apenas 1 e criar cópias no nó seguinte
– Sobrecarga no nó origem
– Necessário conhecer os destinatários (e seus endereços)
Roteamento Broadcast
Inundação Não Controlada
• Um nó fonte envia cópias de um
datagrama para todos os vizinhos
– Quando Ri recebe um datagrama D broadcast, duplica para todos os
vizinhos