TCP Reliable Transmission Mechanism Explained
TCP reliable transmission is a core feature of the TCP protocol, ensuring data can be transmitted correctly, orderly, and without loss in unreliable network environments.
Mechanisms Ensuring Reliable Transmission
1. Sequence Number and Acknowledgment
- Sequence Number: Each byte has a unique sequence number, identifying its position in the stream
- Acknowledgment (ACK): Receiver sends ACK after receiving data, confirming received data
- Cumulative Acknowledgment: ACK number indicates the next byte sequence number expected to receive
- Purpose: Ensure data arrives in order, detect lost packets
2. Retransmission Mechanism
Timeout Retransmission (RTO)
- RTO Calculation: Dynamically calculated based on RTT (Round Trip Time), typically RTO = RTT + 4 × RTT variance
- Trigger Condition: No ACK received within RTO time after sending data
- Exponential Backoff: After each retransmission, RTO doubles, avoiding frequent retransmissions during network congestion
Fast Retransmit
- Trigger Condition: Receive 3 duplicate ACKs
- Advantage: Retransmit lost segment immediately without waiting for RTO to expire
- Efficiency: Recover data transmission faster than timeout retransmission
3. Checksum
- Calculation Range: TCP header, data, and pseudo-header (including IP addresses, etc.)
- Purpose: Detect errors during data transmission
- Handling: Discard segment directly on checksum error, do not send ACK
4. Data Ordering
- Problem: Packets may arrive out of order in the network
- Solution: Receiver reorders based on sequence numbers
- Caching: Out-of-order data is cached first, waiting for missing data to arrive before delivering to application layer together
5. Flow Control
- Sliding Window: Receiver advertises available buffer size
- Prevent Overflow: Avoid sender sending too fast causing receiver buffer overflow
6. Congestion Control
- Slow Start: Gradually increase sending rate
- Congestion Avoidance: Linear growth, avoid network congestion
- Fast Retransmit and Fast Recovery: Quickly respond to packet loss, recover transmission
Trade-offs of Reliable Transmission
- Latency vs Reliability: Retransmission mechanism increases latency but improves reliability
- Efficiency vs Safety: Checksum adds overhead but ensures data integrity
- Throughput vs Stability: Congestion control reduces throughput but maintains network stability
Related Questions
- How does TCP handle out-of-order arriving packets?
- How is RTO dynamically calculated and adjusted?
- Why do we need fast retransmit mechanism?