Resumo

  • A RFC 3489 combinava três testes Binding para classificar seis situações, embora cada resposta dependesse de socket, servidor, destino, domínio de endereços e instante.
  • A RFC 5389 manteve a observação do endereço mapeado, mas recusou tratá-la como prova de travessia. Faltavam o teste com o par real e um caminho de retransmissão.

Em 2003, a RFC 3489 ofereceu uma árvore de decisão convincente. O teste I pedia resposta normal e comparava o socket local com MAPPED-ADDRESS. O teste II solicitava resposta de outro IP e porta. O teste III mudava apenas a porta. Uma nova consulta a CHANGED-ADDRESS comparava mapeamentos. O resultado nomeava Internet aberta, firewall UDP simétrico ou quatro tipos de NAT.

As observações eram reais; a abrangência do nome é que era excessiva. Cada experiência pertencia a um socket local, um servidor e seu endereço alternativo, uma direção através de um ou mais tradutores, um domínio e um momento. A própria RFC exigia outro endereço ou porta local na repetição, pois o estado criado pelo primeiro teste podia invalidar o segundo. Medir alterava a superfície medida.

O rótulo apagava o destino. Um mapeamento estável diante do servidor STUN podia mudar diante do par pretendido. Um filtro aceitava uma origem e recusava outra. Vários NATs em série apareciam como o comportamento do mais restritivo, sem identificar equipamento, regra ou temporizador. “Tipo” transformava uma relação em identidade da caixa.

O domínio de endereços também delimitava a conclusão. Um servidor fora do ancestral comum podia informar endereço inútil ao outro participante. Dois pares atrás do mesmo NAT podiam falhar usando o mapeamento externo. MAPPED-ADDRESS dizia apenas o que aquele servidor viu naquela requisição; não prometia alcance por qualquer terceiro.

A descoberta de duração acrescentava outra inferência. O cliente mantinha uma associação e deixava outra envelhecer. Sobrecarga podia mudar prazos dinamicamente, associações distintas podiam ter durações diferentes e uma reinicialização podia distorcer o ensaio. O número aprendido não era um contrato de permanência.

Criptografia não ampliava a prova. Segredo compartilhado e integridade autenticavam certos intercâmbios, mas não tornavam uma observação relativa ao servidor válida para outro destino. A RFC 5389 registrou uma vulnerabilidade de endereço mapeado incorreto que, em certas topologias, não tinha solução puramente criptográfica. Autenticidade e alcance eram recibos separados.

O balanço da RFC 5389 foi direto: STUN clássico não funcionava bem o bastante como solução completa. O endereço aprendido às vezes servia e às vezes não; o protocolo não previa nem remediava o fracasso. Muitos NATs não cabiam nas categorias. A revisão retirou os atributos antigos de mudança da base e redefiniu STUN como utilitário dentro de usos completos.

A RFC 5780 separou comportamento de mapeamento e filtragem. ICE, na RFC 8445, reuniu candidatos, formou pares e testou os participantes reais antes de nomear um caminho. TURN, na RFC 8656, ofereceu retransmissão quando a via direta falhou. A pergunta passou de “qual é o tipo?” para “qual par funciona agora e qual é o fallback?”.

A lente de Heng Lu ajuda a ler a correção. Uma especificação inicial mínima conserva a ferramenta comum; cada uso decide servidor, autenticação, tempo e contingência. Separar camadas de realidade impede que socket, resposta STUN, endereço observado, teste do par, nomeação, tráfego e resultado do aplicativo sejam chamados pelo mesmo nome.

Classificar pode resumir evidência. Não pode apagar as condições que a produziram. A RFC 3489 nomeou o NAT; a RFC 5389 devolveu a decisão ao caminho.

Fontes