Troubleshooting Slow Internet with Wireshark: A Step-by-Step Guide
Whether you’re working from home, managing a corporate LAN, or simply gaming online, nothing is more frustrating than sluggish network performance. Wireshark lets you peer under the hood of your traffic and pinpoint exactly where the bottleneck lies. In this guide, we’ll walk you through capturing, filtering, and interpreting packet data to diagnose—and ultimately fix—slow Internet issues.
Step 1: Set Up Your Capture
- Choose the right interface
- For wired connections, pick the Ethernet NIC.
- For Wi‑Fi, select the wireless adapter (ensure in “monitor” or “promiscuous” mode if needed).
- Apply a simple capture filter (to reduce noise)
host 8.8.8.8 or port 80 or port 443
This captures traffic to Google DNS and HTTP/HTTPS.
Tip: Save your capture as .pcapng for later comparison.
Step 2: Get a Bird’s‑Eye View with IO Graphs
Go to Statistics → I/O Graphs.
Plot bytes per tick over time on your main interface.
Look for dips or flat lines where throughput collapses.
If you see repeated troughs, note their timestamps for deeper analysis.
Step 3: Identify Packet Loss & Retransmissions
Excessive retransmissions often signal packet loss:
- Display filter:
tcp.analysis.retransmission
High retransmission rates usually point to:
- Bad cabling or Wi‑Fi signal issues
- NIC driver bugs
- ISP line problems
Step 4: Measure Latency (Round‑Trip Time)
Enable the Round‑Trip Time (RTT) column:
- Right‑click on any column header → Column Preferences.
- Add a new column: Field name = tcp.analysis.ack_rtt, Title = “RTT”.
Sort by “RTT” and inspect the highest values.
Note which flows (IP pairs, ports) have elevated RTTs—these are your latency offenders.
Step 5: Check DNS Resolution Delays
Slow name lookups can stall web pages:
- Display filter:
dns && dns.response_in > 0
Sort by DNS Latency; anything above ~200 ms is suspect. If your local resolver is slow, try switching to a public DNS (e.g., 1.1.1.1, 8.8.8.8) and re‑test.
Step 6: Pinpoint Application‑Level Delays
For HTTP(S) or other application protocols:
- HTTP timing:
- Filter:
http && tcp.port == 80
- Filter:
tls.handshake.type == 1
Long gaps here can indicate server slowness or network congestion.
Step 7: Diagnose Local Network Issues (ARP, DHCP)
Local‑layer problems can masquerade as Internet slowness:
- ARP storms:
arp
Look for excessive ARP requests without replies.
bootp
A slow DHCP lease renewal can disrupt connectivity.
Step 8: Compare Against a “Good” Trace
Always benchmark against a capture taken when speeds are normal:
- Capture a session while Internet is fast.
- Compare key metrics: throughput, retransmission %, RTT, DNS times.
Use Statistics → Compare (Wireshark’s “diff” engine) or simply eyeball the I/O Graphs side by side.
Step 9: Leverage Expert Information
Wireshark’s built‑in Expert Info flags anomalies:
- Go to Analyze → Expert Information.
- Look for Warnings and Errors like “Out‑of‑order packets,” “Zero window,” or “Duplicate ACKs.”
These give you a prioritized list of issues to tackle first.
Step 10: Take Action & Validate
Replace faulty cables or move closer to Wi‑Fi AP.
Update NIC drivers and firmware.
Switch DNS servers if lookups are slow.
Contact ISP with your .pcapng evidence if external line issues persist.
After making changes, re‑capture and compare to ensure your fixes actually improved performance.
Conclusion
Slow Internet can stem from physical‑layer hiccups, DNS snafus, or application‑level bottlenecks. Wireshark arms you with the data to cut through guesswork:
- Capture smartly (use filters).
- Visualize trends (I/O graphs).
- Quantify anomalies (retransmissions, RTT, DNS latency).
- Compare & validate against a known‑good state.
Armed with these steps, you’ll go from “Why is it so slow?” to “Here’s exactly what’s wrong—and how to fix it.” Happy troubleshooting!