cs540/te630 computer network architecture spring 2009
DESCRIPTION
CS540/TE630 Computer Network Architecture Spring 2009. Tu / Th 10:30am-Noon Sue Moon. TCP. What do you remember from undergrad networking courses?. Questions. How does TCP detect loss? Do all packets arrive in order? If not, why? If not, how does TCP detect out-of-order packets?. - PowerPoint PPT PresentationTRANSCRIPT
CS540/TE630Computer Network Architecture
Spring 2009
Tu/Th 10:30am-NoonSue Moon
TCP
What do you remember from undergrad networking courses?
Questions
How does TCP detect loss? Do all packets arrive in order?
If not, why? If not, how does TCP detect out-of-order packets?
Congestion Control
Other Variables?
Congestion Avoidance and Control
Van Jaconson1988
Introduction
The first congestion collapse in the Internet Between LBL and UCB, the throughput dropped
from 32 Kbps to 40 bps
New algorithms proposed to fix the problem in 4.3BSD (Berkeley Unix) TCP
New Algorithms
Round-trip time variance estimation Exponential retransmit timer backoff Slow-start More aggressive receiver ack policy Dynamic window sizing on congestion Karn’s clamped retransmit backoff Fast retransmit
Not covered in this paper
When congestion collapses occur
Conservation of packets principle Running stably with a full window of data in transit
Three ways for packet conservation to fail The connection doesn’t get to equilibrium New packets are injected before old ones has exited The equilibrium can’t be reached due to resource
limits
Slow-start
Self-clocking Acks are generated no faster than data packets
Slow-start (cont’d)
How to start at the beginning? Exponentially increased window size
Simple changes to TCP Keep cwnd per connection Set cwnd to 1 when (re)starting Increase cwnd by 1 on each ack Send min(cwnd, rwnd)
Effect of Slow-start
Without Slow-start With Slow-start
Available bandwidth Available
bandwidth
Round-trip timing
Estimating mean round trip time (in RFC 793)
Retransmit timeout
MRR )1(
average RTT esti-mate
filter gain constant(suggested value: 0.9)
most recent RTT measure-ment
Rrto RTT variation(suggested value: 2)
Estimating variation
Proposed method Using mean deviation that is much easier to com-
pute than standard deviation ( = measurement)
)|(| vErrgvvgErraaamErr
m
Timer improvement
RFC 793 retransmit timer
Mean+Variance retransmit timer
TimerTimer
Congestion avoidance
Two parts in congestion avoidance Signal that notifies endpoints when congestion is
occurring• Timeout event indicates that network is congested
Policy that decreases utilization when signal is re-ceived
• Multiplicative decrease of window size on congestion
• Additive increase on no congestion
)1( 1 ddWW ii
)( max1 WuuWW ii
Slow-start & congestion avoidance
Combined algorithm Ssthresh is kept to switch between the two algo-
rithms When new data is acked,
Effect of congestion avoidance (1)
Multiple conversation test setup
► 1 Mbyte transfers
► One conversation per pair (4 conversations overall)
Effect of congestion avoidance (2)
Without congestion avoid-ance
With congestion avoidance
Each line represents each conversation
Effect of congestion avoidance (3)
Total bandwidth usage
No congestion avoidance
congestion avoid-ance
Effect of congestion avoidance (4)
Effective bandwidth
No congestion avoidance
congestion avoid-ance
Future Work:Gateway side of congestion control
Algorithms at endpoints cannot insure fair sharing
However, gateways have enough information to control sharing and fair allocation Gateways signal endpoints as early as possible
while not getting starved for traffic
Summary
Congestion collapses brought serious performance degradation to the original TCP
New algorithms were proposed to deal with the problem Slow-start Appropriate retransmit timer Congestion avoidance Etc.
Analysis of the Increase and Decrease Algo-rithms for Congestion Avoidance
in Computer Networks
Spring 2009 CS540/TE630 Computer Network Architecture
Computer Networks and ISDN Systems 1989
Dah-Ming CHIU and Raj JAIN
Outline
Motivation Problem Definition Model Feasible linear controls Optimizing the control schemes Discussion
Motivation
Throughput increaseResponse time
Throughput stop increasingResponse time increase
Throughput decreaseResponse time increase
Congestion control
Congestion avoidance
Problem Definition
network
feedback(0/1)
0 : underflow1 : overflow
feedback(0/1) feedback
(0/1)
Increase or decrease load
Increase or decrease load
Increase or decrease loadDifferent increase / decrease algo-
rithms performance(efficiency / fairness)???
Model (1)
bottleneckaround knee
user i’s network load
Binary feedback (0/1)
Model (2)
loadincreaseloaddecerasety _0
_1)(
))(),(()()1( tytxftxtx iii
)(0)(,)(1)(,
)()()1( increasety
decreasetyitxbatxba
iII
iDDtx
Model (3)
Linear control models Multiplicative x(t+1) = b x(t) Additive x(t+1) = a + x(t) Example
• Additive increase, multiplicative decrease
)(0)(,)(1)(,
)()()1( increasety
decreasetyitxatxbiI
iDtx
)(0)(,)(1)(,
)()()1( increasety
decreasetyitxbatxba
iII
iDDtx
Criteria Efficiency
closeness of the total load on the resource to the knee point
Fairness Equal share of bandwidth
Distributedness Knowledge of the state of
the system
Convergence Responsiveness Smoothness
Linear controls
x1 = x2
x1 + x2 = Xgoal
additive in-crease/decrease
multiplicativeincrease/de-
crease
)(2)(
22
21
221
xxxxFairness
Examples of linear control
Additive increaseMultiplicative de-crease
Additive in-creaseAdditive de-crease
Convergence to Efficiency
Negative feedback )()1(0)( txtxty ii
)()1(1)( txtxty ii
0)()1( txbna iII
0)()1( txbna iDD )(txandn i
)(1
)(1
txnab
txnab
i
DD
i
II
)(txandn i
Convergence to Fairness (1)
)))((
)(1()))((1())((
))(())((
))(())((
))1(())1((
))1((
2
2
2
2
2
2
2
2
txcntx
txFtxF
bacwhere
txcntxc
tbxantbxa
txntx
txF
i
i
i
i
i
i
i
i
C ≥ 0 : non-decrease of fairnessC = 0 : same fairness stayRequire C < 0 for either increase or decrease policy
Convergence to Fairness (2)
Require C(= ) < 0 for either increase or decrease policyba
Fairness goes up during de-crease, goes up or stay during increase
Fairness goes up during in-crease, goes up or stay during decrease
00
00
D
D
I
I
D
D
I
I
baand
baor
baand
ba
Convergence toEfficiency and Fairness
00
00
D
D
I
I
D
D
I
I
baand
baor
baand
ba
)(1
)(1
txnab
txnab
i
DD
i
II
)(txandn i
10,0,0,0
ID
II
baba aI and bI not
be both zero
aI and aD not be both zero
Distributedness
We don’t know
')(''' txandn i
)(1
)(1
txnab
txnab
i
DD
i
II
)(txandn i
)()1(0)( txtxty ii
)()1(1)( txtxty ii
0)()1( txbna iII
0)()1( txbna iDD )(txandn i
)()1(1)()()1(0)(txtxtytxtxty
ii
ii
0)()1(0)()1(
txbatxba
iDD
iII
0)( txi
10,0,1,0
ID
II
baba
Conclusion about feasible linear control
Increasing policy must have Additive component, must have multiplicative component with no less one
Decreasing policy must be multiplicative
10,0,1,0
ID
II
baba
Vectorial Representation (1)
x1 + x2 = xh
Assume overload network (in case of de-creasing)
Vectorial Representation (2)
Convergence to Efficiency
b>1
b<1
a<0a>0
a<0 b<1
Convergence to Fairness
Higher fairness than xh
Vectorial Representation (3)
Intersection of Efficiency and Fairness
Decrease must be multiplica-
tive
Vectorial Representation (4)
Increase have - additive component- multiplicative compo-nent less than 1
Optimizing the convergence
Time to converge to efficiency Responsiveness, te
Oscillation size Smoothness, se
Optimal convergence to Efficiency
ix X wherebX(t) na 1)X(t
From initial state X(0) to Xgoal
0,)0(
0,)log(
))0()1(
)1(log(
banXX
bbXbanXban
t
goal
goal
e
|)1(| goale Xbans
Monotonically decreas-ing function of a and b
Monotonically increas-ing function of a and b
Optimal convergence to Fairness
Improvement of Fairness Increased with larger c (= ) larger a, smaller b
ba
10,0,1,0
ID
II
baba
Increasing process : additiveDecreasing process : multi-plicative
From
Decreasing processFairness will stay
Increasing processSmaller b bI = 1
Practical consideration
Scaling parameters are not easily gathered Human help
Resource allocation unit is integral Buffers, windows… Rounding off violation of convergence condition
Ease of implementation Multiplication, exponentiation
Future works
Affect of delayed feedback Increased bits of feedback If one can know current number of user n? Impact of asynchronous operation