HTTP/2 GOAWAY- und RST_STREAM-PCAP-Analyse: Debuggen von Reset-Streams, Proxy-Limits und gRPC-Fehlern

So diagnostizieren Sie HTTP/2 GOAWAY-, RST_STREAM-, gRPC-nicht verfügbare Fehler, Proxy-Stream-Limits, TLS-ALPN-Aushandlung, Verbindungswiederverwendung und Beweise für die Paketerfassung.

http2 goaway, rst_stream, grpc nicht verfügbar, Proxy-Reset, alpn, PCAP-Analyse, http2 troubleshooting

HTTP/2-Fehler können schwer zu diagnostizieren sein, da eine TCP-Verbindung viele Streams übertragen kann. Eine einzelne Anfrage kann mit „RST_STREAM“ fehlschlagen, die gesamte Verbindung kann „GOAWAY“ empfangen oder ein gRPC-Client kann „UNAVAILABLE“, „INTERNAL“, „CANCELLED“ oder „Stream Reset“ melden. Benutzer suchen nach „HTTP2 GOAWAY pcap“, „RST_STREAM-Analyse“, „gRPC-Stream-Reset-Paketerfassung“, „HTTP/2-Proxy-Reset“ und „ALPN-HTTP2-Fehlerbehebung“, wenn Protokolle nicht erklären, ob der Client, Proxy, Load Balancer oder Server den Stream beendet hat.

PCAP-Chirurgie ist nützlich, da HTTP/2-Beweise TLS, ALPN, Verbindungszeitpunkt, Stream-Resets und TCP-Schließverhalten bewahren müssen. Wenn TLS verschlüsselt ist und Schlüssel nicht verfügbar sind, zeigen Paketerfassungen weiterhin Timing, TCP-Resets, Verbindungswiederverwendung und manchmal entschlüsseltes HTTP/2 nur in kontrollierten Umgebungen an.

HTTP/2-Verbindung vs. Stream

HTTP/2 multiplext mehrere Streams über eine Verbindung. Ein Stream-Reset ist nicht dasselbe wie ein TCP-Verbindungs-Reset.

  • „RST_STREAM“: Ein Stream wurde abgebrochen oder ist fehlgeschlagen.
  • „GOAWAY“: Der Endpunkt schließt oder entleert die HTTP/2-Verbindung.
  • TCP FIN/RST: Die zugrunde liegende Verbindung wird geschlossen oder abgebrochen.

Anwendungen fassen diese häufig zu einem Fehler zusammen. Paketnachweise und Protokolle sollten sie trennen.

ALPN-Verhandlung

HTTP/2 über TLS hängt normalerweise von ALPN ab. Der TLS-Handshake handelt „h2“ oder ein anderes Protokoll aus. Wenn ALPN HTTP/2 nicht aushandelt, können Client und Server zurückfallen oder ausfallen.

Bewahren:

  • ClientHello ALPN-Erweiterung.
  • Vom Server ausgewählter ALPN, sofern sichtbar.
  • TLS-Warnungen.
  • TCP wird während des Handshakes zurückgesetzt.

Wenn HTTP/2 nie ausgehandelt wurde, debuggen Sie „RST_STREAM“ noch nicht.

GOAWAY

„GOAWAY“ teilt dem Peer mit, dass auf dieser Verbindung keine neuen Streams erstellt werden sollen. Dies kann während des ordnungsgemäßen Entleerens, der Bereitstellung, der Alterung der Proxy-Verbindung oder des Lastausgleichsverhaltens normal sein. Es wird zu einem Problem, wenn Clients entleerende Verbindungen falsch wiederverwenden oder wenn GOAWAY während aktiver Anfragen erscheint.

Wichtige Fragen:

  • Wer hat GOAWAY geschickt?
  • Was war die letzte Stream-ID?
  • Sind aktive Streams fehlgeschlagen?
  • Hat der Client es erneut versucht, eine neue Verbindung herzustellen?
  • Tritt GOAWAY im Alter mit fester Verbindung auf?

RST_STREAM

„RST_STREAM“ beendet einen HTTP/2-Stream. Zu den Ursachen gehören:

  • Kundenstornierung.
  • Server lehnt eine Anfrage ab.
  • Proxy-Timeout.
  • Problem mit der Flusskontrolle.
  • Maximales Stream-Limit.
  • gRPC-Frist überschritten.
  • Backend-Reset vom Proxy übersetzt.

Die Stream-ID und das Timing sind wichtig. Ohne sie ist die Paketgeschichte unvollständig.

Die TCP-Schicht ist immer noch wichtig

HTTP/2 sitzt auf TCP. Wenn es bei der zugrunde liegenden Verbindung zu Neuübertragungen, Nullfenstern, Zurücksetzungen, MTU-Problemen oder Leerlaufzeitüberschreitungen kommt, können HTTP/2-Fehler zweitrangig sein.

Korrelat:

  • Stream-Reset-Zeit.
  • TCP-Neuübertragungen vor dem Zurücksetzen.
  • FIN/RST-Absender.
  • Leerlaufintervall.
  • TLS close_notify, falls sichtbar.

Checklist

Verwenden Sie diesen Workflow:

  1. Behalten Sie den DNS-, TCP- und TLS-Handshake bei.
  2. Bestätigen Sie, dass ALPN HTTP/2 ausgehandelt hat.
  3. Identifizieren Sie, ob der Fehler auf Stream- oder Verbindungsebene auftritt.
  4. Suchen Sie nach GOAWAY-Zeitpunkt und Absender.
  5. Suchen Sie in entschlüsselten Traces oder Protokollen nach RST_STREAM-Timing und Stream-ID.
  6. Mit Proxy-/Load-Balancer-Protokollen korrelieren.
  7. Überprüfen Sie TCP-Neuübertragung, Nullfenster, FIN und RST.
  8. Überprüfen Sie, ob der Client den Vorgang korrekt wiederholt.
  9. Behalten Sie beim Trimmen das Paket-Timing bei.
  10. Kombinieren Sie pcap-Beweise mit HTTP/2-Debug-Protokollen, wenn sie verschlüsselt sind.

Endgültige Diagnose

HTTP/2 GOAWAY- und RST_STREAM-Fehler sind keine generischen Netzwerkfehler. Dabei handelt es sich um Stream- und Verbindungssteuerungssignale, die mit ALPN, Proxy-Verhalten, gRPC-Fristen, TCP-Zustand und Verbindungswiederverwendung korreliert werden müssen.

PCAP Surgery trägt dazu bei, die Zeitachse zu bewahren, sodass HTTP/2- und gRPC-Fehler auf die richtige Ebene reduziert werden können: TLS-Aushandlung, Stream-Reset, Verbindungsentzug, Proxy-Timeout oder TCP-Transportfehler.