Roteamento por Inundação (Flooding): Como Funciona e Usos

Vamos falar sobre uma das técnicas mais primitivas e, ao mesmo tempo, mais robustas de roteamento: o Flooding (ou Inundação).

Imaginem que vocês precisam espalhar uma fofoca urgente. Vocês não escolhem uma pessoa específica; vocês gritam para todos que estão perto, e essas pessoas gritam para os próximos, e assim por diante. Isso é o Flooding.

1. Como funciona na prática?

Quando um roteador implementa o Flooding, a regra é simples e não exige inteligência global da rede:

Regra de Ouro: Todo pacote que chega por uma porta é reencaminhado instantaneamente para todas as outras portas de saída, exceto aquela por onde ele chegou.

2. O Problema: A Tempestade de Pacotes

Se deixarmos esse processo solto, criamos um caos. Imaginem um pacote rodando em círculos infinitamente.

Isso geraria uma quantidade infinita de pacotes duplicados, travando a rede. Para evitar esse desastre, precisamos de “freios”:

  • O Contador de Saltos (Hop Counter): É como um “prazo de validade” no cabeçalho do pacote. Se definirmos que o pacote pode dar 10 saltos, a cada roteador que ele passa, diminuímos 1. Chegou a zero? O pacote é descartado. Geralmente, usamos o diâmetro da rede (o caminho mais longo possível) como valor inicial.
  • Controle por Rastreamento (Número de Sequência): Uma técnica mais inteligente. O roteador de origem marca cada pacote com um ID único. Os outros roteadores mantêm uma lista (“Eu já vi o pacote #50 da Origem X?”). Se o roteador já viu aquele pacote antes, ele o descarta e não inunda a rede novamente.
    • Dica de otimização: Para a lista não ficar gigante na memória, usa-se um contador $k$. O roteador assume: “Já vi tudo o que veio antes do número $k$”.

3. Se é tão “bruto”, por que usamos?

No dia a dia, para carregar uma página web, o Flooding é péssimo (gera muito lixo/tráfego inútil). Mas ele tem superpoderes específicos:

  1. Robustez Extrema (Modo Guerra): Imaginem uma rede militar onde roteadores estão sendo destruídos. Se existir pelo menos um caminho físico entre a origem e o destino, o Flooding vai encontrá-lo, pois ele tenta todos os caminhos possíveis simultaneamente.
  2. Configuração Zero: O roteador só precisa saber quem são seus vizinhos diretos. Nada de tabelas complexas.
  3. Redes Sem Fio (Wireless): O Wi-Fi já funciona naturalmente assim. Quando você transmite, todos no alcance do rádio recebem o sinal.
  4. O “Padrão Ouro” para Comparação: Como o Flooding percorre todos os caminhos em paralelo, ele sempre vai achar o caminho mais curto possível. Nenhum outro algoritmo consegue entregar um pacote mais rápido que ele (ignorando o congestionamento que ele mesmo cria). Por isso, usamos o Flooding como base para medir a eficiência de outros algoritmos mais complexos.

Conclusão sobre roteamento Flooding

O Flooding é ineficiente para tráfego comum porque duplica dados demais, mas é imbatível quando precisamos garantir que uma mensagem chegue a todos (broadcast) ou quando a rede é muito instável e precisamos de garantia de entrega a qualquer custo.

Veja mais:

Algoritmo de Dijkstra e Roteamento: O Caminho Mais Curto na Internet

O que é protocolo de roteamento ?

Como funciona a camada de rede

Controle de Congestionamento em Redes: Otimizando Eficiência e Alocação de Banda

O que é IPv6 ?

https://www.cisco.com/c/en/us/support/docs/switches/catalyst-6000-series-switches/23563-143.html

Juliana Mascarenhas

Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer