Arquitetura de um Roteador

Até aqui, estudamos como os roteadores roteiam (plano de controle) e repassam (plano de dados) pacotes. Mas como exatamente um roteador está organizado internamente? Quais são seus componentes-chave? Como um roteador consegue processar milhões de pacotes por segundo, retirar-os de uma porta de entrada, consultando uma tabela de roteamento, e encaminhá-los para a porta de saída correta — tudo enquanto mantém a qualidade de serviço e evita congestionamento?

Este capítulo analisa a arquitetura interna de um roteador: suas portas de entrada e saída, o elemento de comutação (switching fabric) que as conecta, e os diferentes tipos de comutação que determinam o desempenho e a capacidade de throughput de um roteador moderno.

Visão Geral da Arquitetura de um Roteador

Um roteador é um computador especializado com uma função clara: encaminhar pacotes da porta de entrada para a porta de saída correta. Apesar dessa simplicidade conceitual, sua arquitetura é notavelmente sofisticada.

ComponenteFunção PrincipalLocalização
Portas de Entrada (Input Ports)Receber pacotes do meio físico, verificar erros e identificar a porta de saídaPeriférico — conecta a roteadores/hosts vizinhos
Portas de Saída (Output Ports)Enviar pacotes processados para o próximo salto (roteador ou host)Periférico — conecta a roteadores/hosts vizinhos
Elemento de Comutação (Switching Fabric)Conectar portas de entrada às portas de saída, transferindo pacotes entre elasNúcleo — coração do roteador
Processador de Roteamento (Routing Processor)Executar protocolos de roteamento (BGP, OSPF), manter tabelas de roteamentoControl Plane — processamento periódico

Visualizacao: fluxo interno entre os componentes

Use a animacao abaixo para observar o caminho completo de cada pacote dentro do roteador: entrada, fabric e saida. O processador de roteamento aparece separado para reforcar que ele alimenta tabelas/politicas, mas nao participa do caminho critico de cada pacote.

Funcionalidades das Portas de Entrada

Uma porta de entrada não é apenas um conector físico — ela realiza várias operações em alta velocidade (microsegundos por pacote).

OperaçãoDescriçãoComplexidade
Terminação do Link FísicoReceber sinais do meio (fibra, cobre, wireless) e converter em bitsHardware ASIC (Application-Specific IC)
Verificação de ErrosChecar FCS (Frame Check Sequence) e descartar quadros corrompidosHardware ASIC
Parsing do Cabeçalho IPExtrair endereço IP de destino do pacoteHardware ASIC
Consulta da Tabela de Roteamento (Forwarding Table Lookup)Encontrar a porta de saída para o IP destinoTCAM (Ternary CAM) — busca muito rápida
Atualização de TTLDecrementar TTL e descartar se TTL=0Hardware simples
Processamento QoSClassificar pacotes, marcar prioridade, descartar se necessário (AQM)Hardware configurable

O Gargalo: Consulta da Tabela de Roteamento

A operação mais crítica é a consulta da tabela de roteamento — ela deve ser feita em microsegundos para não criar fila. Um roteador de 100 Gbps pode receber 100+ milhões de pacotes por segundo; se cada consulta levar 1 microsegundo, os pacotes chegam mais rápido que podem ser processados.

Solução: usar TCAM (Ternary Content Addressable Memory), um tipo especial de memória que faz buscas associativas em um único ciclo de clock, em vez de buscas sequenciais. A TCAM permite buscas por prefixo (ex: "todos os IPs que começam com 10.0.0.0/8"), essencial para roteamento hierárquico por CIDR.

Tipo de MemóriaAcessoTempoUso
RAM (regular)Acesso direto (requer índice exato)1-10 nsBuffer de pacotes
CAM (Content Addressable Memory)Busca por conteúdo exato10-100 nsRoteamento baseado em exatidão (não comum)
TCAM (Ternary CAM)Busca por prefixo ou máscara (com wildcards)100-300 nsRoteamento IPv4/IPv6 (padrão ouro)

Funcionalidades das Portas de Saída

Uma porta de saída também executa várias tarefas:

OperaçãoDescrição
Fila de Saída (Output Queuing)Armazenar pacotes aguardando transmissão se a taxa de chegada exceede a taxa de saída
Escalonamento (Scheduling)Escolher qual pacote transmitir próximo (FIFO, Priority, WFQ)
Marcação e Descarte (Marking & Dropping)Marcar/descartar pacotes conforme política QoS (RED, WRED)
Processamento do Link de SaídaAdaptar pacote ao formato do enlace (Ethernet, PPP, etc.)
Terminação do Link FísicoConverter bits em sinais (fibra, cobre, wireless)

O Gargalo: Fila de Saída

Diferentemente da fila de entrada, a fila de saída é o ponto crítico em muitos roteadores. Se múltiplas portas de entrada querem enviar para a mesma porta de saída simultaneamente, a porta de saída só pode transmitir a uma taxa R (a capacidade do enlace). Os pacotes excedentes são enfileirados.

Se a fila cresce infinitamente, a latência explode e os pacotes são descartados. Dois algoritmos modernos evitam isso:

RED (Random Early Detection): Em vez de deixar a fila encher completamente antes de descartar, o RED descarta pacotes probabilisticamente quando a fila atinge um limiar. Isso avalia os emissores a reduzir cwnd antes de a fila transbordar.

WRED (Weighted RED): Versão melhorada que descarta pacotes de fluxos de baixa prioridade mais frequentemente que os de alta prioridade.

AlgoritmoPolíticaBenefício
FIFO + Drop-tailDescartar quando fila está cheiaSimples, mas causa perdas abruptas e sincronização TCP
REDDescartar aleatoriamente quando fila > thresholdAvalia fluxos gradualmente, reduz sincronização
WREDRED com pesos — fluxos altos descartam maisDiferencia qualidade de serviço por classe

O Elemento de Comutação (Switching Fabric)

O elemento de comutação é o coração do roteador — o que conecta todas as portas de entrada às portas de saída. Existem três arquiteturas principais, cada uma com trade-offs diferentes de custo, complexidade e desempenho.

1. Comutação via Memória (Memory Switching)

A abordagem mais simples: usar a memória principal como intermediária.

Como funciona:

  1. Uma porta de entrada lê um pacote do link físico.
  2. Envia o pacote via barramento para a memória (controlada pelo CPU).
  3. O CPU consulta a tabela de roteamento e copia o pacote para a localização de memória correspondente à porta de saída.
  4. A porta de saída lê da memória e transmite o pacote.

Limitações:

  • O barramento é o gargalo — todos os pacotes devem cruzá-lo duas vezes (entrada → memória → saída).
  • A memória tem uma largura de banda máxima — se um roteador tem 8 portas de 10 Gbps cada (80 Gbps total), a memória deve suportar 160 Gbps (80 Gbps entrada + 80 Gbps saída).
  • Limite prático: ~1-2 Gbps de throughput total.

Vantagem:

  • Muito simples de implementar e gerenciar.
  • Usada em roteadores antigos e baratos.
MétricaValor
Throughput máximo1-2 Gbps (limitado pela memória)
LatênciaMicrosegundos (moderada)
CustoBarato
EscalabilidadeRuim

Visualizacao: comutacao via memoria e gargalo central

Nesta simulacao, varios fluxos chegam em paralelo, mas so um pacote por vez atravessa o ciclo completo entrada -> memoria -> saida. Repare como as filas de entrada crescem quando a carga aumenta.

2. Comutação via Barramento (Bus Switching)

Substituir o intermediário de memória por um barramento compartilhado entre todas as portas.

Como funciona:

  1. Uma porta de entrada coloca um pacote no barramento com um rótulo de destino.
  2. Todas as portas de saída veem o pacote simultaneamente.
  3. A porta de saída cuja identidade corresponde ao rótulo aceita e armazena o pacote.

Limitações:

  • O barramento ainda é um gargalo — apenas um pacote pode cruzá-lo por vez.
  • A latência varia conforme a contenção (quantos pacotes competem).
  • Limite prático: ~10-20 Gbps de throughput total.

Vantagem:

  • Mais rápido que comutação via memória (sem overhead de CPU).
  • Ainda relativamente simples.
MétricaValor
Throughput máximo10-20 Gbps (limitado pela contenção do barramento)
LatênciaMicrosegundos (moderada, com variação)
CustoModerado
EscalabilidadeLimitada

Visualizacao: barramento compartilhado e arbitragem

Aqui o pacote nao passa pela memoria principal, mas o barramento continua sendo um recurso unico. O roteador arbitra qual entrada transmite no instante atual, enquanto as outras esperam em fila.

3. Comutação via Rede de Interconexão (Crossbar Switching)

A arquitetura mais sofisticada: usar uma rede completa de interconexão (geralmente uma matriz cruzada) que permite múltiplos pacotes em paralelo.

Como funciona: Uma rede de interconexão é uma matriz N×N de switches (cruzamentos). Cada porta de entrada está conectada a uma linha da matriz; cada porta de saída está conectada a uma coluna. Um switch de cruzamento em (i, j) conecta a entrada i à saída j quando necessário.

Vantagens:

  • Paralelismo completo: múltiplos pacotes podem ser comuados em paralelo (ex: entrada 1→saída 2 enquanto entrada 3→saída 1).
  • Largura de banda não compartilhada — não há gargalo único.
  • Throughput teórico = soma de todas as taxas de entrada = 100% utilização.

Limitações:

  • Bloqueio de head-of-line (HOL): se duas portas de entrada querem enviar para a mesma porta de saída, apenas uma pode passar, e a outra é bloqueada (precisa esperar na fila de entrada).
  • Arquitetura complexa — requer switches e controladores sofisticados.
  • Custo mais alto.
MétricaValor
Throughput máximoAté 100% (teórico) — soma das capacidades das portas
LatênciaNanosegundos (muito baixa)
CustoAlto (exige muitos switches e lógica)
EscalabilidadeBoa até N=100 (N² switches)

Visualizacao: matriz crossbar com comutacao paralela

Observe que varios pacotes podem atravessar a matriz ao mesmo tempo quando as saidas desejadas sao diferentes. Quando duas entradas disputam a mesma saida no mesmo instante, uma delas fica bloqueada e aguarda no buffer de entrada.

Mitigando HOL Blocking em Crossbar

O problema de HOL blocking (duas entradas querendo a mesma saída) pode ser reduzido com buffering de entrada:

Buffering de Entrada (Input Buffering):

  • Manter uma pequena fila em cada porta de entrada para pacotes que não conseguem ser comuados imediatamente.
  • Usar virtual output queues (VOQs): manter uma fila separada para cada saída em cada entrada.

Com VOQs, o controlador do crossbar pode aplicar um algoritmo de matching (ex: encontrar uma correspondência bipartida máxima entre entradas bloqueadas e saídas disponíveis) para maximizar o throughput.

ArchiteturaBufferingHOL BlockingThroughput
MemoryCentralizado (memória principal)Não (CPU arbitra)Baixo
BusCentralizado (buffer no barramento)Não (arbitragem simples)Moderado
Crossbar (sem VOQ)Nenhum ou entrada simplesSim — reduz throughput a ~58%Moderado
Crossbar (com VOQ)Separado por entrada+saídaMínimo — algoritmo de matchingAlto (até ~100%)

Comparação das Três Arquiteturas

CaracterísticaVia MemóriaVia BarramentoVia Crossbar
Throughput máximo1-2 Gbps10-20 Gbps100+ Gbps
Latência de comutaçãoModeradaBaixaMuito baixa
HOL BlockingNenhum (FIFO global)NenhumPossível (mitigável)
EscalabilidadeRuimLimitadaBoa
ComplexidadeBaixaModeradaAlta
CustoBaixoModeradoAlto
Aplicação típicaRoteadores SOHO antigosRoteadores SMB/branchEnterprise, ISP backbone

Desempenho Geral de um Roteador

O desempenho total de um roteador é determinado por três fatores principais:

1. Throughput Agregado

O throughput agregado é a taxa máxima em que um roteador pode processar pacotes, somando todas as portas.

  • Exemplo 1: Roteador com 4 portas de 10 Gbps cada, switching fabric via barramento.

    • Capacidade teórica = 4 × 10 Gbps = 40 Gbps.
    • Throughput real ≈ 20 Gbps (limitado pelo barramento).
    • Utilização = 20/40 = 50%.
  • Exemplo 2: Roteador com 48 portas de 1 Gbps cada, switching fabric via crossbar.

    • Capacidade teórica = 48 × 1 Gbps = 48 Gbps.
    • Throughput real ≈ 48 Gbps (nenhum gargalo).
    • Utilização = 48/48 = 100%.

2. Latência de Encaminhamento

A latência é o tempo entre a chegada de um pacote e sua saída. Deve ser baixo (idealmente < 1 ms) para não degradar aplicações sensíveis a atraso.

ComponenteContribuição Típica
Propagação física (velocidade da luz)~3-5 ns/metro (negligenciável para roteadores)
Física → porta de entradaMicrosegundos
Consulta de roteamento (TCAM)~100-300 ns
Comutação (via fabric)~nanosegundos a microsegundos (depende da arquitetura)
Fila de saídaVariável (função do congestionamento)
Processamento do linkMicrosegundos
Total (sem congestionamento)~1-10 microsegundos

3. Eficiência Energética

Roteadores modernos, especialmente em data centers, consomem quantidades significativas de energia. A eficiência é medida em bits por joule — quantos bits é possível rotear por unidade de energia consumida.

  • Roteadores antigos (via memória): ~1 Gbit/joule.
  • Roteadores modernos (crossbar + ASIC): ~10-100 Gbit/joule.

Otimizações comuns:

  • ASIC customizado em vez de CPU genérica.
  • Low-power switching fabrics.
  • Desativação de portas não utilizadas.

Simulação Interativa de Tráfego

O laboratório abaixo permite explorar arquitetura, número de portas, taxa de chegada e distribuição de destino, com métricas em tempo real.

Resumo

A arquitetura interna de um roteador balanceia throughput, latência e custo:

AspectoSolução
Recepção de pacotesPortas de entrada com TCAM para roteamento rápido
TransmissãoPortas de saída com filas inteligentes (RED, WRED) e escalonamento (QoS)
Conectividade internaSwitching fabric (memória, barramento ou crossbar)
EscalabilidadeCrossbar com VOQ e algoritmos de matching
ConfiabilidadeRedundância e monitoramento em tempo real

Roteadores de núcleo da Internet (backbone) usam switching fabrics via crossbar com dezenas de portas de alta velocidade, enquanto roteadores de acesso ou SOHO podem usar comutação via barramento ou memória para reduzir custos. A escolha da arquitetura reflete a missão do roteador e as restrições orçamentárias.