Subject: Re: [p2pi] Information in an ALTO protocol

From: Stanislav Shalunov <[email-masked]>
Date: Fri, 12 Sep 2008 12:40:40 -0700

Let us put the privacy considertaions aside for a minute.

I'm actually not even sure how one would use uplink sizes if they were available, particularly only for some peers.

The underlying assumption of many messages seems to be that P2P clients will prefer to connect to higher-uplink peers.  While this would help you if you're the only one doing it, it would hurt everyone if done universally.

The only use I can think of right now that doesn't have obvious adverse consequences is to prefer peers with uplinks of about the same size as yours.  While this shouldn't reduce average download rate, I'm also not sure what purpose it would serve.  It would make the response to increases in uplink capacity more linear, but of course it's sublinear by design.

Can someone fill me in on how a P2P app would use provisioned uplink numbers?

Thanks, -- Stas

-----Original Message-----
From: "Laird Popkin" <[email-masked]>
To: "Salman Abdul Baset" <[email-masked]>
Cc: [email-masked]; "Richard Woundy" <[email-masked]>
Sent: 9/11/08 1:28 PM
Subject: Re: [p2pi] Information in an ALTO protocol

(1) If an ISP configures their ALTO server to tell applications that the users' uplink is less than it really is, I think that could have two effects. For users inside the ISP, it would tend to suppress internal traffic and cause peers to download from external peers, which is probably bad for the ISP. And it might tend to cause peers from outside the ISP to shift traffic elsewhere to some degree, which would reduce uplink utilization, which would be an incentive to 'aim low'. How these two factors would balance out would depend on the ISP's infrastructure.

(2) I don't believe that the p2p network would have to decide that the ISP's ALTO server was 'lying'. P2P networks all currently measure observed throughput between peers and use that to make decisions. If they add ALTO provisioning information, I would expect that they would treat observed throughput as being more true than the ALTO guidance. So without having to make a decision about 'ALTO lying' the p2p network would tend to take advantage of good ALTO guidance (because ALTO guidance and p2p performance optimization reinforce each other) and would tend to cancel out bad ALTO guidance (because the p2p performance optimization would end up overruling the ALTO guidance).

- Laird Popkin, CTO, Pando Networks
  mobile: 646/465-0570

----- Original Message -----
From: "Salman Abdul Baset" <[email-masked]>
To: "Laird Popkin" <[email-masked]>
Cc: "Richard Woundy" <[email-masked]>, [email-masked]
Sent: Thursday, September 11, 2008 3:46:10 PM (GMT-0500) America/New_York
Subject: Re: [p2pi] Information in an ALTO protocol

This raises at least two issues:

> Playing devil's advocate, while ALTO doesn't provide a mechanism for ISP A
> to tell non-customers anything, but it is possible for the p2p network 
> as a whole to make decisions based on information provided by ALTO. For 
> example, if ISP A says that its users have bad uplink, and ISP B says 
> that its customers have great uplink, then the rest of the internet will 
> tend to download more from ISP B than A.

(1) Do ISPs have an incentive to lie to their customers that their uplink 
is bad?

This will be counter-balanced 
> in that if, in practice, ISP A has fine uplink, the p2p network will 
> figure that out and use those peers anyway, ignoring the misleading ALTO 
> guidance, because observed behavior has (IMO) more 'weight' than ALTO 
> guidance.

(2) Do P2P applications must determine if an ISP ALTO server is lying?

Note, that misconfiguration can also be a cause of ALTO server providing 
misleading information.

-s

>
> ----- Original Message -----
> From: "Richard Woundy" <[email-masked]>
> To: "Reinaldo Penno" <[email-masked]>, "Laird Popkin" <[email-masked]>
> Cc: [email-masked]
> Sent: Thursday, September 11, 2008 2:52:06 PM (GMT-0500) America/New_York
> Subject: RE: [p2pi] Information in an ALTO protocol
>
>> I was wondering if he was assuming some kind inter-ALTO communication.
>
> I guess I was. And perha
_______________________________________________
p2pi mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/p2pi

---

From: "Ye WANG" <[email-masked]>
Date: Mon, 15 Sep 2008 10:09:57 -0400

On Fri, Sep 12, 2008 at 3:40 PM, Stanislav Shalunov <[email-masked]>wrote:

> I'm actually not even sure how one would use uplink sizes if they were
> available, particularly only for some peers.
>
> The underlying assumption of many messages seems to be that P2P clients
> will prefer to connect to higher-uplink peers.  While this would help you if
> you're the only one doing it, it would hurt everyone if done universally.

[Ye (Yale)]
We have seen many studies on video streaming applications that prefer
higher-uplink-bandwidth peers.  I certainly agree with you that the system
may somehow get 'blocked' if all clients naively select the highest-uplink
peer to be parents.  How to efficiently use all upload capacity, especially
those higher-uplink peers, is still an interesting problem.

>
>
> The only use I can think of right now that doesn't have obvious adverse
> consequences is to prefer peers with uplinks of about the same size as
> yours.  While this shouldn't reduce average download rate, I'm also not sure
> what purpose it would serve.  It would make the response to increases in
> uplink capacity more linear, but of course it's sublinear by design.
>
[Ye (Yale)]
Analysis based on a fluid model of P2P file sharing system indicates that
bandwidth matching can help improve average file download rate.  The
bandwidth matching can be roughly described like: a peer with download
capacity R downloads from the peer whose upload capacity R (=downloader
download rate).  Thus, for file sharing applications, like Pando,
BitTorrent, etc., the uplink/downlink bandwidth information can be useful in
system optimization.
In the recent P4P field test, we estimated these numbers before using them
to compute peering selection weights.  Estimation based on measurement is
dynamic and less accurate, while direct numbers from ALTO servers may be
generally static and more accurate.

> (1) If an ISP configures their ALTO server to tell applications that the
> users' uplink is less than it really is, I think that could have two
> effects. For users inside the ISP, it would tend to suppress internal
> traffic and cause peers to download from external peers, which is probably
> bad for the ISP. And it might tend to cause peers from outside the ISP to
> shift traffic elsewhere to some degree, which would reduce uplink
> utilization, which would be an incentive to 'aim low'. How these two factors
> would balance out would depend on the ISP's infrastructure.
>
> (2) I don't believe that the p2p network would have to decide that the
> ISP's ALTO server was 'lying'. P2P networks all currently measure observed
> throughput between peers and use that to make decisions. If they add ALTO
> provisioning information, I would expect that they would treat observed
> throughput as being more true than the ALTO guidance. So without having to
> make a decision about 'ALTO lying' the p2p network would tend to take
> advantage of good ALTO guidance (because ALTO guidance and p2p performance
> optimization reinforce each other) and would tend to cancel out bad ALTO
> guidance (because the p2p performance optimization would end up overruling
> the ALTO guidance).
>

---

From: Stanislav Shalunov <[email-masked]>
Date: Mon, 15 Sep 2008 18:02:38 -0700

On Sep 15, 2008, at 7:09 AM, Ye WANG wrote:
> We have seen many studies on video streaming applications that  
> prefer higher-uplink-bandwidth peers.  I certainly agree with you  
> that the system may somehow get 'blocked' if all clients naively  
> select the highest-uplink peer to be parents.

Better yet, if this is taken literally, the system turns client/ 
server: the peers with absolute highest uplinks form the server bank  
and nobody else uploads anything.  This, of course, dramatically  
reduces swarm efficiency and thus download rates.

If done as a preference, the effect is not as extreme, but still a  
move in the same counterproductive direction.

> Analysis based on a fluid model of P2P file sharing system indicates  
> that bandwidth matching can help improve average file download rate.

I'd like to understand this better.  I understand the effect with more  
linear response -- bigger uplink now means proportionally higher  
uplinks of your peers, which means higher download rate, linearly.  I  
don't yet see why capacity matching will improve average rate.

Anyway -- the sublinear response is consciously designed and desirable  
-- with it, high-capacity peers still have an incentive to contribute,  
while a majority of peers see improved outcomes.  Think of a log(rate)  
utility function -- 50% better outcomes for 10 typical peers are worth  
30% worse outcome for 1 unusually well-provisioned peer.

Making the response more linear will improve the outcomes of a few  
very well-off peers at the expense of a large number of typical ones.   
I do not yet see why it is desirable.

--
Stanislav Shalunov

---

From: "Ye WANG" <[email-masked]>
Date: Tue, 16 Sep 2008 00:39:35 -0400

On Mon, Sep 15, 2008 at 9:02 PM, Stanislav Shalunov <[email-masked]>wrote:

> peer to be parents.
> Better yet, if this is taken literally, the system turns client/server: the
> peers with absolute highest uplinks form the server bank and nobody else
> uploads anything.  This, of course, dramatically reduces swarm efficiency
> and thus download rates.
>
> If done as a preference, the effect is not as extreme, but still a move in
> the same counterproductive direction.
>
[Ye (Yale)]
I generally agree with you that a simple prefer-faster-peer strategy may not
be the best for application performance.  However, without knowing any
bandwidth information, or given inaccurate inputs, I would rather believe
that it is more difficult for the peer to make the optimal decision.

> linear response -- bigger uplink now means proportionally higher uplinks of
> your peers, which means higher download rate, linearly.  I don't yet see why
> capacity matching will improve average rate.
>
[Ye (Yale)]
Conceptually, capacity matching is the efficient way to utilize system
resouce.  The intuition (not rigorous) is as follows.  Say, a leecher with
download capacity DR chooses to download from a seed with upload limit UR,
where DR<UR.  This strategy may destroy the possibility that the seed could
actually serve another client which has higher download capcity
DR'=UR.  Thus, some of the system upload capacity (UR-DR) might
be unnecessarilly wasted.

Formal analysis indicates: through bandwidth matching, a file sharing swarm
(essentially a content distribution system) is able to achieve the best
average download rate (distriuting speed).

>
> Anyway -- the sublinear response is consciously designed and desirable --
> with it, high-capacity peers still have an incentive to contribute, while a
> majority of peers see improved outcomes.  Think of a log(rate) utility
> function -- 50% better outcomes for 10 typical peers are worth 30% worse
> outcome for 1 unusually well-provisioned peer.
>
> Making the response more linear will improve the outcomes of a few very
> well-off peers at the expense of a large number of typical ones.  I do not
> yet see why it is desirable.
>
[Ye (Yale)]
You are right that the linear response seems to be somehow improving the
fast peers but ignoring the slow and regular. The gain on the average
number largely comes from the tail.

Anyway, the good thing is, from the recent results of our P4P field test, we
have observed improvement for both fast peers and slow peers, probably due
to general improvement on system efficiency.

>  --
> Stanislav Shalunov <http://shlang.com/>
>
>  <http://feeds.feedburner.com/~r/shlang/~6/1>
>
>

---

From: The 8472 <[email-masked]>
Date: Thu, 18 Sep 2008 15:26:47 +0200

> The only use I can think of right now that doesn't have obvious adverse consequences is to prefer peers with uplinks of about the same size as yours.  While this shouldn't reduce average download r…
You are more or less correct. Given ideal conditions peers will seek out 
other peers witch matching upload bandwidth. This is because each peer 
will try to maximize what they get in return for their upload bandwidth, 
so a fast uploader will be more likely to get bandwidth from another 
fast uploader than a slow peer would. But the world is less than ideal 
and we have asymmetric connections, so we need seeders that provide 
bandwidth without reciprocation requirements, in this case peers will 
generally flock to fast seeds, often dedicated "seedboxes", i.e. 
colocated servers with 100Mbit connections or to seeds in countries with 
high speed symmetric connections. In the lifecycle of some large 
torrents for example there are periods that are dominated by seeds and 
the seeds are easily able to satisfy all bandwidth needs of everyone, 
that's where clients will significantly prefer the higher uplink ones.
In swarms with more peers than seeds you will get closer to bandwidth 
matching, though it's usually not 1:1 but more within a window of 4:1 to 
1:4. And this window is why you often end up with downloading from 
remote peers, since they are slightly faster than your neighbor who 
would have an exact match in upload bandwidth.

Providing symmetric connections would significantly reduce the incentive 
to aggressively seek out faster peers as your neighbor can reciprocate 
whatever he is downloading just like any other far-away peer could, and 
if everything is equal low latency usually wins.

-- 
The 8472
independent developer for the Azureus Vuze Bittorrent client
_______________________________________________
p2pi mailing list
[email-masked]
https://www.ietf.org/mailman/listinfo/p2pi