Resumen

  • El campo Packet Number contiene solo 1 a 4 bytes menos significativos y está cubierto por header protection.
  • El receptor elige un candidato cercano al siguiente número esperado usando estado del mismo packet-number space.
  • Un valor repetido, un salto, un wrap o un fallo de autenticación no demuestra por sí solo pérdida, replay, ataque ni impacto.

Una captura pasiva parece ofrecer una secuencia sencilla, pero en QUIC esa apariencia puede ser engañosa. Un analista puede leer dos veces el mismo valor de 16 bits y llamarlo replay, o interpretar un salto como millones de paquetes perdidos. RFC 9000 y RFC 9001 establecen otra frontera: deben distinguirse los bytes protegidos sobre el cable, el valor truncado una vez retirada la protección y el número completo reconstruido. El packet number completo es un entero de 0 a 2^62-1. Sin embargo, el campo Packet Number de un encabezado long o short transporta solo de 1 a 4 bytes de los bits menos significativos.

También se protegen la longitud del campo y esos bits.

El contexto no es una secuencia global. QUIC separa Initial, Handshake y application data; este último espacio contiene 0-RTT y 1-RTT. Todos empiezan en cero. Además, cada extremo mantiene números de envío y recepción por dirección. El mismo entero puede pertenecer a paquetes distintos. Retry y Version Negotiation no llevan Packet Number ni se reconocen mediante ACK ordinarios.

El emisor selecciona el ancho con conocimiento del estado. Antes de recibir un acuse en un espacio, debe usar el número completo. Después, escoge suficientes bits para cubrir más del doble de la diferencia entre el paquete que envía y Largest Acknowledged. Los ejemplos de RFC 9000 muestran el procedimiento y pueden relacionarlo con números contiguos no reconocidos; no son umbrales operativos ni una promesa de que todo paquete retrasado se decodificará correctamente.

El receptor primero elimina header protection. Solo entonces obtiene el valor truncado claro y la longitud. El algoritmo de muestra usa tres entradas: el mayor número procesado correctamente en el mismo espacio, el valor truncado y la cantidad de bits. El siguiente esperado es el mayor número recibido más uno. Dentro de la ventana de codificación, se selecciona el candidato más cercano a esa expectativa. Por eso el observador pasivo no puede reconstruir de forma fiable a partir de los bytes aislados.

La ambigüedad aparece cuando un paquete llega después de muchos números superiores. Sus bits bajos pueden acercarse a un candidato que no era el pretendido. Un fallo de deprotección o autenticación no basta, por tanto, para atribuir una infracción al par o un ataque. El número reconstruido participa en el nonce AEAD; al retirar packet protection, el encabezado desprotegido hasta Packet Number se autentica como associated data. Adivinar un valor no equivale a autenticarlo.

Largest Acknowledged ofrece una prueba diferente: es un entero completo de longitud variable, no un campo truncado y enmascarado. Las ACK ranges describen paquetes recibidos y procesados en el espacio del paquete que transporta el ACK. Pueden sostener un hecho autenticado del extremo, pero no rellenan retrospectivamente huecos de la captura ni trasladan evidencia a otro espacio. La gestión de duplicados ocurre después de quitar protección y recuperar el número; dos valores bajos iguales aún no son un duplicado autenticado.

El registro independiente debe conservar dirección e identidad, tipo y espacio, bytes protegidos y cobertura de captura, contexto de claves, resultado de deprotección, longitud y valor bajo, mayor número procesado, siguiente esperado, ventana, número completo y autenticación. Los ACK completos y sus rangos deben conservar su espacio. Pérdida, retransmisión, reordenamiento, replay, inyección, ataque, ruta y entrega a la aplicación requieren evidencia separada. Un hueco puede proceder de la posición de captura, muestreo, truncado, estado criptográfico o tráfico real; las RFC no lo convierten en una declaración de pérdida.

La cuestión tampoco es spin bit de TR-038, key phase de TR-042, semántica de entrega de ACK de TR-045, coalescencia de TR-049 ni sondeo PTO de TR-051. Es la reconstrucción protegida y dependiente del estado.