0% found this document useful (0 votes)
5 views

Chapter8-TCP Reno and Congestion Management

The document discusses TCP congestion management, focusing on concepts like the congestion window (cwnd), slow start, fast retransmit, and selective acknowledgments (SACK). It explains how TCP adjusts its window size based on network congestion and outlines the differences between TCP Tahoe and TCP Reno in handling packet loss. Additionally, it emphasizes the importance of selective acknowledgments in improving performance during packet loss scenarios.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Chapter8-TCP Reno and Congestion Management

The document discusses TCP congestion management, focusing on concepts like the congestion window (cwnd), slow start, fast retransmit, and selective acknowledgments (SACK). It explains how TCP adjusts its window size based on network congestion and outlines the differences between TCP Tahoe and TCP Reno in handling packet loss. Additionally, it emphasizes the importance of selective acknowledgments in improving performance during packet loss scenarios.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

UNIVERSITY OF SCIENCE, VNU-HCM

FACULTY OF ELECTRONICS AND TELECOMMUNICATIONS


DEPARTMENT OF TELECOMMUNICATIONS AND NETWORKS

COURSE
BASIC COMPUTER NETWORK

Basics of TCP Congestion


Chapter
TCP Reno and Congestion
1 Management
08 Management
Editor: Nguyen Viet Ha, Ph.D.

Reference: Peter L Dordal

Lecturer: Nguyen Minh Tri, Ph.D. Email: [email protected] 2

1. Basics of TCP Congestion Management 1. Basics of TCP Congestion Management


congestion management is window-based; that is, TCP adjusts
its window size to adapt to congestion. If there is no congestion, cwnd = cwnd +1.
Window size can be thought of as the number of If there is congestion, cwnd = cwnd/2.
packets out there in the network.
Or representing how many packet buffers it could allocate. (via
)

When is adjusted downwards for this reason, it is generally


referred to as the Congestion Window, or .

TCP Sawtooth, red curve represents the network capacity


3/26
/50 4/26
/50
1. Basics of TCP Congestion Management

How to guess the network capacity?


If there is no congestion, cwnd = cwnd +1.
If there is congestion, cwnd = cwnd/2.
What value of should begin with?

2 Slow start

TCP Sawtooth, red curve represents the network capacity


5/26
/50 6

2. Slow start 2. Slow start


A good strategy is to initially set . Eventually the bottleneck queue gets full
drops a packet.
Keep doubling until exceeding the network
capacity.
after each

o after each .
Dropping event will be determined at source based on:
Try increasing slowly from the Packet loss detected or
previous ( )
TCP timeout
When is the network
capacity exceeded?
7/26
/50 8/26
/50
2. Slow start 2. Slow start
TCP Timeout
Packet
In TCP Tahoe (packet loss detected or TCP timeout) loss Packet
detected loss
detected
Threshold slow start ( )=
TCP
Enter to slow start phase Timeout

If
o Enter the congestion-avoidance phase.
o after each windowful
o after each .
where is the value of at the start of that
particular windowful.
TCP Tahoe Sawtooth, red curve represents the network capacity
o Use when actually sending packets. Slow Start is used after each packet loss until ssthresh is reached
9/26
/50 10/26
/50

2. Slow start 2. Slow start


In TCP Reno (Case 1: If packet loss detected) In TCP Reno (Case 2: If TCP timeout)
=
Threshold slow start ( )= Threshold slow start ( )=
Enter to slow start phase

If If
o Enter the congestion-avoidance phase. o Enter the congestion-avoidance phase.
o after each windowful o after each windowful
o after each . o after each .
where is the value of at the start of that where is the value of at the start of that
particular windowful. particular windowful.

o Use when actually sending packets. o Use when actually sending packets.
11/26
/50 12/26
/50
2. Slow start

Packet
loss
detected Packet
Packet
loss loss
detected detected
TCP
Timeout
3 Fast Retransmit

TCP Reno Sawtooth

13/26
/50 14

3. Fast Retransmit 3. Fast Retransmit

Resend Data[N] when we In TCP Tahoe, packet loss


have received three
dupACKs for Data[N-1]; that
is, four ACK[N-1 in all.
(called packet loss detected
in previous slide) BUT, in TCP Reno, packet loss =
How many dupACKs we have to wait for before we can resume
transmissions of new data?

Estimated FlightSize, or EFS, which is the best guess at


the number of outstanding packets (Packets on the Flight).

15/26
/50 16/26
/50
EFS: Estimated FlightSize
cwnd = 10

10 packets

9 packets
10 packets

8 packets

4
7 packets
4 packets TCP NewReno
5 packets
#packets < cwndnew (=5)

5 packets

Received packets = 23-5+1 = 19


Expected ACK = 19
Finish retransmission 18

4. TCP NewReno
Improves handling of the case when two or more packets are lost in
a windowful.

Partial ACKs.
If two (or more) data packets are lost and the first is retransmitted,
the receiver will acknowledge data up to just before the second Received packets = 16-6+1 = 11
packet, and then continue sending dupACKs of this until the second Expected ACK = 11
lost packet is also retransmitted. Not finish retransmission

Because retransmission of the first lost packet did not result in an


ACK of all the outstanding data.
Received packets = 21-6+1 = 16
o These partial ACKs as evidence to retransmit later lost packets, Expected ACK = 16
and also to keep pacing the Fast Recovery process. Finish retransmission
19/26
/50
5. Selective Acknowledgments (SACK)
A traditional TCP ACK is a cumulative acknowledgment of all data
received up to that point.

Only use Triple duplicated ACKs to detect ONE the packet loss at
a time.
Selective Acknowledgments
5 (SACK)
Ex:
o Data[1002] is received. Data[1001] is lost
o The receiver sends the duplicate ACK[1000].
This does indicate that following Data[1001] made
it through, but nothing more.
21 22/26
/50

5. Selective Acknowledgments (SACK) 5. Selective Acknowledgments (SACK)


Selective ACK (SACK) option (implemented at the receiver). Left Edge of Block: the first sequence
If this is available, the sender does not have to guess from number of this block.
what has gotten through.

Right Edge of Block: the sequence


The receiver can send an ACK that says (example):
number immediately following the last
o All packets up through 1000 have been received (the sequence number of this block.

o All packets up through 1050 have been received 1001,


1022, and 1035. (the
A SACK option that specifies n blocks will have a length of
bytes, so the 40 bytes available for TCP options can specify a maximum
of 4 blocks.
Almost all TCP implementations now support SACK.
3 loss events (including burstiness loss)
Use the TCP Option field.
23/26
/50 24/26
/50
5. Selective Acknowledgments (SACK)
THANK YOU FOR YOUR ATTENTION
In practice,

Selective ACKs provide at best a modest performance


improvement in many situations.

TCP NewReno does rather well, in moderate-loss environments.

Nguyen Minh Tri, Ph.D.


Department of Telecommunications and Networks
Faculty of Electronics and Communications
University of Science, Vietnam National University, Ho Chi Minh City
Email: [email protected]
25/26
/50

You might also like