Advanced
What was found
For the server operator
Notes about this instance's own configuration — server tuning and traffic shaping, not faults on the path. Share with whoever runs the box.
Timelines
Glossary
Retransmission (bytes_retrans, total_retrans)
The server sent data, never got an acknowledgement, and had to send it again. Some retransmission is normal on the internet (under 0.1 %). Above 1 % something on the download path is dropping packets: a congested link, a bad cable/Wi‑Fi, a faulty line card, or a router deliberately policing traffic.
RTO / timeout (total_rto, total_rto_time)
The worst kind of loss recovery. So much went missing that TCP gave up waiting, paused for a whole retransmission-timeout (usually 200 ms or more), restarted from a window of one packet and slowly ramped up again. This is what a transfer that "freezes for a second" looks like. Even one RTO in a short test is worth attention.
Congestion window (cwnd) and ssthresh
How much data the server is allowed to have in flight before waiting for acknowledgements. It grows while things go well and is cut in half (or to 1) at every loss event. A saw-tooth is normal; repeated collapses to a handful of packets mean the sender keeps hitting loss, which is why throughput dies.
Out-of-order packets (rcv_ooopack) — upload path
Packets from you arrived at the server in a different order than you sent them. Small counts happen after a loss (later packets arrive before the retransmission). Persistent reordering without loss is the classic sign of per-packet load balancing or an asymmetric/multi-path route: your packets take different routes and race each other. Reordering makes TCP think packets were lost and slows down for nothing.
Reordering seen (reord_seen, reordering) — download path
The same thing in the other direction, detected by the server from your acknowledgements: data the server sent
arrived at you out of order. reordering is how many packets out of place the kernel now tolerates
before declaring loss (3 is the default; higher means it has adapted to a reordering path).
DSACK duplicates (dsack_dups)
You told the server "you retransmitted something I already had". Every one is a retransmission that was unnecessary: the original was only late (reordering, sudden delay), not lost. Many of these next to few real losses means the path reorders rather than drops.
RTT, min RTT and queueing (bufferbloat)
Round-trip time. The minimum is the physical path; if RTT balloons to several times the minimum while data is flowing, packets are sitting in a queue somewhere (usually the slowest link's buffer). That is delay, not loss, and it makes everything feel sluggish even when nothing is dropped.
Receive-window limited (rwnd_limited) / snd_wnd
The server had more to send but your side said its receive buffer was full. That is a limit on your device (small socket buffers, a slow reader, a VPN client, an old OS), not on the network.
ECN CE marks (delivered_ce)
A router on the path signalled congestion explicitly instead of dropping. Useful: it tells you the bottleneck supports ECN and was full.
Path MTU (pmtu) and MSS
Largest packet the path carries. 1500 is plain Ethernet; 1492 is PPPoE; ~1400 or less usually means a tunnel or VPN somewhere. Very small values, or MSS far below MTU, point at a middlebox rewriting packets.
SACK, window scaling, timestamps
TCP options negotiated at connection start. All three should be on. A path where SACK is missing recovers from loss terribly; missing window scaling caps throughput on long paths. Usually a broken firewall or NAT box strips them.