TCP flow control and congestion control

Download Report

Transcript TCP flow control and congestion control

CSEE W4140
Networking Laboratory
Lecture 7: TCP flow control and
congestion control
Jong Yul Kim
03.22.2010
Short review of TCP from last time
 Characteristics of the IP network
 Delivers packets from host to host
 May lose packets (discarded by routers)
 Doesn’t care about packet order
 TCP is a




reliable,
in-order,
byte-stream service
(delivers data from application to application)
Short review of TCP from last time
 TCP is a reliable, in-order, byte-stream
service
 The beauty of TCP is that it works without
explicit support from the network
 Each end of the connection cooperate to make
sure packets are delivered reliably and in order
 Techniques used by TCP




Sequence numbers
Acknowledgements (and numbers)
Retransmissions
Timer
Today’s lecture
 TCP Flow Control
 Throttling the rate of sender so that the
receiver’s buffer does not overflow
 TCP Congestion Control
 Throttling the rate of sender in the face
of network congestion
TCP Flow Control (Receive Window)
 When a connection is established, the
receiver allocates a receive buffer.
 Incoming packets are stored in the buffer
so that the application can read data from
the buffer.
TCP Flow Control (Receiver
behavior)
 The receiver lets
the sender know:
IP header TCP header
20 bytes
TCP data
20 bytes
0
15 16
Source Port Number
31
Destination Port Number
Sequence number (32 bits)
Acknowledgement number (32 bits)
header
length
0
Flags
TCP checksum
window size
urgent pointer
Options (if any)
DATA
20 bytes
 how much space is
left in the buffer
= RcvWindow
 by placing that
value in the window
size field
 in every segment
that it sends to the
sender
TCP Flow Control (Sender behavior)
 Sender can fill up the spare room in the
receiver’s buffer by sending more data
 Sender maintains the size of data that has
already been sent but unacknowledged =
bytes_unACKed
 Makes sure that
 bytes_unACKed ≤ RcvWindow
Network Congestion
 Why does congestion occur?
 Too many senders sending at high rate
 Routers dropping packets due to overflowing
buffers
 What are the symptoms?




Packet loss
Packet queuing delay
More retransmission  more packet loss
Link bandwidth wasted on retransmissions
TCP Congestion Control
 Remember: TCP has no support from
the network about congestions
 Need to use end-to-end congestion
control
 TCP relies on perceived network
congestion and throttles the sending
rate accordingly
How does TCP know there is
congestion in the network?
 Answer:
packet loss
 Timeout
 Three duplicate
ACKs shown in
diagram on right
How does TCP limit sending rate?
 Using a variable called congestion
window = CongWin
 Size of unacknowledged data must be
less than CongWin
bytes_unACKed ≤ CongWin
 Sending rate is roughly
CongWin/RTT bytes/sec
We can throttle the sending rate by controlling CongWin
TCP Congestion Control Algorithm
 Is an algorithm that controls CongWin
 Simply stated:
 Packet loss (=congestion)  decrease CongWin
 All is well  increase CongWin
 Three main parts
 Additive-Increase, Multiplicative Decrease
 Slow Start
 Reaction to timeout events
Additive Increase, Multiplicative Decrease
(AIMD)
 Additive Increase
 Increase CongWin by 1 MSS every RTT
while there is no packet loss
 Multiplicative Decrease
 Decrease CongWin by half when packet
is lost
Additive Increase, Multiplicative Decrease
(AIMD)
Congestion Avoidance phase
Slow Start (SS)
 When connection is established
 CongWin is set to 1 MSS
 Increase CongWin by 1 MSS every ACK
 Different from Additive Increase
(+1 MSS every RTT)
 Until a loss occurs
 Result is an exponentially fast growth in
sending rate
Slow Start (SS)
Example of
Slow Start/Congestion Avoidance
cwnd = 1
Assume that
ssthresh = 8
cwnd = 2
cwnd = 4
14
cwnd = 8
10
ssthresh
8
6
4
cwnd = 9
2
6
t=
4
t=
2
t=
0
0
t=
Cwnd (in segments)
12
Roundtrip times
cwnd = 10
Reaction to Timeouts
 We already discussed that TCP perceives
congestion through packet loss
 Packet is considered lost when:
 Timeout occurs
 Three duplicate ACKs are received
 But timeouts and three duplicate ACKs are
different.
 What do they tell about the severity of
congestion?
Reaction to Timeouts
 Let’s do something different for
timeout.
 Reset CongWin to 1 MSS
 Begin again from Slow Start
 Slow start (exponential increase) until
when?
 New variable called Threshold
 Threshold is set to ½ CongWin
 After Threshold, do AIMD instead of SS
Lab 5 part 2 in the lab manual
R2
R1
10.0.3.0/24
PC1
PC2
10.0.2.0/24
10.0.1.0/24
Serial WAN connection
10.0.4.0/24
R3
R4
10.0.5.0/24
Lab 5 part 2 – our version
PC2
PC1
R2
R1
10.0.1.0/24
10.0.3.0/24
10.0.2.0/24
10.0.5.0/24
 Use Table 5.3 and Table 5.4 to configure PC1, PC2,
Router1, and Router2.
 Do parts 5(B), 6(A), 6(C), and 8.
 For part 8, configure PC1 and PC2 so that all packets
travel along PC1 – R1 – R2 – PC2 path.
Main Points of Lab 5 Parts 5~8
 More about TCP
 Interactive applications over TCP
 Data transfer applications over TCP
 Congestion Control
Prelab and lab reports
 Prelab 6 is due this Friday.
 Lab report 5.1 is due this week before
your labs.
 Lab report 5.2 + BGP lab is due next
week before your labs.