< draft-ietf-alto-reqs-05.txt   draft-ietf-alto-reqs-06.txt >
Network Working Group S. Kiesel, Ed. Network Working Group S. Kiesel, Ed.
Internet-Draft University of Stuttgart Internet-Draft University of Stuttgart
Intended status: Informational S. Previdi Intended status: Informational S. Previdi
Expires: December 16, 2010 Cisco Systems, Inc. Expires: April 28, 2011 Cisco Systems, Inc.
M. Stiemerling M. Stiemerling
NEC Europe Ltd. NEC Europe Ltd.
R. Woundy R. Woundy
Comcast Corporation Comcast Corporation
Y R. Yang Y R. Yang
Yale University Yale University
June 14, 2010 October 25, 2010
Application-Layer Traffic Optimization (ALTO) Requirements Application-Layer Traffic Optimization (ALTO) Requirements
draft-ietf-alto-reqs-05.txt draft-ietf-alto-reqs-06.txt
Abstract Abstract
Many Internet applications are used to access resources, such as Many Internet applications are used to access resources, such as
pieces of information or server processes, which are available in pieces of information or server processes, which are available in
several equivalent replicas on different hosts. This includes, but several equivalent replicas on different hosts. This includes, but
is not limited to, peer-to-peer file sharing applications. The goal is not limited to, peer-to-peer file sharing applications. The goal
of Application-Layer Traffic Optimization (ALTO) is to provide of Application-Layer Traffic Optimization (ALTO) is to provide
guidance to applications, which have to select one or several hosts guidance to applications, which have to select one or several hosts
from a set of candidates, that are able to provide a desired from a set of candidates, that are able to provide a desired
skipping to change at page 2, line 13 skipping to change at page 2, line 13
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."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on December 16, 2010. This Internet-Draft will expire on April 28, 2011.
Copyright Notice Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the Copyright (c) 2010 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 21 skipping to change at page 3, line 21
2.3. Architectural Framework for ALTO . . . . . . . . . . . . . 6 2.3. Architectural Framework for ALTO . . . . . . . . . . . . . 6
2.4. Sample Use Cases . . . . . . . . . . . . . . . . . . . . . 6 2.4. Sample Use Cases . . . . . . . . . . . . . . . . . . . . . 6
3. ALTO Requirements . . . . . . . . . . . . . . . . . . . . . . 9 3. ALTO Requirements . . . . . . . . . . . . . . . . . . . . . . 9
3.1. ALTO Client Protocol . . . . . . . . . . . . . . . . . . . 9 3.1. ALTO Client Protocol . . . . . . . . . . . . . . . . . . . 9
3.1.1. General Requirements . . . . . . . . . . . . . . . . . 9 3.1.1. General Requirements . . . . . . . . . . . . . . . . . 9
3.1.2. Host Group Descriptor Support . . . . . . . . . . . . 9 3.1.2. Host Group Descriptor Support . . . . . . . . . . . . 9
3.1.3. Rating Criteria Support . . . . . . . . . . . . . . . 10 3.1.3. Rating Criteria Support . . . . . . . . . . . . . . . 10
3.1.4. Placement of Entities and Timing of Transactions . . . 11 3.1.4. Placement of Entities and Timing of Transactions . . . 11
3.1.5. Protocol Extensibility . . . . . . . . . . . . . . . . 13 3.1.5. Protocol Extensibility . . . . . . . . . . . . . . . . 13
3.1.6. Error Handling and Overload Protection . . . . . . . . 13 3.1.6. Error Handling and Overload Protection . . . . . . . . 13
3.2. ALTO Server Discovery . . . . . . . . . . . . . . . . . . 13 3.2. ALTO Server Discovery . . . . . . . . . . . . . . . . . . 14
3.3. Security and Privacy . . . . . . . . . . . . . . . . . . . 15 3.3. Security and Privacy . . . . . . . . . . . . . . . . . . . 15
4. Host Group Descriptors . . . . . . . . . . . . . . . . . . . . 16 4. Host Group Descriptors . . . . . . . . . . . . . . . . . . . . 16
5. Rating Criteria . . . . . . . . . . . . . . . . . . . . . . . 17 5. Rating Criteria . . . . . . . . . . . . . . . . . . . . . . . 17
5.1. Distance-related Rating Criteria . . . . . . . . . . . . . 17 5.1. Distance-related Rating Criteria . . . . . . . . . . . . . 17
5.2. Charging-related Rating Criteria . . . . . . . . . . . . . 17 5.2. Charging-related Rating Criteria . . . . . . . . . . . . . 17
5.3. Performance-related Rating Criteria . . . . . . . . . . . 18 5.3. Performance-related Rating Criteria . . . . . . . . . . . 18
5.4. Inappropriate Rating Criteria . . . . . . . . . . . . . . 19 5.4. Inappropriate Rating Criteria . . . . . . . . . . . . . . 19
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20
7. Security Considerations . . . . . . . . . . . . . . . . . . . 21 7. Security Considerations . . . . . . . . . . . . . . . . . . . 21
7.1. High-level security considerations . . . . . . . . . . . . 21 7.1. High-level security considerations . . . . . . . . . . . . 21
skipping to change at page 9, line 11 skipping to change at page 9, line 11
Figure 2: Overview of protocol interaction between ALTO elements, Figure 2: Overview of protocol interaction between ALTO elements,
scenario with resource directory scenario with resource directory
3. ALTO Requirements 3. ALTO Requirements
3.1. ALTO Client Protocol 3.1. ALTO Client Protocol
3.1.1. General Requirements 3.1.1. General Requirements
REQ. ARv05-1: The ALTO service is provided by one or more ALTO REQ. ARv06-1: The ALTO service is provided by one or more ALTO
servers. ALTO servers MUST implement the ALTO client protocol, for servers. ALTO servers MUST implement the ALTO client protocol, for
receiving ALTO queries from ALTO clients and for sending the receiving ALTO queries from ALTO clients and for sending the
corresponding ALTO replies. corresponding ALTO replies.
REQ. ARv05-2: ALTO clients MUST implement the ALTO client protocol, REQ. ARv06-2: ALTO clients MUST implement the ALTO client protocol,
for sending ALTO queries to ALTO servers and for receiving the for sending ALTO queries to ALTO servers and for receiving the
corresponding ALTO replies. corresponding ALTO replies.
REQ. ARv05-3: The format of the ALTO query message MUST allow the REQ. ARv06-3: The format of the ALTO query message MUST allow the
ALTO client to solicit guidance for selecting appropriate resource ALTO client to solicit guidance for selecting appropriate resource
providers. providers.
REQ. ARv05-4: The format of the ALTO reply message MUST allow the REQ. ARv06-4: The format of the ALTO reply message MUST allow the
ALTO server to express its guidance for selecting appropriate ALTO server to express its guidance for selecting appropriate
resource providers. resource providers.
REQ. ARv05-5: The detailed specification of a protocol is out of the REQ. ARv06-5: The detailed specification of a protocol is out of the
scope of this document. However, any protocol specification that scope of this document. However, any protocol specification that
claims to implement the ALTO client protocol MUST be compliant to the claims to implement the ALTO client protocol MUST be compliant to the
requirements itemized in this document. requirements itemized in this document.
3.1.2. Host Group Descriptor Support 3.1.2. Host Group Descriptor Support
The ALTO guidance is based on the evaluation of several resource The ALTO guidance is based on the evaluation of several resource
providers or groups of resource providers, which are characterized by providers or groups of resource providers, which are characterized by
means of host group descriptors, considering one or several rating means of host group descriptors, considering one or several rating
criteria. criteria.
REQ. ARv05-6: The ALTO client protocol MUST support the usage of REQ. ARv06-6: The ALTO client protocol MUST support the usage of
several different host group descriptor types. several different host group descriptor types.
REQ. ARv05-7: The ALTO client protocol specification MUST define a REQ. ARv06-7: The ALTO client protocol specification MUST define a
basic set of host group descriptor types, which MUST be supported by basic set of host group descriptor types, which MUST be supported by
all implementations of the ALTO client protocol. all implementations of the ALTO client protocol.
REQ. ARv05-8: The ALTO client protocol MUST support the host group REQ. ARv06-8: The ALTO client protocol MUST support the host group
descriptor types "IPv4 address prefix" and "IPv6 address prefix." descriptor types "IPv4 address prefix" and "IPv6 address prefix."
They can be used to specify the IP address of one host, or an IP They can be used to specify the IP address of one host, or an IP
address range (in CIDR notation), which contains all hosts in address range (in CIDR notation), which contains all hosts in
question. It is also possible to specify a broader address range question. It is also possible to specify a broader address range
(i.e., a shorter prefix length) than the intended group of hosts (i.e., a shorter prefix length) than the intended group of hosts
actually uses, in order to conceal their exact identity. actually uses, in order to conceal their exact identity.
REQ. ARv05-9: The ALTO client protocol specification MUST define an REQ. ARv06-9: The ALTO client protocol specification MUST define an
appropriate procedure for adding new host group descriptor types, appropriate procedure for adding new host group descriptor types,
e.g., by establishing an IANA registry. e.g., by establishing an IANA registry.
See Section 4 for a discussion of possible other host group See Section 4 for a discussion of possible other host group
descriptor types. descriptor types.
REQ. ARv05-10: ALTO clients and ALTO servers MUST clearly identify REQ. ARv06-10: ALTO clients and ALTO servers MUST clearly identify
the type of each host group descriptor sent in ALTO queries or the type of each host group descriptor sent in ALTO queries or
replies. replies.
REQ. ARv05-11: For host group descriptor types other than "IPv4 REQ. ARv06-11: For host group descriptor types other than "IPv4
address prefix" and "IPv6 address prefix", the host group descriptor address prefix" and "IPv6 address prefix", the host group descriptor
type identification MUST be supplemented by a reference to a type identification MUST be supplemented by a reference to a
facility, which can be used to translate host group descriptors of facility, which can be used to translate host group descriptors of
that type to IPv4/IPv6 address prefixes, e.g., by means of a mapping that type to IPv4/IPv6 address prefixes, e.g., by means of a mapping
table or an algorithm. table or an algorithm.
REQ. ARv05-12: Protocol functions for mapping other host group REQ. ARv06-12: Protocol functions for mapping other host group
descriptor types to IPv4/IPv6 address prefixes SHOULD be designed and descriptor types to IPv4/IPv6 address prefixes SHOULD be designed and
specified as part of the ALTO client protocol, and the corresponding specified as part of the ALTO client protocol, and the corresponding
address mapping information SHOULD be made available by the same address mapping information SHOULD be made available by the same
entity that wants to use these host group descriptors within the ALTO entity that wants to use these host group descriptors within the ALTO
client protocol. However, an ALTO server or an ALTO client MAY also client protocol. However, an ALTO server or an ALTO client MAY also
send a reference to an external mapping facility, e.g., a translation send a reference to an external mapping facility, e.g., a translation
table to be downloaded as file via HTTP. table to be downloaded as file via HTTP.
REQ. ARv05-13: The ALTO client protocol specification MUST define REQ. ARv06-13: The ALTO client protocol specification MUST define
mechanisms, which can be used by the ALTO client and the ALTO server mechanisms, which can be used by the ALTO client and the ALTO server
to indicate that a host group descriptor used by the other party is to indicate that a host group descriptor used by the other party is
of an unsupported type, or that the indicated mapping mechanism could of an unsupported type, or that the indicated mapping mechanism could
not be used. not be used.
3.1.3. Rating Criteria Support 3.1.3. Rating Criteria Support
REQ. ARv05-14: The ALTO client protocol MUST support the usage of REQ. ARv06-14: The ALTO client protocol MUST support the usage of
several different rating criteria types. several different rating criteria types.
REQ. ARv05-15: The ALTO client protocol specification MUST define a REQ. ARv06-15: The ALTO client protocol specification MUST define a
basic set of rating criteria types, which MUST be supported by all basic set of rating criteria types, which MUST be supported by all
implementations of the ALTO client protocol. implementations of the ALTO client protocol.
REQ. ARv05-16: The ALTO client protocol specification MUST support REQ. ARv06-16: The ALTO client protocol specification MUST support
the rating criteria type "relative operator's preference." This is a the rating criteria type "relative operator's preference." This is a
relative measure, i.e., it is not associated with any unit of relative measure, i.e., it is not associated with any unit of
measurement. A higher rating according to this criterion indicates measurement. A higher rating according to this criterion indicates
that the application should prefer the respective candidate resource that the application should prefer the respective candidate resource
provider over others with lower ratings (if no other reasons speak provider over others with lower ratings (if no other reasons speak
against it, such as transmission attempts suggesting that the path is against it, such as transmission attempts suggesting that the path is
currently congested). The operator of the ALTO server does not have currently congested). The operator of the ALTO server does not have
to disclose how and based on which data the ratings are actually to disclose how and based on which data the ratings are actually
computed. Examples could be: cost for peering or transit traffic, computed. Examples could be: cost for peering or transit traffic,
traffic engineering inside the network, and other policies. traffic engineering inside the network, and other policies.
REQ. ARv05-17: The ALTO client protocol specification MUST define an REQ. ARv06-17: The ALTO client protocol specification MUST define an
appropriate procedure for adding new rating criteria types, e.g., by appropriate procedure for adding new rating criteria types, e.g., by
establishing an IANA registry. establishing an IANA registry.
See Section 5 for a discussion of possible other rating criteria. See Section 5 for a discussion of possible other rating criteria.
REQ. ARv05-18:The ALTO query message SHOULD allow the ALTO client to REQ. ARv06-18:The ALTO query message SHOULD allow the ALTO client to
express which rating criteria should be considered, as well as their express which rating criteria should be considered, as well as their
relative relevance for the specific application that will eventually relative relevance for the specific application that will eventually
make use of the guidance. make use of the guidance.
REQ. ARv05-19:The ALTO reply message SHOULD allow the ALTO server to REQ. ARv06-19:The ALTO reply message SHOULD allow the ALTO server to
express which rating criteria have been considered when generating express which rating criteria have been considered when generating
the reply. the reply.
REQ. ARv05-20: The ALTO client protocol specification MUST define REQ. ARv06-20: The ALTO client protocol specification MUST define
mechanisms, which can be used by the ALTO client and the ALTO server mechanisms, which can be used by the ALTO client and the ALTO server
to indicate that a rating criteria used by the other party is of an to indicate that a rating criteria used by the other party is of an
unsupported type. unsupported type.
3.1.4. Placement of Entities and Timing of Transactions 3.1.4. Placement of Entities and Timing of Transactions
With respect to the placement of ALTO clients, several modes of With respect to the placement of ALTO clients, several modes of
operation exist: operation exist:
o One mode of ALTO operation is that ALTO clients may be embedded o One mode of ALTO operation is that ALTO clients may be embedded
directly in the resource consumer (e.g., peer of a DHT-based P2P directly in the resource consumer (e.g., peer of a DHT-based P2P
application), which wants to access a resource. application), which wants to access a resource.
o Another mode of operation is to perform ALTO queries indirectly, o Another mode of operation is to perform ALTO queries indirectly,
via resource directories (e.g., tracker of a P2P application), via resource directories (e.g., tracker of a P2P application),
which may issue ALTO queries to solicit preference on potential which may issue ALTO queries to solicit preference on potential
resource providers, considering the respective resource consumer. resource providers, considering the respective resource consumer.
REQ. ARv05-21: The ALTO client protocol MUST support the mode of REQ. ARv06-21: The ALTO client protocol MUST support the mode of
operation, in which the ALTO client is directly embedded in the operation, in which the ALTO client is directly embedded in the
resource consumer. resource consumer.
REQ. ARv05-22: The ALTO client protocol MUST support the mode of REQ. ARv06-22: The ALTO client protocol MUST support the mode of
operation, in which the ALTO client is embedded in the resource operation, in which the ALTO client is embedded in the resource
directory. directory.
REQ. ARv05-23: The ALTO client protocol MUST be designed in a way REQ. ARv06-23: The ALTO client protocol MUST be designed in a way
that the ALTO service can be provided by an entity which is not the that the ALTO service can be provided by an entity which is not the
operator of the IP access network. operator of the IP access network.
REQ. ARv05-24: The ALTO client protocol MUST be designed in a way REQ. ARv06-24: The ALTO client protocol MUST be designed in a way
that different instances of the ALTO service operated by different that different instances of the ALTO service operated by different
providers can coexist. providers can coexist.
With respect to the timing of ALTO queries, several modes of With respect to the timing of ALTO queries, several modes of
operation exist: operation exist:
o In target-aware query mode, an ALTO client performs the ALTO query o In target-aware query mode, an ALTO client performs the ALTO query
when the desired resource and a set of candidate resource when the desired resource and a set of candidate resource
providers are already known, i. e., after DHT lookups, queries to providers are already known, i. e., after DHT lookups, queries to
the resource directory, etc. the resource directory, etc.
o In target-independent query mode, ALTO queries are performed in o In target-independent query mode, ALTO queries are performed in
advance or periodically, in order to receive comprehensive, advance or periodically, in order to receive comprehensive,
"target-independent" guidance, which will be cached locally and "target-independent" guidance, which will be cached locally and
evaluated later, when a resource is to be accessed. evaluated later, when a resource is to be accessed.
REQ. ARv05-25: The ALTO client protocol MUST support at least one of REQ. ARv06-25: The ALTO client protocol MUST support at least one of
these two modes, either the target-aware or the target-independent these two modes, either the target-aware or the target-independent
query mode. query mode.
REQ. ARv05-26: The ALTO client protocol SHOULD support both the REQ. ARv06-26: The ALTO client protocol SHOULD support both the
target-aware and the target-independent query mode. target-aware and the target-independent query mode.
REQ. ARv05-27: The ALTO client protocol SHOULD support lifetime REQ. ARv06-27: The ALTO client protocol SHOULD support lifetime
attributes, to enable caching of recommendations at ALTO clients. attributes, to enable caching of recommendations at ALTO clients.
REQ. ARv05-28: The ALTO client protocol SHOULD specify an aging REQ. ARv06-28: The ALTO client protocol SHOULD specify an aging
mechanism, which allows to give newer recommendations precedence over mechanism, which allows to give newer recommendations precedence over
older ones. older ones.
REQ. ARv05-29: The ALTO client protocol SHOULD allow the ALTO server REQ. ARv06-30: The ALTO client protocol SHOULD allow the ALTO server
to specify a "target audience" in an ALTO reply. This is a set of to add information about appropriate modes of re-use to its ALTO
resource consumers (expressed, e.g., as a list of host group replies. Re-use may include redistributing an ALTO reply to other
descriptors). The guidance provided in the respective ALTO reply can parties, as well as using the same ALTO information in a resource
be used and possibly re-used during the specified lifetime by or for directory to improve the replies to different resource consumers,
the resource consumers in the "target audience". Re-using may within the specified lifetime of the ALTO reply. The ALTO server
include redistributing the ALTO reply to other parties in the SHOULD be able to express that
specified set, as well as using the same ALTO information in a
resource directory to improve the replies to different resource
consumers.
REQ. ARv05-30: The ALTO client protocol MUST support scenarios with o no re-use should occur
o re-use is appropriate for a specific "target audience", i.e., a
set of resource consumers explicitly defined by a list of host
group descriptors. The ALTO server MAY specify a "target
audience" in the ALTO reply, which is only a subset of the known
actual "target audience", e.g., if required by operator policies
o re-use is appropriate for any resource consumer that would send
(or cause a third party sending on behalf of it) the same ALTO
query (i.e., with the same query parameters, except for the
resource consumer ID, if applicable) to this ALTO server
o re-use is appropriate for any resource consumer that would send
(or cause a third party sending on behalf of it) the same ALTO
query (i.e., with the same query parameters, except for the
resource consumer ID, if applicable) to any ALTO server
REQ. ARv06-31: The ALTO client protocol MUST support scenarios with
the ALTO client located in the private address realm behind a network the ALTO client located in the private address realm behind a network
address translator (NAT). There are different types of NAT, see address translator (NAT). There are different types of NAT, see
[RFC4787] and [RFC5382]. [RFC4787] and [RFC5382].
3.1.5. Protocol Extensibility 3.1.5. Protocol Extensibility
REQ. ARv05-31: The ALTO client protocol MUST include support for REQ. ARv06-32: The ALTO client protocol MUST include support for
adding protocol extensions in a non-disruptive, backward-compatible adding protocol extensions in a non-disruptive, backward-compatible
way. way.
REQ. ARv05-32: The ALTO client protocol MUST include protocol REQ. ARv06-33: The ALTO client protocol MUST include protocol
versioning support, in order to clearly distinguish between versioning support, in order to clearly distinguish between
incompatible versions of the protocol. incompatible versions of the protocol.
3.1.6. Error Handling and Overload Protection 3.1.6. Error Handling and Overload Protection
REQ. ARv05-33: Any application designed to use ALTO MUST also work REQ. ARv06-34: Any application designed to use ALTO MUST also work
if no ALTO servers can be found or if no responses to ALTO queries if no ALTO servers can be found or if no responses to ALTO queries
are received, e.g., due to connectivity problems or overload are received, e.g., due to connectivity problems or overload
situation. situation.
REQ. ARv05-34: The ALTO client protocol MUST use TCP based REQ. ARv06-35: The ALTO client protocol MUST use TCP based
transport. transport.
REQ. ARv05-35: An ALTO server, which is operating close to its REQ. ARv06-36: An ALTO server, which is operating close to its
capacity limit, MUST be able to inform clients about its impending capacity limit, MUST be able to inform clients about its impending
overload situation, and require them to throttle their query rate. overload situation, and require them to throttle their query rate.
REQ. ARv05-36: An ALTO server, which is operating close to its REQ. ARv06-37: An ALTO server, which is operating close to its
capacity limit, MUST be able to inform clients about its impending capacity limit, MUST be able to inform clients about its impending
overload situation, and redirect them to another ALTO server. overload situation, and redirect them to another ALTO server.
REQ. ARv05-37: An ALTO server, which is operating close to its REQ. ARv06-38: An ALTO server, which is operating close to its
capacity limit, MUST be able to inform clients about its impending capacity limit, MUST be able to inform clients about its impending
overload situation, and terminate the conversation with the ALTO overload situation, and terminate the conversation with the ALTO
client. client.
REQ. ARv05-38: An ALTO server, which is operating close to its REQ. ARv06-39: An ALTO server, which is operating close to its
capacity limit, MUST be able to inform clients about its impending capacity limit, MUST be able to inform clients about its impending
overload situation, and reject new conversation attempts. overload situation, and reject new conversation attempts.
3.2. ALTO Server Discovery 3.2. ALTO Server Discovery
The ALTO client protocol is supported by one or several ALTO server The ALTO client protocol is supported by one or several ALTO server
discovery mechanisms, which will be used by ALTO clients in order to discovery mechanisms, which will be used by ALTO clients in order to
find out where to send ALTO requests. find out where to send ALTO requests.
REQ. ARv05-39: ALTO clients which are embedded in the resource REQ. ARv06-40: ALTO clients which are embedded in the resource
consumer MUST be able to use the ALTO server discovery mechanism, in consumer MUST be able to use the ALTO server discovery mechanism, in
order to find one or several ALTO servers that can provide ALTO order to find one or several ALTO servers that can provide ALTO
guidance suitable for the resource consumer. This mode of operation guidance suitable for the resource consumer. This mode of operation
is called "resource consumer initiated ALTO server discovery". is called "resource consumer initiated ALTO server discovery".
REQ. ARv05-40: ALTO clients which are embedded in a resource REQ. ARv06-41: ALTO clients which are embedded in a resource
directory and perform third-party ALTO queries on behalf of a remote directory and perform third-party ALTO queries on behalf of a remote
resource consumer MUST be able to use the ALTO server discovery resource consumer MUST be able to use the ALTO server discovery
mechanism, in order to find one or several ALTO servers that can mechanism, in order to find one or several ALTO servers that can
provide ALTO guidance suitable for the respective resource consumer. provide ALTO guidance suitable for the respective resource consumer.
This mode of operation is called "third-party ALTO server discovery". This mode of operation is called "third-party ALTO server discovery".
A classification and evaluation of architectural options for third-
party ALTO server discovery can be found in [I-D.kiesel-alto-3pdisc].
REQ. ARv05-41: ALTO clients MUST be able to perform resource REQ. ARv06-42: ALTO clients MUST be able to perform resource
consumer initiated ALTO server discovery, even if they are located consumer initiated ALTO server discovery, even if they are located
behind a network address translator (NAT). behind a network address translator (NAT).
REQ. ARv05-42: ALTO clients MUST be able to perform third-party ALTO REQ. ARv06-43: ALTO clients MUST be able to perform third-party ALTO
server discovery, even if they are located behind a network address server discovery, even if they are located behind a network address
translator (NAT). translator (NAT).
REQ. ARv05-43: ALTO clients MUST be able to perform third-party ALTO REQ. ARv06-44: ALTO clients MUST be able to perform third-party ALTO
server discovery, even if the resource consumer, on behalf of which server discovery, even if the resource consumer, on behalf of which
the ALTO query will be sent, is located behind a network address the ALTO query will be sent, is located behind a network address
translator (NAT). translator (NAT).
REQ. ARv05-44: The ALTO server discovery mechanism may be specified REQ. ARv06-45: The ALTO server discovery mechanism may be specified
and provided using an existing protocol or mechanism, such as DNS, and provided using an existing protocol or mechanism, such as DNS,
DHCP, or PPP based automatic configuration, etc. These candidate DHCP, or PPP based automatic configuration, etc. These candidate
"base protocols" differ with respect to their availability in various "base protocols" differ with respect to their availability in various
access network architectures and their suitability for third-party access network architectures and their suitability for third-party
queries. When evaluating different options this should be taken into queries. When evaluating different options this should be taken into
account, in order to limit the total number of ALTO server discovery account, in order to limit the total number of ALTO server discovery
mechanisms that have to be specified for supporting a reasonably wide mechanisms that have to be specified for supporting a reasonably wide
range of deployment scenarios. range of deployment scenarios.
REQ. ARv05-45: The ALTO server discovery mechanism SHOULD be able to REQ. ARv06-46: The ALTO server discovery mechanism SHOULD be able to
return the respective contact information for several ALTO servers. return the respective contact information for several ALTO servers.
REQ. ARv05-46: The ALTO server discovery mechanism SHOULD be able to REQ. ARv06-47: The ALTO server discovery mechanism SHOULD be able to
indicate preferences for each returned ALTO server contact indicate preferences for each returned ALTO server contact
information. information.
3.3. Security and Privacy 3.3. Security and Privacy
REQ. ARv05-47: The ALTO client protocol MUST support mechanisms for REQ. ARv06-48: The ALTO client protocol MUST support mechanisms for
the authentication of ALTO servers. the authentication of ALTO servers.
REQ. ARv05-48: The ALTO client protocol MUST support mechanisms for REQ. ARv06-49: The ALTO client protocol MUST support mechanisms for
the authentication of ALTO clients. the authentication of ALTO clients.
REQ. ARv05-49: The ALTO client protocol MUST support different REQ. ARv06-50: The ALTO client protocol MUST support different
levels of detail in queries and responses, in order for the operator levels of detail in queries and responses, in order for the operator
of an ALTO service to be able to control how much information (e.g., of an ALTO service to be able to control how much information (e.g.,
about the network topology) is disclosed. about the network topology) is disclosed.
REQ. ARv05-50: The operator of an ALTO server MUST NOT assume that REQ. ARv06-51: The operator of an ALTO server MUST NOT assume that
an ALTO client will implement mechanisms or comply with rules that an ALTO client will implement mechanisms or comply with rules that
limit the ALTO client's ability to redistribute information retrieved limit the ALTO client's ability to redistribute information retrieved
from the ALTO server to third parties. from the ALTO server to third parties.
REQ. ARv05-51: The ALTO client protocol MUST support different REQ. ARv06-52: The ALTO client protocol MUST support different
levels of detail in queries and responses, in order to protect the levels of detail in queries and responses, in order to protect the
privacy of users, to ensure that the operators of ALTO servers and privacy of users, to ensure that the operators of ALTO servers and
other users of the same application cannot derive sensitive other users of the same application cannot derive sensitive
information. information.
REQ. ARv05-52: The ALTO client protocol SHOULD be defined in a way, REQ. ARv06-53: The ALTO client protocol SHOULD be defined in a way,
that the operator of one ALTO server cannot easily deduce the that the operator of one ALTO server cannot easily deduce the
resource identifier (e.g., file name in P2P file sharing) which the resource identifier (e.g., file name in P2P file sharing) which the
resource consumer seeking ALTO guidance wants to access. resource consumer seeking ALTO guidance wants to access.
REQ. ARv05-53: The ALTO client protocol MUST include appropriate REQ. ARv06-54: The ALTO client protocol MUST include appropriate
mechanisms to protect the ALTO service against DoS attacks. mechanisms to protect the ALTO service against DoS attacks.
4. Host Group Descriptors 4. Host Group Descriptors
Host group descriptors are used in the ALTO client protocol to Host group descriptors are used in the ALTO client protocol to
describe the location of a host in the network topology. The ALTO describe the location of a host in the network topology. The ALTO
client protocol specification defines a basic set of host group client protocol specification defines a basic set of host group
descriptor types, which have to be supported by all implementations, descriptor types, which have to be supported by all implementations,
and an extension procedure for adding new descriptor types (see and an extension procedure for adding new descriptor types (see
Section 3.1.2). The following list gives an overview on further host Section 3.1.2). The following list gives an overview on further host
skipping to change at page 24, line 18 skipping to change at page 24, line 18
[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.
8.2. Informative References 8.2. Informative References
[ALTO-charter] [ALTO-charter]
Marocco, E. and V. Gurbani, "Application-Layer Traffic Marocco, E. and V. Gurbani, "Application-Layer Traffic
Optimization (ALTO) Working Group Charter", February 2009. Optimization (ALTO) Working Group Charter", February 2009.
[I-D.kiesel-alto-3pdisc]
Kiesel, S. and M. Tomsu, "Third-party ALTO server
discovery", draft-kiesel-alto-3pdisc-00 (work in
progress), August 2009.
[RFC4787] Audet, F. and C. Jennings, "Network Address Translation [RFC4787] Audet, F. and C. Jennings, "Network Address Translation
(NAT) Behavioral Requirements for Unicast UDP", BCP 127, (NAT) Behavioral Requirements for Unicast UDP", BCP 127,
RFC 4787, January 2007. RFC 4787, January 2007.
[RFC5382] Guha, S., Biswas, K., Ford, B., Sivakumar, S., and P. [RFC5382] Guha, S., Biswas, K., Ford, B., Sivakumar, S., and P.
Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142, Srisuresh, "NAT Behavioral Requirements for TCP", BCP 142,
RFC 5382, October 2008. RFC 5382, October 2008.
[RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic
Optimization (ALTO) Problem Statement", RFC 5693, Optimization (ALTO) Problem Statement", RFC 5693,
 End of changes. 60 change blocks. 
74 lines changed or deleted 81 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/