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