SProbe: Another Tool for Measuring Bottleneck Link Bandwidth Stefan Saroiu P. Krishna Gummadi Steven...
-
Upload
felicia-allen -
Category
Documents
-
view
224 -
download
0
Transcript of SProbe: Another Tool for Measuring Bottleneck Link Bandwidth Stefan Saroiu P. Krishna Gummadi Steven...
SProbe: Another Tool for Measuring Bottleneck Link
Bandwidth
Stefan SaroiuP. Krishna Gummadi
Steven GribbleUniversity 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: c589502-
a.plano1.tx.home.com– DSL: adsl-78-148-152.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 estimate4. 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
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From local host To remote host– No cooperation needed
Local Remote
SYN packet
RST packet
SProbe Uses TCP Tricks
• From remote To local– Involuntary cooperation of application
layer
Local Remote
(Web)
HTTP Get request
Data packet
ACK (last data packet)
Trials (local to remote)
ROPP SBPP ROPP (reverse)
volkswagen.cs.washington.edu 100Mb 32Mb 32Mb 32Mb 97Mb 83Mbwww.cs.stanford.edu 100Mb 32Mb 106b 32Mb 26Mb 24MbRAS2-p218.jlm.netvision.net.il ? 32Mb 70b 19.9Kb-32Mb timeout unknownwww.cs.uwaterloo.ca 10Mb 32Mb 32Mb 2.6Mb icmp filter 4.5Mbcrtntx1-ar3-089-007.dsl.gtei.net 128Kb-2Mb 32Mb 30b 83Kb timeout 704Kbxxx.ktchnr1.on.wave.home.com 0.5-1.5Mb 32Mb 32Mb 26Kb-1.8Mb timeout 400Kbmp-216-53-118.daxnet.no ? 74Mb 32Mb 52Kb timeout 63Kbppp35.bcpl.net 14.4-56Kb 32Mb 60b 0.35-65Kb timeout unknownPPPa96-xxx.dialinx.net 14.4-56Kb 78Mb 32Mb 32Kb timeout 40Kb
sprobenettimerNominal bprobe
SProbe sends train of 6 packets (3160 bytes/train),
upto 10 times
Trials (local to remote)
ROPP SBPP ROPP (reverse)
volkswagen.cs.washington.edu 100Mb 32Mb 32Mb 32Mb 97Mb 83Mbwww.cs.stanford.edu 100Mb 32Mb 106b 32Mb 26Mb 24MbRAS2-p218.jlm.netvision.net.il ? 32Mb 70b 19.9Kb-32Mb timeout unknownwww.cs.uwaterloo.ca 10Mb 32Mb 32Mb 2.6Mb icmp filter 4.5Mbcrtntx1-ar3-089-007.dsl.gtei.net 128Kb-2Mb 32Mb 30b 83Kb timeout 704Kbxxx.ktchnr1.on.wave.home.com 0.5-1.5Mb 32Mb 32Mb 26Kb-1.8Mb timeout 400Kbmp-216-53-118.daxnet.no ? 74Mb 32Mb 52Kb timeout 63Kbppp35.bcpl.net 14.4-56Kb 32Mb 60b 0.35-65Kb timeout unknownPPPa96-xxx.dialinx.net 14.4-56Kb 78Mb 32Mb 32Kb timeout 40Kb
sprobenettimerNominal bprobe
SProbe sends train of 6 packets (3160 bytes/train),
upto 10 times
Trials (local to remote)
ROPP SBPP ROPP (reverse)
volkswagen.cs.washington.edu 100Mb 32Mb 32Mb 32Mb 97Mb 83Mbwww.cs.stanford.edu 100Mb 32Mb 106b 32Mb 26Mb 24MbRAS2-p218.jlm.netvision.net.il ? 32Mb 70b 19.9Kb-32Mb timeout unknownwww.cs.uwaterloo.ca 10Mb 32Mb 32Mb 2.6Mb icmp filter 4.5Mbcrtntx1-ar3-089-007.dsl.gtei.net 128Kb-2Mb 32Mb 30b 83Kb timeout 704Kbxxx.ktchnr1.on.wave.home.com 0.5-1.5Mb 32Mb 32Mb 26Kb-1.8Mb timeout 400Kbmp-216-53-118.daxnet.no ? 74Mb 32Mb 52Kb timeout 63Kbppp35.bcpl.net 14.4-56Kb 32Mb 60b 0.35-65Kb timeout unknownPPPa96-xxx.dialinx.net 14.4-56Kb 78Mb 32Mb 32Kb timeout 40Kb
sprobenettimerNominal bprobe
SProbe sends train of 6 packets (3160 bytes/train),
upto 10 times
Trials (local to remote)
ROPP SBPP ROPP (reverse)
volkswagen.cs.washington.edu 100Mb 32Mb 32Mb 32Mb 97Mb 83Mbwww.cs.stanford.edu 100Mb 32Mb 106b 32Mb 26Mb 24MbRAS2-p218.jlm.netvision.net.il ? 32Mb 70b 19.9Kb-32Mb timeout unknownwww.cs.uwaterloo.ca 10Mb 32Mb 32Mb 2.6Mb icmp filter 4.5Mbcrtntx1-ar3-089-007.dsl.gtei.net 128Kb-2Mb 32Mb 30b 83Kb timeout 704Kbxxx.ktchnr1.on.wave.home.com 0.5-1.5Mb 32Mb 32Mb 26Kb-1.8Mb timeout 400Kbmp-216-53-118.daxnet.no ? 74Mb 32Mb 52Kb timeout 63Kbppp35.bcpl.net 14.4-56Kb 32Mb 60b 0.35-65Kb timeout unknownPPPa96-xxx.dialinx.net 14.4-56Kb 78Mb 32Mb 32Kb timeout 40Kb
sprobenettimerNominal bprobe
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:– http://www.cs.washington.edu/homes/tzoompy/
sprobe