Resumo

  • No RFC 1992, provedores podiam limitar a divulgação, receptores podiam selecionar o que guardar, mapas internos podiam variar por solicitante e caches podiam envelhecer; bases completas e idênticas não eram requisito.
  • O usuário ou seu agente arcava com o cálculo de rotas especiais, e um caminho produzido por um dispositivo evitava loops de decisões incompatíveis, sem comprovar exatidão, segurança, QoS, implementação ou adoção.

Há duas formas de reagir a um mapa que não cabe em toda parte. Uma é insistir em reproduzi-lo até que a distribuição se torne o próprio problema de escala. A outra é perguntar qual detalhe cada decisão realmente precisa. Nimrod escolheu a segunda.

O documento de 1996 partia de uma internetwork futura com enorme número de redes, recursos finitos, meios de comunicação diversos e serviços sujeitos a preço, horário, finalidade e qualidade. Nesse ambiente, nem todo equipamento conseguiria conservar toda a informação. Nem todo provedor teria interesse em publicá-la. Uma base incompleta seria frequente mesmo sem segredo comercial ou preocupação de segurança.

O mapa era uma vista, não um espelho

Um mapa Nimrod descrevia conectividade por nodes e adjacências direcionadas. A mesma região física podia aparecer em graus diferentes de detalhe. Um node resumido podia ser substituído recursivamente por um internal map; o representante desse node podia devolver mapas diferentes a solicitantes diferentes.

O efeito era deliberado: dois roteadores poderiam enxergar a mesma região de modos incompatíveis sem que um deles estivesse necessariamente corrompido. Cada vista carregava uma escolha de granularidade, finalidade e divulgação. O RFC afirma, por isso, que não se exigia consistência entre mapas.

Clustering diminuía o número de entidades visíveis. A hierarquia podia agrupar hosts, roteadores, redes e clusters anteriores, usando métodos diferentes em níveis diferentes. A fronteira resultante não precisava coincidir com a estrutura física.

Abstraction diminuía a informação usada para descrever cada entidade. O próprio texto oferece exemplos que revelam perda: remover um serviço disponível em apenas pequena parte do cluster ou representar vários serviços por médias. O resumo economiza estado justamente ao eliminar diferenças. Para um fluxo comum, a diferença pode ser irrelevante; para uma solicitação excepcional, pode ser a única informação importante.

Ocultar e descartar são poderes distintos

O provedor controlava que porção de informação distribuiria e quem a receberia. O receptor controlava o que manteria depois. A primeira decisão podia proteger topologia interna, política de serviço ou condições comerciais. A segunda podia preservar memória, processamento e relevância local.

As duas produzem ausência na base do receptor, mas não a mesma explicação. Um link invisível pode ter sido ocultado, agregado, não solicitado, descartado ou simplesmente ter ficado velho. Avaliar uma rota exige conhecer o processo que criou o vazio, não apenas contar os campos presentes.

O cache completava essa economia. Reutilizar rotas e informações já obtidas poupava demora e tráfego. O RFC, porém, alerta que a informação pode ficar desatualizada e gerar caminhos de baixa qualidade. A idade do dado torna-se parte do risco, embora não apareça necessariamente no pacote encaminhado.

A complexidade acompanhava quem a desejava

Gerar um caminho sob várias restrições costuma ser um problema NP-complete. Nimrod não exigia que todos pagassem esse custo o tempo inteiro. A entidade que queria tratamento especial podia buscar mais dados e dedicar mais computação. Em geral, um dispositivo agiria em nome do usuário.

Como o algoritmo era local, não precisava ser igual em toda parte. Uma nova forma de selecionar rotas poderia entrar em uso sem atualização coordenada de todos os roteadores. Isso tornava a experimentação incremental e concentrava o custo no consumidor da complexidade.

Mas não eliminava assimetria. Um agente sofisticado com mapa rico podia encontrar opções que outro não veria. Um provedor ainda decidia quais detalhes revelar. Capacidade de cálculo não reconstrói um serviço raro removido pela abstração nem uma ligação mantida em segredo. A arquitetura localizava a decisão; não garantia igualdade de informação ou de poder de compra.

Um cálculo único evita um tipo de loop

Quando cada roteador escolhe o próximo salto com uma base diferente, as escolhas podem se contradizer: um aponta para o outro e o segundo aponta de volta. Nimrod separou cálculo e encaminhamento. Um dispositivo formava o caminho com a informação que possuía; os demais executavam o resultado, em vez de recalcular a direção a cada hop.

Os modos distribuíam estado de formas diferentes. Flow mode usava um path-id para estado anteriormente instalado nos roteadores intermediários e permitia incluir requisitos de recursos no pedido de setup. CSC e CSS mode carregavam sequências de connectivity specifications; o pacote mostrava o resultado da política, não os critérios usados. Datagram mode empregava estado predefinido de flow para manter um caminho estritamente sem loop, sem uma source route no molde do IPv4.

Portanto, não é correto reduzir toda a arquitetura a “roteamento na origem”. Nem todo pacote continha uma lista de hops físicos. A propriedade comum era a unidade de escolha: uma rota calculada em um lugar não era reaberta por cada mapa local no percurso.

Essa unidade prova pouco além de seu objetivo. Ela impede que visões incompatíveis se combinem naquele loop. Não prova que a visão usada para calcular era atual ou verdadeira, que o link continua ativo, que o estado foi instalado em todos os pontos ou que banda e atraso anunciados foram entregues. Um pacote que não retorna à origem ainda pode desaparecer antes do destino.

Confiança não substitui correção

Na seção de trust, o RFC diz que um node pode esconder o mapa interno e organizar-se como quiser, desde que cumpra a caracterização externa. Em seguida, mostra uma representação que sugere privacidade sem que a rede física consiga garanti-la. Mesmo informação autenticada vinda de um node confiável pode conter um erro honesto.

Autoria do mapa, integridade da transmissão, fidelidade da abstração, atualidade, execução do setup e resultado observado são afirmações separadas. A autenticação não corrige uma média inadequada nem renova um cache. O RFC 1992 também declara que questões de segurança não são tratadas; ele não é prova de autorização, confidencialidade ou resistência a ataques.

O registro histórico termina antes da implantação

RFC 1992 é Informational e diz que protocolos e bases distribuídas são especificados em outros documentos. RFC 1752 registrou que o IESG considerava Nimrod um projeto de pesquisa excessivo para ser candidato a IPng. RFC 1753 não pressupunha adoção ampla antes de implantação, teste e validação prática. RFC 2102 ainda deixava a geração de rotas unicast ao routing agent e, no multicast, não fixava nem geração nem encaminhamento.

Esses documentos sustentam uma história de arquitetura, não um censo de produtos. A formulação de Lu Heng sobre decisão futura localizada ajuda a ler a liberdade dos algoritmos locais; sua primazia do código em execução impede que publicação vire sinônimo de adoção. A distinção entre camadas de realidade mantém mapa, estado instalado, pacote observado e serviço recebido em registros próprios.

O legado do RFC 1992 está na recusa de pagar pela escala com uma ficção. Nimrod aceitou que ninguém teria o quadro inteiro e protegeu uma propriedade específica ao fazer uma única instância desenhar o caminho. O ganho era não entrar em loop por discordância. O preço continuava aberto: qualidade, frescor, política, computação e entrega precisavam ser verificados um por um.

Fontes