Análise HTTP/2 GOAWAY e RST_STREAM PCAP: depuração de fluxos de redefinição, limites de proxy e falhas de gRPC

Como diagnosticar erros HTTP/2 GOAWAY, RST_STREAM, gRPC indisponíveis, limites de fluxo de proxy, negociação TLS ALPN, reutilização de conexão e evidências de captura de pacotes.

http2 goaway, rst_stream, grpc indisponível, redefinição de proxy, alpn, análise pcap, http2 troubleshooting

As falhas HTTP/2 podem ser difíceis de diagnosticar porque uma conexão TCP pode transportar muitos fluxos. Uma única solicitação pode falhar com RST_STREAM, toda a conexão pode receber GOAWAY ou um cliente gRPC pode relatar UNAVAILABLE, INTERNAL, CANCELLED ou stream reset. Os usuários procuram por "HTTP2 GOAWAY pcap", "análise RST_STREAM", "captura de pacote de redefinição de fluxo gRPC", "redefinição de proxy HTTP/2" e "solução de problemas ALPN HTTP2" quando os logs não explicam se o cliente, proxy, balanceador de carga ou servidor finalizou o fluxo.

A cirurgia PCAP é útil porque a evidência HTTP/2 deve preservar TLS, ALPN, tempo de conexão, redefinições de fluxo e comportamento de fechamento de TCP. Se o TLS estiver criptografado e as chaves não estiverem disponíveis, as capturas de pacotes ainda mostram tempo, redefinições de TCP, reutilização de conexão e, às vezes, HTTP/2 descriptografado apenas em ambientes controlados.

Conexão HTTP/2 vs fluxo

HTTP/2 multiplexa vários fluxos em uma conexão. Uma redefinição de fluxo não é o mesmo que uma redefinição de conexão TCP.

  • RST_STREAM: um stream foi cancelado ou falhou.
  • GOAWAY: o endpoint está fechando ou esgotando a conexão HTTP/2.
  • TCP FIN/RST: a conexão subjacente é fechada ou abortada.

Os aplicativos geralmente os agrupam em um único erro. Evidências de pacotes e logs devem separá-los.

Negociação ALPN

HTTP/2 sobre TLS geralmente depende do ALPN. O handshake TLS negocia h2 ou outro protocolo. Se o ALPN não negociar o HTTP/2, o cliente e o servidor poderão retroceder ou falhar.

Preservar:

  • Extensão ALPN ClientHello.
  • ALPN selecionado pelo servidor onde visível.
  • Alertas TLS.
  • O TCP é redefinido durante o handshake.

Se o HTTP/2 nunca foi negociado, não depure RST_STREAM ainda.

GOAWAY

GOAWAY informa ao par que nenhum novo fluxo deve ser criado nessa conexão. Isso pode ser normal durante drenagem normal, implantações, envelhecimento da conexão proxy ou comportamento do balanceador de carga. Torna-se um problema quando os clientes reutilizam conexões drenadas incorretamente ou quando GOAWAY aparece durante solicitações ativas.

Perguntas importantes:

  • Quem enviou GOAWAY?
  • Qual foi o último ID do stream?
  • Os fluxos ativos falharam?
  • O cliente tentou novamente em uma nova conexão?
  • O GOAWAY acontece na idade da conexão fixa?

RST_STREAM

RST_STREAM encerra um fluxo HTTP/2. As causas incluem:

  • Cancelamento do cliente.
  • Servidor rejeitando uma solicitação.
  • Tempo limite do proxy.
  • Problema de controle de fluxo.
  • Limite máximo de fluxo.
  • Prazo gRPC excedido.
  • Redefinição de back-end traduzida por proxy.

O ID do stream e o tempo são importantes. Sem eles, a história do pacote fica incompleta.

A camada TCP ainda é importante

HTTP/2 fica em TCP. Se a conexão subjacente tiver retransmissões, janela zero, redefinição, problemas de MTU ou tempo limite de inatividade, os erros de HTTP/2 poderão ser secundários.

Correlacionar:

  • Hora de redefinição do fluxo.
  • Retransmissões TCP antes da redefinição.
  • Remetente FIN/RST.
  • Intervalo ocioso.
  • TLS close_notify se visível.

Checklist

Use este fluxo de trabalho:

  1. Preservar o handshake de DNS, TCP e TLS.
  2. Confirme o HTTP/2 negociado pelo ALPN.
  3. Identifique se a falha é no nível do fluxo ou no nível da conexão.
  4. Procure o horário e o remetente do GOAWAY.
  5. Procure o tempo RST_STREAM e o ID do fluxo em rastreamentos ou logs descriptografados.
  6. Correlacione com logs de proxy/balanceador de carga.
  7. Verifique a retransmissão TCP, janela zero, FIN e RST.
  8. Verifique se o cliente tenta novamente corretamente.
  9. Preserve o tempo do pacote ao cortar.
  10. Combine evidências pcap com logs de depuração HTTP/2 quando criptografados.

Diagnóstico final

Os erros HTTP/2 GOAWAY e RST_STREAM não são falhas genéricas de rede. Eles são sinais de controle de fluxo e conexão que devem ser correlacionados com ALPN, comportamento de proxy, prazos gRPC, integridade TCP e reutilização de conexão.

A cirurgia PCAP ajuda a preservar a linha do tempo para que as falhas de HTTP/2 e gRPC possam ser reduzidas à camada certa: negociação TLS, redefinição de fluxo, drenagem de conexão, tempo limite de proxy ou falha de transporte TCP.