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?
Congestion Control Other Variables?
Congestion Avoidance and Control Van Jaconson 1988
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.3 BSD (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-startWith Slow-start Available bandwidth
Round-trip timing Estimating mean round trip time (in RFC 793) Retransmit timeout average RTT estimate filter gain constant (suggested value: 0.9) most recent RTT measurement RTT variation (suggested value: 2)
Estimating variation Proposed method Using mean deviation that is much easier to compute than standard deviation ( = measurement )
Timer improvement RFC 793 retransmit timerMean+Variance retransmit timer Timer
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 received Multiplicative decrease of window size on congestion Additive increase on no congestion
Slow-start & congestion avoidance Combined algorithm Ssthresh is kept to switch between the two algorithms 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 avoidanceWith congestion avoidance Each line represents each conversation
Effect of congestion avoidance (3) Total bandwidth usage No congestion avoidance congestion avoidance
Effect of congestion avoidance (4) Effective bandwidth No congestion avoidance congestion avoidance
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 Algorithms for Congestion Avoidance in Computer Networks Spring 2009 CS540/TE630 Computer Network Architecture 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 increase Response time Throughput stop increasing Response time increase Throughput decrease Response time increase Congestion control Congestion avoidance
Problem Definition network feedback (0/1) 0 : underflow 1 : overflow feedback (0/1) feedback (0/1) Increase or decrease load Different increase / decrease algorithms performance(efficiency / fairness)???
Model (1) bottleneck around knee user i’s network load Binary feedback (0/1)
Model (2)
Model (3) Linear control models Multiplicativex(t+1) = b x(t) Additivex(t+1) = a + x(t) Example Additive increase, multiplicative decrease
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 x 1 = x 2 x 1 + x 2 = X goal additive increase/decrease multiplicative increase/decrease
Examples of linear control Additive increase Multiplicative decrease Additive increase Additive decrease
Convergence to Efficiency Negative feedback
Convergence to Fairness (1) C ≥ 0 : non-decrease of fairness C = 0 : same fairness stay Require C < 0 for either increase or decrease policy
Convergence to Fairness (2) Require C(= ) < 0 for either increase or decrease policy Fairness goes up during decrease, goes up or stay during increase Fairness goes up during increase, goes up or stay during decrease
Convergence to Efficiency and Fairness a I and b I not be both zero a I and a D not be both zero
Distributedness We don’t know
Conclusion about feasible linear control Increasing policy must have Additive component, must have multiplicative component with no less one Decreasing policy must be multiplicative
Vectorial Representation (1) x 1 + x 2 = x h Assume overload network (in case of decreasing)
Vectorial Representation (2) Convergence to Efficiency b>1 b<1 a<0 a>0 a<0 b<1 Convergence to Fairness Higher fairness than x h
Vectorial Representation (3) Intersection of Efficiency and Fairness Decrease must be multiplicative
Vectorial Representation (4) Increase have - additive component - multiplicative component less than 1
Optimizing the convergence Time to converge to efficiency Responsiveness, t e Oscillation size Smoothness, s e
Optimal convergence to Efficiency From initial state X(0) to X goal Monotonically decreasing function of a and b Monotonically increasing function of a and b
Optimal convergence to Fairness Improvement of Fairness Increased with larger c (= ) larger a, smaller b Increasing process : additive Decreasing process : multiplicative From Decreasing process Fairness will stay Increasing process Smaller b b I = 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