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:

http://project-iris.net/irisbib/papers/spruce:imc03/paper.pdf

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 <[EMAIL PROTECTED]>:

-----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@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



_______________________________________________
p2p-hackers mailing list
p2p-hackers@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

Reply via email to