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/