< draft-randriamasy-alto-multi-cost-02.txt   draft-randriamasy-alto-multi-cost-03.txt >
Network Working Group S. Randriamasy, Ed. Network Working Group S. Randriamasy, Ed.
Internet-Draft Alcatel-Lucent Bell Labs Internet-Draft Alcatel-Lucent Bell Labs
Intended status: Experimental March 14, 2011 Intended status: Experimental N. Schwan
Expires: September 15, 2011 Expires: January 12, 2012 July 11, 2011
Multi-Cost ALTO Multi-Cost ALTO
draft-randriamasy-alto-multi-cost-02 draft-randriamasy-alto-multi-cost-03
Abstract Abstract
IETF is designing a new service called ALTO (Application Layer IETF is designing a new service called ALTO (Application Layer
traffic Optimization) that includes a "Network Map Service", an traffic Optimization) that includes a "Network Map Service", an
"Endpoint Cost Service" and an "Endpoint (EP) Ranking Service" and "Endpoint Cost Service" and an "Endpoint (EP) Ranking Service" and
thus incentives for application clients to connect to ISP preferred thus incentives for application clients to connect to ISP preferred
Endpoints. These services provide a view of the Network Provider Endpoints. These services provide a view of the Network Provider
(NP) topology to overlay clients. (NP) topology to overlay clients.
The present draft proposes a light way to extend the information The present draft proposes a light way to extend the information
provided by the current ALTO protocol. The purpose is to broaden the provided by the current ALTO protocol. The purpose is to broaden the
possibilities of the Application Clients in two ways: firstly by possibilities of the Application Clients in two ways: firstly by
providing a better mapping of the Selected Endpoints to needs of the providing a better mapping of the Selected Endpoints to needs of the
growing diversity of Content Networking Applications and to the growing diversity of Content Networking Applications and to the
network conditions, secondly by producing a more robust choice of network conditions, secondly by producing a more robust choice of
multiple Endpoints, helping thus out for efficient Multi-Path multiple Endpoints, helping thus out for efficient Multi-Path
transfer. transfer.
There are 2 parts in this draft: the first part proposes protocol There are 2 parts in this draft: the first part initiates protocol
extensions to support requests on multiple CostTypes in 1 extensions to support requests on multiple Cost Types in one single
transaction; the second part proposes additional CostTypes and Cost transaction. These first extensions also integrate the discussions
attributes related to timeframe and validity period. within the ALTO Working Group and focus on the Endpoint Cost Service.
The second part proposes two use cases motivating further definitions
of additional CostTypes and Cost Attributes related to timeframe and
validity period.
Requirements Language Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
skipping to change at page 2, line 10 skipping to change at page 2, line 12
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on September 15, 2011. This Internet-Draft will expire on January 12, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 10 skipping to change at page 3, line 10
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5 3. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 5
4. Proposed ALTO services updates . . . . . . . . . . . . . . . . 6 4. Proposed ALTO protocol updates for multi-cost transactions . . 6
4.1. Endpoint Cost Service with multiple Cost Types . . . . . . 6 4.1. Multi-Cost Map Service . . . . . . . . . . . . . . . . . . 6
4.2. All Costs Types in one response with vector cost values . 6 4.1.1. Media Type . . . . . . . . . . . . . . . . . . . . . . 6
4.3. Proposed additional Cost Types . . . . . . . . . . . . . . 7 4.1.2. HTTP Method . . . . . . . . . . . . . . . . . . . . . 7
4.4. Statistical Costs with a timeframe . . . . . . . . . . . . 7 4.1.3. Input Parameters . . . . . . . . . . . . . . . . . . . 7
5. Proposed ALTO protocol updates . . . . . . . . . . . . . . . . 8 4.1.4. Capabilities . . . . . . . . . . . . . . . . . . . . . 7
5.1. Proposed updates for Multi-Cost ALTO . . . . . . . . . . . 8 4.1.5. Response . . . . . . . . . . . . . . . . . . . . . . . 7
5.1.1. Multi-Cost related Attributes . . . . . . . . . . . . 9 4.1.6. Example . . . . . . . . . . . . . . . . . . . . . . . 7
5.2. Proposed additional Properties and Costs . . . . . . . . . 9 4.2. Endpoint Multi-Cost Service . . . . . . . . . . . . . . . 7
5.2.1. Proposed additional Endpoints properties . . . . . . . 9 4.2.1. Media Type . . . . . . . . . . . . . . . . . . . . . . 7
5.2.2. Scoping ALTO information . . . . . . . . . . . . . . . 10 4.2.2. HTTP Method . . . . . . . . . . . . . . . . . . . . . 7
5.2.3. Proposed additional Cost Types . . . . . . . . . . . . 10 4.2.3. Input Parameters . . . . . . . . . . . . . . . . . . . 7
5.3. ALTO Status Codes for Multi-Cost ALTO . . . . . . . . . . 11 4.2.4. Capabilities . . . . . . . . . . . . . . . . . . . . . 8
5.4. Examples of Multi-Cost ALTO messages . . . . . . . . . . . 11 4.2.5. Response . . . . . . . . . . . . . . . . . . . . . . . 8
6. Use case . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.2.6. Example . . . . . . . . . . . . . . . . . . . . . . . 8
6.1. Scenario . . . . . . . . . . . . . . . . . . . . . . . . . 11 4.3. ALTO Status Codes for Multi-Cost ALTO . . . . . . . . . . 8
6.2. Illustrative ALTO use case . . . . . . . . . . . . . . . . 12 5. Use cases for further Cost Types and Endpoint Properties . . . 8
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 5.1. Delay Sensitive Overlay Applications . . . . . . . . . . . 9
7.1. Information for IANA on proposed Cost Types . . . . . . . 15 5.2. CDN Surrogate Selection . . . . . . . . . . . . . . . . . 10
7.2. Information for IANA on proposed Endpoint Propeeries . . . 15 6. Proposed additional Properties and Costs . . . . . . . . . . . 10
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16 6.1. Scoping ALTO information . . . . . . . . . . . . . . . . . 10
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9.1. Normative References . . . . . . . . . . . . . . . . . . . 16 7.1. Information for IANA on proposed Cost Types . . . . . . . 11
9.2. Informative References . . . . . . . . . . . . . . . . . . 16 7.2. Information for IANA on proposed Endpoint Propeeries . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 16 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11
9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 12
9.1. Normative References . . . . . . . . . . . . . . . . . . . 12
9.2. Informative References . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction 1. Introduction
IETF is designing a new service called ALTO that provides guidance to IETF is designing a new service called ALTO that provides guidance to
P2P applications, which have to select one or several hosts from a P2P applications, which have to select one or several hosts from a
set of candidates that are able to provide a desired resource. This set of candidates that are able to provide a desired resource. This
guidance shall be based on parameters that affect performance and guidance shall be based on parameters that affect performance and
efficiency of the data transmission between the hosts, e.g., the efficiency of the data transmission between the hosts, e.g., the
topological distance. The ultimate goal is to improve Quality of topological distance. The ultimate goal is to improve Quality of
Experience (QoE) in the application while reducing resource Experience (QoE) in the application while reducing resource
skipping to change at page 4, line 26 skipping to change at page 4, line 26
Network region that spans from a region to one or more Autonomous Network region that spans from a region to one or more Autonomous
System (AS). Together with this Network Map, it provides the System (AS). Together with this Network Map, it provides the
Provider determined Cost Map between locations of the Network Map. Provider determined Cost Map between locations of the Network Map.
Last, it provides the Ranking of Endpoints w.r.t. their routing cost. Last, it provides the Ranking of Endpoints w.r.t. their routing cost.
The term Network Provider in this document includes both ISPs, who The term Network Provider in this document includes both ISPs, who
provide means to transport the data and Content Delivery Network provide means to transport the data and Content Delivery Network
(CDN) operators who care for the dissemination, persistent storage (CDN) operators who care for the dissemination, persistent storage
and possibly identification of the best/closest content copy. and possibly identification of the best/closest content copy.
The last ALTO protocol draft see [ID-alto-protocol6], gives the The last ALTO protocol draft see [ID-alto-protocol], gives the
possibility to query multiple Endpoint properties at once (see possibility to query multiple Endpoint properties at once (see
S.7.7.4.1). However section 7.7.3.2 on Cost Map states about both S.7.7.4.1). However section 7.7.3.2 on Cost Map states about both
parameters Cost Type and Cost Mode that: "This parameter MUST NOT be parameters Cost Type and Cost Mode that: "This parameter MUST NOT be
specified multiple times". The ALTO requirements draft, see specified multiple times". The ALTO requirements draft, see
[ID-ALTO-Requirements7] also states in REQ. ARv05-14: "The ALTO [ID-ALTO-Requirements7] also states in REQ. ARv05-14: "The ALTO
client protocol MUST support the usage of several different rating client protocol MUST support the usage of several different rating
criteria types". In the current protocol draft, there is no criteria types". In the current protocol draft, there is no
specified way to get values for several Cost Types altogether. specified way to get values for several Cost Types altogether.
Currently, the costs are provided in a scalar form, one by one. So Currently, the costs are provided in a scalar form, one by one. So
that an ALTO Client wanting information for several Cost Types must that an ALTO Client wanting information for several Cost Types must
skipping to change at page 5, line 38 skipping to change at page 5, line 38
The ALTO service is managed by the Network Provider and reflects its The ALTO service is managed by the Network Provider and reflects its
preferences for the choice of endpoints. The NP defines in preferences for the choice of endpoints. The NP defines in
particular the network map, the routing cost among Network Locations, particular the network map, the routing cost among Network Locations,
and which ALTO services are available at a given ALTO server. and which ALTO services are available at a given ALTO server.
The solution proposed in this draft is applicable to fixed networks. The solution proposed in this draft is applicable to fixed networks.
It is also meant for smaller networks such as mobile networks. It is also meant for smaller networks such as mobile networks.
3. Terminology 3. Terminology
Endpoint (EP): can be a Peers, a CDN storage location, a Party in a Endpoint (EP): can be a Peer, a CDN storage location, a Party in a
resource sharing swarm such as Grid or online gaming. resource sharing swarm such as a computation Grid or an online multi-
party game.
Endpoint Discovery (EP Discovery) : this term embraces the different Endpoint Discovery (EP Discovery) : this term covers the different
types of processes used to discover different types of endpoints. types of processes used to discover different types of endpoints.
Network provider: includes both ISPs, who provide means to transport Network Service Provider: includes both ISPs, who provide means to
the data and Content Delivery Network (CDN) who care for the transport the data and Content Delivery Network (CDN) who care for
dissemination, persistent storage and possibly identification of the the dissemination, persistent storage and possibly identification of
best/closest content copy. the best/closest content copy.
Application Client (AC): this term generalizes the case of a P2P Application Client (AC): this term generalizes the case of a P2P
client to include the case of a CDN client and of any Client having client to include the case of a CDN client and of any Client having
the choice in several connection points for data or resource the choice in several connection points for data or resource
exchange. exchange.
Traffic Engineered End Point Optimization Tool (TEEPOT): this is a 4. Proposed ALTO protocol updates for multi-cost transactions
functional entity introduced in this draft, that is linked to an ALTO
Client and to an Application Client. Its role is to assist the
selection of Endpoints upon Allication needs and the ALTO responses.
It can be a specific group of functions or an already existing
function.
4. Proposed ALTO services updates
The currently available ALTO services supporting Endpoint evaluation
are: Endpoint Cost Service, Cost Map and Filtered Cost Map. The ALTO
client may want to simultaneously use a number N>1 of cost metrics
referred to as Cost Types in ALTO. The only possibility in the
current ALTO protocol is to sequentially place as many requests as
desired cost types. This draft proposes to add the following
features:
4.1. Endpoint Cost Service with multiple Cost Types
Some application clients may want to consider several metrics to
select the endpoints appropriately w.r.t. the application needs.
Clients may also want to use multiple paths for the transfer of
particular data bulks, possibly selected with several metrics.
Therefore the Endpoint Cost Lookup and the Cost Map Services should
have the possibility to handle several metrics.
4.2. All Costs Types in one response with vector cost values
Providing all the numerical costs simultaneously with only one
request and response exchange saves time, resources and energy. To
avoid overloading the network with ALTO traffic with multiple
requests for Cost Types, we propose that the Cost values provided by
the ALTO server be arranged in a vector. This requires:
o to put the requested cost values in an array or vector having a
number N >= 1 of components.
o to define a canonical order that allows to match values in these
vectors with Cost Types and Properties.
As specified in the ALTO Requirements [ID-ALTO-Requirements7] "REQ.
ARv05-19: The ALTO reply message SHOULD allow the ALTO server to
express which rating criteria have been considered when generating
the reply." That is, the ALTO response indicates the mapping between
vector components and Cost Types.
Note that in this case, the ALTO client MUST require the Cost Mode
"numerical" that is the Mode MUST NOT be "ordinal".
4.3. Proposed additional Cost Types
The current ALTO protocol draft provides examples of metrics in
section 5.1.1, that are: air miles, hop-counts or generic routing
costs. Statistics or longer term ratings on path bandwidth and
latency may also be considered. Additional Endpoint properties may
be useful, such as the memory capacity or statistical scores on the
load and possibilities of an Endpoint.
4.4. Statistical Costs with a timeframe
The ALTO Requirements Draft [ID-ALTO-Requirements7] advises against
instant performance-related cost metrics as they may be easily
captured by online mechanisms and in addition, the ALTO service does
not know how a Peer manages its sending rate. Application clients
however may have good reasons and wise ways to use performance
related information in the mid to long term ,on Endpoints that they
don't know in advance and on which they therefore cannot plan
measurements. Other applications may wisely use static performance
indicators such as nominal memory capacity.
Dynamic performance indicators can be represented by scores,
reflecting some overall performance, in a static way or with values
periodically updated at intervals typically longer than a network
layer packet RTT, as assumed in [ID-ALTO-Requirements7].
If statistical Cost Types are available, the following types of
information should report on them:
o their "statistical" nature: for example a mean value, or a median
value,
o their timeframe: that is the period over which statistics were
computed and the age of the information. By default this
timeframe is supposed permanent , that is, the corresponding EP
Cost or Property values are permanent. Timeframe information can
be easily recovered by attributes listed in
[ID-ALTO-Requirements7] such as 'lifetime' (see REQ. ARv07-29)
and an aging mechanism (see REQ. ARv07-29), such as a RFC3339
based TimeStamp.
o the validity period: indicating the date at which the information
can be considered obsolete and updated. This can be easily
reflected by the 'age' reflecting the date at which the
information was generated and 'lifetime' of this information.
'Lifetime' and 'age' should be also available to other applicable
'non statistical' Cost Types, such as 'OccupationLevel' that can be
used to describe an empirical and restricted set of load value
ranges.
5. Proposed ALTO protocol updates
This section proposes updates or additions to the ALTO protocol to
support Multi Cost ALTO Services or provide additional ALTO
information. The applicable ALTO services are:
o Cost Map Service,
o Cost Map Filtering Service,
o Endpoint Property Lookup Service,
o Endpoint Cost Lookup Service.
5.1. Proposed updates for Multi-Cost ALTO This section is to be completed and proposes first updates of the
ALTO protocol to support Multi Cost ALTO Services or provide
additional ALTO information. It integrates discussions on he ALTO
mailing list and its goal is to initiate further discussions and
protocol update proposals.
If an ALTO client desires several Cost Types, instead of placing as If an ALTO client desires several Cost Types, instead of placing as
many requests as costs, it may request and receive all the desired many requests as costs, it may request and receive all the desired
cost types in one transaction. The correspondence between the cost types in one single transaction. The correspondence between the
components and the cost type MUST be indicated in the ALTO request. components and the cost types MUST be indicated in the ALTO request.
The ALTO server then, provided it supports the desired cost, and The ALTO server then, provided it supports the desired cost, and
provided it supports the vector cost values, sends one single provided it supports multi-cost ALTO transactions, sends one single
response where for each {source, destination} pair, the cost values response where for each {source, destination} pair. The cost values
are arranged in a vector, whose component each corresponds to a are arranged in a vector, whose component each corresponds to a
specified Cost Type. The correspondence between the components and specified Cost Type. The correspondence between the components and
the cost types MUST be indicated in the ALTO response. the cost types MUST be indicated either in the ALTO response or
available via the resource directory.
The following ALTO protocol services and features need to be updated
to enable Multi Cost ALTO transactions.
o Endpoint (EP) Property (see [ID-alto-protocol6] )
o Endpoint (EP) Cost (see [ID-alto-protocol6]).
o Cost attributes (see [ID-alto-protocol6]).
o Cost Map (see [ID-alto-protocol6] ):
* between Network Locations (that are groups of 1 or several
endpoints).
o Cost Map filtering: need the same updates as for the Cost Map.
5.1.1. Multi-Cost related Attributes
To enable Multi-Cost ALTO Cost Services, we propose the following
updates to the Cost Attributes, described in [ID-alto-protocol6] .
o extension of the attribute Cost Type from a single value to a
vector of N >= 1 values. If N > 1, then the values WILL be
interpreted as numerical values.
o addition of definitions that list and identify the Cost Types
supported by the acting ALTO server. These definitions will be
formulated according to the syntax defined in Section 7.7 of
[ID-alto-protocol6],
o definition of the correspondence between an index "i_typecost" in
[1,N] in a cost vector and the ID of the defined cost types and
properties.
o optional association of a validity timeframe, indicating how long
the information can be considered as up to date.
* by default the validity timeframe WILL be considered infinite
To the attribute Cost Mode in S.5.1: addition of a rule stipulating The ALTO services impacted by the Multi-Cost extensions are:
that when multiple cost types are requested, then the requested Cost
Mode MUST be numerical. If the attribute Cost Length is > 1 and the
Cost Mode is set to "ordinal", then one option is that the ALTO
Server returns the 'Sucess' code "E_INVALID_COST_TYPE".
5.2. Proposed additional Properties and Costs o Information Resources Directory,
5.2.1. Proposed additional Endpoints properties o Cost Map Service,
The Endpoint Properties given as example in [ID-alto-protocol6] o Cost Map Filtering Service,
S.3.2.3 mostly apply to fixed end nodes. We propose to add other
properties, that are static, contribute to reflect the potential
physical abilities of end nodes and therefore may guide their
selection. In addition, these properties apply to end nodes
connected by any access technology. Example additional properties
include:
o EP capacity in memory, o Endpoint Cost Lookup Service.
o EP nominal bandwidth, This draft focuses on the case of the Endpoint Cost Lookup Service
o EP access technology. 4.1. Multi-Cost Map Service
Note that if this service is not supported, it is possible although To be completed
less convenient to get the information at the overlay level, thus
without the ALTO server.
5.2.2. Scoping ALTO information 4.1.1. Media Type
4.1.2. HTTP Method
One way to moderate the ALTO traffic load while maintaining some This resource is requested using the HTTP POST method
reliability is to associate the following attributes to the
applicable ALTO information:
o an age attribute indicating when the information was generated. 4.1.3. Input Parameters
o for statistical costs a time period attribute indicating over 4.1.4. Capabilities
which period the statistics were collected.
o a lifetime attribute as proposed in [ID-ALTO-Requirements7] . By 4.1.5. Response
defaut, this parameter can be set to infinity.
The Time related values can be used by the aging mechanism as 4.1.6. Example
proposed in REQ ARv05-28 of [ID-ALTO-Requirements7] for a better
synchronization of Cost Information collected at various times and
places.
5.2.3. Proposed additional Cost Types 4.2. Endpoint Multi-Cost Service
Additional Cost Types may be used in either the Cost Map or the 4.2.1. Media Type
Endpoint Cost Lookup Services and include:
o Endpoint availability: indicating how often an Endpoint is 4.2.2. HTTP Method
reachable, preferebly as a percentage. To be further specified.
Possibly with associated Time frame and Time To Expire.
o Endpoint reliability: indicating how easily an Endpoint is This resource is requested using the HTTP POST method
reachable, and / or the degree of continuity of its reachability,
preferebly as a percentage. To be further specified.
o Endpoint Load: indicating the average load, preferably as a 4.2.3. Input Parameters
percentage, or a quantitative coarse grain index indicating
whether this Endpoint is in a rush period or calm period. To be
further specified.
o Path robustness: one or more timeframed indicators related to Input parameters are supplied in the entity body of the POST request.
statistical evaluations of the path performance on bandwidth, This document specifies input parameters with a data format indicated
delay, packet loss, or other such metrics. This Cost can also be by media type "application/alto-endpointcostparams+json", which is a
represented by a quantitative coarse grain index indicating JSON Object of type ReqEndpointCostMap:
whether this Endpoint is in a rush period or calm period. To be
further specified.
5.3. ALTO Status Codes for Multi-Cost ALTO object {
If the vector cost structure is not supported, then the ALTO server TypedEndpointAddr srcs<0..*>; [OPTIONAL]
sends an ALTO status code 7 corresponding to HTTP status code 501
indicating "Invalid cost structure". The ALTO client may then needs
to place as many requests as needed Cost Types, and the ALTO server
sends as many cost maps or EP cost as needed.
To the attribute Cost Mode in S.5.1 should be associated a rule TypedEndpointAddr dsts<1..*>;
stipulating that when multiple cost types are requested, then the
requested Cost Mode MUST be numerical. If the attribute Cost Length
is > 1 and the Cost Mode is set to "ordinal", an option is that the
ALTO Server returns the 'Sucess' code "E_INVALID_COST_TYPE".
5.4. Examples of Multi-Cost ALTO messages } EndpointFilter;
Request and Response syntax. To be further specified. object {
6. Use case CostMode cost-mode;
6.1. Scenario CostType cost-type<1..*>;
A Multi-Cost ALTO transaction is illustrated in a simple scenario, JSONString constraints; [OPTIONAL]
where an application client in a terminal wants to use several paths
for a data transfer. This scenario applies to a terminal having
access to the network via one or several interfaces.
The application client wants for example 3 paths per transfer: EndpointFilter endpoints;
o 1 path optimising the Cost Type 'routingcost', } ReqEndpointCostMap;
o 2 other paths optimizing 2 metrics: the Cost Type 'routingcost' with members:
and an Endpoint property named 'EP memory'.
* The application client in addition wants these 2 paths to cost-mode The Cost Mode ( Section 5.1.2) to use for returned costs.
optimize the first criterion with a weight W_PATH_LENGTH equal For Multi-Cost requests this Cost Mode SHOULD be numerical.
for example to 0.4 and the second criterion with a weight
W_EP_MEMORY equal to 0.6.
* If the EP Property Service provides the information on Endpoint cost-type The Cost Type ( Section 5.1.1) to use for returned costs.
Load, then the application client wants this information in the All the listed the Cost Types MUST be indicated in this resource's
available lifetime closest to 1 hour. capabilities ( Section 7.7.5.1.4).
A TEEPOT connected with the ALTO Client and the Application Client constraints Defined equivalently to the "constraints" input parameter
takes in the list of candidate Endpoints from the Application Client of a Filtered Cost Map (see Section 7.7.3.2).
and prepares for the ALTO Client the request to the ALTO Server, in
particular the following information: vector TimeFrame[EP Cost
Length], with components equal to either a value or an indication of
"not applicable".
o The list of requested EP Cost Types, that are identified by their endpoints A list of Source Endpoints and Destination Endpoints for
index I_CostType. which Path Costs are to be returned. If the list of Source Endpoints
is empty (or not included), the ALTO Server MUST interpret it as if
it contained the Endpoint Address corresponding Alimi, et al.
Expires December 29, 2011 [Page 50] Internet-Draft ALTO Protocol June
2011 to the client IP address from the incoming connection (see
Section 10.3 for discussion and considerations regarding this mode).
The list of destination Endpoints MUST NOT be empty. The ALTO Server
MUST interpret entries appearing multiple times in a list as if they
appeared only once.
o 4.2.4. Capabilities
6.2. Illustrative ALTO use case 4.2.5. Response
Figure 1 shows the example scenario in the last IETF ALTO protocol 4.2.6. Example
draft, where the ALTO client is embedded in the P2P Client and
requires an ALTO server servicing its own ISP to provide the Endpoint
Cost for a list of gethered peers.
As written in [ID-alto-protocol6], the use case proceeds as follows: 4.3. ALTO Status Codes for Multi-Cost ALTO
1. The P2P Client discovers peers from sources such as Peer Exchange If the Multi-cost Service is not supported for either the Cost Map or
(PEX) from other P2P Clients, Distributed Hash Tables (DHT), and the Endpoint Service, then the ALTO server sends an ALTO status code
P2P Trackers. 7 corresponding to HTTP status code 501 indicating "Invalid cost
structure". The ALTO client may then needs to place as many requests
as needed Cost Types, and the ALTO server sends as many cost maps or
EP cost as needed.
2. The P2P Client queries the ALTO Server's Ranking Service, To the attribute Cost Mode in S.5.1 should be associated a rule
including discovered peers as the set of Destination Endpoints, stipulating that when multiple cost types are requested, then the
and indicates the 'ordinal' Cost Mode. The response indicates requested Cost Mode SHOULD be numerical.
the ranking of the candidate peers.
3. The P2P Client connects to the peers in the order specified in 5. Use cases for further Cost Types and Endpoint Properties
the ranking.
.---------. .---------------. The current ALTO protocol [ID-alto-protocol] specification requests
| | (2) Get Endpoint Ranking | | the creation of two registries maintained by IANA. The ALTO Cost
| ALTO | <----------------------> | [ALTO Client] | Type registry ensures that the Cost Types that are represented by an
| Server | | | ALTO Cost Map are unique identifiers, and it further contains
| | | P2P Client | .---------. references to the semantics of the Cost Type. The current
`---------' `---------------' <- | P2P | specification registers 'routingcost' as a generic measure for
.---------. / | ^ ^ | Tracker | routing traffic from a source to a destination. In a similar way the
| Peer 1 | <-------------- | | \ `---------' ALTO Endpoint Property Registry ensures uniquenes of ALTO Endpoint
`---------' | (1) Gather Peers Property identifiers and provides references to particular semantics
. (3) Connect to | | \ of the allocated Enpoint Properties. Currently the 'pid' identifier
. Selected Peers / .--------. .--------. is registered, which serves as an identifier that allows aggregation
.---------. / | P2P | | DHT | of network endpoints into network regions. Both registries accept
| Peer 50 | <---------------- | Client | `--------' new entries after Expert Review [[ID-alto-protocol]]. New entries
`---------' | (PEX) | are requested to be conform to the respective syntactical
`--------' requirements, and must include information about the new identifier,
Figure 1:example scenario in the last IETF ALTO protocol draft, where the the intended semantics as well as security considerations.
ALTO client is embedded in the P2P Client
Figure 2 depicts the features and mechanisms added to the current The current protocol specification concentrates on the basic use case
ALTO scenario for Multi-Cost ALTO services, for the use case of of optimizing routing costs in NSPs networks. Upcoming use cases
Figure 1. The EPs have already been discovered. In this figure, the however will require both, new Cost Types and new Endpoint
term Peer is replaced by the term Endpoint (EP), the term P2P Client Properties. The goal of this section is to describe further forward
by Application Client and an Endpoint Tracker for resource Sharing looking use case scenarios that are likely to benefit from ALTO, and,
Applications is added to the tools involved in Step (1) Gather in future iterations, to convey new Cost Types and Endpoint
Endpoints . Properties that are likely to be beneficial for ALTO clients in these
scenarios.
We focus on the ALTO use case where the ALTO client is co-located 5.1. Delay Sensitive Overlay Applications
with an Application client in a terminal node, as not all P2P systems
use a P2P tracker for peer discovery and selection as written in
section 9.2 of [ID-alto-protocol6]. In Figure 2, the entity called
P2P Client mentionned in the current protocol draft is zoomed to an
entity called in this draft "Client Block" and that links: the
Application Client (AC), its ALTO Client and the Traffic Engineered
EP Optimization Tool (TEEPOT).
(3) Get EP Cost Client Block The ALTO working group has been created to allow P2P applications and
Cost Types=Hops,EP-mem __________________________________________________ NSPs a mutual cooperation, in particular because P2P bulk file-
.---------. | .---------------. | transfer applications have created a huge amount of intra-domain
| ALTO | <-------------------> | | ALTO Client | ---------------. | traffic. By aligning overlay topologies according to the
| Server | | `---------------' <----. (4.a) Send EP cost | 'routingcost' of the underlying network both layers are expected to
| | | ^ (2.c)Send list of | vectors | benefit in terms of reduced costs and improved Quality-of-Experience.
`---------' | | Cost Types | v |
| | .---------------. |
|(2.a)Send list of EPs | TEEPOT | |
| | `---------------' |
| | ^ (4.b)Send selected |
| | (2.b)Send EP Specs. and ranked EPs |
| .---------------. -------' | |
| |Appl. Client | <---------------' |
| `---------------' |
|__/_|______^______________________________________|
.---------. / | |
| EP 1 | <-------------- | |
`---------' | (1) Gather Endpoints (EPs)
. (5) Connect to | |
. Selected Endpoints / .-------------------.
.---------. / | PEX |
| EP 50 | <---------------' | Endpoint Tracker |
`---------' | DHT |
`-------------------'
Figure 2: features and mechanisms added to the current ALTO scenario for However other types of overlay applications might benefit from a
Multi-Cost ALTO services different set of path metrics. In particular for real-time sensitive
applications, such as gaming, interactive video conferencing or
medical services, creating an overlay topology with respect to a
minimized delay is preferable. However it is very hard for a NSP to
give accurate guidance for this kind of realtime information, instead
probing through end-to-end measurements on the application layer has
proven to be the superior mechanism. Still, a NSP might give some
guidance to the overlay application, for example by providing
statisically preferable paths with respect to the time of a day.
Also static information like hopcount can be seen as an indicator for
the delay that can be expected. In the following iterations this
draft will thus analyse which metrics can realisticaly be provided
through ALTO to give delay sensitive applications guidance for peer
selection.
The use case in Figure 2 proceeds as follows: 5.2. CDN Surrogate Selection
1. The Application Client discovers Endpoints (EPs) from sources A second use case is motivated through draft
such as Peer Exchange (PEX) from other P2P Clients, Distributed [draft-jenkins-alto-cdn-use-cases-01]. The request router in today's
Hash Tables (DHT), P2P Trackers or other types of EP trackers. CDNs makes a decision about to which surrogate or cache node a
content request should be forwarded to. Typically this decision is
based on locality aspects, i.e. the surrogate node which is closest
to the client is preferred by the request router. An ALTO server
hereby is one promising option to allow NSPs to give guidance to the
CDN about which cache node would be preferable according to the view
of the network by the 'routingcost' Cost Type. Providing this kind
of information is in particular important as one trend is to place
cache nodes deeper into the network, which results in the need for
finer grained information.
2. In the "Client Block" gathering the Application Client (AC), its While distance today is the predominant metric used for routing
ALTO Client and the Traffic Engineered EP Optimization Tool decisions, other metrics might allow sophisticated request routing
(TEEPOT): strategies. For example the load a cache node sees in terms of CPU
utilization, memory usage or bandwidth utilization might influence
routing decisions for load-balancing reasons. There exist numerous
ways of gathering and feeding this kind of information into the
request routing mechanism. As ALTO is likely to become a
standardized interface to provide network topology information, for
simplicity other information that is used by a request router could
be provided by the ALTO server as well. In the next iterations of
this draft we will analyse which of these metrics is suitable to be
provided as Cost Type or Endpoint Property for the use case of CDN
Surrogate Selection and propose to register them in the respective
registries.
A. the Application Client (AC) sends to the ALTO Client the list 6. Proposed additional Properties and Costs
of the discovered peers as the set of Destination Endpoints.
B. the Application Client (AC) sends to the TEEPOT the To be further specified
specifications on the EPs to select, according to the needs
of the application. For example, AC needs 3 EPs, with 1 EP
optimizing the Path Length Metric and 2 EPs optimizing the
Path Length and the EP Memory Capacity Score, with respective
weights of 0.4 and 0.6.
C. the TEEPOT indicates to the ALTO Client that the Service to 6.1. Scoping ALTO information
request is EP Cost, with the Cost Mode set to "Numerical",
and the Cost Dimension equal to the number of requested
metrics and with the index of the requested Cost Types.
3. The ALTO Client queries the ALTO Server's EP Cost Service, sends One way for the NSP to provide guidance on highly dynamic network
the list of the discovered peers as the set of Destination state information such as delay and load is to provide them in the
Endpoints and the index of requested metrics, corresponding in form of statistics or as a numerical coarse grain indicator. It is
this example to: "Path Length" and "EP Memory Capacity Score". important to have the possibility to reflect that the provided values
As the number of requested metrics is > 1, the Cost Mode is are applicable for a given time period, for example business hours,
implicitely set to 'numerical'. The ALTO Server response and are subject to changes over time.
contains the set of metric values associated to each EP.
4. In the Client block: The following attributes can be associated to the applicable ALTO
information:
A. The ALTO Client hands to the TEEPOT the list of EPs and their o an age attribute indicating when the information was generated.
associated value set.
B. The TEEPOT ranks the EPs with some smart algorithm, given the o for statistical costs a time period attribute indicating over
metric weights and then sends the ranked list to the which duration the statistics were collected.
Application Client.
5. The Application Client connects to the selected EPs. o a validity attribute indicating when the provided values should be
refreshed. By defaut, this parameter can be set to infinity.
7. IANA Considerations 7. IANA Considerations
The current ALTO protocol version includes a Section 11 entitled IANA Information for the ALTO Endpoint property registry maintained by the
considerations, where the ALTO Cost Type registry is defined in IANA and related to the new Endpoints supported by the acting ALTO
Section 11.2 server. These definitions will be formulated according to the syntax
defined in Section on "ALTO Endpoint Property Registry" of
[ID-alto-protocol],
Information for the ALTO Cost Type Registry maintained by the IANA
and related to the new Cost Types supported by the acting ALTO
server. These definitions will be formulated according to the syntax
defined in Section on "ALTO Cost Type Registry" of
[ID-alto-protocol],
7.1. Information for IANA on proposed Cost Types 7.1. Information for IANA on proposed Cost Types
When a new ALTO Cost Type is defined, accepted by the ALTO working When a new ALTO Cost Type is defined, accepted by the ALTO working
group and requests for IANA registration MUST include the following group and requests for IANA registration MUST include the following
information, detailed in Section 11.2: Identifier, Intended information, detailed in Section 11.2: Identifier, Intended
Semantics, Security Considerations. Semantics, Security Considerations.
7.2. Information for IANA on proposed Endpoint Propeeries 7.2. Information for IANA on proposed Endpoint Propeeries
Likewise, an ALTO Endpoint Property Registry could serve the same Likewise, an ALTO Endpoint Property Registry could serve the same
purposes as the ALTO Cost Type registry. Application to IANA purposes as the ALTO Cost Type registry. Application to IANA
registration for Endpoint Properties would follow a similar process. registration for Endpoint Properties would follow a similar process.
8. Acknowledgements 8. Acknowledgements
Thank you to Richard Alimi whose reviewing of the previous version of Sabine Randriamasy is partially supported by the MEDIEVAL project
this draft and advises provided a valuable input to its updates. (http://www.ict-medieval.eu/), a research project supported by the
European Commission under its 7th Framework Program (contract no.
248565). The views and conclusions contained herein are those of the
authors and should not be interpreted as necessarily representing the
official policies or endorsements, either expressed or implied, of
the MEDIEVAL project or the European Commission.
Nico Schwan is partially supported by the ENVISION project
(http://www.envision-project.org), a research project supported by
the European Commission under its 7th Framework Program (contract no.
248565). The views and conclusions contained herein are those of the
authors and should not be interpreted as necessarily representing the
official policies or endorsements, either expressed or implied, of
the ENVISION project or the European Commission.
9. References 9. References
9.1. Normative References 9.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC5693] "Application Layer Traffic Optimization (ALTO) Problem [RFC5693] "Application Layer Traffic Optimization (ALTO) Problem
Statement", October 2009. Statement", October 2009.
9.2. Informative References 9.2. Informative References
[ID-ALTO-Requirements]
"draft-ietf-alto-reqs-05.txt", June 2010.
[ID-ALTO-Requirements7] [ID-ALTO-Requirements7]
"draft-ietf-alto-reqs-07.txt", January 2011. "draft-ietf-alto-reqs-07.txt", January 2011.
[ID-alto-protocol5] [ID-alto-protocol]
""ALTO Protocol" draft-ietf-alto-protocol-05.txt", , Eds., ""ALTO Protocol" draft-ietf-alto-protocol-09.txt",
July 2010. June 2011.
[ID-alto-protocol6] [draft-jenkins-alto-cdn-use-cases-01]
, eds., ""ALTO Protocol" draft-ietf-alto-protocol-06.txt", ""Use Cases for ALTO within CDNs"
October 2010. draft-jenkins-alto-cdn-use-cases-01", June 2011.
Author's Address Authors' Addresses
Sabine Randriamasy (editor) Sabine Randriamasy (editor)
Alcatel-Lucent Bell Labs Alcatel-Lucent Bell Labs
Route de Villejust Route de Villejust
NOZAY 91460 NOZAY 91460
FRANCE FRANCE
Email: Sabine.Randriamasy@alcatel-lucent.com Email: Sabine.Randriamasy@alcatel-lucent.com
Nico Schwan
Phone:
Fax:
Email:
URI:
 End of changes. 79 change blocks. 
412 lines changed or deleted 249 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/