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