Resumen

  • Un datagrama UDP puede transportar varios paquetes QUIC completos, incluidos Initial, Handshake y datos de aplicación.
  • Cada paquete conserva su protección, espacio de números de paquete, procesamiento, ACK y estado de pérdida.
  • La observabilidad debe guardar datos por paquete y relacionarlos por separado con los recibos de la aplicación.

Una captura puede mostrar Initial, Handshake y 1-RTT en el mismo datagrama UDP. Esa imagen describe una decisión de transporte, no un evento indivisible. Para QUIC, cada paquete completo es una unidad procesable; UDP es el sobre que puede llevar una o varias de esas unidades.

La coalescencia reduce sobrecarga. Puede disminuir el número de datagramas necesarios para terminar el establecimiento criptográfico y comenzar el intercambio de datos. El receptor debe poder localizar y procesar cada paquete. Initial, 0-RTT y Handshake incluyen un campo Length que permite encontrar los límites. Un paquete de cabecera corta no tiene Length y solo puede ir al final. Retry y Version Negotiation no se coalescen con otro paquete, y no se deben combinar paquetes con distintos identificadores de conexión.

La envoltura común no cambia la semántica. Cada paquete coalescido se procesa individualmente y se confirma por separado, como si hubiera llegado en otro datagrama UDP. Si uno no puede descifrarse, el receptor puede descartarlo o almacenarlo temporalmente, pero debe intentar procesar los demás. Por eso, un panel que registra una sola entrega del handshake elimina información que el protocolo conserva expresamente.

Initial, Handshake y los datos de aplicación usan espacios de números de paquete distintos. Un ACK identifica paquetes dentro del espacio al que pertenece; la cercanía física no forma una sola secuencia ni un solo dominio de confirmación. Tampoco existe una retransmisión conjunta. Cuando se declara perdida una unidad, QUIC vuelve a enviar la información de sus tramas en paquetes nuevos. No reutiliza el número del paquete original.

Hay una diferencia importante entre coalescencia y multiplexación. Un paquete QUIC puede contener varias tramas. Si ese paquete se pierde, pueden quedar bloqueados los flujos cuyos datos estaban dentro de él, mientras otros flujos avanzan. Esa consecuencia proviene de compartir un paquete, no de colocar paquetes completos distintos en un mismo datagrama UDP.

La regla de 1200 bytes para Initial es una excepción específica de transporte. Los datagramas UDP que llevan Initial deben alcanzar ese mínimo mediante relleno o coalescencia; un servidor descarta un Initial recibido en un datagrama menor. No se debe convertir esa condición de tamaño en una regla general de destino compartido para todos los paquetes contenidos.

RFC 9000 ofrece una prueba adicional. Salvo la regla de relleno de los datagramas con Initial, cambiar la agrupación de paquetes en datagramas UDP no tiene efecto funcional sobre la conexión, aunque puede cambiar el rendimiento. El registro correcto conserva identificador y punto de captura, tamaño total, offsets y longitudes, identificadores de conexión, tipos, niveles de cifrado, espacios y números disponibles, resultado de descifrado y procesamiento, tramas, línea de ACK, declaración de pérdida, relación de información retransmitida, flujos, cumplimiento de 1200 bytes y papel de una sonda PMTU. El recibo de aplicación queda aparte.

Ver un datagrama demuestra que se observó una transmisión desde un punto concreto. No demuestra que todos sus paquetes se descifraran, se procesaran o se confirmaran juntos. Tampoco demuestra recuperación tras una pérdida, llegada de bytes al espacio de usuario, finalización de un mensaje, almacenamiento duradero o conclusión de una operación comercial.