Análisis PCAP HTTP/2 GOAWAY y RST_STREAM: depuración de flujos de reinicio, límites de proxy y fallas de gRPC
Cómo diagnosticar errores HTTP/2 GOAWAY, RST_STREAM, gRPC no disponible, límites de flujo de proxy, negociación TLS ALPN, reutilización de conexiones y evidencia de captura de paquetes.
Las fallas de HTTP/2 pueden ser difíciles de diagnosticar porque una conexión TCP puede transportar muchas transmisiones. Una sola solicitud puede fallar con "RST_STREAM", toda la conexión puede recibir "GOAWAY" o un cliente gRPC puede informar "NO DISPONIBLE", "INTERNAL", "CANCELADO" o "restablecimiento de transmisión". Los usuarios buscan "HTTP2 GOAWAY pcap", "análisis RST_STREAM", "captura de paquetes de reinicio de flujo gRPC", "restablecimiento de proxy HTTP/2" y "solución de problemas de ALPN HTTP2" cuando los registros no explican si el cliente, el proxy, el balanceador de carga o el servidor finalizaron el flujo.
La cirugía PCAP es útil porque la evidencia HTTP/2 debe preservar TLS, ALPN, tiempo de conexión, restablecimientos de transmisión y comportamiento de cierre de TCP. Si TLS está cifrado y las claves no están disponibles, las capturas de paquetes aún muestran la sincronización, los restablecimientos de TCP, la reutilización de la conexión y, a veces, HTTP/2 descifrado solo en entornos controlados.
Conexión HTTP/2 frente a transmisión
HTTP/2 multiplexa múltiples flujos a través de una conexión. Un restablecimiento de transmisión no es lo mismo que un restablecimiento de conexión TCP.
RST_STREAM: una transmisión se cancela o falla.GOAWAY: el punto final está cerrando o agotando la conexión HTTP/2.- TCP FIN/RST: la conexión subyacente se cierra o se cancela.
Las aplicaciones a menudo los reducen a un solo error. Las pruebas y los registros de los paquetes deben separarlos.
Negociación ALPN
HTTP/2 sobre TLS generalmente depende de ALPN. El protocolo de enlace TLS negocia "h2" u otro protocolo. Si ALPN no negocia HTTP/2, el cliente y el servidor pueden retroceder o fallar.
Preservar:
- Extensión ClientHello ALPN.
- ALPN seleccionado por el servidor donde sea visible.
- Alertas TLS.
- TCP se restablece durante el protocolo de enlace.
Si HTTP/2 nunca se negoció, no depure RST_STREAM todavía.
GOAWAY
GOAWAY le dice al par que no se deben crear nuevas transmisiones en esa conexión. Puede ser normal durante el drenaje ordenado, las implementaciones, el envejecimiento de la conexión proxy o el comportamiento del equilibrador de carga. Se convierte en un problema cuando los clientes reutilizan incorrectamente las conexiones agotadas o cuando aparece GOAWAY durante las solicitudes activas.
Preguntas importantes:
- ¿Quién envió GOAWAY?
- ¿Cuál fue el último ID de transmisión?
- ¿Fallaron las transmisiones activas?
- ¿El cliente volvió a intentar una nueva conexión?
- ¿GOAWAY ocurre en la edad de conexión fija?
RST_STREAM
RST_STREAM finaliza una secuencia HTTP/2. Las causas incluyen:
- Cancelación de cliente.
- Servidor rechazando una solicitud.
- Tiempo de espera del proxy.
- Problema de control de flujo.
- Límite máximo de transmisión.
- Se superó la fecha límite de gRPC.
- Restablecimiento del backend traducido por proxy.
El ID de la transmisión y el tiempo son importantes. Sin ellos, la historia del paquete está incompleta.
La capa TCP todavía importa
HTTP/2 se encuentra en TCP. Si la conexión subyacente tiene retransmisiones, ventana cero, reinicio, problemas de MTU o tiempo de inactividad, los errores HTTP/2 pueden ser secundarios.
Correlación:
- Tiempo de reinicio de la transmisión.
- Retransmisiones TCP antes del reinicio.
- Remitente FIN/RST.
- Intervalo inactivo.
- TLS close_notify si está visible.
Checklist
Utilice este flujo de trabajo:
- Conserve el protocolo de enlace DNS, TCP y TLS.
- Confirme HTTP/2 negociado por ALPN.
- Identifique si el error es a nivel de transmisión o a nivel de conexión.
- Busque el momento y el remitente de GOAWAY.
- Busque el tiempo de RST_STREAM y el ID de transmisión en seguimientos o registros descifrados.
- Correlacionar con registros de proxy/equilibrador de carga.
- Verifique la retransmisión TCP, la ventana cero, FIN y RST.
- Compruebe si el cliente vuelve a intentarlo correctamente.
- Preserve la sincronización de los paquetes al recortar.
- Combine evidencia de pcap con registros de depuración HTTP/2 cuando esté cifrado.
Diagnóstico final
Los errores HTTP/2 GOAWAY y RST_STREAM no son fallas de red genéricas. Son señales de control de flujo y conexión que deben correlacionarse con ALPN, comportamiento del proxy, fechas límite de gRPC, estado de TCP y reutilización de la conexión.
PCAP Surgery ayuda a preservar la línea de tiempo para que las fallas de HTTP/2 y gRPC se puedan reducir a la capa correcta: negociación TLS, restablecimiento de transmisión, drenaje de conexión, tiempo de espera de proxy o falla de transporte TCP.