A client can enter ESTABLISHED while a filtered acknowledgment leaves the server in SYN-RECV.

The TCP handshake establishes sequence spaces, not synchronized clocks

The TCP three-way handshake establishes the two directions of a byte stream. Each endpoint supplies an initial sequence number and acknowledges the other endpoint’s number. Those are independent sequence spaces, not a shared wall clock. Applications do not need synchronized machine clocks to connect. Later sequence numbers identify bytes and support ordering, duplicate handling, acknowledgments, and retransmission within that connection. ...

September 10, 2027 · 6 min · XB Field Notes
Reusing an open TCP connection across several HTTP requests.

HTTP keep-alive reuses one TCP connection

HTTP persistence lets several request and response exchanges use one connection. That can avoid repeated TCP setup and, for HTTPS, repeated TLS negotiation. The benefit depends on latency, request size, and whether another usable connection already exists. Persistence does not make application work disappear, nor does it promise that a socket will remain open indefinitely. ...

May 28, 2027 · 4 min · XB Field Notes
Reducing the advertised TCP MSS lets new connections fit the bottleneck while large ICMP packets still fail.

MSS clamping can repair one TCP path without repairing its MTU feedback

TCP’s Maximum Segment Size option advertises the receiving endpoint’s maximum TCP data size under the option’s defined accounting rules. Each direction has its own advertisement; the two values need not match. A router can reduce those advertisements while forwarding SYN messages so later data segments fit a constrained path. That changes TCP behavior for the affected connections, not the underlying link MTU itself. ...

January 24, 2027 · 6 min · XB Field Notes
A path with a 1280-byte middle link passes small requests but stalls larger data when MTU feedback is filtered.

Path MTU discovery can fail while handshakes and small requests still work

The path MTU is the smallest link MTU along a particular route. A sender cannot determine it solely from its own interface’s MTU because an intermediate link may carry smaller packets. Classic IPv4 Path MTU Discovery sends packets with Don’t Fragment set and uses ICMP fragmentation-needed feedback to reduce the estimated packet size. A working route and a working size estimate are separate requirements. ...

November 14, 2026 · 6 min · XB Field Notes
One local port can appear in two TIME-WAIT entries whose remote ports differ.

TIME-WAIT protects a connection incarnation, not exclusive ownership of a port

TIME-WAIT is a TCP state retained after certain orderly connection closures. It gives the closing exchange time to complete if the final acknowledgment must be repeated and helps prevent delayed segments from an earlier connection incarnation being confused with a later one. The relevant identity includes both endpoint addresses and ports. A TIME-WAIT entry is not simply a universal lock on one local port number. ...

November 13, 2026 · 5 min · XB Field Notes
The Reno sender backs off after lost data while the CUBIC peer continues using its own sending policy.

TCP congestion control belongs to each sender, and peers can use different algorithms

TCP congestion control limits how a sender injects data into a network that has finite shared capacity. Its congestion window constrains outstanding data, while pacing, when used, controls how transmissions are distributed over time. The receiver’s advertised window imposes a separate flow-control limit. These mechanisms interact, but they describe different constraints and should not be collapsed into one ambiguous sending-speed setting. ...

November 12, 2026 · 6 min · XB Field Notes
Observe-decide-act boxes beside the message: Reuse by default, close with intent.

Persistent connections are the default

HTTP persistence allows multiple exchanges to share a connection, so repeated requests may avoid TCP setup and TLS negotiation. It is a protocol capability, not a promise that a particular socket stays open. Whether another request actually reuses it also depends on complete message framing, client pool policy, server behavior, and the connection’s current condition. ...

October 24, 2026 · 5 min · XB Field Notes