NetworkCongestion Causes Effects Controls
NetworkCongestion Causes Effects Controls
G22.2262-001
Agenda
What is Congestion?
Effects of Congestion
Causes/Costs of Congestion
Approaches Towards Congestion Control
TCP Congestion Control
TCP Fairness
Conclusion
1
Part I
What is Congestion?
What is Congestion?
Congestion occurs when the number of packets being
transmitted through the network approaches the packet
handling capacity of the network
Congestion control aims to keep number of packets
below level at which performance falls off dramatically
Data network is a network of queues
Generally 80% utilization is critical
Finite queues mean data may be lost
A top-10 problem!
2
Queues at a Node
Part II
Effects of Congestion?
3
Effects of Congestion
Packets arriving are stored at input buffers
Routing decision made
Packet moves to output buffer
Packets queued for output transmitted as fast as
possible
Statistical time division multiplexing
If packets arrive to fast to be routed, or to be output,
buffers will fill
Can discard packets
Can use flow control
Can propagate congestion through network 7
Interaction of Queues
4
Part III
Causes/Costs of Congestion
5
Causes/Costs of Congestion: Scenario 2
11
“costs” of congestion:
• more work (retrans) for given “goodput”
12
• unneeded retransmissions: link carries multiple copies of pkt
6
Causes/Costs of Congestion: Scenario 3
• four senders Q: what happens as λin
• multihop paths and λin increase ?
• timeout/retransmit
13
7
Part IV
15
8
Case Study: ATM ABR Congestion Control
17
9
Part V
19
10
TCP AIMD
multiplicative decrease: additive increase:
cut CongWin in half increase CongWin by
after loss event 1 MSS every RTT in
the absence of loss
congestion
window
events: probing
24 Kbytes
16 Kbytes
8 Kbytes
time
22
11
TCP Slow Start (more)
RTT
first loss event: two segm
ents
– double CongWin
every RTT
four segm
ents
– done by incrementing
CongWin for every
ACK received
• Summary: initial rate time
is slow but ramps up
exponentially fast 23
Refinement
Philosophy:
• After 3 dup ACKs: • 3 dup ACKs indicates
– CongWin is cut in half network capable of
– window then grows linearly delivering some segments
• But after timeout event: • timeout before 3 dup
ACKs is “more alarming”
– CongWin instead set to 1
MSS;
– window then grows
exponentially
– to a threshold, then grows
linearly
24
12
Refinement (more)
• Q: When should
the exponential
increase switch to
linear?
• A: When
CongWin gets to
1/2 of its value
before timeout.
Implementation:
• Variable Threshold
• At loss event, Threshold is
set to 1/2 of CongWin just
before loss event 25
26
13
Part VI
TCP Fairness
27
TCP Fairness
Fairness goal: if K TCP sessions share same
bottleneck link of bandwidth R, each should have
average rate of R/K
TCP connection 1
bottleneck
TCP
router
connection 2
capacity R
28
14
Why is TCP Fair?
Two competing sessions:
– Additive increase gives slope of 1, as throughout increases
– multiplicative decrease decreases throughput proportionally
R
Connection 2 throughput equal bandwidth share
Connection 1 throughput R
29
Fairness (more)
• Fairness and UDP Fairness and parallel TCP
• Multimedia apps often connections
do not use TCP • nothing prevents app from
– do not want rate opening parallel
throttled by congestion connections between 2
control hosts.
• Instead use UDP: • Web browsers do this
– pump audio/video at
• Example: link of rate R
constant rate, tolerate
packet loss supporting 9 connections;
– new app asks for 1 TCP, gets rate
• Research area: TCP R/10
friendly – new app asks for 11 TCPs, gets
30
R/2 !
15
Part VII
Conclusion
31
32
16
Next Session:
Java Sockets
33
17