Measurement and Modelling I: End-to-End Bandwidth Measurements 6.829 Lecture 11 October 10, 2002 Jacob Strauss 1 End-to-End Measurements Goal: Bandwidth-Aware Applications • Is a path fast enough? • Which path is faster? What is bandwidth? • Link Capacity: physical link speed (e.g. 100 Mbps Ethernet) . for link i, link capacity ci. • Path Capacity: minimum capacity link along a path . C = mini=0...n(ci) • Link Utilization: fraction of link capacity used over some time interval . 0 ≤ ui ≤ 1 • Available Bandwidth: minimum spare capacity along a path over some interval . A = mini=0...n(1 − ui)ci 2 Example Topology X C=100 Mbps, u=0.95 Capacity from X to Y? C=20 Mbps, u=0.5 Y C=10 Mbps, u=0.2 Example Topology C=20 Mbps, u=0.5 X Y C=100 Mbps, u=0.95 Capacity from X to Y? C=10 Mbps, u=0.2 C = 10M bps Available bandwidth from X to Y? Example Topology C=20 Mbps, u=0.5 X Y C=100 Mbps, u=0.95 Capacity from X to Y? C=10 Mbps, u=0.2 C = 10M bps Available bandwidth from X to Y? A = 5M bps 3 Problem: Capacity Estimation C1 X C2 C3 Y How can we measure the path capacity between X and Y ? 4 Packet Pair on an unloaded path C1 C3 C2 X Y t t Send two packets, of P bits each, back-to-back Record the difference between arrival times, ∆t. Path Capacity is P ∆t 5 Packet Pair Complications: Cross Traffic C1 C3 C2 Y X t t probe packet other packet P ∆t > C 6 Packet Pair Complications: Multiple Queues C1 C3 C2 Y X t t probe packet other packet P ∆t < C 7 Delay Measurements Block Diagram Packet Source Network Timestamps Filters Estimates 8 New Problem: Path capacity and packet size distribution Long train of packets with size P , sent every δ seconds Record either one-way-delay or round-trip time for each packet • RTT is easier to measure. Why? Use phase plots: • For each n, plot a point at (rttn, rttn + 1) 9 Delay Components & Model Components • • • • Propagation delays Queuing delays Processing delay (lookup & scheduling) Transmission delay Model assuming a single queue • Fixed delay: D • waiting time: wn • service time: yn = P µ • total delay: rttn = D + wn + Pµ 10 Explain the Plot: light load conditions Assume that the tight link load is low: • wn+1 = wn + n ⇒ rttn+1 = rttn + n Explain the Plot: light load conditions Assume that the tight link load is low: • wn+1 = wn + n ⇒ rttn+1 = rttn + n Points plotted near the line y = x above (x, y) = (D, D) 11 Explain the Plot: heavy load conditions Assume B bits in between probe packets n and n + 1 wn+1 = wn + B µ −δ Explain the Plot: heavy load conditions Assume B bits in between probe packets n and n + 1 wn+1 = wn + B µ −δ Now assume B µ δ • We have probe compression: k − 1 packets arrive before B clears the queue • These k packets depart every P/µ seconds for the k packets: wn+i − wn+i−1 = P/µ − δ • why is P/µ − δ < 0? Explain the Plot: heavy load conditions Assume B bits in between probe packets n and n + 1 wn+1 = wn + B µ −δ Now assume B µ δ • We have probe compression: k − 1 packets arrive before B clears the queue • These k packets depart every P/µ seconds for the k packets: wn+i − wn+i−1 = P/µ − δ • why is P/µ − δ < 0? result is rttn+1 = rttn + (P/µ − δ) Explain the Plot: heavy load conditions Assume B bits in between probe packets n and n + 1 wn+1 = wn + B µ −δ Now assume B µ δ • We have probe compression: k − 1 packets arrive before B clears the queue • These k packets depart every P/µ seconds for the k packets: wn+i − wn+i−1 = P/µ − δ • why is P/µ − δ < 0? result is rttn+1 = rttn + (P/µ − δ) We now know the bottleneck capacity µ from the plot. 12 Packet size distribution Assume that between packets n and n + 1, bn bits from other flows join queue • Use Lindley’s recurrence: wn+1 = (wn + yn − δn)+, where x+ means max(x, 0) Packet size distribution Assume that between packets n and n + 1, bn bits from other flows join queue • Use Lindley’s recurrence: wn+1 = (wn + yn − δn)+, where x+ means max(x, 0) Apply twice: wbn = (wn + P/µ − δb)+ wn+1 = + (wn + P/µ − δb) + bn/µ − (δ − δb) + Packet size distribution Assume that between packets n and n + 1, bn bits from other flows join queue • Use Lindley’s recurrence: wn+1 = (wn + yn − δn)+, where x+ means max(x, 0) Apply twice: wbn = (wn + P/µ − δb)+ wn+1 = + (wn + P/µ − δb) + bn/µ − (δ − δb) + wn+1 = wn + (P + bn)/µ − δ bn = µ(wn+1 − wn + δ) − P Now we can find packet sizes from peaks in PDF of wn+1 − wn + δ 13 Example Distribution Plot 700 1500B 500B b2b 800 sent gap Squeezed Pair Histogram: ccicom.ron.lcs.mit.edu --> nyu.ron.lcs.mit.edu 600 pair count 500 400 300 200 100 0 0 50 100 150 received gap in usec (2 us buckets) 200 14 New Problem: Available Bandwidth Estimation Can we use the same packet train to estimate A? New Problem: Available Bandwidth Estimation Can we use the same packet train to estimate A? No, but we can determine whether P/δ > A or P/δ < A • Later we’ll build on this test to estimate A New Problem: Available Bandwidth Estimation Can we use the same packet train to estimate A? No, but we can determine whether P/δ > A or P/δ < A • Later we’ll build on this test to estimate A Basic idea: instead of just comparing wn+1 to wn, compare wn to wn+1, wn+2, wn+3, . . . Method: Plot evolution of wn versus n 15 Pathload Delay Model The packet train consists of K packets of size L sent at a constant rate R. Path consists of H links, each with capacity Ci, available bandwidth Ai, and queue length qik when the kth probe packet arrives Pathload Delay Model The packet train consists of K packets of size L sent at a constant rate R. Path consists of H links, each with capacity Ci, available bandwidth Ai, and queue length qik when the kth probe packet arrives The One-Way-Delay for probe k is: Dk = H X L i=1 Ci + qik Ci Pathload Delay Model The packet train consists of K packets of size L sent at a constant rate R. Path consists of H links, each with capacity Ci, available bandwidth Ai, and queue length qik when the kth probe packet arrives The One-Way-Delay for probe k is: Dk = H X L i=1 Ci + ∆Dk ≡ Dk+1 − Dk = qik Ci H X ∆q k i i=1 Ci 16 Increasing Trends If R > A, then ∆Dk > 0 for k ≥ 1 If R ≤ A, then ∆Dk = 0 for k ≥ 1 Increasing Trends If R > A, then ∆Dk > 0 for k ≥ 1 If R ≤ A, then ∆Dk = 0 for k ≥ 1 Intuition for a single link i with Ai < R: • Queue grows longer with each probe packet that arrives • ∆qik = (L + uiCiT ) − C1T = (R − Ai)T > 0 For a single link with Ai ≥ R: • ∆qik = 0 By induction, show that ∆Dk > 0 when R > A Increasing Trends If R > A, then ∆Dk > 0 for k ≥ 1 If R ≤ A, then ∆Dk = 0 for k ≥ 1 Intuition for a single link i with Ai < R: • Queue grows longer with each probe packet that arrives • ∆qik = (L + uiCiT ) − C1T = (R − Ai)T > 0 For a single link with Ai ≥ R: • ∆qik = 0 By induction, show that ∆Dk > 0 when R > A Plot Dk – if ∆Dk > 0 then R > A 17 Complications Ai not a constant • varies on both short and long time scales Need to choose K and L carefully • Too short – can’t tell if ∆Dk > 0 • Too long – flood link • Compromise – use multiple trains How did we choose R initially? 18 Iterative Search for A maintain two state variables: Rmax and Rmin. always have Rmin ≤ A ≤ Rmax . Pick a new R halfway between Rmax and Rmin Test whether R <> A, update either Rmax or Rmin Stop when Rmax and Rmin are close enough. In practice the search is more complicated because the outcome of testing R <> A is sometimes unsure 19 Pathload Block Diagram Packet Source Network Timestamps Filters Estimates 20 Available Bandwidth isn’t the full story BTC vs Pathload: 15 RON hosts -- one test per path 1 0.9 0.8 0.7 CDF 0.6 0.5 0.4 0.3 0.2 0.1 0 0.01 0.1 1 BTC / Pathload rate 10 100 21 Conclusion There’s a lot you can learn with simple probes • packet pair • packet trains — regular interval, constant packet size Just by looking at packet delay variations you can determine • Path Capacity • Common Packet Sizes • Available Bandwidth 22