Client sends SYN with sequence x. Server sends SYN-ACK with sequence y and acknowledgment x+1. Client sends ACK with sequence x+1 and acknowledgment y+1.

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 · 7 min · XB Field Notes
In the source HTTP/1.1 exercise, /one, /two and /close share one socket; /four uses a new socket. All four responses are 200 with Content-Length: 2 and body ok, which is fully read before the next request. Connection: close on /close forces the later reconnect. This is an observed local sequential fixture result, not HTTP/2 or end-to-end proxy evidence.

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
A TCP-only MSS clamp reduces a handshake advertisement to fit the packet budget. TCP can recover while oversized non-TCP traffic still fails because MTU feedback remains filtered.

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 · 8 min · XB Field Notes
A route has link MTUs of 1500, 1280, and 1500 bytes. The middle link sets the path MTU; a small successful exchange does not validate large transfers.

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 · 7 min · XB Field Notes
Two connection tuples share local address 192.0.2.1 and port 40200 but differ in the remote port, 18080 versus 18081. Reuse depends on socket and kernel rules.

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 · 6 min · XB Field Notes
Two separate window limits constrain outstanding data; a separate pacing timeline spaces transmissions. Each sender chooses its own congestion 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
The source’s first three requests share connection one. Server closure, explicit idle retirement, and disabled reuse then produce connections two through five.

HTTP/1.1 permits persistent connections by 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 · 6 min · XB Field Notes