Katz, Stoica F04 EECS 122: Introduction to Computer Networks Transport Analysis Computer Science Division Department of Electrical Engineering and Computer Sciences University of California, Berkeley Berkeley, CA
Katz, Stoica F04 2 Outline Exponential averaging and its applications Retransmission timeout (RTO) computation Little’s Theorem (revisited)
Katz, Stoica F04 3 Exponential Averaging Let X 1, X 2, …, X N be a series of measurements Then average value A i after the i-th measurement is computed as A i = A i-1 + (1 - ) X i where is a constant between 0 and 1 Note that (assuming A 0 = 0): A i = (1 - ) X 1 + (1 - ) X 2 + (1 - ) X N What is the role of ? What does control?
Katz, Stoica F04 4 Exponential Averaging: Example X constant; A converges to X A … X iteration
Katz, Stoica F04 5 Exponential Averaging: Example Maintaining queue size in RED
Katz, Stoica F04 6 Exponential Averaging: Example RTT estimation in TCP Measure RTT for each packet/ACK pair Compute average of RTT as -EstRTT = x EstRTT + (1 - ) x RTT is 0.9 (or 0.8)
Katz, Stoica F04 7 Moving Window Average Let X 1, X 2, …, X N be a series of measurements Then average value A i after the i-th measurement is computed as A i = (X i-1 + X i-2 + … + X i-w )/W where W is the window size How do exponential averaging and moving window averaging compare?
Katz, Stoica F04 8 Outline Exponential averaging and its applications Retransmission timeout (RTO) computation Little’s Theorem (revisited)
Katz, Stoica F04 9 Retransmission Timeout (RTO) Computation: The Problem 1 1 Timeout too long inefficiency 1 1 Timeout too short duplicate packets RTT Timeout RTT
Katz, Stoica F04 10 RTO Computation: Original Algorithm Measure RTT for each packet/ACK pair, then perform 1.EstRTT = x EstRTT + (1 - ) x RTT, where is 0.9 (or 0.8) 2.RTO = 2 x EstRTT
Katz, Stoica F04 11 RTO Computation: Jacobson/Karels Algorithm Measure RTT for each packet/ACK pair, then perform 1.Err = RTT - EstRTT 2.EstRTT = EstRTT + (1 – ) x Err (Note: equivalent to EstRTT = x EstRTT + (1 - ) x RTT ) 3.DevRTT = x DevRTT + x | Err| 4.RTO = EstRTT + 4 DevRTT where = 0.9 and = 1/8 DevRTT represents the mean of the deviation (like standard deviation) of the RTT Why do we need DevRTT ?
Katz, Stoica F04 12 RTO Computation: Karn/Partridge Algorithm Add the following two considerations to Jacobson/Karels algorithm -EstRTT is updated only when an ACK is received before the timeout expires. Why? -If a packet timeouts, double EstRTT. Why?
Katz, Stoica F04 13 Outline Exponential averaging and its applications Retransmission timeout (RTO) computation Little’s Theorem (revisited)
Katz, Stoica F04 14 Little’s Theorem Assume a system (e.g., a queue) at which packets arrive at rate a(t) Let d(i) be the delay of packet i, i.e., time packet i spends in the system What is the average number of packets in the system? system a(t) – arrival rate d(i) = delay of packet i Intuition: -Assume arrival rate is a = 1 packet per second and the delay of each packet is s = 5 seconds -What is the average number of packets in the system?
Katz, Stoica F04 15 Little’s Theorem Latest bit seen by time t SenderReceiver 12 time x(t) d(i) = delay of packet i x(t) = number of packets in transit (in the system) at time t T What is the system occupancy, i.e., average number of packets in transit between 1 and 2 ?
Katz, Stoica F04 16 Little’s Theorem Latest bit seen by time t SenderReceiver 12 time x(t) T Average occupancy = S/T d(i) = delay of packet i x(t) = number of packets in transit (in the system) at time t S= area
Katz, Stoica F04 17 Little’s Theorem Latest bit seen by time t SenderReceiver 12 time x(t) S(N) P d(N-1) S(N-1) T S = S(1) + S(2) + … + S(N) = P*(d(1) + d(2) + … + d(N)) d(i) = delay of packet i x(t) = number of packets in transit (in the system) at time t S= area
Katz, Stoica F04 18 Average occupancy Average arrival time Average delay Little’s Theorem Latest bit seen by time t SenderReceiver 12 time x(t) S(N) P d(N-1) S(N-1) T S/T = (P*(d(1) + d(2) + … + d(N)))/T = ((P*N)/T) * ((d(1) + d(2) + … + d(N))/N) d(i) = delay of packet i x(t) = number of packets in transit (in the system) at time t S= area
Katz, Stoica F04 19 Little’s Theorem Latest bit seen by time t SenderReceiver 12 time x(t) S(N) Average occupancy = (average arrival rate) x (average delay) S= area a(i) d(N-1) S(N-1) T d(i) = delay of packet i x(t) = number of packets in transit (in the system) at time t