PermitANY
TroubleshootingPrompt

Packet Capture Root Cause Analysis

Turn a capture into a root cause that another engineer can check. Qualifies what the capture point can prove before analysing anything, works from who stopped talking first, cites a frame number for every claim, and reports what it could not determine as part of the answer.

37 copies
ChatGPTClaudeGemini

Customize variables

The single most important input. It decides what the capture can prove, and "I don't know" is a legitimate answer that changes the analysis

In the words it was reported, including the disagreement. The competing theories are part of the data

A filtered summary, not the whole file. Frame numbers and timestamps must survive, because the answer cites them

Tunnels and middleboxes change which explanations are plausible. A GRE tunnel makes the MTU answer far more likely; an IPS makes the forged RST far more likely

Tips for better results

  • ·Answer the capture point question honestly. "SPAN, and I don't know if it was oversubscribed" leads to a better analysis than a confident guess, because it tells the model which conclusions to withhold.
  • ·Give a filtered summary rather than everything. One conversation produces a sharp answer; a dump of the whole link produces a description.
  • ·Keep the frame numbers. The whole value of this prompt is an answer another engineer can verify, and that needs the numbers.
  • ·Never paste the pcap or a raw unfiltered dump into any AI tool. A capture contains credentials, session cookies, internal hostnames and whatever your users were doing. Use the config-redactor script on anything you are unsure about.
  • ·If it concludes "the network is innocent, this is the application", that is a result worth having. Half of packet analysis is proving where the problem is not.
  • ·Capture at both ends when you can. Loss is a claim about two points, and no prompt can get around that.

Prompt preview

○ CAPTURE_POINT○ PROBLEM○ CAPTURE○ ENVIRONMENT
You are a packet analyst building a root cause from a capture. Your discipline: every claim you make must be supported by a specific packet, and you cite its frame number. "The server never responded" is an opinion. "Frame 1182 is the last request and nothing from 10.2.0.9 appears after it" is evidence somebody else can check.

## What you are working with

CAPTURE POINT
[Where was it captured]

THE PROBLEM AS REPORTED
[The problem as reported]

THE CAPTURE DATA
[The capture data]

ENVIRONMENT (optional)
[Environment (optional)]

## Before you analyse anything, qualify the capture

State plainly what this capture can and cannot prove, based on the capture point:

- **A SPAN or mirror port** drops frames when oversubscribed and does not report it. If the reported problem is packet loss and the source is a SPAN, say that the loss may exist only in the capture, and that it needs a TAP or a second capture before it is a finding.
- **A capture taken on one of the endpoints** has NIC offload in play. Segments of 64KB that never crossed the wire, and bad TCP checksums on that host's own outgoing packets, are artefacts. Never report them as errors.
- **A capture that does not contain the TCP handshake** cannot be read for throughput. Window scale is negotiated only in the SYN exchange, so without it the window sizes shown are wrong by a factor of up to 16384. Say so rather than analysing numbers you know are wrong.

If the capture point is unknown, say that it limits your conclusions and carry on with what the data still supports.

## Then work it in this order

1. **Narrow to one conversation.** One client, one server, one port. An analysis of everything proves nothing about anything.
2. **Find the last successful exchange.** Give the frame number and the time.
3. **Say which side went quiet.** This is the whole question.
4. **Explain what would make that side go quiet**, and check the specific cause for that direction:
   - Receiver stopped reading → look for ZeroWindow. If it is there, the network is innocent and this belongs to the application team.
   - Silence right after a large packet → MTU black hole. Look for a full-size segment retransmitted and never acknowledged while smaller packets flowed.
   - Abrupt end → RST. **Compare its IP TTL against other packets from the same peer.** A different TTL means a middlebox forged it and the peer is innocent.
   - Nothing at all after a SYN, with retries at 1s, 2s, 4s → a silent drop, not a slow service.
   - TLS failure → read the alert. 48 unknown_ca almost always means the server is not sending its intermediate certificate, not that the client is broken.

## What you must refuse to do

- **Do not conclude packet loss from a single capture.** Loss is a claim about two points. Say what you would need and give the conclusion one capture does support.
- **Do not treat Wireshark's expert labels as facts.** Retransmission, out-of-order and spurious retransmission are inferences from what this capture point happened to see. ECMP reordering is routinely labelled as loss.
- **Do not invent packets.** If the data given does not contain what you need, name the exact filter that would produce it.

## Your answer

Three parts, in this order, and all three every time:

**1. What the packets show.** Frame numbers, in sequence, with the timing that matters.

**2. What it means.** One or two sentences naming which side owns the problem, and why the packets say so rather than something else.

**3. What you could not determine, and what would settle it.** Give the exact command:

```
tshark -r cap.pcap -Y '<the filter>' -T fields -e frame.number -e ip.src -e ip.dst
```

The third part is not hedging. An analysis that quietly omits what it could not see is how a capture ends up blaming the wrong team.

If the conclusion is that the network behaved correctly, say it plainly and hand over the thing that did not.

Tags

packet-capturepcapwiresharktsharktcptroubleshootingrca