| draft-ietf-p2psip-drr-11.alt-original | draft-ietf-p2psip-drr-12.original.txt | |||
|---|---|---|---|---|
| P2PSIP N. Zong, Ed. | P2PSIP N. Zong | |||
| Internet-Draft X. Jiang | Internet-Draft X. Jiang | |||
| Intended status: Standards Track R. Even | Intended status: Standards Track R. Even | |||
| Expires: April 24, 2014 Huawei Technologies | Expires: August 29, 2014 Huawei Technologies | |||
| Y. Zhang | Y. Zhang | |||
| CoolPad | CoolPad | |||
| October 21, 2013 | February 25, 2014 | |||
| An Extension to REsource LOcation And Discovery (RELOAD) Protocol to | An Extension to REsource LOcation And Discovery (RELOAD) Protocol to | |||
| Support Direct Response Routing | Support Direct Response Routing | |||
| draft-ietf-p2psip-drr-11 | draft-ietf-p2psip-drr-12 | |||
| Abstract | Abstract | |||
| This document proposes an optional extension to REsource LOcation And | This document proposes an optional extension to REsource LOcation And | |||
| Discovery (RELOAD) protocol to support direct response routing mode. | Discovery (RELOAD) protocol to support direct response routing mode. | |||
| RELOAD recommends symmetric recursive routing for routing messages. | RELOAD recommends symmetric recursive routing for routing messages. | |||
| The new optional extension provides a shorter route for responses | The new optional extension provides a shorter route for responses | |||
| reducing the overhead on intermediate peers and describes the | reducing the overhead on intermediate peers and describes the | |||
| potential cases where this extension can be used. | potential cases where this extension can be used. | |||
| skipping to change at page 1, line 39 | skipping to change at page 1, line 39 | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at http://datatracker.ietf.org/drafts/current/. | Drafts is at http://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 24, 2014. | This Internet-Draft will expire on August 29, 2014. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2013 IETF Trust and the persons identified as the | Copyright (c) 2014 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 | |||
| carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
| to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
| include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
| the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
| skipping to change at page 2, line 21 | skipping to change at page 2, line 21 | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1. SRR and DRR . . . . . . . . . . . . . . . . . . . . . . . 4 | 3.1. SRR and DRR . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 3.1.1. Symmetric Recursive Routing (SRR) . . . . . . . . . . 4 | 3.1.1. Symmetric Recursive Routing (SRR) . . . . . . . . . . 4 | |||
| 3.1.2. Direct Response Routing (DRR) . . . . . . . . . . . . 5 | 3.1.2. Direct Response Routing (DRR) . . . . . . . . . . . . 5 | |||
| 3.2. Scenarios where DRR can be used . . . . . . . . . . . . . 6 | 3.2. Scenarios where DRR can be used . . . . . . . . . . . . . 6 | |||
| 3.2.1. Managed or closed P2P systems . . . . . . . . . . . . 6 | 3.2.1. Managed or closed P2P systems . . . . . . . . . . . . 6 | |||
| 3.2.2. Wireless scenarios . . . . . . . . . . . . . . . . . 6 | 3.2.2. Wireless scenarios . . . . . . . . . . . . . . . . . 6 | |||
| 4. Relationship between SRR and DRR . . . . . . . . . . . . . . 6 | 4. Relationship between SRR and DRR . . . . . . . . . . . . . . 7 | |||
| 4.1. How DRR works . . . . . . . . . . . . . . . . . . . . . . 7 | 4.1. How DRR works . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.2. How SRR and DRR work together . . . . . . . . . . . . . . 7 | 4.2. How SRR and DRR work together . . . . . . . . . . . . . . 7 | |||
| 5. DRR extensions to RELOAD . . . . . . . . . . . . . . . . . . 9 | 5. DRR extensions to RELOAD . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. Basic requirements . . . . . . . . . . . . . . . . . . . 9 | 5.1. Basic requirements . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Modification to RELOAD message structure . . . . . . . . 10 | 5.2. Modification to RELOAD message structure . . . . . . . . 8 | |||
| 5.2.1. State-keeping flag . . . . . . . . . . . . . . . . . 10 | 5.2.1. State-keeping flag . . . . . . . . . . . . . . . . . 8 | |||
| 5.2.2. Extensive routing mode . . . . . . . . . . . . . . . 10 | 5.2.2. Extensive routing mode . . . . . . . . . . . . . . . 8 | |||
| 5.3. Creating a request . . . . . . . . . . . . . . . . . . . 11 | 5.3. Creating a request . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3.1. Creating a request for DRR . . . . . . . . . . . . . 11 | 5.3.1. Creating a request for DRR . . . . . . . . . . . . . 9 | |||
| 5.4. Request and response processing . . . . . . . . . . . . . 12 | 5.4. Request and response processing . . . . . . . . . . . . . 10 | |||
| 5.4.1. Destination peer: receiving a request and sending a | 5.4.1. Destination peer: receiving a request and sending a | |||
| response . . . . . . . . . . . . . . . . . . . . . . 12 | response . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.4.2. Sending peer: receiving a response . . . . . . . . . 12 | 5.4.2. Sending peer: receiving a response . . . . . . . . . 10 | |||
| 6. Overlay configuration extension . . . . . . . . . . . . . . . 12 | 6. Overlay configuration extension . . . . . . . . . . . . . . . 11 | |||
| 7. Security considerations . . . . . . . . . . . . . . . . . . . 13 | 7. Security considerations . . . . . . . . . . . . . . . . . . . 11 | |||
| 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 | 8. IANA considerations . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 8.1. A new RELOAD forwarding option . . . . . . . . . . . . . 13 | 8.1. A new RELOAD forwarding option . . . . . . . . . . . . . 11 | |||
| 8.2. A new IETF XML registry . . . . . . . . . . . . . . . . . 13 | 8.2. A new IETF XML registry . . . . . . . . . . . . . . . . . 11 | |||
| 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 13 | 9. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 10.1. Normative references . . . . . . . . . . . . . . . . . . 14 | 10.1. Normative references . . . . . . . . . . . . . . . . . . 12 | |||
| 10.2. Informative references . . . . . . . . . . . . . . . . . 14 | 10.2. Informative references . . . . . . . . . . . . . . . . . 12 | |||
| Appendix A. Optional methods to investigate peer connectivity . 14 | Appendix A. Optional methods to investigate peer connectivity . 13 | |||
| A.1. Getting addresses to be used as candidates for DRR . . . 15 | A.1. Getting addresses to be used as candidates for DRR . . . 13 | |||
| A.2. Public reachability test . . . . . . . . . . . . . . . . 16 | A.2. Public reachability test . . . . . . . . . . . . . . . . 14 | |||
| Appendix B. Comparison on cost of SRR and DRR . . . . . . . . . 15 | Appendix B. Comparison on cost of SRR and DRR . . . . . . . . . 15 | |||
| B.1. Closed or managed networks . . . . . . . . . . . . . . . 15 | B.1. Closed or managed networks . . . . . . . . . . . . . . . 15 | |||
| B.2. Open networks . . . . . . . . . . . . . . . . . . . . . . 16 | B.2. Open networks . . . . . . . . . . . . . . . . . . . . . . 16 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 1. Introduction | 1. Introduction | |||
| REsource LOcation And Discovery (RELOAD) protocol [I-D.ietf-p2psip- | REsource LOcation And Discovery (RELOAD) protocol [RFC6940] | |||
| base] recommends symmetric recursive routing (SRR) for routing | recommends symmetric recursive routing (SRR) for routing messages and | |||
| messages and describes the extensions that would be required to | describes the extensions that would be required to support additional | |||
| support additional routing algorithms. Other than SRR, two other | routing algorithms. Other than SRR, two other routing options: | |||
| routing options: direct response routing (DRR) and relay peer routing | direct response routing (DRR) and relay peer routing (RPR) are also | |||
| (RPR) are also discussed in Appendix A of [I-D.ietf-p2psip-base]. As | discussed in Appendix A of [RFC6940]. As we show in Section 3, DRR | |||
| we show in section 3, DRR is advantageous over SRR in some scenarios | is advantageous over SRR in some scenarios by reducing load (CPU and | |||
| by reducing load (CPU and link bandwidth) on intermediate peers. For | link bandwidth) on intermediate peers. For example, in a closed | |||
| example, in a closed network where every peer is in the same address | network where every peer is in the same address realm, DRR performs | |||
| realm, DRR performs better than SRR. In other scenarios, using a | better than SRR. In other scenarios, using a combination of DRR and | |||
| combination of DRR and SRR together is more likely to bring benefits | SRR together is more likely to bring benefits than if SRR is used | |||
| than if SRR is used alone. | alone. | |||
| Note that in this document, we focus on DRR routing mode and its | Note that in this document, we focus on DRR routing mode and its | |||
| extensions to RELOAD to produce a standalone solution. Please refer | extensions to RELOAD to produce a standalone solution. Please refer | |||
| to RPR draft [I-D.ietf-p2psip-rpr] for RPR routing mode. | to RPR draft [I-D.ietf-p2psip-rpr] for RPR routing mode. | |||
| We first discuss the problem statement in Section 3, then how to | We first discuss the problem statement in Section 3, then how to | |||
| combine DRR and SRR is presented in Section 4. In Section 5, we give | combine DRR and SRR is presented in Section 4. An extension to | |||
| comparison on the cost of SRR and DRR in both managed and open | RELOAD to support DRR is defined in Section 5. Some optional methods | |||
| networks. An extension to RELOAD to support DRR is proposed in | to check peer connectivity are introduced in Appendix A. In | |||
| Section 6. Some optional methods to check peer connectivity are | Appendix B, we give comparison on the cost of SRR and DRR in both | |||
| introduced in Appendix A. | managed and open networks. | |||
| 2. Terminology | 2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
| document are to be interpreted as described in RFC 2119 [RFC2119]. | document are to be interpreted as described in RFC 2119 [RFC2119]. | |||
| We use the terminology and definitions from the RELOAD base draft | We use the terminology and definitions from the RELOAD base draft | |||
| [I-D.ietf-p2psip-base] extensively in this document. We also use | [RFC6940] extensively in this document. We also use terms defined in | |||
| terms defined in NAT behavior discovery [RFC5780]. Other terms used | NAT behavior discovery [RFC5780]. Other terms used in this document | |||
| in this document are defined inline when used and are also defined | are defined inline when used and are also defined below for | |||
| below for reference. | reference. | |||
| Publicly Reachable: A peer is publicly reachable if it can receive | Publicly Reachable: A peer is publicly reachable if it can receive | |||
| unsolicited messages from any other peer in the same overlay. | unsolicited messages from any other peer in the same overlay. | |||
| Note: "publicly" does not mean that the peers must be on the | Note: "publicly" does not mean that the peers must be on the | |||
| public Internet, because the RELOAD protocol may be used in a | public Internet, because the RELOAD protocol may be used in a | |||
| closed network. | closed network. | |||
| Direct Response Routing (DRR): refers to a routing mode in which | Direct Response Routing (DRR): refers to a routing mode in which | |||
| responses to P2PSIP requests are returned to the sending peer | responses to P2PSIP requests are returned to the sending peer | |||
| directly from the destination peer based on the sending peer's own | directly from the destination peer based on the sending peer's own | |||
| local transport address(es). For simplicity, the abbreviation DRR | local transport address(es). For simplicity, the abbreviation DRR | |||
| is used instead in the rest of the document. | is used instead in the rest of the document. | |||
| Symmetric Recursive Routing (SRR): refers to a routing mode in | Symmetric Recursive Routing (SRR): refers to a routing mode in | |||
| which responses follow the reverse path of the request to get to | which responses follow the reverse path of the request to get to | |||
| the sending peer. For simplicity, the abbreviation SRR is used | the sending peer. For simplicity, the abbreviation SRR is used | |||
| instead in the rest of the document. | instead in the rest of the document. | |||
| Relay Peer Routing (RPR): refers to a routing mode in which | ||||
| responses to P2PSIP requests are sent by the destination peer to a | ||||
| relay peer transport address who will forward the responses | ||||
| towards the sending peer. For simplicity, the abbreviation RPR is | ||||
| used instead in the rest of the document. | ||||
| 3. Overview | 3. Overview | |||
| RELOAD is expected to work under a great number of application | RELOAD is expected to work under a great number of application | |||
| scenarios. The situations where RELOAD is to be deployed differ | scenarios. The situations where RELOAD is to be deployed differ | |||
| greatly. For instance, some deployments are global, such as a Skype- | greatly. For instance, some deployments are global, such as a Skype- | |||
| like system intended to provide public service, while others run in | like system intended to provide public service, while others run in | |||
| closed networks of small scale. SRR works in any situation, but DRR | closed networks of small scale. SRR works in any situation, but DRR | |||
| may work better in some specific scenarios. | may work better in some specific scenarios. | |||
| 3.1. SRR and DRR | 3.1. SRR and DRR | |||
| skipping to change at page 5, line 44 | skipping to change at page 5, line 46 | |||
| In DRR, peer X receives the request sent by peer A through | In DRR, peer X receives the request sent by peer A through | |||
| intermediate peer B, C and D, as in SRR. However, peer X sends the | intermediate peer B, C and D, as in SRR. However, peer X sends the | |||
| response back directly to peer A based on peer A's local transport | response back directly to peer A based on peer A's local transport | |||
| address. In this case, the response is not routed through | address. In this case, the response is not routed through | |||
| intermediate peers. Figure 2 illustrates DRR. Using a shorter route | intermediate peers. Figure 2 illustrates DRR. Using a shorter route | |||
| means less overhead on intermediate peers, especially in the case of | means less overhead on intermediate peers, especially in the case of | |||
| wireless networks where the CPU and uplink bandwidth is limited. For | wireless networks where the CPU and uplink bandwidth is limited. For | |||
| example, in the absence of NATs, or if the NAT implements endpoint- | example, in the absence of NATs, or if the NAT implements endpoint- | |||
| independent filtering, this is the optimal routing technique. Note | independent filtering, this is the optimal routing technique. Note | |||
| that establishing a secure connection requires multiple round trips. | that establishing a secure connection requires multiple round trips. | |||
| Please refer to Section 5 for cost comparison between SRR and DRR. | Please refer to Appendix B for cost comparison between SRR and DRR. | |||
| A B C D X | A B C D X | |||
| | Request | | | | | | Request | | | | | |||
| |----------->| | | | | |----------->| | | | | |||
| | | Request | | | | | | Request | | | | |||
| | |----------->| | | | | |----------->| | | | |||
| | | | Request | | | | | | Request | | | |||
| | | |----------->| | | | | |----------->| | | |||
| | | | | Request | | | | | | Request | | |||
| | | | |----------->| | | | | |----------->| | |||
| skipping to change at page 7, line 19 | skipping to change at page 7, line 24 | |||
| send the response. Responses are sent directly to the requesting | send the response. Responses are sent directly to the requesting | |||
| peer. | peer. | |||
| 4.2. How SRR and DRR work together | 4.2. How SRR and DRR work together | |||
| DRR is not intended to replace SRR. It is better to use these two | DRR is not intended to replace SRR. It is better to use these two | |||
| modes together to adapt to each peer's specific situation. In this | modes together to adapt to each peer's specific situation. In this | |||
| section, we give some informative suggestions on how to transition | section, we give some informative suggestions on how to transition | |||
| between the routing modes in RELOAD. | between the routing modes in RELOAD. | |||
| According to base draft [I-D.ietf-p2psip-base], SRR MUST be | According to base draft [RFC6940], SRR MUST be supported. An overlay | |||
| supported. An overlay MAY be configured to use alternative routing | MAY be configured to use alternative routing algorithms, and | |||
| algorithms, and alternative routing algorithms MAY be selected on a | alternative routing algorithms MAY be selected on a per-message | |||
| per-message basis. I.e., a node in an overlay which supports SRR and | basis. I.e., a node in an overlay which supports SRR and some other | |||
| some other routing algorithm, for example DRR, might use SRR some of | routing algorithm, for example DRR, might use SRR some of the time | |||
| the time and DRR some of the time. A node joining the overlay should | and DRR some of the time. A node joining the overlay should get from | |||
| get from the configuration file the preferred routing mode. If an | the configuration file the preferred routing mode. If an overlay | |||
| overlay runs within a private network and all peers in the system can | runs within a private network and all peers in the system can reach | |||
| reach each other directly, peers MAY send most of the transactions | each other directly, peers MAY send most of the transactions with | |||
| with DRR. On the contrary, using DRR SHOULD be discouraged in the | DRR. On the contrary, using DRR SHOULD not be used in the open | |||
| open Internet or if the administrator does not feel he have enough | Internet or if the administrator does not feel he have enough | |||
| information about the overlay network topology. A new overlay | information about the overlay network topology. A new overlay | |||
| configuration element specifying the usage of DRR is defined in | configuration element specifying the usage of DRR is defined in | |||
| Section 7. | Section 6. | |||
| Alternatively, a peer can collect statistical data on the success of | Alternatively, a peer can collect statistical data on the success of | |||
| the different routing modes based on previous transactions and keep a | the different routing modes based on previous transactions and keep a | |||
| list of non-reachable addresses. Based on this data, the peer will | list of non-reachable addresses. Based on this data, the peer will | |||
| have a clearer view about the success rate of different routing | have a clearer view about the success rate of different routing | |||
| modes. Other than the success rate, the peer can also get data of | modes. Other than the success rate, the peer can also get data of | |||
| finer granularity, for example, the number of retransmission the peer | finer granularity, for example, the number of retransmission the peer | |||
| needs to achieve a desirable success rate. | needs to achieve a desirable success rate. | |||
| A typical strategy for the peer is as follows. A peer chooses to | A typical strategy for the peer is as follows. A peer chooses to | |||
| start with DRR based on the configuration. Based on the success rate | start with DRR based on the configuration. Based on the success rate | |||
| seen from the lost message statistics or responses that used DRR, the | seen from the lost message statistics or responses that used DRR, the | |||
| peer can either continue to offer DRR first or switch to SRR. Note | peer can either continue to offer DRR first or switch to SRR. Note | |||
| that a peer should use the DRR success statistic to decide if to | that a peer should use the DRR success statistic to decide if to | |||
| continue using DRR or fall back to SRR. It is not recommended to | continue using DRR or fall back to SRR. It is not recommended to | |||
| make such decision per specific connection but this is an application | make such decision per specific connection but this is an application | |||
| decision. | decision. | |||
| 3) In the cases when N < 256, DRR uses more messages than SRR (but | ||||
| still uses fewer hops than SRR). So the consideration on whether | ||||
| using DRR or SRR depends on other factors like using less resources | ||||
| (bandwidth and processing) from the intermediate peers. Section 4 | ||||
| provides use cases where DRR has better chance to work or where the | ||||
| intermediary resources considerations are important. | ||||
| 5. DRR extensions to RELOAD | 5. DRR extensions to RELOAD | |||
| Adding support for DRR requires extensions to the current RELOAD | Adding support for DRR requires extensions to the current RELOAD | |||
| protocol. In this section, we define the extensions required to the | protocol. In this section, we define the extensions required to the | |||
| protocol, including extensions to message structure and to message | protocol, including extensions to message structure and to message | |||
| processing. | processing. | |||
| 5.1. Basic requirements | 5.1. Basic requirements | |||
| All peers MUST be able to process requests for routing in SRR, and | All peers MUST be able to process requests for routing in SRR, and | |||
| skipping to change at page 10, line 20 | skipping to change at page 8, line 35 | |||
| inform intermediate peers if they are allowed to not maintain state | inform intermediate peers if they are allowed to not maintain state | |||
| for a transaction. | for a transaction. | |||
| 5.2.1. State-keeping flag | 5.2.1. State-keeping flag | |||
| RELOAD allows intermediate peers to maintain state in order to | RELOAD allows intermediate peers to maintain state in order to | |||
| implement SRR, for example for implementing hop-by-hop | implement SRR, for example for implementing hop-by-hop | |||
| retransmission. If DRR is used, the response will not follow the | retransmission. If DRR is used, the response will not follow the | |||
| reverse path, and the state in the intermediate peers will not be | reverse path, and the state in the intermediate peers will not be | |||
| cleared until such state expires. In order to address this issue, we | cleared until such state expires. In order to address this issue, we | |||
| propose a new flag, state-keeping flag, in the message header to | propose a new flag, state-keeping flag, in the ForwardingOption | |||
| indicate whether the state keeping is required in the intermediate | structure to indicate whether the state keeping is required in the | |||
| peers. | intermediate peers. | |||
| flag : 0x08 IGNORE-STATE-KEEPING | flag : 0x08 IGNORE-STATE-KEEPING | |||
| If IGNORE-STATE-KEEPING is set, any peer receiving this message and | If IGNORE-STATE-KEEPING is set, any peer receiving this message and | |||
| which is not the destination of the message SHOULD forward the | which is not the destination of the message SHOULD forward the | |||
| message with the full via_list and SHOULD NOT maintain any internal | message with the full via_list and SHOULD NOT maintain any internal | |||
| state. | state. | |||
| 5.2.2. Extensive routing mode | 5.2.2. Extensive routing mode | |||
| This draft introduces a new forwarding option for an extensive | This draft introduces a new forwarding option for an extensive | |||
| routing mode. This option conforms to the description in section | routing mode. This option conforms to the description in | |||
| 6.3.2.3 of [I-D.ietf-p2psip-base]. | Section 6.3.2.3 of [RFC6940]. | |||
| We first define a new type to define the new option, | We first define a new type to define the new option, | |||
| extensive_routing_mode: | extensive_routing_mode: | |||
| The option value is illustrated as below, defining the | The option value is illustrated as below, defining the | |||
| ExtensiveRoutingModeOption structure: | ExtensiveRoutingModeOption structure: | |||
| enum {(0),DRR(1),(255)} RouteMode; | enum {(0),DRR(1),(255)} RouteMode; | |||
| struct { | struct { | |||
| RouteMode routemode; | RouteMode routemode; | |||
| skipping to change at page 11, line 4 | skipping to change at page 9, line 18 | |||
| The option value is illustrated as below, defining the | The option value is illustrated as below, defining the | |||
| ExtensiveRoutingModeOption structure: | ExtensiveRoutingModeOption structure: | |||
| enum {(0),DRR(1),(255)} RouteMode; | enum {(0),DRR(1),(255)} RouteMode; | |||
| struct { | struct { | |||
| RouteMode routemode; | RouteMode routemode; | |||
| OverlayLinkType transport; | OverlayLinkType transport; | |||
| IpAddressPort ipaddressport; | IpAddressPort ipaddressport; | |||
| Destination destinations<1..2^8-1>; | Destination destinations<1..2^8-1>; | |||
| } ExtensiveRoutingModeOption; | } ExtensiveRoutingModeOption; | |||
| The above structure reuses OverlayLinkType, Destination and | The above structure reuses OverlayLinkType, Destination and | |||
| IpAddressPort structure defined in section 6.5.1.1, 6.3.2.2 and | IpAddressPort structure defined in Section 6.5.1.1, 6.3.2.2 and | |||
| 6.3.1.1 of [I-D.ietf-p2psip-base]. | 6.3.1.1 of [RFC6940]. | |||
| RouteMode: refers to which type of routing mode is indicated to the | RouteMode: refers to which type of routing mode is indicated to the | |||
| destination peer. | destination peer. | |||
| OverlayLinkType: refers to the transport type which is used to | OverlayLinkType: refers to the transport type which is used to | |||
| deliver responses from the destination peer to the sending peer. | deliver responses from the destination peer to the sending peer. | |||
| IpAddressPort: refers to the transport address that the destination | IpAddressPort: refers to the transport address that the destination | |||
| peer use to send the response to. This will be a sending peer | peer use to send the response to. This will be a sending peer | |||
| address for DRR. | address for DRR. | |||
| skipping to change at page 12, line 9 | skipping to change at page 10, line 18 | |||
| 2.3) ipaddressport set to the peer's associated transport address. | 2.3) ipaddressport set to the peer's associated transport address. | |||
| 2.4) The destination structure MUST contain one value, defined as | 2.4) The destination structure MUST contain one value, defined as | |||
| type node and set with the sending peer's own values. | type node and set with the sending peer's own values. | |||
| 5.4. Request and response processing | 5.4. Request and response processing | |||
| This section gives normative text for message processing after DRR is | This section gives normative text for message processing after DRR is | |||
| introduced. Here, we only describe the additional procedures for | introduced. Here, we only describe the additional procedures for | |||
| supporting DRR. Please refer to [I-D.ietf-p2psip-base] for RELOAD | supporting DRR. Please refer to [RFC6940] for RELOAD base | |||
| base procedures. | procedures. | |||
| 5.4.1. Destination peer: receiving a request and sending a response | 5.4.1. Destination peer: receiving a request and sending a response | |||
| When the destination peer receives a request, it will check the | When the destination peer receives a request, it will check the | |||
| options in the forwarding header. If the destination peer can not | options in the forwarding header. If the destination peer can not | |||
| understand extensive_routing_mode option in the request, it MUST | understand extensive_routing_mode option in the request, it MUST | |||
| attempt to use SRR to return an "Error_Unknown_Extension" response | attempt to use SRR to return an "Error_Unknown_Extension" response | |||
| (defined in Section 6.3.3.1 and Section 14.9 of [I-D.ietf-p2psip- | (defined in Section 6.3.3.1 and Section 14.9 of [RFC6940]) to the | |||
| base]) to the sending peer. | sending peer. | |||
| If the routing mode is DRR, the peer MUST construct the Destination | If the routing mode is DRR, the destination peer MUST construct the | |||
| list for the response with only one entry, using the sending peer's | Destination list for the response with only one entry, using the | |||
| Node-ID from the option in the request as the value. | requesting peer's Node-ID from the via list in the request as the | |||
| value. | ||||
| In the event that the routing mode is set to DRR and there is not | In the event that the routing mode is set to DRR and there is not | |||
| exactly one destination, the destination peer MUST try to return an | exactly one destination, the destination peer MUST try to return an | |||
| "Error_Unknown_Extension" response (defined in Section 6.3.3.1 and | "Error_Unknown_Extension" response (defined in Section 6.3.3.1 and | |||
| Section 14.9 of [I-D.ietf-p2psip-base]) to the sending peer using | Section 14.9 of [RFC6940]) to the sending peer using SRR. | |||
| SRR. | ||||
| After the peer constructs the destination list for the response, it | After the peer constructs the destination list for the response, it | |||
| sends the response to the transport address which is indicated in the | sends the response to the transport address which is indicated in the | |||
| ipaddressport field in the option using the specific transport mode | ipaddressport field in the option using the specific transport mode | |||
| in the Forwardingoption. If the destination peer receives a | in the Forwardingoption. If the destination peer receives a | |||
| retransmit with SRR preference on the message it is trying to respond | retransmit with SRR preference on the message it is trying to respond | |||
| to now, the responding peer SHOULD abort the DRR response and use | to now, the responding peer SHOULD abort the DRR response and use | |||
| SRR. | SRR. | |||
| 5.4.2. Sending peer: receiving a response | 5.4.2. Sending peer: receiving a response | |||
| Upon receiving a response, the peer follows the rules in [I-D.ietf- | Upon receiving a response, the peer follows the rules in [RFC6940]. | |||
| p2psip-base]. The peer SHOULD note if DRR worked in order to decide | The peer SHOULD note if DRR worked in order to decide if to offer DRR | |||
| if to offer DRR again. If the peer does not receive a response until | again. If the peer does not receive a response until the timeout it | |||
| the timeout it SHOULD resend the request using SRR. | SHOULD resend the request using SRR. | |||
| 6. Overlay configuration extension | 6. Overlay configuration extension | |||
| This document extends the RELOAD overlay configuration (see | This document extends the RELOAD overlay configuration (see | |||
| Section 11.1 of [I-D.ietf-p2psip-base]) by adding one new element, | Section 11.1 of [RFC6940]) by adding one new element, "route-mode", | |||
| "route-mode", inside each "configuration" element. | inside each "configuration" element. | |||
| The Compact Relax NG Grammar for this element is: | The Compact Relax NG Grammar for this element is: | |||
| namespace route-mode = "urn:ietf:params:xml:ns:p2p:route-mode" | namespace route-mode = "urn:ietf:params:xml:ns:p2p:route-mode" | |||
| parameter &= element route-mode:mode { xsd:string }? | parameter &= element route-mode:mode { xsd:string }? | |||
| This namespace is added into the <mandatory-extension> element in the | This namespace is added into the <mandatory-extension> element in the | |||
| overlay configuration file. The defined routing modes include DRR | overlay configuration file. The defined routing modes include DRR | |||
| and RPR. | and RPR. | |||
| Mode can be DRR or RPR and if specified in the configuration should | Mode can be DRR or RPR and if specified in the configuration should | |||
| be the preferred routing mode used by the application. | be the preferred routing mode used by the application. | |||
| 7. Security considerations | 7. Security considerations | |||
| The normative security recommendations of Section 13 of base draft | The normative security recommendations of Section 13 of base draft | |||
| [I-D.ietf-p2psip-base] are applicable to this document. As a routing | [RFC6940] are applicable to this document. As a routing alternative, | |||
| alternative, the security part of DRR conforms to Section 13.6 of the | the security part of DRR conforms to Section 13.6 of the base draft | |||
| base draft which describes routing security. For example, the DRR | which describes routing security. For example, the DRR routing | |||
| routing option provides the information about the route back to the | option provides the information about the route back to the source. | |||
| source. According to Section 13.6 of the base draft the enter DRR | According to Section 13.6 of the base draft the enter DRR routing | |||
| routing message MUST be digitally signed and sent over by protected | message MUST be digitally signed and sent over by protected channel | |||
| channel to protect the DRR routing information. | to protect the DRR routing information. | |||
| 8. IANA considerations | 8. IANA considerations | |||
| 8.1. A new RELOAD forwarding option | 8.1. A new RELOAD forwarding option | |||
| A new RELOAD Forwarding Option type is added to the Forwarding Option | A new RELOAD Forwarding Option type to be added to the RELOAD | |||
| Registry defined in [I-D.ietf-p2psip-base]. | Forwarding Option Registry defined in [RFC6940]. | |||
| Type: 0x02 - extensive_routing_mode | Type: 0x02 - extensive_routing_mode | |||
| 8.2. A new IETF XML registry | 8.2. A new IETF XML registry | |||
| This section requests IANA to register the following URN in the "XML | This section requests IANA to register the following URN in the "XML | |||
| Namespaces" class of the "IETF XML Registry" in accordance with | Namespaces" class of the "IETF XML Registry" in accordance with | |||
| [RFC3688]. | [RFC3688]. | |||
| URI: urn:ietf:params:xml:ns:p2p:route-mode | URI: urn:ietf:params:xml:ns:p2p:route-mode | |||
| skipping to change at page 14, line 15 | skipping to change at page 12, line 26 | |||
| Lakshminath, Bruce Lowekamp, Stephane Bryant, Marc Petit-Huguenin and | Lakshminath, Bruce Lowekamp, Stephane Bryant, Marc Petit-Huguenin and | |||
| Carlos Jesus Bernardos Cano for their constructive comments. | Carlos Jesus Bernardos Cano for their constructive comments. | |||
| 10. References | 10. References | |||
| 10.1. Normative references | 10.1. Normative references | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC2119, March 1997. | Requirement Levels", BCP 14, RFC2119, March 1997. | |||
| [I-D.ietf-p2psip-base] Jennings, C., Lowekamp, B., Rescorla, E., | [RFC6940] Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and H. | |||
| Baset, S., and H. Schulzrinne, "REsource LOcation And Discovery | Schulzrinne, "REsource LOcation And Discovery (RELOAD) Base | |||
| (RELOAD) Base Protocol", draft-ietf-p2psip-base-26 (work in | Protocol", RFC6940, January 2014. | |||
| progress), February 2013. | ||||
| [RFC3688] Mealling, M., "The IETF XML Registry ", BCP 81, RFC3688, | [RFC3688] Mealling, M., "The IETF XML Registry ", BCP 81, RFC3688, | |||
| January 2004. | January 2004. | |||
| 10.2. Informative references | 10.2. Informative references | |||
| [DTLS] Modadugu, N., Rescorla, E., "The Design and Implementation of | [DTLS] Modadugu, N., Rescorla, E., "The Design and Implementation of | |||
| Datagram TLS", 11th Network and Distributed System Security Symposium | Datagram TLS", 11th Network and Distributed System Security Symposium | |||
| (NDSS), 2004. | (NDSS), 2004. | |||
| [RFC5780] MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery | [RFC5780] MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery | |||
| Using STUN", RFC5780, May 2010. | Using STUN", RFC5780, May 2010. | |||
| [I-D.ietf-p2psip-rpr] Zong, N., Jiang, X., Even, R. and Zhang, Y., | [I-D.ietf-p2psip-rpr] Zong, N., Jiang, X., Even, R. and Zhang, Y., | |||
| "An extension to RELOAD to support Relay Peer Routing", draft-ietf- | "An extension to RELOAD to support Relay Peer Routing", draft-ietf- | |||
| p2psip-rpr-11 (work in progress), October 2013. | p2psip-rpr-12 (work in progress), February 2014. | |||
| [IGD2] UPnP Forum, "WANIPConnection:2 Service (http://upnp.org/specs/ | [IGD2] UPnP Forum, "WANIPConnection:2 Service (http://upnp.org/specs/ | |||
| gw/UPnP-gw-WANIPConnection-v2-Service.pdf)", September 2010. | gw/UPnP-gw-WANIPConnection-v2-Service.pdf)", September 2010. | |||
| [RFC6886] Cheshire, S., Krochmal M., and K. Sekar, "NAT Port Mapping | [RFC6886] Cheshire, S., Krochmal M., and K. Sekar, "NAT Port Mapping | |||
| Protocol (NAT-PMP)", RFC6886, April 2013. | Protocol (NAT-PMP)", RFC6886, April 2013. | |||
| [RFC3424] Daigle, L., "IAB Considerations for UNilateral Self-Address | [RFC3424] Daigle, L., "IAB Considerations for UNilateral Self-Address | |||
| Fixing (UNSAF) Across Network Address Translation", RFC3424, November | Fixing (UNSAF) Across Network Address Translation", RFC3424, November | |||
| 2002. | 2002. | |||
| 12. References | ||||
| Appendix A. Optional methods to investigate peer connectivity | Appendix A. Optional methods to investigate peer connectivity | |||
| This section is for informational purposes only for providing some | This section is for informational purposes only for providing some | |||
| mechanisms that can be used when the configuration information does | mechanisms that can be used when the configuration information does | |||
| not specify if DRR can be used. It summarizes some methods which can | not specify if DRR can be used. It summarizes some methods which can | |||
| be used for a peer to determine its own network location compared | be used for a peer to determine its own network location compared | |||
| with NAT. These methods may help a peer to decide which routing mode | with NAT. These methods may help a peer to decide which routing mode | |||
| it may wish to try. Note that there is no foolproof way to determine | it may wish to try. Note that there is no foolproof way to determine | |||
| if a peer is publically reachable, other than via out-of-band | if a peer is publically reachable, other than via out-of-band | |||
| mechanisms. This document addresses the UNSAF [RFC3424] concerns by | mechanisms. This document addresses the UNSAF [RFC3424] concerns by | |||
| specifying a fallback plan to SRR [p2psip-base-draft]. SRR is not an | specifying a fallback plan to SRR [RFC6940]. SRR is not an UNSAF | |||
| UNSAF mechanism. The document does not define any new UNSAF | mechanism. The document does not define any new UNSAF mechanisms. | |||
| mechanisms. | ||||
| For DRR to function correctly, a peer may attempt to determine | For DRR to function correctly, a peer may attempt to determine | |||
| whether it is publicly reachable. If it is not, the peers should | whether it is publicly reachable. If it is not, the peers should | |||
| fall back to SRR. If the peer believes it is publically reachable, | fall back to SRR. If the peer believes it is publically reachable, | |||
| DRR may be attempted. NATs and firewalls are two major contributors | DRR may be attempted. NATs and firewalls are two major contributors | |||
| preventing DRR from functioning properly. There are a number of | preventing DRR from functioning properly. There are a number of | |||
| techniques by which a peer can get its reflexive address on the | techniques by which a peer can get its reflexive address on the | |||
| public side of the NAT. After obtaining the reflexive address, a | public side of the NAT. After obtaining the reflexive address, a | |||
| peer can perform further tests to learn whether the reflexive address | peer can perform further tests to learn whether the reflexive address | |||
| is publicly reachable. If the address appears to be publicly | is publicly reachable. If the address appears to be publicly | |||
| skipping to change at page 17, line 21 | skipping to change at page 15, line 29 | |||
| connection with him. Each intermediate peer receiving the request | connection with him. Each intermediate peer receiving the request | |||
| first checks whether it has a direct connections with the sending | first checks whether it has a direct connections with the sending | |||
| peer. If there is a direct connection, the request is routed to the | peer. If there is a direct connection, the request is routed to the | |||
| next peer. If there is no direct connection, the intermediate peer | next peer. If there is no direct connection, the intermediate peer | |||
| terminates the request and sends the response back directly to the | terminates the request and sends the response back directly to the | |||
| sending peer with the transport address under test. | sending peer with the transport address under test. | |||
| After performing the test, if the peer determines that it may be | After performing the test, if the peer determines that it may be | |||
| publicly reachable, it can try DRR in subsequent transactions. | publicly reachable, it can try DRR in subsequent transactions. | |||
| 5. Comparison on cost of SRR and DRR | Appendix B. Comparison on cost of SRR and DRR | |||
| The major advantages in using DRR are in going through less | The major advantages in using DRR are in going through less | |||
| intermediate peers on the response. By doing that it reduces the | intermediate peers on the response. By doing that it reduces the | |||
| load on those peers' resources like processing and communication | load on those peers' resources like processing and communication | |||
| bandwidth. | bandwidth. | |||
| 5.1. Closed or managed networks | B.1. Closed or managed networks | |||
| As described in Section 3, many P2P systems run in a closed or | As described in Section 3, many P2P systems run in a closed or | |||
| managed environment (e.g., carrier networks) so that network | managed environment (e.g., carrier networks) so that network | |||
| administrators would know that they could safely use DRR. | administrators would know that they could safely use DRR. | |||
| SRR brings out more routing hops than DRR. Assuming that there are N | SRR brings out more routing hops than DRR. Assuming that there are N | |||
| peers in the P2P system and Chord is applied for routing, the number | peers in the P2P system and Chord is applied for routing, the number | |||
| of hops for a response in SRR and DRR are listed in the following | of hops for a response in SRR and DRR are listed in the following | |||
| table. Establishing a secure connection between the sending peer and | table. Establishing a secure connection between the sending peer and | |||
| the responding peer with (D)TLS requires multiple messages. Note | the responding peer with (D)TLS requires multiple messages. Note | |||
| skipping to change at page 17, line 74 | skipping to change at page 16, line 33 | |||
| 2) In the cases when N > 256 (2^8), DRR also uses fewer messages than | 2) In the cases when N > 256 (2^8), DRR also uses fewer messages than | |||
| SRR. | SRR. | |||
| 3) In the cases when N < 256, DRR uses more messages than SRR (but | 3) In the cases when N < 256, DRR uses more messages than SRR (but | |||
| still uses fewer hops than SRR). So the consideration on whether | still uses fewer hops than SRR). So the consideration on whether | |||
| using DRR or SRR depends on other factors like using less resources | using DRR or SRR depends on other factors like using less resources | |||
| (bandwidth and processing) from the intermediate peers. Section 4 | (bandwidth and processing) from the intermediate peers. Section 4 | |||
| provides use cases where DRR has better chance to work or where the | provides use cases where DRR has better chance to work or where the | |||
| intermediary resources considerations are important. | intermediary resources considerations are important. | |||
| 5.2. Open networks | B.2. Open networks | |||
| In open networks (e.g., Internet) where DRR is not guaranteed to | In open networks (e.g., Internet) where DRR is not guaranteed to | |||
| work, DRR can fall back to SRR if it fails after trial, as described | work, DRR can fall back to SRR if it fails after trial, as described | |||
| in Section 4. Based on the same settings in Section 5.1, the number | in Section 4. Based on the same settings in Section B.1, the number | |||
| of hops, number of messages for a response in SRR and DRR are listed | of hops, number of messages for a response in SRR and DRR are listed | |||
| in the following table. | in the following table. | |||
| Mode | Success | No. of Hops | No. of Msgs | Mode | Success | No. of Hops | No. of Msgs | |||
| ----------------------------------------------------------- | ----------------------------------------------------------- | |||
| SRR | Yes | log(N) | log(N) | SRR | Yes | log(N) | log(N) | |||
| DRR | Yes | 1 | 1 | DRR | Yes | 1 | 1 | |||
| | Fail&Fall back to SRR | 1+log(N)| 1+log(N) | | Fail&Fall back to SRR | 1+log(N)| 1+log(N) | |||
| DRR(DTLS) | Yes | 1 | 7+1 | DRR(DTLS) | Yes | 1 | 7+1 | |||
| | Fail&Fall back to SRR | 1+log(N)| 8+log(N) | | Fail&Fall back to SRR | 1+log(N)| 8+log(N) | |||
| skipping to change at page 17, line 105 | skipping to change at page 17, line 18 | |||
| number of hops in DRR and SRR is P*1+(N-P)*(1+logN), N*logN, | number of hops in DRR and SRR is P*1+(N-P)*(1+logN), N*logN, | |||
| respectively. The condition for fewer hops in DRR is | respectively. The condition for fewer hops in DRR is | |||
| P*1+(N-P)*(1+logN) < N*logN, which is P/N > 1/logN. This means that | P*1+(N-P)*(1+logN) < N*logN, which is P/N > 1/logN. This means that | |||
| when the number of peers N grows, the required ratio of publicly | when the number of peers N grows, the required ratio of publicly | |||
| reachable peers P/N for fewer hops in DRR decreases. Therefore, the | reachable peers P/N for fewer hops in DRR decreases. Therefore, the | |||
| chance of trying DRR with fewer hops than SRR becomes better as the | chance of trying DRR with fewer hops than SRR becomes better as the | |||
| scale of the network increases. | scale of the network increases. | |||
| Authors' Addresses | Authors' Addresses | |||
| Ning Zong (editor) | Ning Zong | |||
| Huawei Technologies | Huawei Technologies | |||
| Email: zongning@huawei.com | Email: zongning@huawei.com | |||
| Xingfeng Jiang | Xingfeng Jiang | |||
| Huawei Technologies | Huawei Technologies | |||
| Email: jiang.x.f@huawei.com | Email: jiang.x.f@huawei.com | |||
| Roni Even | Roni Even | |||
| End of changes. 38 change blocks. | ||||
| 116 lines changed or deleted | 112 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||