Resumen

  • STREAM identifica un rango de bytes dentro de un flujo ordenado mediante el stream ID, el offset y los campos de codificación.
  • La transmisión, la recuperación de pérdidas y la entrega a la aplicación no conservan los límites de la trama STREAM original.
  • Para afirmar que existe un mensaje o una transacción se necesitan el encuadre del protocolo de aplicación, su análisis y una confirmación de procesamiento.

El error aparece cuando una observación de transporte recibe un significado que pertenece a la aplicación. Un exportador muestra una trama STREAM completa y el operador registra una solicitud terminada. La observación solo establece que se codificó un rango de bytes para un flujo concreto y en una posición concreta. No convierte el contenedor de transporte en un mensaje.

RFC 9000 describe los streams como flujos ordenados de bytes expuestos a las aplicaciones. El receptor coloca los datos usando el stream ID y el Offset. Ese orden es local a un único stream. Los bytes de streams distintos no adquieren una secuencia global de ejecución porque una captura los enumere en cierto orden. El orden de las líneas de la traza no demuestra el orden de la aplicación.

OFF, LEN y FIN pertenecen a la codificación del transporte. OFF indica si aparece el campo Offset; si no aparece, los datos empiezan en el offset cero. LEN indica si aparece Length; si falta, los datos ocupan el resto del paquete. FIN fija el límite final de bytes del stream, y el tamaño final se obtiene del offset y de la longitud de los datos. Ninguno de esos campos define la sintaxis de la aplicación, un separador de registros ni el éxito de una operación.

Cuando hay pérdida, QUIC no retransmite el paquete completo ni recrea la segmentación original de sus tramas. La información del stream vuelve a enviarse en nuevas tramas STREAM. Una trama posterior puede cubrir otro rango y transportar los mismos bytes lógicos. Por eso la forma de la primera trama no es una identidad persistente de mensaje. Pueden llegar rangos duplicados y descartarse; los bytes correspondientes a un mismo offset no pueden cambiar. Un contenido diferente en el mismo offset sería una violación del protocolo.

El extremo receptor DEBE ser capaz de almacenar datos de stream fuera de orden hasta el límite de control de flujo anunciado, para reconstruir y entregar el flujo ordenado. Una implementación puede, de forma independiente, exponer información sobre la entrega fuera de orden a la aplicación; esa exposición no es un requisito de QUIC. QUIC no impone un modelo de mensajes. Un protocolo superior puede repartir un mensaje entre varias tramas, colocar varias estructuras dentro de un rango transportado o entregar solo un fragmento de una estructura mayor.

FIN puede cerrar el sentido de envío sin demostrar que los datos sean válidos, hayan sido analizados, aceptados, ejecutados o guardados de forma duradera.

El registro operativo debe mantener separados el identificador y la hora de observación, la dirección de los extremos, el espacio de números de paquete y el número de paquete, el stream ID y la dirección, el offset, la longitud codificada o la regla del resto del paquete, la huella del rango de bytes, FIN y el tamaño final cuando se conozca, el tratamiento de rangos duplicados, la trazabilidad de la retransmisión, la evidencia de ACK, la finalización del reensamblado, el identificador de trama o registro del protocolo de aplicación, el resultado del analizador, el comprobante de procesamiento y el resultado empresarial duradero.

Cuando no sea necesario conservar el contenido, puede usarse una huella que preserve la privacidad. Este registro es una recomendación operativa, no un requisito de QUIC.

La frontera probatoria es estrecha. STREAM puede demostrar que se codificó un rango de bytes para un stream determinado. El procesamiento autenticado de paquetes puede aportar evidencia de recepción en el extremo de transporte. Eso no demuestra un mensaje, una solicitud, una respuesta, una ejecución, un compromiso duradero ni éxito. Tampoco demuestra orden entre streams. Los límites del mensaje, el tamaño final, los rangos de datos criptográficos y la evidencia de ACK siguen siendo cuestiones distintas.