SProbe: Another Tool for Measuring Bottleneck Link Bandwidth Stefan Saroiu P. Krishna Gummadi Steven Gribble University of Washington
Peer-to-Peer File-Sharing Systems Ongoing project - analyze and measure characteristics of current P2P systems Estimate bottleneck bandwidths to and from many and diverse Internet hosts: –Traditional modems: ppp35.bcpl.net –Cable modems: c a.plano1.tx.home.com –DSL: adsl cae.bellsouth.net –Dorms (10/100 Mbps): st14_032.dorm.depaul.edu
Wanted: Sexy Linux Tool that: 1.Measures a network physical property - bottleneck bandwidths 2.Has reasonable accuracy Willing to tolerate factor-of-two errors 3.Preferably returns only one estimate 4.Runs fast 1 min/host is too slow 5.Measurement software is deployed at only one endpoint
Problems with Contenders Measuring ALL links bandwidths is slow: –pathchar, pchar, clink Measurement software must be deployed at both endpoints: –pathrate Estimates based on ICMP: –ICMP can be filtered, dropped, answered by routers, rate-limited answers –bprobe
Problems with Contenders (2) Estimates based on passively monitoring traffic to and from the remote host: –This works as long as the traffic is formed by large packets-pairs –Unfortunately, most of our traffic is not –nettimer Traffic is processed as a set of packet- pairs only: –Traffic can be shaped to reveal more information – cross-traffic detection
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From local host To remote host –No cooperation needed LocalRemote SYN packet RST packet
SProbe Uses TCP Tricks From remote To local –Involuntary cooperation of application layer LocalRemote (Web) HTTP Get request Data packet ACK (last data packet)
Trials (local to remote) SProbe sends train of 6 packets (3160 bytes/train), upto 10 times
Trials (local to remote) SProbe sends train of 6 packets (3160 bytes/train), upto 10 times
Trials (local to remote) SProbe sends train of 6 packets (3160 bytes/train), upto 10 times
Trials (local to remote) SProbe sends train of 6 packets (3160 bytes/train), upto 10 times
Final Remarks A useful tool (for us) needs to: –Be deployed at one endpoint only –Run fast –Actively send probing packets –Detect cross-traffic interference When cross-traffic detected return ‘Unknown Estimate’ Do not returns bogus estimate instead, please. SProbe source will be available shortly: –