410 likes | 417 Views
Learn about estimating available bandwidth using pathload and abget methods, illustrated with examples and the SLoPS technique. Understand how to calculate, measure, and analyze bandwidth variations.
E N D
Estimating Available Bandwidth with pathload and abget Professor Nelson Fonseca nfonseca@ic.unicamp.br
Estimators - Professor Nelson Fonseca Outline • Introduction • Measuring available bandwidth • SLoPS method • pathload • abget • Interrupt coalescence • Examples • Conclusions • References
Estimators - Professor Nelson Fonseca Introduction
Estimators - Professor Nelson Fonseca Bandwidth • Bandwidth defines how much data (bits) can be transferred between two points in a time interval (seconds) • Related terms: nominal capacity, capacity, narrow link, available bandwidth, tight link, bulk transfer capacity (BTC), ...
Estimators - Professor Nelson Fonseca Available Bandwidth • Important to traffic engineering • Important to take scheduling decisions (grids and clouds) • Important to take decisions about links upgrade
Estimators - Professor Nelson Fonseca Measuring available bandwidth
Calculating Available Bandwidth • Available Bandwidth: unutilized capacity • Varies with time • ui : utilization of link i in a time interval ( 0 <= ui <= 1 ) • Available bandwidth in link i: • Available bandwidth in path (Avail-bw): minimum Ai Estimators - Professor Nelson Fonseca
Available Bandwidth:time varying metric τ A(t) T t • τ defines sampling/averaging timescale • Average avail-bw in τ • Does not tell how avail-bw varies • Variation range gives more information Estimators - Professor Nelson Fonseca
Estimators - Professor Nelson Fonseca Measuring per-hop available bandwidth • Can be measured at each link from interface utilization data using SNMP • MRTG (Multi Router Traffic Grapher) graphs: 5-minute averages • But users do not normally have access to SNMP data • And MRTG graphs give only per-hop avail-bandwidth
Estimators - Professor Nelson Fonseca Measuring path Available Bandwidth • Blast path with UDP packets • Intrusive • Carter & Crovella: cprobe (Infocom 1996) • Packet train dispersion does not measure available bandwidth (Dovrolis et.al. Infocom’01) • Measure throughput of large TCP transfer • TCP throughput depends on network buffer • Ribeiro et.al. : Delphi (ITC’00) • Correct estimation when queuing occurs only at single link • Assumes that cross traffic can be modelled by MWM model
Estimators - Professor Nelson Fonseca SloPS method
Main Idea R S R R send • Examine One-Way Delay (OWD) variations of a fixed rate stream • Relate rate to avail-bw • OWD: Di = Tarrive-T= Tarrive - Tsend + Clock_Offset(S,R) • SLoPS uses relative OWDs, ΔDi = Di+1 – Di-1 (independent of clock offset) • With a stationary & fluid model for the cross traffic, and FIFO queues: • If R > min Ai, then ΔDi > 0 for I = 1…N • Else ΔDi = 0 for for I = 1…N Estimators - Professor Nelson Fonseca
Estimators - Professor Nelson Fonseca Illustration • Periodic Stream: K packets, size L bytes, rate R = L/T • If R>A, OWDs gradually increase due to self-loading of stream
Trend in real data • For some rate R • Increasing trend in OWDs R > Avail-bw • No trend in OWDs R < Avail-bw Estimators - Professor Nelson Fonseca
Estimators - Professor Nelson Fonseca Iterative Algorithm in SloPS • At sender: Send periodic stream n with rate Rn • At receiver: Measure OWDs Di for i=1…K • At receiver: Notify sender of trend in OWDs • At sender: If trend is : • increasing (i.e. Rn >A ) repeat with Rn+1 < Rn • non-increasing (i.e. Rn <A ) repeat with Rn+1>Rn • Selection of Rn+1 : Rate adjustment algorithm • Terminate if Rn+1 – Rn < ω • ω : resolution of final estimate
If things were black and white... • Grey region: Rate R not clearly greater or smaller than Avail-bw during the duration of stream • Rate R is within variation range of avail-bw Estimators - Professor Nelson Fonseca
Big Picture • Increasing trend R > variation range of Avail-bw • No trend R < variation range of Avail-bw • Grey trend R inside variation range Estimators - Professor Nelson Fonseca
Rmax > A Gmax Gmin Rmin < A Rate Adjustment Algorithm • Increasing trend : • Rmax = R(n) • R(n+1) = (Gmax + Rmax)/2 • Non-increasing trend: • Rmin = R(n) • R(n+1) = (Gmax +Rmin)/2 • Grey region & R(n) > Gmax: • Gmax = R(n) • R(n+1) = (Gmax + Rmax )/2 • Grey region & R(n) < Gmin: • Gmin = R(n) • R(n+1) = (Gmin + Rmin )/2 Grey region Variation Range Terminate if: (Rmax – Gmax) && (Rmin– Gmin) < Initial Gmin = 0 Initial Gmax = Average throughput of a small initial transfer of UDP data Estimators - Professor Nelson Fonseca
Estimators - Professor Nelson Fonseca pathload (1) • Implements SLoPS • Estimates end-to-end available bandwidth • Based on one-way delay trend of periodic streams • Reports a range of avail-bw • Corresponds to variation, measured in stream duration • According the developers, the interference is almost nonexistent
Estimators - Professor Nelson Fonseca pathload (2) • Version 1.3.2 (2006) • Features • Open Source • Two processes (one at sender, one at receiver) • No need to root privileges • No need to define several parameters • pathload2 released recently (Apr 2009) • Installation • Download from • http://www.cc.gatech.edu/fac/Constantinos.Dovrolis/bw-est/pathload.tar.gz • Uncompress in a Linux operating system • ./configure && make
Estimators - Professor Nelson Fonseca pathload (3) • Two connections • TCP – control • UDP – data stream • Execution order • At sender: • pathload_snd • Waits receiver connection via TCP port 55002 • At receiver: • pathload_rcv -s <sender IP address|sender hostname> • Connects to sender at TCP port 55002 • Sender sends UDP data to receiver at UDP port 55001
Estimators - Professor Nelson Fonseca pathload (4) • Problems • Static ports • User needs access to the two end points • Ports must be opened in firewalls
Estimators - Professor Nelson Fonseca abget (1) • Also implements SloPS • Solves some pathload problems • Runs only in one end-point • Can make the estimations using TCP ports already opened in firewalls (e.g. 80)
Estimators - Professor Nelson Fonseca abget (2) • Version 1.0 (2007) • Features • Open Source • One process • Need root privileges • Can estimate both upstream and downstream availability • Installation • Install libpcap • Download from • http://www.ics.forth.gr/~papadog/abget/abget-1.0.tar.gz • Uncompress in a Linux operating system • ./configure && make && make install
Estimators - Professor Nelson Fonseca abget (3) • TCP connections • Both control and data stream • abget uses TCP control mechanisms • Execution order (at user end-point) • Downstream • abget -d -f <file location> <web server> • Retrieves the file and control the rate simulating the ACKs • Upstream • abget -u <web server>
Estimators - Professor Nelson Fonseca abget (4) • Downstream • abget emulates TCP by sending fake ACKs to the server (It captures the received packets and bypasses the default TCP implementation) • The advertise window of the server is limited to 1 MSS • Each ACK “requests” 1 MSS • By defining the ACKs period, it is possible to define the downstream rate • To force the server to send at rate R, abget sends ACKs at T=MSS/R
Estimators - Professor Nelson Fonseca abget (5) • Process illustration (downstream)
Estimators - Professor Nelson Fonseca abget (6) • Upstream • abget sends an HTTP request in many overlapping segments. • It repeats for many iterations with different rates in order to estimate a variation range for the available bandwidth in that path.
Estimators - Professor Nelson Fonseca abget (7) • Problems • Many parameters • Results not so precise as pathload • root privileges
Estimators - Professor Nelson Fonseca Interrupt Coalescence
Estimators - Professor Nelson Fonseca Interrupt Coalescence • 1 Network card event != 1 Interrupt • Enabled to avoid overload to the operating system • Should be disabled to avoid incorrect estimations • With interrupt coalescence: more packets in a time interval
Estimators - Professor Nelson Fonseca pathload and abget • By reading the source code, pathload avoids interrupt coalescence. abget doesn't • But each manufacturer implements a different method
Estimators - Professor Nelson Fonseca Examples 1 and 2 - Scenario
Estimators - Professor Nelson Fonseca Examples 1 – Precision at 10Mbps
Estimators - Professor Nelson Fonseca Examples 1 – Overhead at 10Mbps
Estimators - Professor Nelson Fonseca Examples 2 – Precision at 1Gbps
Estimators - Professor Nelson Fonseca Examples 2 – Overhead at 1Gbps
Estimators - Professor Nelson Fonseca Conclusions
Estimators - Professor Nelson Fonseca Conclusions • Available Bandwidth estimators must estimate using a range instead a average • Interrupt coalescence must be disabled • pathload and abget • Unchanged Clock offset • pathload gives more precise results • abget runs only in one end-point • abget uses HTTP (no problem with firewalls) • pathload doesn't need root privileges • pathload is ideal if there is access to the two end-points. Abget is ideal if there isn't.
Estimators - Professor Nelson Fonseca References • http://www.cc.gatech.edu/fac/Constantinos.Dovrolis/pathload.html • Official pathload website • http://www.measurementlab.net/measurement-lab-tools#pathload2 • pathload2 • http://www.ics.forth.gr/~papadog/abget/ • Official abget website • http://www.caida.org/tools/taxonomy/performance.xml • CAIDA (The Cooperative Association for Internet Data Analysis) website about network performance tools • http://www.29west.com/docs/THPM/latency-interrupt-coalescing.html • Interrupt coalescence and GNU/Linux