How TCP States Show Where a Connection Is Stuck
When debugging TCP, ss or netstat often shows a list of states first. The hard part is mapping those states to the phase where the connection is stuck.
Many SYN-SENT entries: is the server slow or the network unreachable? The connection is still ESTABLISHED: why did the business request time out? CLOSE-WAIT is piling up: is this a network issue or an application not closing sockets? TIME-WAIT is large: should kernel parameters be changed immediately? A long connection appears alive locally, but NAT or firewall state may already be gone.