I don't like the idea of standardizing peer selection algorithms. Peer
selection must be able to consider various issues, which are not
restricted to topology and transport issues (e.g., fairness).  Also, app
designers must be able to modify the selection algorithm on short
notice. Therefore, I don't believe it is reasonable or even feasible to
offload the actual peer selection from the application to an ALTO
server. Furthermore, an ALTO server should not formulate responses
based on assumptions on how the peer selection algorithm in the app works,
hoping to influence it in a desired way.

I agree with Laird that the app should be able to tell ALTO which
attributes it cares about, and then ALTO gives advice while the
ultimate peer selection is performed in the app.

The ALTO protocol should be extensible, i.e., it should be possible to
add new attributes later. Nevertheless, I believe it would be useful if
we could come up with a list of initial (or basic) attributes.


Here are some candidates, which have already been discussed in the past.
Any additions or comments on the usefulness are most welcome:

- relative topological distance
  relative means that a larger numerical value means greater distance,
  but it is up to the ALTO service how to compute the values, and the
  app will not be informed about the nature of the information.
  One way *could* be counting AS hops, but when querying this parameter,
  the app must not assume that the numbers actually are AS hops.


- absolute topological distance, using a defined metric
  ... such as AS hops


- relative operator's preference
  higher numerical value means that the app should prefer this candidate
  peer over others with lower values (if no other reasons speak against
  it, such as probed througput). Again, as this is a relative measure,
  the ALTO service does not have to indicate how the values have been
  computed. Examples could be: cost for peering or transit traffic,
  traffic engineering inside the own network, and other policies.


- volume caps
  "you can transfer up to [amount of data] until [deadline] from/to 
  this (group of) node(s). excess traffic will be (throtteled|charged
  separately at [price unit] per [volume unit])"


- upper bound for achievable bandwidth (in replies) or
  lower bound for required bandwidth (in queries)

  an arbitrary upper bound for the bandwith from/to the candidate.
  this may be, but is not necessarily the provisioned access bandwith of
  the candidate peer.
  
  The application MUST be aware that with high probability, 
  the actually achievable data transfer rate is significantly less, as:
    - ALTO is not an admission control system
    - ALTO may not know the instantaneous congestion status of the network
    - ALTO may not know all link bandwidths, i.e., where the bottleneck
      really is, and there may be shared bottlenecks
    - ALTO may not know whether the candidate peer itself is overloaded
    - ALTO may not know whether the candidate peer throttles the
      bandwidth it devotes for the considered application
    - ALTO may not know whether the candidate peer will throttle the
      data it sends to us (e.g., because of tit-for-tat algorithm)

  That is, if the app really wants to know the effective bandwidth, it
  has to do measurements. Nevertheless, this parameter may be useful for
  excluding candidates right away. For example, if I was a FTTH customer
  and wanted to do P2P HQ multimedia streaming, I could ask ALTO to
  prune all known modem / GPRS users from a candidate list, because
  without doing measurements it is clear that they will not be able to
  exchange useful amounts of data with me.


- lower bound for achievable latency (or upper bound for acceptable latency)
  Same considerations as for the previous parameter apply here, too.
  Again, no guarantees, but only a means for quickly excluding hopeless
  candidates even before giving them a try and doing measurements.


- provisioned access bandwidth, e.g. of cable / DSL customers
  this has been proposed several times and questioned:
  problems with privacy, "premium" customers with high access bandwidth
  might attract so much traffic that their service is de-facto worse, ...
 

/* comments welcome */

Thanks,
Sebastian





On Tue, Feb 10, 2009 at 10:00:42AM -0500, Laird Popkin wrote:
> Keep in mind that ALTO doesn't control the applications' peer assignment - it 
> is a data source that provides guidance into the application. Ultimately the 
> application uses that information, along with everything else that it knows, 
> in order to determine its own optimal peer selection algorithm based on the 
> specifics of the application.
> 
> I would suggest that the application using ALTO should indicate what 
> attributes that it cares about (e.g. latency, throughput, cost). The ALTO 
> server can take this into account when providing guidance, if the ISP (or 
> whoever is running the ALTO server) cares to do so.
> 
> - Laird Popkin, CTO, Pando Networks
>   mobile: 646/465-0570

-- 
Sebastian Kiesel            mailto:[email protected]
Network Research Division   tel:+49-6221-4342-232   fax:+49-6221-4342-155
NEC Laboratories Europe     Kurfuerstenanlage 36, 69115 Heidelberg, Germany
--
NEC Europe Limited          Registered in England 2832014
Registered Office           NEC House, 1 Victoria Road, London W3 6BL

_______________________________________________
alto mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/alto

Reply via email to