Вы находитесь на странице: 1из 4

Principles of Congestion Control Causes/costs of congestion: scenario 1

❒ two senders, two


Congestion: receivers
❒ informally: “too many sources sending too much ❒ one router,
data too fast for network to handle” infinite buffers
❒ different from flow control!
❒ no retransmission
❒ manifestations:
❍ lost packets (buffer overflow at routers)
❍ long delays (queueing in router buffers) ❒ large delays
❒ a top-10 problem! when congested
❒ maximum
achievable
throughput
3: Transport Layer 3b-14 3: Transport Layer 3b-15

Causes/costs of congestion: scenario 2 Costs of congestion: scenario 2


❒ always: λ= λ
❒ one router, finite buffers in out
❒ retransmission when loss: λ > λout
❒ sender retransmission of lost packet in
❒ retransmission of delayed (not lost) packet makes λ still
in
larger for same λout

“costs” of congestion:
❒ more work (retrans) for given “goodput”
❒ unneeded retransmissions: link carries multiple copies of pkt

3: Transport Layer 3b-16 3: Transport Layer 3b-17


Causes/costs of congestion: scenario 3 Causes/costs of congestion: scenario 3
❒ four senders
Q: what happens as λ
❒ multihop paths in
and λ increase ?
❒ timeout/retransmit in

Another “cost” of congestion:


❒ when packet dropped, any “upstream transmission
capacity used for that packet was wasted!

3: Transport Layer 3b-18 3: Transport Layer 3b-19

Approaches towards congestion control Case study: ATM ABR congestion control
Two broad approaches towards congestion control:
ABR: available bit rate: RM (resource management)
❒ “elastic service” cells:
End-to-end congestion Network-assisted
❒ if sender’s path ❒ sent by sender, interspersed
control: congestion control: “underloaded”: with data cells
❒ no explicit feedback from ❒ routers provide feedback
❍ sender should use ❒ bits in RM cell set by switches
network to end systems
available bandwidth (“network-assisted”)
❒ congestion inferred from ❍ single bit indicating
❒ if sender’s path ❍ NI bit: no increase in rate
end-system observed loss, congestion (SNA,
congested: (mild congestion)
delay DECbit, TCP/IP ECN,
❍ sender throttled to ❍ CI bit: congestion
❒ approach taken by TCP ATM)
minimum guaranteed indication
❍ explicit rate indication
rate ❒ RM cells returned to sender by
to sender
receiver, with bits intact

3: Transport Layer 3b-20 3: Transport Layer 3b-21


Case study: ATM ABR congestion control TCP Congestion Control
❒ end-end control (no network assistance)
❒ transmission rate limited by congestion window size,
Congwin

❒ two-byte ER (explicit rate) field in RM cell Congwin


❍ congested switch may lower ER value in cell
❍ sender’ send rate thus minimum supportable rate on path ❒ w segments, each with MSS bytes sent in one RTT:
❒ EFCI bit in data cells: set to 1 in congested switch w * MSS
throughput = Bytes/sec
❍ if data cell preceding RM cell has EFCI set, sender sets CI RTT
bit in returned RM cell

3: Transport Layer 3b-22 3: Transport Layer 3b-23

TCP congestion control: TCP Slowstart


Host A Host B
❒ “probing” for usable ❒ two “phases” Slowstart algorithm one segm
bandwidth: slow start
ent

RTT

❍ ideally: transmit as fast ❍ congestion avoidance
initialize: Congwin = 1
as possible (Congwin as for (each segment ACKed) two segm
important variables:
en ts

large as possible) Congwin++

without loss Congwin
until (loss event OR
increase Congwin until ❍ threshold: defines four segm

threshold between two
CongWin > threshold) en ts
loss (congestion)
slow start phase,
❍ loss: decrease Congwin,
congestion control ❒ exponential increase (per
then begin probing
phase RTT) in window size (not so
(increasing) again time
slow!)
❒ loss event: timeout (Tahoe
TCP) and/or or three
duplicate ACKs (Reno TCP)
3: Transport Layer 3b-24 3: Transport Layer 3b-25
TCP Congestion Avoidance AIMD
TCP Fairness
Congestion avoidance TCP congestion
avoidance: Fairness goal: if N TCP
/* slowstart is over */ ❒ AIMD: additive sessions share same
/* Congwin > threshold */ increase, bottleneck link, each
Until (loss event) { multiplicative should get 1/N of link
every w segments ACKed: decrease capacity
Congwin++
❍ increase window by 1 TCP connection 1
} per RTT
threshold = Congwin/2 ❍ decrease window by
Congwin = 1 factor of 2 on loss
perform slowstart 1 event
bottleneck
TCP
router
connection 2
1: TCP Reno skips slowstart (fast capacity R
recovery) after three duplicate ACKs
3: Transport Layer 3b-26 3: Transport Layer 3b-27

Why is TCP fair?


Two competing sessions:
❒ Additive increase gives slope of 1, as throughout increases
❒ multiplicative decrease decreases throughput proportionally

R equal bandwidth share


Connection 2 throughput

loss: decrease window by factor of 2


congestion avoidance: additive increase
loss: decrease window by factor of 2
congestion avoidance: additive increase

Connection 1 throughput R

3: Transport Layer 3b-28

Вам также может понравиться