A Segment Carries the Conversation State
What does a TCP segment actually carry, and what makes a combination of flags and payload nonsensical before anyone even looks at what state the connection is in?
Open Session 01Protocol in Code · Track
connection state, timers, and recovery as explicit variables
Sessions
What does a TCP segment actually carry, and what makes a combination of flags and payload nonsensical before anyone even looks at what state the connection is in?
Open Session 01Why does establishing a connection take exactly three segments, and what state is each side in after each one?
Open Session 02Sequence numbers are 32-bit and wrap back to zero — so what does "before" even mean once a connection has been running long enough to cross that boundary, and why is plain < the wrong tool to answer it?
What is the TCP receive window, really, and why is it never a number you store — only a number you compute?
Open Session 04How does TCP decide how long to wait before declaring a segment lost, when the "right" answer changes every round trip?
Open Session 05How does a sender infer a lost segment from ACKs alone, without waiting for a retransmission timer to expire?
Open Session 06Congestion control has a reputation for being an algorithm. Read as code, is it anything more than a handful of rules for moving one integer up or down?
Open Session 07When a segment arrives ahead of where the receiver expects, what actually happens to it, and what makes the receiver able to catch up in one step once the gap closes?
Open Session 08Why does closing a TCP connection take four segments and a wait, instead of ending the moment one side is done talking?
Open Session 09Teardown takes four packets and a wait — so what does a connection that ends with a RST skip, and what decides whether a RST is even allowed to end it?
Open Session 10What does one endpoint's whole life look like when handshake, data delivery, congestion, reset, and teardown are all wired into a single object instead of ten separate demos?
Open Session 11