| < draft-kiesel-alto-3pdisc-01.txt | draft-kiesel-alto-3pdisc-02.txt > | |||
|---|---|---|---|---|
| ALTO S. Kiesel | ALTO S. Kiesel | |||
| Internet-Draft NEC Europe Ltd. | Internet-Draft University of Stuttgart | |||
| Intended status: Informational M. Tomsu | Intended status: Informational M. Tomsu | |||
| Expires: April 29, 2010 Alcatel-Lucent Bell Labs | Expires: September 9, 2010 N. Schwan | |||
| October 26, 2009 | M. Scharf | |||
| Alcatel-Lucent Bell Labs | ||||
| March 8, 2010 | ||||
| Third-party ALTO server discovery | Third-party ALTO server discovery | |||
| draft-kiesel-alto-3pdisc-01 | draft-kiesel-alto-3pdisc-02 | |||
| Abstract | ||||
| The goal of Application-Layer Traffic Optimization (ALTO) is to | ||||
| provide guidance to applications, which have to select one or several | ||||
| hosts from a set of candidates that are able to provide a desired | ||||
| resource. | ||||
| This document describes why a third-party ALTO server discovery | ||||
| mechanism is required for an important class of applications, namely | ||||
| tracker-based P2P applications. Several solution approaches are | ||||
| classified and evaluated. The conclusion is that further work is | ||||
| required to standardize a protocol and procedures that follow one | ||||
| specific approach. | ||||
| Status of this Memo | Status of this Memo | |||
| This Internet-Draft is submitted to IETF in full conformance with the | This Internet-Draft is submitted to IETF in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
| other groups may also distribute working documents as Internet- | other groups may also distribute working documents as Internet- | |||
| Drafts. | Drafts. | |||
| skipping to change at page 1, line 33 ¶ | skipping to change at page 1, line 49 ¶ | |||
| 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 April 29, 2010. | This Internet-Draft will expire on September 9, 2010. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2009 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 in effect on the date of | Provisions Relating to IETF Documents | |||
| publication of this document (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info) in effect on the date of | |||
| Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
| and restrictions with respect to this document. | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | ||||
| Abstract | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | ||||
| The goal of Application-Layer Traffic Optimization (ALTO) is to | described in the BSD License. | |||
| provide guidance to applications, which have to select one or several | ||||
| hosts from a set of candidates, that are able to provide a desired | ||||
| resource. | ||||
| This document describes why a third-party ALTO server discovery | ||||
| mechanism is required for an important class of applications, namely | ||||
| tracker-based P2P applications. Several solution approaches are | ||||
| classified and evaluated. The conclusion is that further work is | ||||
| required to standardize a protocol and procedures that follow one | ||||
| specific approach. | ||||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Problem statement . . . . . . . . . . . . . . . . . . . . . . 4 | 2. Problem statement . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 2.1. The need for third-party ALTO queries . . . . . . . . . . 4 | 2.1. The need for third-party ALTO queries . . . . . . . . . . 4 | |||
| 2.2. The need for third-party ALTO server discovery . . . . . . 4 | 2.2. The need for third-party ALTO server discovery . . . . . . 6 | |||
| 3. Peer-to-peer application scenario . . . . . . . . . . . . . . 6 | 3. Peer-to-peer application scenario . . . . . . . . . . . . . . 8 | |||
| 4. Classification of solution approaches . . . . . . . . . . . . 8 | 4. Classification of solution approaches . . . . . . . . . . . . 10 | |||
| 4.1. Solutions that do not require an update of the | 4.1. Solutions that do not require an update of the | |||
| application protocol . . . . . . . . . . . . . . . . . . . 8 | application protocol . . . . . . . . . . . . . . . . . . . 10 | |||
| 4.2. Solutions that do require an update of the application | 4.2. Solutions that do require an update of the application | |||
| protocol . . . . . . . . . . . . . . . . . . . . . . . . . 10 | protocol . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 5. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.1. Approach #1 . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.1. Approach #1 . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.2. Approach #2 . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.2. Approach #2 . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.3. Approach #3 . . . . . . . . . . . . . . . . . . . . . . . 14 | 5.3. Approach #3 . . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5.4. Approach #4 . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.4. Approach #4 . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.5. Approach #5 . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.5. Approach #5 . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 5.6. Approach #6 . . . . . . . . . . . . . . . . . . . . . . . 15 | 5.6. Approach #6 . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 6. Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 | 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 8. Security Considerations . . . . . . . . . . . . . . . . . . . 19 | 8. Security Considerations . . . . . . . . . . . . . . . . . . . 21 | |||
| 9. Informative References . . . . . . . . . . . . . . . . . . . . 20 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 21 | Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . . 23 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| 1. Introduction | 1. Introduction | |||
| The goal of Application-Layer Traffic Optimization (ALTO) is to | The goal of Application-Layer Traffic Optimization (ALTO) is to | |||
| provide guidance to applications, which have to select one or several | provide guidance to applications, which have to select one or several | |||
| hosts from a set of candidates, that are able to provide a desired | hosts from a set of candidates, that are able to provide a desired | |||
| resource. ALTO is realized by a client-server protocol. ALTO | resource. ALTO is realized by a client-server protocol. ALTO | |||
| clients send queries to ALTO servers, in order to solicit guidance. | clients send queries to ALTO servers, in order to solicit guidance. | |||
| The ALTO client can be embedded in the resource consumer, which will | The ALTO client can be embedded in the resource consumer, which will | |||
| eventually access the desired resource. As an alternative, the ALTO | eventually access the desired resource. As an alternative, the ALTO | |||
| client can be embedded in a resource directory, which assists | client can be embedded in a resource directory, which assists | |||
| resource consumers in finding appropriate resource providers. ALTO | resource consumers in finding appropriate resource providers. In | |||
| queries in the latter case will be referred to as third-party ALTO | some specific peer-to-peer application protocols these resource | |||
| queries. | directories are called "trackers". ALTO queries, which are issued by | |||
| a resource directory on behalf of a resource consumer, will be | ||||
| referred to as third-party ALTO queries. | ||||
| The challenge for third-party ALTO queries is that they have to be | The challenge for third-party ALTO queries is that they have to be | |||
| answered by the "right" ALTO server, i.e., the ALTO server which has | answered by the "right" ALTO server, i.e., the ALTO server which has | |||
| the knowledge to give guidance to the resource consumer on behalf of | the knowledge to give guidance to the resource consumer on behalf of | |||
| which the query is sent. | which the query is sent. | |||
| This document uses the terminology introduced in | This document uses the terminology introduced in [RFC5693] and it | |||
| [I-D.ietf-alto-problem-statement] and it investigates solution | investigates solution approaches that fulfill the requirements for | |||
| approaches that fulfill the requirements for ALTO server discovery | ALTO server discovery documented in [I-D.ietf-alto-reqs]. | |||
| documented in [I-D.ietf-alto-reqs]. | ||||
| Comments and discussions about this document should be directed to | Comments and discussions about this document should be directed to | |||
| the ALTO working group: alto@ietf.org. | the ALTO working group: alto@ietf.org. | |||
| 2. Problem statement | 2. Problem statement | |||
| 2.1. The need for third-party ALTO queries | 2.1. The need for third-party ALTO queries | |||
| The scope of this document is the interaction of peer-to-peer | The scope of this document is the interaction of peer-to-peer | |||
| applications, that use a centralized resource directory ("tracker"), | applications that use a centralized resource directory ("tracker"), | |||
| with the ALTO service. In this scenario, the resource consumer asks | with the ALTO service. In this scenario, the resource consumer | |||
| the resource directory for a list of potential resource providers, | ("peer") asks the resource directory for a list of candidate resource | |||
| which can provide the desired resource. Usually, only a subset of | providers, which can provide the desired resource. Usually, only a | |||
| all resource providers known to the resource directory will | subset of all resource providers known to the resource directory will | |||
| eventually be contacted by the resource consumer for accessing the | eventually be contacted by the resource consumer for accessing the | |||
| resource. The purpose of ALTO is giving guidance on this peer | resource. The purpose of ALTO is giving guidance on this peer | |||
| selection, which is supposed to yield better-than-random results. | selection, which is supposed to yield better-than-random results. | |||
| There are two possibilities where to apply the ALTO guidance, in the | Several ALTO client protocol proposals exist (e.g., | |||
| resource consumer or in the resource directory: | [I-D.ietf-alto-protocol], [I-D.kiesel-alto-h12]), which specify how | |||
| an ALTO client can query an ALTO server for guiding information and | ||||
| receive the corresponding replies. However, in the considered | ||||
| scenario of a tracker-based P2P application, there are two | ||||
| fundamentally different possibilities where to place the ALTO client: | ||||
| In the first scenario, the resource directory returns a list of | 1. ALTO client in the resource consumer ("peer") | |||
| potential resource providers without considering ALTO. It is then | ||||
| the duty of the resource consumer to invoke ALTO, in order to solicit | ||||
| guidance regarding this list. The problem with this approach is, | ||||
| that while the resource directory might know thousands of peers | ||||
| taking part in a swarm, the list returned to the resource consumer is | ||||
| usually shortened for efficiency reasons. Therefore, the "best" (in | ||||
| the sense of ALTO) potential resource providers might not be | ||||
| contained in that list anymore, even before ALTO can consider them. | ||||
| In the second scenario, the resource directory has an embedded ALTO | 2. ALTO client in the resource directory ("tracker") | |||
| client, which we will refer to as RDAC in this document. The | ||||
| In the following, both scenarios are compared in order to explain the | ||||
| need for third-party ALTO queries. | ||||
| In the first scenario (see Figure 1), the resource consumer queries | ||||
| the resource directory for the desired resource (F1). The resource | ||||
| directory returns a list of potential resource providers without | ||||
| considering ALTO (F2). It is then the duty of the resource consumer | ||||
| to invoke ALTO (F3/F4), in order to solicit guidance regarding this | ||||
| list. | ||||
| In the second scenario (see Figure 2), the resource directory has an | ||||
| embedded ALTO client, which we will refer to as RDAC in this | ||||
| document. After receiving a query for a given resource (F1) the | ||||
| resource directory invokes the RDAC to evaluate all resource | resource directory invokes the RDAC to evaluate all resource | |||
| providers it knows. Then it returns a, possibly shortened, list | providers it knows (F2/F3). Then it returns a, possibly shortened, | |||
| containing the "best" resource providers to the resource consumer. | list containing the "best" resource providers to the resource | |||
| From an overall optimization perspective, this scenario is | consumer (F4). | |||
| Peer w. ALTO cli. Tracker ALTO Server | ||||
| --------+-------- --------+-------- --------+-------- | ||||
| | F1 Tracker query | | | ||||
| |======================>| | | ||||
| | F2 Tracker reply | | | ||||
| |<======================| | | ||||
| | F3 ALTO client protocol query | | ||||
| |---------------------------------------------->| | ||||
| | F4 ALTO client protocol reply | | ||||
| |<----------------------------------------------| | ||||
| | | | | ||||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ||||
| ---- ALTO client protocol | ||||
| Figure 1: Basic message sequence chart for resource consumer- | ||||
| initiated ALTO query | ||||
| Peer Tracker w. RDAC ALTO Server | ||||
| --------+-------- --------+-------- --------+-------- | ||||
| | F1 Tracker query | | | ||||
| |======================>| | | ||||
| | | F2 ALTO cli. p. query | | ||||
| | |---------------------->| | ||||
| | | F3 ALTO cli. p. reply | | ||||
| | |<----------------------| | ||||
| | F4 Tracker reply | | | ||||
| |<======================| | | ||||
| | | | | ||||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ||||
| ---- ALTO client protocol | ||||
| Figure 2: Basic message sequence chart for third-party ALTO query | ||||
| Note: the message sequences depicted in Figure 1 and Figure 2 may | ||||
| occur both in the target-aware and the target-independent query mode | ||||
| (c.f. [I-D.ietf-alto-reqs]). In the target-independent query mode | ||||
| no message exchange with the ALTO server might be needed after the | ||||
| tracker query, because the candidate resource providers could be | ||||
| evaluated using a locally cached "map", which has been retrieved from | ||||
| the ALTO server some time ago. | ||||
| The problem with the first approach is, that while the resource | ||||
| directory might know thousands of peers taking part in a swarm, the | ||||
| list returned to the resource consumer is usually shortened for | ||||
| efficiency reasons. Therefore, the "best" (in the sense of ALTO) | ||||
| potential resource providers might not be contained in that list | ||||
| anymore, even before ALTO can consider them. | ||||
| For example, consider a swarm with 10,000 peers known to the tracker. | ||||
| A new peer wants to join the swarm and therefore asks the tracker for | ||||
| a list of peers. For simplicity, we assume that 100 peers would be | ||||
| desirable neighbors for the new peer (in the sense of better-than- | ||||
| random peer selection) while the other 9,900 are less favorable. | ||||
| Assume that the tracker randomly selects 100 peers out of the 10,000 | ||||
| known peers and returns them to the new peer. With a probability of | ||||
| approx. 36% this list does not contain a single favorable peer, and | ||||
| with 99% probability there are only four or less of the favorable | ||||
| peers on the list. Processing this list with the guiding ALTO | ||||
| information will ensure that the few favorable peers are ranked to | ||||
| the top of the list; however, the benefit is rather limited as the | ||||
| number of favorable peers in the list is just too small. Much better | ||||
| traffic optimization could be achieved if the tracker would evaluate | ||||
| all 10,000 peers using ALTO, and return a list of 100 peers | ||||
| afterwards. This list would then include a significantly higher | ||||
| fraction of favorable peers. (Note, that if the tracker returned | ||||
| favorable peers only, there would be a risk that the swarm might | ||||
| disconnect and split into several partitions. However, finding the | ||||
| right mix of ALTO-biased and random peer selection is out of the | ||||
| scope of this document.) | ||||
| Therefore, from an overall optimization perspective, the second | ||||
| scenario with the ALTO client embedded in the resource directory is | ||||
| advantageous, because it is ensured that the addresses of the "best" | advantageous, because it is ensured that the addresses of the "best" | |||
| resource providers are actually delivered to the resource consumer. | resource providers are actually delivered to the resource consumer. | |||
| 2.2. The need for third-party ALTO server discovery | 2.2. The need for third-party ALTO server discovery | |||
| The previous section has shown why it is advantageous that entities | The previous section has shown why it is advantageous that entities | |||
| such as resource directories can perform ALTO queries on behalf of | such as resource directories can perform ALTO queries on behalf of | |||
| resource consumers. We will refer to this kind of ALTO query as | resource consumers. We will refer to this kind of ALTO query as | |||
| "third-party ALTO query". | "third-party ALTO query". ALTO queries are sent to ALTO servers, | |||
| which have knowledge of network topology and other information on | ||||
| which the ALTO guidance is based. | ||||
| ALTO queries are sent to ALTO servers, which have knowledge of | The challenge for third-party ALTO queries is that they have to be | |||
| network topology and other information on which the ALTO guidance is | answered by the "right" ALTO server, i.e., the ALTO server which has | |||
| based. One deployment scenario for ALTO is to establish a group of | the knowledge to give guidance to the resource consumer on behalf of | |||
| which the query is sent. | ||||
| One potential deployment scenario for ALTO is to establish a group of | ||||
| centralized ALTO servers which have complete knowledge and therefore | centralized ALTO servers which have complete knowledge and therefore | |||
| can evaluate any pair of resource consumers and providers, | can evaluate any pair of resource consumers and providers, | |||
| respectively. | respectively. Directing a third-party ALTO query to one of these | |||
| servers would be a rather simple task. | ||||
| However, it is likely that there will be deployment scenarios with | However, it is likely that there will be deployment scenarios with | |||
| many ALTO servers, each having only partial knowledge and therefore | many ALTO servers, each having only partial knowledge and therefore | |||
| being able to give guidance regarding only a defined group of | being able to give guidance regarding only a defined group of | |||
| resource consumers (e.g., those in its topological vicinity, or those | resource consumers (e.g., those in its topological vicinity, or those | |||
| connected to the same network operator). The reasons for | connected to the same network operator). The reasons for | |||
| partitioning the overall knowledge include scalability and separate | partitioning the overall knowledge include scalability and separate | |||
| administrative responsibilities. For the remainder of this document, | administrative responsibilities. For the remainder of this document, | |||
| we assume that the second scenario has to be supported. The first | we assume that the second scenario has to be supported. The first | |||
| scenario can be seen as special case of it, i.e., a solution that | scenario can be seen as special case of it, i.e., a solution that | |||
| supports the second scenario will support the first scenario as well. | supports the second scenario will support the first scenario as well. | |||
| We will identify and assess several approaches for finding the | ||||
| The challenge for third-party ALTO queries is that they have to be | "right" ALTO server, which has the knowledge to give guidance to the | |||
| answered by the "right" ALTO server, i.e, the ALTO server which has | resource consumer on behalf of which a third-party ALTO query is to | |||
| the knowledge to give guidance to the resource consumer on behalf of | be sent. | |||
| which the query is sent. | ||||
| 3. Peer-to-peer application scenario | 3. Peer-to-peer application scenario | |||
| For illustration purposes the following chapters provide several | For illustration purposes the following chapters provide several | |||
| examples, which all refer to the scenario presented in Figure 1. | examples, which all refer to the scenario presented in Figure 3. | |||
| However, the evaluations and conclusions presented in this document | However, the evaluations and conclusions presented in this document | |||
| do not only consider this scenario, but they are much more general. | do not only consider this scenario, but they are much more general. | |||
| +------+ +---------+ | +------+ +---------+ | |||
| | ALTO |---+---| Tracker | | | ALTO |---+---| Tracker | | |||
| | Srv3 | | +---------+ | | Srv3 | | +---------+ | |||
| +------+ | | +------+ | | |||
| |RTR| ISP 3 | |RTR| ISP 3 | |||
| | | | | |||
| **** | *********** | **** | *********** | |||
| skipping to change at page 6, line 37 ¶ | skipping to change at page 8, line 37 ¶ | |||
| +-------+ | | Srv1 | |NAT| +------+ | +-------+ | | Srv1 | |NAT| +------+ | |||
| | +------+ | | | +------+ | | |||
| +-------+ | +-------+ | +---------+ | +-------+ | +-------+ | +---------+ | |||
| |Peer 1b|----+ |Peer 2a|----+------|ConfigSrv| | |Peer 1b|----+ |Peer 2a|----+------|ConfigSrv| | |||
| +-------+ | +-------+ | +---------+ | +-------+ | +-------+ | +---------+ | |||
| |RTR| | | |RTR| | | |||
| +-------+ | +-------+ | +-------+ | +-------+ | +-------+ | +-------+ | |||
| |Peer 1c|----+ |Peer 2b|----+-|RTR|--|Peer 2c| | |Peer 1c|----+ |Peer 2b|----+-|RTR|--|Peer 2c| | |||
| +-------+ +-------+ +-------+ | +-------+ +-------+ +-------+ | |||
| Figure 1: ALTO scenario | Figure 3: ALTO scenario | |||
| Figure 1 shows three networks with connected end hosts, which are | Figure 3 shows three networks with connected end hosts, which are | |||
| operated by different Internet Service Provides, identified as ISP1, | operated by different Internet Service Provides, identified as ISP1, | |||
| ISP2, and ISP3, respectively. These networks are interconnected by | ISP2, and ISP3, respectively. These networks are interconnected by | |||
| Internet backbone networks. | Internet backbone networks. | |||
| ISP1's network connects to (amongst others) three hosts that run the | ISP1's network connects to (amongst others) three hosts that run the | |||
| peers of a P2P application, identified as peers 1a, 1b, and 1c, | peers of a P2P application, identified as peers 1a, 1b, and 1c, | |||
| respectively. Peers 1a and 1b are in topological vicinity, while 1c | respectively. Peers 1a and 1b are in topological vicinity, while 1c | |||
| is more distant from them, because of the additional router (RTR) in | is more distant from them, because of the additional router (RTR) in | |||
| between. ISP1 operates an ALTO server, identified as ALTO Srv1, | between. ISP1 operates an ALTO server, identified as ALTO Srv1, | |||
| which can give guidance to resource consumers in ISP1's network, | which can give guidance to resource consumers in ISP1's network, | |||
| skipping to change at page 8, line 9 ¶ | skipping to change at page 10, line 9 ¶ | |||
| server 1, because this ALTO server can give guidance to peer 1a. | server 1, because this ALTO server can give guidance to peer 1a. | |||
| Analogical to that, if peer 2a sends a query to the tracker, the | Analogical to that, if peer 2a sends a query to the tracker, the | |||
| tracker needs to ask ALTO server 2 for guidance. The procedures for | tracker needs to ask ALTO server 2 for guidance. The procedures for | |||
| identifying this ALTO server and conveying the guiding information to | identifying this ALTO server and conveying the guiding information to | |||
| the tracker are the scope of this document. | the tracker are the scope of this document. | |||
| 4. Classification of solution approaches | 4. Classification of solution approaches | |||
| There are several approaches for directing a third-party ALTO query | There are several approaches for directing a third-party ALTO query | |||
| from the RDAC to the "right" ALTO server. The selection of the | from the RDAC to the "right" ALTO server. The selection of the | |||
| "right" ALTO server needs to consider the resource consumer, on | "right" ALTO server needs to consider the resource consumer on behalf | |||
| behalf of which the query will be performed. The set of available | of which the query will be performed. The set of available options | |||
| options therefore depends on the available information about the | therefore depends on the available information about the resource | |||
| resource consumer, | consumer, | |||
| The primary criterion in the following classification is whether ALTO | The primary criterion in the following classification is whether ALTO | |||
| must work together with all existing (P2P) application protocols, or | must work together with all existing (P2P) application protocols, or | |||
| whether we can assume that these protocols can be augmented with new | whether we can assume that these protocols can be augmented with new | |||
| ALTO-specific information fields. | ALTO-specific information fields. | |||
| 4.1. Solutions that do not require an update of the application | 4.1. Solutions that do not require an update of the application | |||
| protocol | protocol | |||
| If we do not want to make specific assumptions on the (P2P) | If we do not want to make specific assumptions on the (P2P) | |||
| skipping to change at page 8, line 37 ¶ | skipping to change at page 10, line 37 ¶ | |||
| directory. This address may be the (public) IP address of the | directory. This address may be the (public) IP address of the | |||
| resource consumer, or it may be the external address of the last NAT | resource consumer, or it may be the external address of the last NAT | |||
| on the path between resource consumer and resource directory. | on the path between resource consumer and resource directory. | |||
| The RDAC that wants to perform the third-party ALTO query has two | The RDAC that wants to perform the third-party ALTO query has two | |||
| options: | options: | |||
| o Approach #1: The RDAC invokes a discovery mechanism external to | o Approach #1: The RDAC invokes a discovery mechanism external to | |||
| the ALTO client protocol, in order to map from the resource | the ALTO client protocol, in order to map from the resource | |||
| consumer's IP address to the "right" ALTO server. The ALTO query | consumer's IP address to the "right" ALTO server. The ALTO query | |||
| will then be sent there directly (see Figure 2). | will then be sent there directly (see Figure 4). | |||
| o Approach #2: Independent of the resource consumer's identity, the | o Approach #2: Independent of the resource consumer's identity, the | |||
| RDAC uses the ALTO client protocol to send the ALTO query to one | RDAC uses the ALTO client protocol to send the ALTO query to one | |||
| preconfigured ALTO server. The resource consumer's IP address is | preconfigured ALTO server. The resource consumer's IP address is | |||
| included in the query message. Based on this IP address and using | included in the query message. Based on this IP address and using | |||
| mechanisms of the ALTO client protocol the first ALTO server | mechanisms of the ALTO client protocol the first ALTO server | |||
| forwards (see Figure 3) or redirects (see Figure 4) the query to | forwards (see Figure 5) or redirects (see Figure 6) the query to | |||
| the "right" ALTO server. This implies that ALTO servers must know | the "right" ALTO server. This implies that ALTO servers must know | |||
| each other, based on some discovery mechanism or manual | each other, based on some discovery mechanism or manual | |||
| configuration. | configuration. | |||
| Peer 1a Tracker ALTO Srv1 DNS | Peer 1a Tracker ALTO Srv1 DNS | |||
| ----+---- ----+---- ----+---- ----+---- | ----+---- ----+---- ----+---- ----+---- | |||
| | | | | | | | | | | |||
| | F1 Tracker Q | | | | | F1 Tracker Q | | | | |||
| |==============>| F2 ALTO disc. Q (peer1a) | | |==============>| F2 ALTO disc. Q (peer1a) | | |||
| | |******************************>| | | |******************************>| | |||
| skipping to change at page 9, line 24 ¶ | skipping to change at page 11, line 24 ¶ | |||
| | |-------------->| | | | |-------------->| | | |||
| | | F5 ALTO cp R | | | | | F5 ALTO cp R | | | |||
| | F6 Tracker R |<--------------| | | | F6 Tracker R |<--------------| | | |||
| |<==============| | | | |<==============| | | | |||
| | | | | | | | | | | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| **** ALTO discovery protocol (e.g., based on DNS queries) | **** ALTO discovery protocol (e.g., based on DNS queries) | |||
| Figure 2: Message sequence chart for Approach 1 | Figure 4: Message sequence chart for Approach 1 | |||
| Peer 1a Tracker ALTO Srv1 ALTO Srv2 ALTO Srv3 | Peer 1a Tracker ALTO Srv1 ALTO Srv2 ALTO Srv3 | |||
| ----+---- ----+---- ----+---- ----+---- ----+---- | ----+---- ----+---- ----+---- ----+---- ----+---- | |||
| | | | F1/2 HELLO | | | | | | F1/2 HELLO | | | |||
| | | |<###########>| F3/4 HELLO | | | | |<###########>| F3/4 HELLO | | |||
| | | | F5/6 HELLO |<###########>| | | | | F5/6 HELLO |<###########>| | |||
| | | |<#########################>| | | | |<#########################>| | |||
| | F7 Tracker Q | | | | | | F7 Tracker Q | | | | | |||
| |==============>| | | | | |==============>| | | | | |||
| | | F8 ALTO cp Q | | | | | | F8 ALTO cp Q | | | | |||
| skipping to change at page 9, line 49 ¶ | skipping to change at page 11, line 49 ¶ | |||
| | | |-------------------------->| | | | |-------------------------->| | |||
| | | F11 ALTO cp R | | | | | | F11 ALTO cp R | | | | |||
| | F12 Tracker R |<------------------------------------------| | | F12 Tracker R |<------------------------------------------| | |||
| |<==============| | | | | |<==============| | | | | |||
| | | | | | | | | | | | | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| #### Inter-ALTO server protocol | #### Inter-ALTO server protocol | |||
| Figure 3: Message sequence chart for Approach 2 (query forwarding) | Figure 5: Message sequence chart for Approach 2 (query forwarding) | |||
| Peer 1a Tracker ALTO Srv1 ALTO Srv2 ALTO Srv3 | Peer 1a Tracker ALTO Srv1 ALTO Srv2 ALTO Srv3 | |||
| ----+---- ----+---- ----+---- ----+---- ----+---- | ----+---- ----+---- ----+---- ----+---- ----+---- | |||
| | | | F1/2 HELLO | | | | | | F1/2 HELLO | | | |||
| | | |<###########>| F3/4 HELLO | | | | |<###########>| F3/4 HELLO | | |||
| | | | F5/6 HELLO |<###########>| | | | | F5/6 HELLO |<###########>| | |||
| | | |<#########################>| | | | |<#########################>| | |||
| | F7 Tracker Q | | | | | | F7 Tracker Q | | | | | |||
| |==============>| | | | | |==============>| | | | | |||
| | | F8 ALTO cp Q | | | | | | F8 ALTO cp Q | | | | |||
| | |------------------------------------------>| | | |------------------------------------------>| | |||
| skipping to change at page 10, line 27 ¶ | skipping to change at page 12, line 27 ¶ | |||
| | |-------------->| | | | | |-------------->| | | | |||
| | | F11 ALTO cp R | | | | | | F11 ALTO cp R | | | | |||
| | F12 Tracker R |<--------------| | | | | F12 Tracker R |<--------------| | | | |||
| |<==============| | | | | |<==============| | | | | |||
| | | | | | | | | | | | | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| #### Inter-ALTO server protocol | #### Inter-ALTO server protocol | |||
| Figure 4: Message sequence chart for Approach 2 (query redirection) | Figure 6: Message sequence chart for Approach 2 (query redirection) | |||
| 4.2. Solutions that do require an update of the application protocol | 4.2. Solutions that do require an update of the application protocol | |||
| If we assume that applications can be upgraded in order to support | If we assume that applications can be upgraded in order to support | |||
| ALTO, the resource consumer can provide additional information to the | ALTO, the resource consumer can provide additional information to the | |||
| RDAC in order to assist the process of ALTO server discovery. | RDAC in order to assist the process of ALTO server discovery. | |||
| o Approach #3: Using the extended application protocol, the resource | o Approach #3: Using the extended application protocol, the resource | |||
| consumer sends an additional peer-ID, which can be understood by | consumer sends an additional peer-ID, which can be understood by | |||
| ALTO, to the resource directory. This peer-ID could be used to | ALTO, to the resource directory. This peer-ID could be used to | |||
| uniquely identify resource consumers and providers located behind | uniquely identify resource consumers and providers located behind | |||
| NATs. The RDAC uses this peer-ID in addition to or instead of the | NATs. The RDAC uses this peer-ID in addition to or instead of the | |||
| resource consumer's IP address (see Figure 5). In all other | resource consumer's IP address (see Figure 7). In all other | |||
| aspects this approach is identical to approach #1. | aspects this approach is identical to approach #1. | |||
| o Approach #4: This approach is identical to approach #2, except | o Approach #4: This approach is identical to approach #2, except | |||
| that the peer-ID is used instead of the IP address, as described | that the peer-ID is used instead of the IP address, as described | |||
| in approach #3. | in approach #3. | |||
| o Approach #5: The resource consumer discovers its ALTO server on | o Approach #5: The resource consumer discovers its ALTO server on | |||
| its own (i.e., not a third-party discovery). Using the extended | its own (i.e., not a third-party discovery). Using the extended | |||
| application protocol it sends the ALTO server's address to the | application protocol it sends the ALTO server's address to the | |||
| RDAC. The RDAC can use it for sending third-party ALTO queries | RDAC. The RDAC can use it for sending third-party ALTO queries | |||
| skipping to change at page 11, line 38 ¶ | skipping to change at page 13, line 38 ¶ | |||
| | | | F7 ALTO cp R | | | | | | F7 ALTO cp R | | | |||
| | F8 Tracker R | |<--------------| | | | F8 Tracker R | |<--------------| | | |||
| |<===========================| | | | |<===========================| | | | |||
| | | | | | | | | | | | | |||
| ;;;; Configuration protocol (e.g., DHCP) | ;;;; Configuration protocol (e.g., DHCP) | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| **** ALTO discovery protocol (e.g., based on DNS queries) | **** ALTO discovery protocol (e.g., based on DNS queries) | |||
| Figure 5: Message sequence chart for Approach 3 | Figure 7: Message sequence chart for Approach 3 | |||
| Peer 2a ConfigSrv Tracker ALTO Srv2 | Peer 2a ConfigSrv Tracker ALTO Srv2 | |||
| ----+---- ----+---- ----+---- ----+---- | ----+---- ----+---- ----+---- ----+---- | |||
| | F1 Config Q | | | | | F1 Config Q | | | | |||
| |;;;;;;;;;;;;;;>| | | | |;;;;;;;;;;;;;;>| | | | |||
| | | | | | | | | | | |||
| | F2 Config R | | | | | F2 Config R | | | | |||
| | + Addr. of ALTO Srv2 | | | | + Addr. of ALTO Srv2 | | | |||
| |<;;;;;;;;;;;;;;| | | | |<;;;;;;;;;;;;;;| | | | |||
| | | | | | | | | | | |||
| skipping to change at page 12, line 27 ¶ | skipping to change at page 14, line 27 ¶ | |||
| | | |-------------->| | | | |-------------->| | |||
| | | | F5 ALTO cp R | | | | | F5 ALTO cp R | | |||
| | F6 Tracker R | |<--------------| | | F6 Tracker R | |<--------------| | |||
| |<==============================| | | |<==============================| | | |||
| | | | | | | | | | | |||
| ;;;; Configuration protocol (e.g., DHCP) | ;;;; Configuration protocol (e.g., DHCP) | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| Figure 6: Message sequence chart for Approach 5 | Figure 8: Message sequence chart for Approach 5 | |||
| Peer 2a ConfigSrv Tracker ALTO Srv2 | Peer 2a ConfigSrv Tracker ALTO Srv2 | |||
| ----+---- ----+---- ----+---- ----+---- | ----+---- ----+---- ----+---- ----+---- | |||
| | F1 Config Q | | | | | F1 Config Q | | | | |||
| |;;;;;;;;;;;;;;>| | | | |;;;;;;;;;;;;;;>| | | | |||
| | | | | | | | | | | |||
| | F2 Config R | | | | | F2 Config R | | | | |||
| | + Addr. of ALTO Srv2 | | | | + Addr. of ALTO Srv2 | | | |||
| |<;;;;;;;;;;;;;;| | | | |<;;;;;;;;;;;;;;| | | | |||
| | | | | | | | | | | |||
| skipping to change at page 13, line 31 ¶ | skipping to change at page 15, line 31 ¶ | |||
| | F5 Tracker Q (Info from ALTO reply + meas'mt.)| | | F5 Tracker Q (Info from ALTO reply + meas'mt.)| | |||
| |==============================>| | | |==============================>| | | |||
| | F6 Tracker R | | | | | F6 Tracker R | | | | |||
| |<==============================| | | |<==============================| | | |||
| | | | | | | | | | | |||
| ;;;; Configuration protocol (e.g., DHCP) | ;;;; Configuration protocol (e.g., DHCP) | |||
| ==== Application protocol (i.e., tracker-based P2P app protocol) | ==== Application protocol (i.e., tracker-based P2P app protocol) | |||
| ---- ALTO client protocol | ---- ALTO client protocol | |||
| Figure 7: Message sequence chart for Approach 6 | Figure 9: Message sequence chart for Approach 6 | |||
| 5. Discussion | 5. Discussion | |||
| This section assesses and compares the different approaches | This section assesses and compares the different approaches | |||
| introduced above, regarding trust, scalability, integration into | introduced above, regarding trust, scalability, integration into | |||
| existing ISP infrastructure and management processes, modification of | existing ISP infrastructure and management processes, modification of | |||
| existing applications, and ongoing ALTO architecture specification | existing applications, and ongoing ALTO architecture specification | |||
| works. | works. | |||
| 5.1. Approach #1 | 5.1. Approach #1 | |||
| The existence of a mechanism according to approach #1 is assumed by | The existence of a mechanism according to approach #1 is assumed by | |||
| [I-D.penno-alto-protocol]. | [I-D.ietf-alto-protocol]. | |||
| This approach does not require any changes of existing (P2P) | This approach does not require any changes of existing (P2P) | |||
| application protocols. However, the RDAC needs to implement an | application protocols. However, the RDAC needs to implement an | |||
| additional protocol for performing third-party ALTO server discovery. | additional protocol for performing third-party ALTO server discovery. | |||
| One possible way of implementing this approach would be based on DNS, | One possible way of implementing this approach would be based on DNS, | |||
| providing a mapping from the resource consumer's IP address to the IP | providing a mapping from the resource consumer's IP address to the IP | |||
| address of the corresponding "right" ALTO server. DNS is proven to | address of the corresponding "right" ALTO server. DNS is proven to | |||
| be scalable and has well-understood mechanisms for delegating | be scalable and has well-understood mechanisms for delegating | |||
| authority. Network operators are used to DNS management. | authority. Network operators are used to DNS management. | |||
| skipping to change at page 17, line 18 ¶ | skipping to change at page 19, line 18 ¶ | |||
| mechanism is required for an important class of applications, namely | mechanism is required for an important class of applications, namely | |||
| tracker-based P2P applications. Several solution approaches are | tracker-based P2P applications. Several solution approaches are | |||
| classified and evaluated. Assuming that ALTO should work together | classified and evaluated. Assuming that ALTO should work together | |||
| with already deployed application protocols, "Approach #1" seems to | with already deployed application protocols, "Approach #1" seems to | |||
| be most promising. In this approach, the resource directory invokes | be most promising. In this approach, the resource directory invokes | |||
| a discovery mechanism external to the ALTO client protocol, in order | a discovery mechanism external to the ALTO client protocol, in order | |||
| to map from the resource consumer's IP address to the "right" ALTO | to map from the resource consumer's IP address to the "right" ALTO | |||
| server. | server. | |||
| The existence of such a mechanism according to "Approach #1" is | The existence of such a mechanism according to "Approach #1" is | |||
| assumed by [I-D.penno-alto-protocol]. | assumed by [I-D.ietf-alto-protocol]. | |||
| Further action is required to standardize a protocol and procedures | Further action is required to standardize a protocol and procedures | |||
| according to "Approach #1". | according to "Approach #1". | |||
| 7. IANA Considerations | 7. IANA Considerations | |||
| This document does not mandate any immediate IANA actions. However, | This document does not mandate any immediate IANA actions. However, | |||
| such IANA considerations may arise from future ALTO discovery | such IANA considerations may arise from future ALTO discovery | |||
| specification documents which try to meet the requirements given | specification documents which try to meet the requirements given | |||
| here. | here. | |||
| 8. Security Considerations | 8. Security Considerations | |||
| This early version of this memo does not yet have any security | This early version of this memo does not yet have any security | |||
| considerations, but they will be added in future revision. | considerations, but they will be added in future revision. | |||
| 9. Informative References | 9. References | |||
| [I-D.ietf-alto-problem-statement] | [I-D.ietf-alto-protocol] | |||
| Seedorf, J. and E. Burger, "Application-Layer Traffic | Alimi, R., Penno, R., and Y. Yang, "ALTO Protocol", | |||
| Optimization (ALTO) Problem Statement", | draft-ietf-alto-protocol-02 (work in progress), | |||
| draft-ietf-alto-problem-statement-02 (work in progress), | March 2010. | |||
| July 2009. | ||||
| [I-D.ietf-alto-reqs] | [I-D.ietf-alto-reqs] | |||
| Kiesel, S., Popkin, L., Previdi, S., Woundy, R., and Y. | Kiesel, S., Popkin, L., Previdi, S., Woundy, R., and Y. | |||
| Yang, "Application-Layer Traffic Optimization (ALTO) | Yang, "Application-Layer Traffic Optimization (ALTO) | |||
| Requirements", draft-ietf-alto-reqs-01 (work in progress), | Requirements", draft-ietf-alto-reqs-03 (work in progress), | |||
| July 2009. | February 2010. | |||
| [I-D.penno-alto-protocol] | [I-D.kiesel-alto-h12] | |||
| Penno, R. and Y. Yang, "ALTO Protocol", | Kiesel, S. and M. Stiemerling, "ALTO H12", | |||
| draft-penno-alto-protocol-03 (work in progress), | draft-kiesel-alto-h12-01 (work in progress), March 2010. | |||
| July 2009. | ||||
| [I-D.song-alto-server-discovery] | [I-D.song-alto-server-discovery] | |||
| Song, H., Tomsu, M., Garcia, G., Wang, Y., and V. Pascual, | Song, H., Tomsu, M., Garcia, G., Wang, Y., and V. Pascual, | |||
| "ALTO Service Discovery", | "ALTO Service Discovery", | |||
| draft-song-alto-server-discovery-01 (work in progress), | draft-song-alto-server-discovery-01 (work in progress), | |||
| July 2009. | July 2009. | |||
| [RFC5693] Seedorf, J. and E. Burger, "Application-Layer Traffic | ||||
| Optimization (ALTO) Problem Statement", RFC 5693, | ||||
| October 2009. | ||||
| Appendix A. Acknowledgments | Appendix A. Acknowledgments | |||
| The authors would like to thank Haibin Song, Richard Alimi, and Roni | The authors would like to thank Haibin Song, Richard Alimi, and Roni | |||
| Even for fruitful discussions during the 75th IETF meeting. | Even for fruitful discussions during the 75th IETF meeting. | |||
| Sebastian Kiesel is partially supported by the NAPA-WINE project | Marco Tomsu and Nico Schwan are partially supported by the ENVISION | |||
| (Network-Aware P2P-TV Application over Wise Networks, | project (http://www.envision-project.org), a research project | |||
| http://www.napa-wine.org), a research project supported by the | supported by the European Commission under its 7th Framework Program | |||
| European Commission under its 7th Framework Program (contract no. | (contract no. 248565). The views and conclusions contained herein | |||
| 214412). The views and conclusions contained herein are those of the | are those of the authors and should not be interpreted as necessarily | |||
| authors and should not be interpreted as necessarily representing the | representing the official policies or endorsements, either expressed | |||
| official policies or endorsements, either expressed or implied, of | or implied, of the ENVISION project or the European Commission. | |||
| the NAPA-WINE project or the European Commission. | ||||
| Marco Tomsu is partially supported by the 4WARD project | Michael Scharf is supported by the German-Lab project | |||
| (http://www.4ward-project.eu), a research project supported by the | (http://www.german-lab.de) funded by the German Federal Ministry of | |||
| European Commission under its 7th Framework Program (contract no. | Education and Research (BMBF). | |||
| 216041). 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 4WARD project or the European Commission. | ||||
| Authors' Addresses | Authors' Addresses | |||
| Sebastian Kiesel | Sebastian Kiesel | |||
| NEC Laboratories Europe | University of Stuttgart Computing Center | |||
| Kurfuerstenanlage 36 | Allmandring 30 | |||
| Heidelberg 69115 | Stuttgart 70550 | |||
| Germany | Germany | |||
| Email: kiesel@nw.neclab.eu | Email: ietf-alto@skiesel.de | |||
| URI: http://www.nw.neclab.eu/ | URI: http://www.rus.uni-stuttgart.de/nks/ | |||
| Marco Tomsu | Marco Tomsu | |||
| Alcatel-Lucent Bell Labs | Alcatel-Lucent Bell Labs | |||
| Lorenzstrasse 10 | Lorenzstrasse 10 | |||
| Stuttgart 70435 | Stuttgart 70435 | |||
| Germany | Germany | |||
| Email: marco.tomsu@alcatel-lucent.com | Email: marco.tomsu@alcatel-lucent.com | |||
| URI: www.alcatel-lucent.com/bell-labs | URI: www.alcatel-lucent.com/bell-labs | |||
| Nico Schwan | ||||
| Alcatel-Lucent Bell Labs | ||||
| Lorenzstrasse 10 | ||||
| Stuttgart 70435 | ||||
| Germany | ||||
| Email: nico.schwan@alcatel-lucent.com | ||||
| URI: www.alcatel-lucent.com/bell-labs | ||||
| Michael Scharf | ||||
| Alcatel-Lucent Bell Labs | ||||
| Lorenzstrasse 10 | ||||
| Stuttgart 70435 | ||||
| Germany | ||||
| Email: michael.scharf@alcatel-lucent.com | ||||
| URI: www.alcatel-lucent.com/bell-labs | ||||
| End of changes. 45 change blocks. | ||||
| 130 lines changed or deleted | 223 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/ | ||||