Resumo

  • O transmissor escolhia aleatoriamente ECT(0) ou ECT(1). A marca CE apagava a escolha original, deixando o receptor sem parte da informação necessária para inventar um histórico sem congestionamento.
  • A paridade acumulada não era uma contagem de marcas, uma autenticação ou uma prova de culpa. O próprio congestionamento legítimo exigia suspender a conferência e depois sincronizá-la novamente.
  • Encerrar o experimento em 2018 significou rever o uso de um ponto de código diante de adoção limitada, não declarar que o mecanismo havia sido demonstrado incorreto.

Um resultado pequeno demais para ser um relatório completo

Um bit tem apenas dois resultados possíveis. Não pode, sozinho, contar todos os pacotes marcados, guardar os horários do congestionamento e explicar o que ocorreu no caminho. A utilidade da soma do ECN Nonce estava em outra tarefa: verificar se uma resposta combinava com informação que o transmissor havia guardado.

Essa distinção ajuda a entender por que a história não é simplesmente a de uma versão mais detalhada de ECN. Mais precisão na resposta e maior resistência à ocultação são objetivos diferentes. Um mecanismo pode avançar em um deles sem resolver o outro. A soma do nonce era deliberadamente compacta porque tentava conferir uma alegação, não reproduzir todo o estado da rede.

A proposta de N. Spring, D. Wetherall e D. Ely apareceu como Experimental no RFC 3540, em junho de 2003. Seu recurso mais interessante não era acrescentar dados à marca de congestionamento. Era aproveitar um dado que essa marca eliminava.

O pacote continua, a distinção desaparece

O ECN clássico do RFC 3168, publicado em setembro de 2001, usa quatro combinações em um campo de dois bits. Not-ECT é 00; ECT(1), 01; ECT(0), 10; CE, 11. Um roteador pode marcar um pacote compatível para informar congestionamento em vez de descartá-lo. O receptor TCP devolve a indicação por ECE, e o transmissor sinaliza sua reação com CWR.

Na semântica clássica, os dois valores ECT permitem a mesma ação do roteador. Ao substituir qualquer um deles por CE, o equipamento produz uma saída igual para entradas diferentes. Os dados da aplicação podem chegar sem perda, enquanto a escolha original entre ECT(0) e ECT(1) deixa de estar disponível no pacote recebido.

O nonce fazia o transmissor escolher essa alternativa ao acaso, representando zero ou um. Ele mantinha os valores esperados. O receptor, por sua vez, só conhecia os que realmente haviam sobrevivido ao percurso. Não era necessário ensinar o roteador a autenticar o destinatário nem a guardar uma nova sequência secreta: sua marcação normal criava a diferença de informação.

Se o receptor tentasse esconder CE, teria de apresentar uma resposta consistente com algo que não havia recebido. O transmissor poderia compará-la com a própria memória. A ausência de informação passava a ser um obstáculo à falsificação de um relato inteiramente limpo.

Isso não equivale a criptografar a comunicação. O mecanismo não certifica quem opera o receptor, não protege a integridade de toda a conexão e não obriga um transmissor malcomportado a respeitar as regras. Ele torna verificável uma afirmação estreita, relacionada à decisão de continuar enviando dados.

Por que a soma atravessava vários pacotes

O TCP pode atrasar confirmações, perder confirmações no retorno e confirmar cumulativamente dados de vários segmentos. Pedir apenas o eco do último valor aleatório recebido deixaria uma brecha: omitir uma confirmação poderia também eliminar a obrigação de responder pelos valores anteriores.

O RFC 3540 usa então uma soma módulo dois, ou paridade. O valor inicial é um e o resultado volta no sinalizador NS. O receptor incorpora os valores conforme a confirmação cumulativa avança sobre os dados em ordem. O transmissor associa as somas esperadas aos números de sequência finais dos pacotes originais.

Dados que chegam fora de ordem entram na conta quando a confirmação cumulativa alcança sua posição. Não há uma prova separada para cada bloco SACK, nem uma soma de verificação do conteúdo da aplicação. O significado de NS depende do avanço da confirmação e dos limites originais dos segmentos. Separar o bit desse contexto é retirar dele a pergunta à qual respondia.

Um bit uniforme desconhecido deixa uma chance de um meio para adivinhar a paridade correta. Portanto, a primeira tentativa de ocultação pode passar. Novas perdas de informação aleatória independente podem criar outras oportunidades de detectar inconsistência, mas confirmações repetidas que dependem do mesmo bit apagado não se tornam automaticamente testes independentes.

Essa ressalva evita um erro de análise: transformar o volume de registros em confiança estatística sem verificar suas dependências. A informação realmente nova, e não o número de linhas de uma captura, é que sustenta novas oportunidades independentes de conferência.

A rede honesta também apaga o nonce

O receptor correto não sabe reconstruir o valor escondido sob CE. A especificação manda ignorar o nonce ausente, o equivalente a acrescentar zero, e devolver ECE normalmente. Durante a recuperação daquele congestionamento, o transmissor suspende a conferência da soma.

Depois de reduzir a janela e enviar novos dados com CWR, ele pode restabelecer a referência quando chega a confirmação pertinente. A soma informada pelo receptor permite sincronizar novamente o cálculo; um deslocamento de um bit pode representar o ajuste. Não se recupera a escolha perdida. Evita-se que ela estrague todas as comparações seguintes.

É uma diferença importante entre verificar e punir. A pausa impede que o receptor seja cobrado por uma informação que o próprio funcionamento correto da rede retirou dele. Uma divergência dentro dessa etapa não deve ser apresentada como prova de que CE foi escondido.

Nas regras de 2003, retransmissões eram Not-ECT e não transportavam nonce. Intervalos não-ECT escolhidos pelo transmissor também exigiam lidar com a sincronização. Essas são condições históricas do experimento, não uma proibição eterna para experimentos posteriores com retransmissões e pacotes de controle. O RFC 8311 viria a flexibilizar essas restrições de experimentação.

Conferir não identifica o responsável

O RFC 3540 distingue a verificação de sua consequência. Conferir é opcional; reagir a uma soma incorreta é uma escolha de política local. Quando o transmissor toma uma medida, o documento discute pelo menos a reação equivalente a ECE, além de reduções mais fortes ou de parar de enviar ECT. Não estabelece uma punição uniforme para todos os participantes.

Há motivos concretos para não transformar o resultado em acusação. Um fragmento IPv4 sem marca pode revelar o nonce original, mesmo que outro fragmento tenha recebido CE. Isso enfraquece a proteção contra ocultar a marcação. Erros de bits no cabeçalho IPv6 podem produzir somas erradas. Confirmações parciais precisam ser interpretadas em relação ao limite do segmento original.

A sequência aleatória não precisa ter qualidade criptográfica, mas seus próximos valores não podem ser facilmente previstos a partir dos já observados. Ela também não deve ser reutilizada para outra finalidade. O protocolo não oferece proteção adicional de integridade da conexão. Uma incompatibilidade pode indicar erro ou interferência no caminho da sinalização sem revelar quem a causou.

Até a indicação inicial de suporte tem alcance modesto. Um NS diferente de zero nas respostas iniciais permite inferir que o outro extremo conhece a função; a própria especificação diz que isso não é negociação. Não se trata de uma capacidade de autenticação negociada nem de uma identidade validada.

O ganho continua real, mas delimitado: o transmissor dispõe de um fundamento próprio para questionar um relato de ausência de congestionamento e ajustar sua conduta. Não recebe, com isso, autoridade para explicar todos os eventos do percurso.

O espaço reservado também precisava prestar contas

Em novembro de 2006, o RFC 4774 examinou usos alternativos de ECN, incluindo identificação, implantação gradual e convivência com roteadores clássicos, equipamentos sem ECN e tráfego concorrente. A dificuldade não era apenas inventar outro significado, mas fazer implementações independentes concordarem sobre ele.

O RFC 7560, de agosto de 2015, tratou de requisitos para respostas de congestionamento mais precisas. Relatou que naquele momento não eram conhecidas implantações do nonce em pilhas TCP. Ao discutir integridade e incentivos à cooperação, não tornou esse mecanismo a única solução possível. Conferir uma paridade não substituía obter um retrato mais detalhado das marcas.

Em janeiro de 2018, o RFC 8311 registrou que o nonce funcionava conforme especificado e havia sido usado em ambientes limitados, mas não alcançara utilização ampla. Explicou o encerramento do experimento e a reclassificação do RFC 3540 de Experimental para Historic. A decisão não dependia de afirmar que ninguém o implementara ou que seu princípio estava errado.

O documento relatou um estudo com dados de 2014: nenhum dos 581.711 servidores IPv4 testados usou ambos os valores ECT após a negociação de ECN. Entre 17.028 servidores IPv6, quatro usaram os dois, mas isso podia indicar nonce ou remarcação incorreta. É uma observação datada, de uma amostra e com interpretação incerta. Não é uma contagem atual de toda a Internet, nem uma reprodução independente feita para este artigo.

Com outros usos experimentais e outras formas de integridade surgindo, reservar ECT(1) apenas para o nonce já não se justificava. Liberar o ponto de código, porém, não dava licença para qualquer semântica incompatível. O RFC 8311 exigia RFCs Experimental adequados no âmbito da IETF e preservava as responsabilidades de controle de congestionamento e coexistência.

Em janeiro de 2023, o Experimental RFC 9331 definiu ECT(1) como identificador L4S, em outro uso. O registro do campo ECN da IANA mantém as quatro combinações e remete aos documentos experimentais pertinentes. Encontrar ECT(1) em uma captura recente não basta para identificar o nonce de 2003. Essa continuidade dos bits tampouco comprova, aqui, desempenho, adoção generalizada ou segurança universal de L4S.

O legado do experimento está menos em um detector infalível do que em duas formas de contenção. A conferência deve parar quando a comparação não é válida. A reserva de uma interpretação comum também pode terminar quando o uso observado já não sustenta sua exclusividade. Reconhecer esses limites não diminui o que o mecanismo conseguiu demonstrar.