TCP
Error Control & Congestion Control
TCP/IP Protocol Suite 1
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
ERROR CONTROL
TCP is a reliable transport layer protocol.
This means that an application program that delivers
a stream of data to TCP relies on TCP to deliver the
entire stream to the application program on the other
end in order, without error, and without any part lost
or duplicated.
Error control in TCP is achieved through the
use of three tools:
checksum, acknowledgment, and time-out.
TCP/IP Protocol Suite 2
ReTransmission
The heart of error control mechanism is retransmission of
segments
-when segment is sent, it is stored in a queue until it is
acknowledged
Retransmission occurs
-When the retransmission timer expires
-When the sender receives three duplicates ACKs for the
first segment in the queue
TCP/IP Protocol Suite 3
Acknowledgement Type
In the past, TCP used only one type of
acknowledgement:
Accumulative Acknowledgement (ACK), also namely
accumulative positive acknowledgement
More and more implementations are adding another type
of acknowledgement: Selective Acknowledgement
(SACK), SACK is implemented as an option at the end
of the TCP header.
Data may arrive out of order and be
temporarily stored by the receiving TCP,
but TCP guarantees that no out-of-order
4 data are delivered
TCP/IPto the
Protocol Suiteprocess.
Rules for Generating ACK
1. When one end sends a data segment to the other end, it
must include an ACK. That gives the next sequence
number it expects to receive. (Piggyback)
2. The receiver needs to delay sending (until another
segment arrives or 500ms) an ACK segment if there is
only one outstanding in-order segment. It prevents ACK
segments from creating extra traffic.
3. There should not be more than 2 in-order
unacknowledged segments at any time. It prevent the
unnecessary retransmission
5 TCP/IP Protocol Suite
Rules for Generating ACK
4. When a segment arrives with an out-of-order sequence
number that is higher than expected, the receiver immediately
sends an ACK segment announcing the sequence number of
the next expected segment. (for fast retransmission)
5. When a missing segment arrives, the receiver sends an ACK
segment to announce the next sequence number expected.
6. If a duplicate segment arrives, the receiver immediately
sends an ACK.
6 TCP/IP Protocol Suite
Normal operation
TCP/IP Protocol Suite 7
Lost segment
The receiver TCP delivers only ordered data to the
process. 8
TCP/IP Protocol Suite
Fast retransmission
TCP/IP Protocol Suite 9
Lost acknowledgment
TCP/IP Protocol Suite 10
Lost acknowledgment corrected by resending a segment
TCP/IP Protocol Suite 11
Note
ACK segments do not consume
sequence numbers and are not
acknowledged.
Lost acknowledgments may create
deadlock if they are not
properly handled.
TCP/IP Protocol Suite 12
Congestion Control
Congestion in a network may occur if
the load on the network is greater than the capacity of the network
i.e. the number of packets sent to the network—is greater than number of packets
a network can handle.
Congestion happens in any system that involves waiting. It occurs because routers
and switches have queues—buffers that hold the packets before and after
processing.
Congestion control refers to techniques and mechanisms that can either prevent
congestion, before it happens, or remove congestion, after it has happened.
Open-loop congestion control
policies are applied to prevent congestion before it happens. In these mechanisms,
congestion control is handled by either the source or the destination.
Closed-Loop Congestion Control
A mechanisms try to alleviate congestion after it happens. Several mechanisms
have been used by different protocols.
TCP/IP Protocol Suite 13
Open-Loop Congestion Control
.
Retransmission Policy.
Retransmission in general may increase congestion in the network.
Good retransmission policy and the retransmission timers must be designed to
optimize efficiency and at the same time prevent congestion.
Acknowledgment Policy
the acknowledgments are also part of the load in a network. Sending fewer
acknowledgments means imposing less load on the network.
Closed-Loop Congestion Control
Window Policy The type of window at the sender may also affect congestion.
One factor that can determine the sender window size is the congestion in the
Internet. The sending transport layer can monitor the congestion in the Internet,
by watching the lost packets, and use a strategy to decrease the window size if the
congestion is increasing and vice versa.
TCP/IP Protocol Suite 14
CONGESTION CONTROL POLICY
TCP uses a congestion window and a congestion policy that avoid
congestion and detect and alleviate congestion after it has occurred.
Congestion Window (Wc – cwnd)
We know that the sender window size is determined by the availability
of buffer space at the receiver( rwnd)
Other entity is also important – the network
If the network cannot deliver the data as fast as it is created by the
sender, it must tell the sender to slow down.
Therefore, sender window size should be governed as follows :
Actual window size = minimum( rwnd, cwnd )
How the size of the congestion window Wc is determined ?
Congestion policy
TCP handles congestion based on three phases
1.Slow start – exponential increase
2.Congestion avoidance – Additive increase
3.Congestion detection – multiplicative decrease
TCP/IP Protocol S
16
uite
Slow start, exponential increase
1
cwnd
RTT
2
cwnd
RTT
4
cwnd
RTT
8
cwnd
TCP/IP Protocol 17
Suite
In the slow start algorithm, the size of the
congestion window increases exponentially until it
reaches a threshold.
Slow start strategy is slower in case of delayed acknowledgement
Slow start cannot continue indefinitely and there is a threshold to
stop this phase (sstthresh)
18
Congestion avoidance, additive increase
19
In the congestion avoidance algorithm the size of the
congestion window increases additively until congestion is
detected.
Here the increase is based on number of RTT, not on the
number of arrived ACK’s
TCP/IP Protocol 20
Suite
Congestion Detection : Multiplicative Decrease
If the congestion occurs, the congestion window size must be
decreased.
Only guess that sender sense about congestion is the need to
retransmit a segment
Retransmission occurs in two cases
1.RTO timer times out
2.Three duplicate acknowledgement are received.
In both cases the size of threshold is dropped to half
TCP/IP Protocol S
21
uite
TCP/IP Protocol S
22
uite
TCP Congestion policy summary
TCP/IP Protocol 23
Suite
Congestion example
TCP/IP Protocol 24
Suite
Lecture videos on the topic can be found at
TCP - Error Control Mechanism
https://youtu.be/gwKPjmrlCJE
TCP transmission – TCP Acknowledgement Policy
https://youtu.be/9hIFo1F-AXU
TCP Congestion control
https://www.youtube.com/watch?v=iNmV_QBP3wo
TCP Congestion Policy and Example
https://youtu.be/-6RQvjkkgMA
25