Why TCP provides reliable delivery in Computer Networks - Performance Analysis
We want to understand how the time cost of TCP's reliable delivery grows as more data is sent.
Specifically, how does TCP handle sending many packets reliably over a network?
Analyze the time complexity of this simplified TCP sending process.
for each packet in data_to_send:
send(packet)
wait for acknowledgment
if acknowledgment not received:
resend(packet)
else:
move to next packet
This code shows TCP sending packets one by one, waiting for confirmation before moving on.
Look for repeated actions in the process.
- Primary operation: Sending each packet and waiting for its acknowledgment.
- How many times: Once per packet, but possibly more if resending is needed due to lost packets.
As the amount of data (number of packets) increases, the number of send and wait steps grows roughly in proportion.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 packets | About 10 sends and waits (plus some resends if needed) |
| 100 packets | About 100 sends and waits (plus resends) |
| 1000 packets | About 1000 sends and waits (plus resends) |
Pattern observation: The time grows roughly linearly with the number of packets sent.
Time Complexity: O(n)
This means the time to reliably send data grows directly with how many packets there are.
[X] Wrong: "TCP sends all packets at once and waits only once for all acknowledgments."
[OK] Correct: TCP sends packets in order and waits for acknowledgments to ensure each packet arrived, so it handles each packet step-by-step, not all at once.
Understanding how TCP manages reliable delivery helps you explain real network behavior clearly and shows you can think about how systems handle growing workloads.
"What if TCP sent multiple packets before waiting for acknowledgments? How would that affect the time complexity?"
Practice
Solution
Step 1: Understand TCP's error checking
TCP uses acknowledgments to confirm receipt of data and detects lost packets.Step 2: Recognize retransmission mechanism
If a packet is lost or not acknowledged, TCP resends it to ensure delivery.Final Answer:
Because it uses acknowledgments and retransmissions to ensure data arrives correctly -> Option AQuick Check:
TCP reliability = acknowledgments + retransmissions [OK]
- Thinking TCP sends data only once
- Confusing TCP with UDP which is unreliable
- Believing fixed packet size ensures reliability
Solution
Step 1: Identify TCP's packet ordering method
TCP assigns sequence numbers to packets to keep track of their order.Step 2: Confirm role of sequence numbers in reliability
Sequence numbers help TCP detect missing or out-of-order packets for retransmission.Final Answer:
Uses sequence numbers to order packets -> Option BQuick Check:
Sequence numbers = packet order in TCP [OK]
- Believing TCP ignores lost packets
- Thinking TCP does not use acknowledgments
- Assuming TCP sends packets without control
Sender sends packets 1, 2, 3.
Receiver acknowledges packets 1 and 3 only.
What will TCP do next?
Solution
Step 1: Analyze acknowledgments received
Packets 1 and 3 are acknowledged, but packet 2 is missing acknowledgment.Step 2: Understand TCP retransmission behavior
TCP will resend packet 2 because it assumes it was lost or not received.Final Answer:
Resend packet 2 because it was not acknowledged -> Option AQuick Check:
Missing ack triggers retransmission [OK]
- Assuming TCP stops sending after missing ack
- Thinking TCP resends already acknowledged packets
- Believing TCP ignores missing acknowledgments
"TCP does not resend lost packets, it just waits for the receiver to ask again."
What is wrong with this statement?
Solution
Step 1: Understand TCP retransmission mechanism
TCP uses timers and acknowledgments to detect lost packets and resends them automatically.Step 2: Identify error in the statement
The statement wrongly says TCP waits for receiver requests, but TCP resends proactively.Final Answer:
TCP actively resends lost packets without waiting for receiver requests -> Option CQuick Check:
TCP retransmits lost packets automatically [OK]
- Thinking receiver must request retransmission
- Confusing TCP with protocols that do not resend
- Believing TCP uses UDP for retransmission
Solution
Step 1: Recognize TCP's reliability features
TCP uses acknowledgments and retransmissions to ensure all data arrives correctly.Step 2: Understand TCP congestion control
TCP adjusts its sending rate based on network feedback to avoid overwhelming the network.Step 3: Combine reliability and congestion control
These mechanisms together allow TCP to deliver data reliably even with packet loss and avoid congestion collapse.Final Answer:
By using acknowledgments, retransmissions, and adjusting sending rate with congestion control -> Option DQuick Check:
Reliability + congestion control = TCP success [OK]
- Thinking TCP sends packets repeatedly without control
- Believing TCP ignores packet loss
- Assuming TCP switches to UDP automatically
Ready to prove it?
Pass the test and this pattern moves unknown
