┌───────────────────────────────┐ ┌───────────────────────────────┐
│ Sender (TCP) │ │ Receiver (TCP) │
├───────────────────────────────┤ ├───────────────────────────────┤
│ 1. Break data into segments │───────▶│ 2. Receive segments with seq # │
│ 3. Add checksum to each segment│ │ 4. Check checksum for errors │
│ 5. Send segments one by one │ │ 6. Send acknowledgment (ACK) │
│ 7. Retransmit if no ACK │◀───────│ 8. Request resend if error/lost│
│ 9. Control sending rate (flow) │ │ │
│10. Establish and close connection│ │ │
└───────────────────────────────┘ └───────────────────────────────┘
This diagram shows how TCP sender and receiver work together to send data reliably using segments, acknowledgments, checksums, retransmissions, flow control, and connection management.