190 likes | 336 Views
Topics on Computer Network. Congestion Avoidance and Control V. Jacobson, SIGCOMM, 1988. Multimedia Communications LAB at HUFS Pyoung-jae , Lee ( whitewyrm@hufs.ac.kr ). Congestion Problem. Congestion Load exceeds the capacity of the network Overflow at router queues Problem
E N D
Topics on Computer Network Congestion Avoidance and ControlV. Jacobson, SIGCOMM, 1988 Multimedia Communications LAB at HUFS Pyoung-jae, Lee (whitewyrm@hufs.ac.kr)
Congestion Problem • Congestion • Load exceeds the capacity of the network • Overflow at router queues • Problem • Wasted bandwidth(retransmission required) • Unpredictable delay • October 1986: first “congestion collapse” • Caused by TCP retransmissions
Congestion Problem • Congestion problem has become more severe as the computer network grows • New algorithm forcing the “packet conservation” can be used to achieve network stability • i) round-trip-time variance estimation • ii) exponential retransmit timer backoff • iii) slow-start • iv) more aggressive receiver ack policy • v) dynamic window sizing on congestion
“Conservation of packets” principle • Equilibrium = “stable, full window of data in transit” • “Conservation” packet flow • New is not put into network until an old leaves • Possible problems with packet conservation • The connection doesn’t get to equilibrium • A sender injects a new packet before and old packet has exited • The equilibrium can’t be reached because of resource limits along the path
Getting to equilibrium: Slow-Start • Self-clocking • Automatically adjusts to BW & delay variations • Sender uses ACK as a ‘clock’ • Hard to start • Packet size(area) = BW x time
Getting to equilibrium: Slow-Start • Add a congestion window to the per-connection state • When starting or restarting after a loss, set congestion window to on packet • Cwnd = 1 packet • On each ack for new data, increase congestion window by one packet • Cwnd += 1 packet • When sending, send the minimum of the receiver’s advertised window and congestion window • Send window = min(rcv window, cwnd) • “Slow” is misnomer • Rate grows exponentially • R log2 W • R: round trip time • W: window size in packets
Conservation at equilibrium (round-trip timing) • Need good estimate of • RTT mean estimate( ) • RTT variation estimate • Increase quickly with load • TCP • Estimating mean round trip time(RFC793) • Next packet sent • RFC813 suggests: = 2
Conservation at equilibrium (round-trip timing) • RTT estimation, theory • • A := (1-g)A + gM, 0 < g < 1 • • A := A + g(M-A)(after rearranging) • M-A = Er + Ee, where • Er(random error): due to noise in measurement • Ee(estimation error): due to bad choice of A • • A := A + gEr + gEe, we want large g to get most of Ee, • but small g to reduce Er • • Usually take 0.1 ≤ g ≤ 0.2
Conservation at equilibrium (round-trip timing) • RTT estimation • Goal: estimate variance of M • σ2 = Σ |M-A|2 – Squaring can cause overflow – Use mean deviation instead – mdev = Σ | M – A | • mdev2 = (Σ | M – A |) 2 ≤ Σ | M – A |2 = σ2 • For normal distribution: mdev= sqrt( π/2 ) sdev ≈ 1.25 sdev
Adapting to the path: congestion avoidance • Reasons that cause time out • Packets damaged in transit • Packets lost due to insufficient buffer • Congestion avoidance • The network must be able to signal the transport endpoints that congestion is occurring • The endpoints must have a policy that decreases utilization
Adapting to the path: congestion avoidance • Network congestion model • System stabilizes only if traffic is reduced as quickly as queues are growing • Li = N + λ Li-1, • Li – load at interval i, average queue length • N – constant • λ ≈ 0, no congestion • λ > 1, congestion • – Ln = λn L0, grows exponentially
Adapting to the path: congestion avoidance • On congestion: • If no congestion detected • Wi= d Wi-1 (d < 1) • Take d = 0.5, Wi = Wi-1 / 2 • Wi = Wi-1 + u (u << Wmax) • Take u = 1, so Wi = Wi-1 + 1
Adapting to the path: congestion avoidance • On timeout: • cwnd = send window / 2 • On ack: • cwnd += 1 / cwnd • send window = min (rcv window, cwnd)