[p2p-hackers] Hard question...

Michael Parker mgp at ucla.edu
Mon Apr 3 08:36:18 UTC 2006

 From what I understand (which isn't much), CapProbe allows estimating 
the total end-to-end bandwidth of a link, which is necessarily the 
narrow link when there is no cross traffic inducing queueing delays. 
What it sounds like you want is something that measures available 
bandwidth instead, in which case I think you should look at something 
like Spruce:


If I recall correctly, however, Spruce can take awhile to run, while 
CapProbe is fairly quick (on a LAN, only a hundredth of a second... on 
a WAN, obviously more, but still reasonable). The two are, I think, 
complimentary tools.

If you could instead rephrase "I want to use X% of excess bottleneck 
capacity" as "I want to use X bps of the link without backing down 
anyone else's stream", then I imagine you could simply ramp up a 
TCP-like stream and monitor packet loss to infer whether you were 
backing down someone else's stream.

- Mike

Quoting David Barrett <dbarrett at quinthar.com>:

>> -----Original Message-----
>> From: Lars-Åke Larzon
>> Subject: Re: [p2p-hackers] Hard question....
>> > Um... most connections aren't saturated 24x7.  Like, I have a 6Mbps
>> > connection and sometimes I'm just using AIM.  In this situation,
>> > I'd like to
>> > measure that 5.9Mbps is free.  Any clever ideas on how to
>> > accomplish this?
>> >
>> Well, if you are absolutely sure that your own connection always is
>> the path bottleneck, you could simply keep track of your observed
>> peak capacities, calculate an estimated capacity X and assume that X-
>> your current load should be available. Keeping that estimate X on the
>> lower end would give you a good enough approximation. This can be a
>> good strategy for low-bandwidth access networks that then won't have
>> to ramp up as slowly as TCP slowstart dictates.
> Excellent, this is precisely the sort of answer I'm looking to get.
> The challenge with this strategy (as I see it) is resolving the "shared LAN"
> problem: how does client A measure bottleneck utilization if client B is
> also behind the same bottleneck?
> Recall, the point is for a client to say "I want to use X% of excess
> bottleneck capacity".  This means knowing the "total capacity" and "current
> utilization".
> A client could monitor its peak usage and infer that the total capacity is
> at least this.  And it can measure its current usage and infer the current
> utilization is at least this.  But if there's another client behind the same
> bottleneck, it's only seeing a piece of the picture.
> Now, as Serguei suggested, perhaps the whole attempt is moot and it's just
> better to have a very conservative TCP-like stream, and trust that it'll
> only grow to use excess capacity.  And as Bob mentioned, bursty traffic
> complicates this analysis.  And clearly, as Lars said this only matters if
> you're absolutely sure your own connection is the bottleneck.
> But I'm curious if there are any other clever techniques out there (like
> Michael's suggestion of CapProbe) that might be used to identify bottleneck
> capacity and current utilization, irrespective of who you might contact on
> the other side of the bottleneck, and irrespective of how many clients are
> on this side of the bottleneck.
> -david
> _______________________________________________
> p2p-hackers mailing list
> p2p-hackers at zgp.org
> http://zgp.org/mailman/listinfo/p2p-hackers
> _______________________________________________
> Here is a web page listing P2P Conferences:
> http://www.neurogrid.net/twiki/bin/view/Main/PeerToPeerConferences

More information about the P2p-hackers mailing list