Resumo

  • O RFC 2174 combinava rotas unicast por vetor de distância com uma única árvore de broadcast e multicast enraizada no Virtual Source Switch.
  • Quadros MAPOS não carregavam endereço de origem nem TTL; um loop transitório não podia identificar a origem real nem consumir a própria vida útil.
  • Por isso, rota, VSS, métrica abaixo de 16 e bit de porta eram estados locais de controle, não comprovantes de encaminhamento seguro ou entrega.

Quando não transmitir era o comportamento correto

Depois de receber uma atualização, um switch SSP somava o custo do enlace, comparava a nova métrica e podia trocar o próximo salto. Se o destino recém-aprendido tivesse o menor número de switch alcançável, ele também passava a ser o novo VSS. Tudo parecia pronto.

Ainda assim, uma porta descendente recém-descoberta não recebia broadcast imediatamente. O FORWARD_DELAY_TIMER durava trinta segundos por padrão, equivalentes a três períodos completos de atualização. Nesse intervalo, a relação podia constar da estrutura de controle, mas o encaminhamento continuava proibido.

A espera respondia a duas ausências do formato MAPOS. O quadro tinha destino, mas não origem. O switch não podia usar o emissor real como raiz de uma verificação de caminho reverso. Também não havia TTL. Se árvores provisoriamente incompatíveis criassem um circuito, o quadro não possuía contador capaz de encerrá-lo.

O SSP tratou silêncio como uma decisão. Primeiro, as notícias sobre a topologia precisavam circular; depois, as cópias de dados sem limite próprio poderiam entrar na nova árvore.

Uma fonte que existia apenas para o cálculo

O Virtual Reverse Path Broadcast fazia de conta que todo broadcast ou multicast nascia abaixo de uma única fonte virtual. O VSS era o switch alcançável de menor número.

Cada equipamento o encontrava em sua própria tabela unicast e calculava o menor caminho reverso até ele. Um switch que não fosse a raiz tinha uma porta upstream e zero ou mais portas downstream. O VSS não tinha upstream. Assim, a rede mantinha uma única árvore por vez.

Essa regra não era uma eleição atômica. Todos aplicavam o mesmo critério, mas não necessariamente à mesma fotografia da rede. Uma atualização podia alcançar um switch antes de outro. Durante a mudança, duas escolhas locais podiam parecer válidas e ainda discordar.

Por isso, descobrir um novo VSS ou perder o atual invalidava toda a tabela de broadcast e multicast. Uma mudança apenas downstream não precisava interromper os demais ramos. A raiz alterava a interpretação da árvore inteira; um ramo alterava uma parte.

O bitmap descrevia intenção

Cada bit da tabela correspondia a uma porta. Um indicava que o quadro deveria sair para um nó local ou para um switch upstream ou downstream. Sem bit marcado, o quadro era descartado silenciosamente.

O mapa não era telemetria de resultado. Um bit ativo não provava transmissão física, recepção do vizinho, concordância sobre o VSS ou aceitação no destino. Durante o forward delay, nem sequer representava permissão atual: o protocolo conhecia a relação e ainda a mantinha fechada.

As evidências que criavam os bits também eram diferentes. Um pedido NSP indicava nó local. O próximo salto para o VSS definia upstream. Um poisoned reverse recebido por uma porta sugeria que o switch atrás dela usava o equipamento local no caminho para a raiz, portanto era downstream.

O novo downstream iniciava o atraso de ativação. Depois, PORT_EXPIRATION_TIMER, também de trinta segundos por padrão, avaliava a continuidade da evidência. Novos poisoned reverses renovavam o relógio; a ausência os fazia expirar e limpava o bit. Uma atualização comum vinda do antigo descendente exigia limpeza imediata, pois ele havia mudado de caminho ou de VSS.

O mesmo bit podia estar proposto, aguardando, ativo, renovado, invalidado ou removido. Guardar apenas zero e um eliminaria o motivo da mudança.

Más notícias permaneciam para ser anunciadas

A cada dez segundos, por padrão, o SSP enviava a tabela completa aos vizinhos. Falha local, aumento de métrica ou rota que virava inalcançável também podia disparar atualização imediata. Contudo, enviar depressa não significava convergir de forma simultânea.

O RFC 1058 já havia mostrado como protocolos de vetor de distância conservam crenças antigas e contam até o infinito. O valor 16 representava inalcançável. Split horizon com poisoned reverse e triggered update diminuíam o risco, mas não transformavam múltiplos switches em uma transação única.

Se uma rota ficasse trinta segundos sem renovação, ou se o vizinho atual anunciasse 16, ela saía de serviço. A entrada permanecia por mais trinta segundos, anunciando a própria morte, antes de ser apagada. O garbage collection não tinha o mesmo sentido do forward delay: um preservava informação velha para comunicar invalidez; o outro retinha uma relação nova para impedir uso precoce.

A atualização podia vir de um enlace que não devolvia dados

O documento descreve um problema de conexão pela metade. A recepção podia continuar funcionando enquanto a transmissão falhava. O switch ouvia atualizações SSP, mantinha timers recentes e ainda assim enviava seus quadros para um buraco negro.

Sinais de overhead SONET/SDH podiam oferecer retorno sobre o canal transmitido visto pela outra ponta. Nem todo serviço preservava, porém, a transparência necessária. Receber controle em uma direção não provava transporte de dados na direção contrária.

O RFC 2174 era Informational, não vinha de grupo de trabalho IETF e não integrava o Standards Track. Pressupunha poucos switches. Não documentou adoção ampla, convergência medida, interoperabilidade observada ou incidente real. Segurança não foi discutida.

Seu valor histórico está na separação. Aprender a rota, escolher a raiz, esperar a convergência, liberar a porta e entregar o quadro eram fatos distintos. O SSP recusava a ideia de que uma tabela correta bastava para prometer o próximo resultado.

Fontes

  1. RFC 1058 — Routing Information Protocol
  2. RFC 2171 — MAPOS Version 1
  3. RFC 2173 — Node Switch Protocol
  4. RFC 2174 — Switch-Switch Protocol
  5. RFC 2176 — IPv4 over MAPOS Version 1