draft-ietf-p2psip-rpr-11.original   draft-ietf-p2psip-rpr-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 Relay Peer Routing Support Relay Peer Routing
draft-ietf-p2psip-rpr-11 draft-ietf-p2psip-rpr-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 relay peer routing mode. Discovery (RELOAD) protocol to support relay peer 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 use cases where this extension can be used. potential use 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
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.1. RPR . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. RPR . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Scenarios where RPR can be used . . . . . . . . . . . . . 5 3.2. Scenarios where RPR can be used . . . . . . . . . . . . . 5
3.2.1. Managed or closed P2P systems . . . . . . . . . . . . 5 3.2.1. Managed or closed P2P systems . . . . . . . . . . . . 5
3.2.2. Using bootstrap nodes as relay peers . . . . . . . . 5 3.2.2. Using bootstrap nodes as relay peers . . . . . . . . 6
3.2.3. Wireless scenarios . . . . . . . . . . . . . . . . . 6 3.2.3. Wireless scenarios . . . . . . . . . . . . . . . . . 6
4. Relationship between SRR and RPR . . . . . . . . . . . . . . 6 4. Relationship between SRR and RPR . . . . . . . . . . . . . . 6
4.1. How RPR works . . . . . . . . . . . . . . . . . . . . . . 6 4.1. How RPR works . . . . . . . . . . . . . . . . . . . . . . 6
4.2. How SRR and RPR work together . . . . . . . . . . . . . . 6 4.2. How SRR and RPR work together . . . . . . . . . . . . . . 6
5. Comparison on cost of SRR and RPR . . . . . . . . . . . . . . 7 5. RPR extensions to RELOAD . . . . . . . . . . . . . . . . . . 7
5.1. Closed or managed networks . . . . . . . . . . . . . . . 7 5.1. Basic requirements . . . . . . . . . . . . . . . . . . . 7
5.2. Open networks . . . . . . . . . . . . . . . . . . . . . . 7 5.2. Modification to RELOAD message structure . . . . . . . . 7
6. RPR extensions to RELOAD . . . . . . . . . . . . . . . . . . 8 5.2.1. Extensive routing mode . . . . . . . . . . . . . . . 7
6.1. Basic requirements . . . . . . . . . . . . . . . . . . . 8 5.3. Creating a request . . . . . . . . . . . . . . . . . . . 8
6.2. Modification to RELOAD message structure . . . . . . . . 8 5.3.1. Creating a request for RPR . . . . . . . . . . . . . 8
6.2.1. State-keeping flag . . . . . . . . . . . . . . . . . 8 5.4. Request and response processing . . . . . . . . . . . . . 8
6.2.2. Extensive routing mode . . . . . . . . . . . . . . . 9 5.4.1. Destination peer: receiving a request and sending a
6.3. Creating a request . . . . . . . . . . . . . . . . . . . 9 response . . . . . . . . . . . . . . . . . . . . . . 8
6.3.1. Creating a request for RPR . . . . . . . . . . . . . 9 5.4.2. Sending peer: receiving a response . . . . . . . . . 9
6.4. Request and response processing . . . . . . . . . . . . . 10 5.4.3. Relay peer processing . . . . . . . . . . . . . . . . 9
6.4.1. Destination peer: receiving a request and sending a 6. Overlay configuration extension . . . . . . . . . . . . . . . 9
response . . . . . . . . . . . . . . . . . . . . . . 10 7. Discovery of relay peers . . . . . . . . . . . . . . . . . . 10
6.4.2. Sending peer: receiving a response . . . . . . . . . 11 8. Security Considerations . . . . . . . . . . . . . . . . . . . 10
6.4.3. Relay peer processing . . . . . . . . . . . . . . . . 11 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
7. Overlay configuration extension . . . . . . . . . . . . . . . 11 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 10
8. Discovery of relay peers . . . . . . . . . . . . . . . . . . 11 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 11.1. Normative References . . . . . . . . . . . . . . . . . . 10
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 11.2. Informative References . . . . . . . . . . . . . . . . . 11
10.1. A new RELOAD Forwarding Option . . . . . . . . . . . . . 12 Appendix A. Optional methods to investigate peer connectivity . 11
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 Appendix B. Comparison on cost of SRR and RPR . . . . . . . . . 12
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 B.1. Closed or managed networks . . . . . . . . . . . . . . . 12
12.1. Normative References . . . . . . . . . . . . . . . . . . 12 B.2. Open networks . . . . . . . . . . . . . . . . . . . . . . 13
12.2. Informative References . . . . . . . . . . . . . . . . . 12 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
13. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
Appendix A. Optional methods to investigate peer connectivity . 13
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
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, RPR
we show in section 3, RPR is advantageous over SRR in some scenarios is advantageous over SRR in some scenarios reducing load (CPU and
reducing load (CPU and link bandwidth) on intermediate peers. RPR link bandwidth) on intermediate peers. RPR works better in a network
works better in a network where relay peers are provisioned in where relay peers are provisioned in advance so that relay peers are
advance so that relay peers are publicly reachable in the P2P system. publicly reachable in the P2P system. In other scenarios, using a
In other scenarios, using a combination of RPR and SRR together is combination of RPR and SRR together is more likely to bring benefits
more likely to bring benefits than if SRR is used alone. than if SRR is used alone.
Note that in this document, we focus on RPR routing mode and its Note that in this document, we focus on RPR 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 DRR document [I-D.ietf-p2psip-drr] for DRR routing mode. to DRR document [I-D.ietf-p2psip-drr] for DRR 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 RPR and SRR is presented in Section 4. In Section 5, we give combine RPR and SRR is presented in Section 4. An extension to
comparison on the cost of SRR and RPR in both managed and open RELOAD to support RPR is defined in Section 5. Discovery of relay
networks. An extension to RELOAD to support RPR is proposed in peers is introduced in Section 6. Some optional methods to check
Section 6. Discovery of relay peers is introduced in Section 7. peer connectivity are introduced in Appendix A. In Appendix B, we
Some optional methods to check peer connectivity are introduced in give comparison on the cost of SRR and RPR in both managed and open
Appendix A. 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.
Relay Peer: A type of publicly reachable peer that can receive Relay Peer: A type of publicly reachable peer that can receive
unsolicited messages from all other peers in the overlay and unsolicited messages from all other peers in the overlay and
forward the responses from destination peers towards the sender of forward the responses from destination peers towards the sender of
skipping to change at page 4, line 21 skipping to change at page 4, line 18
responses to P2PSIP requests are sent by the destination peer to a responses to P2PSIP requests are sent by the destination peer to a
relay peer transport address who will forward the responses relay peer transport address who will forward the responses
towards the sending peer. For simplicity, the abbreviation RPR is towards the sending peer. For simplicity, the abbreviation RPR is
used instead in the rest of the document. 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.
Direct Response Routing (DRR): refers to a routing mode in which
responses to P2PSIP requests are returned to the sending peer
directly from the destination peer based on the sending peer's own
local transport address(es). For simplicity, the abbreviation DRR
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 RPR closed networks of small scale. SRR works in any situation, but RPR
may work better in some specific scenarios. may work better in some specific scenarios.
3.1. RPR 3.1. RPR
skipping to change at page 4, line 49 skipping to change at page 5, line 5
If peer A knows it is behind a NAT or NATs, and knows one or more If peer A knows it is behind a NAT or NATs, and knows one or more
relay peers with whom they have a prior connections, peer A can try relay peers with whom they have a prior connections, peer A can try
RPR. Assume A is associated with relay peer R. When sending the RPR. Assume A is associated with relay peer R. When sending the
request, peer A includes information describing peer R transport request, peer A includes information describing peer R transport
address in the request. When peer X receives the request, peer X address in the request. When peer X receives the request, peer X
sends the response to peer R, which forwards it directly to Peer A on sends the response to peer R, which forwards it directly to Peer A on
the existing connection. Figure 1 illustrates RPR. Note that RPR the existing connection. Figure 1 illustrates RPR. Note that RPR
also allows a shorter route for responses compared to SRR, which also allows a shorter route for responses compared to SRR, which
means less overhead on intermediate peers. Establishing a connection means less overhead on intermediate peers. Establishing a connection
to the relay with TLS requires multiple round trips. Please refer to to the relay with TLS requires multiple round trips. Please refer to
Section 5 for cost comparison between SRR and RPR. Appendix B for cost comparison between SRR and RPR.
A B C D X R A B C D X R
| Request | | | | | | Request | | | | |
|----------->| | | | | |----------->| | | | |
| | Request | | | | | | Request | | | |
| |----------->| | | | | |----------->| | | |
| | | Request | | | | | | Request | | |
| | |----------->| | | | | |----------->| | |
| | | | Request | | | | | | Request | |
| | | |----------->| | | | | |----------->| |
skipping to change at page 6, line 28 skipping to change at page 6, line 31
4.1. How RPR works 4.1. How RPR works
Peers using RPR MUST maintain a connection with their relay peer(s). Peers using RPR MUST maintain a connection with their relay peer(s).
This can be done in the same way as establishing a neighbor This can be done in the same way as establishing a neighbor
connection between peers by using the Attach method. connection between peers by using the Attach method.
A requirement for RPR is for the source peer to convey their relay A requirement for RPR is for the source peer to convey their relay
peer (or peers) transport address in the request, so the destination peer (or peers) transport address in the request, so the destination
peer knows where the relay peer are and send the response to a relay peer knows where the relay peer are and send the response to a relay
peer first. The request SHOULD include also the requesting peer peer first. The request MUST include also the requesting peer node
information enabling the relay peer to route the response back to the ID or IP address enabling the relay peer to route the response back
right peer. to the right peer.
Note that being a relay peer does not require that the relay peer has Note that being a relay peer does not require that the relay peer has
more functionality than an ordinary peer. As discussed later, relay more functionality than an ordinary peer. As discussed later, relay
peers comply with the same procedure as an ordinary peer to forward peers comply with the same procedure as an ordinary peer to forward
messages. The only difference is that there may be a larger traffic messages. The only difference is that there may be a larger traffic
burden on relay peers. Relay peers can decide whether to accept a burden on relay peers. Relay peers can decide whether to accept a
new connection based on their current burden. new connection based on their current burden.
4.2. How SRR and RPR work together 4.2. How SRR and RPR work together
RPR is not intended to replace SRR. It is better to use these two RPR is not intended to replace SRR. It is better to use these two
modes together to adapt to each peer's specific situation. Note that modes together to adapt to each peer's specific situation. Note that
the informative suggestions on how to transition between SRR and RPR the informative suggestions on how to transition between SRR and RPR
are the same with that of DRR. Please refer to DRR document [I-D are the same with that of DRR. Please refer to Section 4.2 of DRR
.ietf-p2psip-drr] for more details. If a relay peer is provided by document [I-D.ietf-p2psip-drr] for more details. If a relay peer is
the service provider, peers MAY prefer RPR over SRR. Otherwise, provided by the service provider, peers SHOULD prefer RPR over SRR.
using RPR SHOULD be discouraged in the open Internet or if the Otherwise, using RPR SHOULD not be used in the open Internet or if
administrator does not feel he have enough information about the the administrator does not feel he have enough information about the
overlay. A new overlay configuration element specifying the usage of overlay. A new overlay configuration element specifying the usage of
DRR is defined in Section 7. DRR is defined in Section 6.
5. Comparison on cost of SRR and RPR
The major advantage of the use of RPR is that it reduces the number
of intermediate peers traversed by the response. By doing that, it
reduces the load on those peers' resources like processing and
communication bandwidth.
5.1. Closed or managed networks
As described in Section 3, many P2P systems run in a closed or
managed environment (e.g., carrier networks) so that network
administrators would know that they could safely use RPR.
The number of hops for a response in SRR and RPR are listed in the
following table. Note that the same illustrative settings can be
found in DRR document [I-D.ietf-p2psip-drr].
Mode | Success | No. of Hops | No. of Msgs
----------------------------------------------------
SRR | Yes | log(N) | log(N)
RPR | Yes | 2 | 2
RPR(DTLS) | Yes | 2 | 7+2
Table 1. Comparison of SRR and RPR in closed networks
From the above comparison, it is clear that:
1) In most cases when N > 4 (2^2), RPR uses fewer hops than SRR.
Using a shorter route means less overhead and resource usage on
intermediate peers, which is an important consideration for adopting
RPR in the cases where the resources such as CPU and bandwidth are
limited, e.g., the case of mobile, wireless networks.
2) In the cases when N > 512 (2^9), RPR also uses fewer messages than
SRR.
3) In the cases when N < 512, RPR uses more messages than SRR (but
still uses fewer hops than SRR). So the consideration on whether
using RPR or SRR depends on other factors like using less resources
(bandwidth and processing) from the intermediate peers. Section 4
provides use cases where RPR has better chance to work or where the
intermediary resources considerations are important.
5.2. Open networks
In open networks (e.g., Internet) where RPR is not guaranteed to
work, RPR can fall back to SRR if it fails after trial, as described
in Section 4. Based on the same settings of Section 5.1, the number
of hops, number of messages for a response in SRR and RPR are listed
in the following table.
Mode | Success | No. of Hops | No. of Msgs
-----------------------------------------------------------
SRR | Yes | log(N) | log(N)
RPR | Yes | 2 | 2
| Fail&Fall back to SRR | 2+log(N)| 2+log(N)
RPR(DTLS) | Yes | 2 | 7+2
| Fail&Fall back to SRR | 2+log(N)| 9+log(N)
Table 2. Comparison of SRR and RPR in open networks
From the above comparison, it can be observed that trying to first
use RPR could still provide an overall number of hops lower than
directly using SRR. The detailed analysis is same as DRR case and
can be found in DRR document [I-D.ietf-p2psip-drr].
6. RPR extensions to RELOAD 5. RPR extensions to RELOAD
Adding support for RPR requires extensions to the current RELOAD Adding support for RPR 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.
6.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
MAY support RPR routing requests. MAY support RPR routing requests.
6.2. Modification to RELOAD message structure 5.2. Modification to RELOAD message structure
RELOAD provides an extensible framework to accommodate future RELOAD provides an extensible framework to accommodate future
extensions. In this section, we define a ForwardingOption structure extensions. In this section, we define an RPR routing option to the
and present a state-keeping flag to support RPR mode. extensive routing mode specified in [DRR]. The state-keeping flag
from [DRR] is needed to support RPR mode.
6.2.1. State-keeping flag
flag : 0x08 IGNORE-STATE-KEEPING
If IGNORE-STATE-KEEPING is set, any peer receiving this message and
which is not the destination of the message SHOULD forward the
message with the full via_list and SHOULD NOT maintain any internal
state.
6.2.2. Extensive routing mode
We first define a new type to define the new option, 5.2.1. Extensive routing mode
extensive_routing_mode:
The option value is illustrated as below, defining the The new RouteMode value for RPR is defined below for the
ExtensiveRoutingModeOption structure: ExtensiveRoutingModeOption structure:
enum {(0),DRR(1),RPR(2),(255)} RouteMode; enum {(0),DRR(1),RPR(2),(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;
skipping to change at page 9, line 38 skipping to change at page 8, line 9
deliver responses from the destination peer to the relay peer. deliver responses from the destination peer to the relay peer.
IpAddressPort: refers to the transport address that the destination IpAddressPort: refers to the transport address that the destination
peer should use to send the response to. This will be a relay peer peer should use to send the response to. This will be a relay peer
address for RPR. address for RPR.
Destination: refers to the relay peer itself. If the routing mode is Destination: refers to the relay peer itself. If the routing mode is
RPR, then the destination contains two destinations, which are the RPR, then the destination contains two destinations, which are the
relay peer's Node-ID and the sending peer's Node-ID. relay peer's Node-ID and the sending peer's Node-ID.
6.3. Creating a request 5.3. Creating a request
6.3.1. Creating a request for RPR 5.3.1. Creating a request for RPR
When using RPR for a transaction, the sending peer MUST set the When using RPR for a transaction, the sending peer MUST set the
IGNORE-STATE-KEEPING flag in the ForwardingHeader. Additionally, the IGNORE-STATE-KEEPING flag in the ForwardingHeader. Additionally, the
peer MUST construct and include a ForwardingOptions structure in the peer MUST construct and include a ForwardingOptions structure in the
ForwardingHeader. When constructing the ForwardingOption structure, ForwardingHeader. When constructing the ForwardingOption structure,
the fields MUST be set as follows: the fields MUST be set as follows:
1) The type MUST be set to extensive_routing_mode. 1) The type MUST be set to extensive_routing_mode.
2) The ExtensiveRoutingModeOption structure MUST be used for the 2) The ExtensiveRoutingModeOption structure MUST be used for the
skipping to change at page 10, line 21 skipping to change at page 8, line 37
2.2) transport set as appropriate for the relay peer. 2.2) transport set as appropriate for the relay peer.
2.3) ipaddressport set to the transport address of the relay peer 2.3) ipaddressport set to the transport address of the relay peer
that the sender wishes the message to be relayed through. that the sender wishes the message to be relayed through.
2.4) destination structure MUST contain two values. The first MUST 2.4) destination structure MUST contain two values. The first MUST
be defined as type node and set with the values for the relay peer. be defined as type node and set with the values for the relay peer.
The second MUST be defined as type node and set with the sending The second MUST be defined as type node and set with the sending
peer's own values. peer's own values.
6.4. Request and response processing 5.4. Request and response processing
This section gives normative text for message processing after RPR is This section gives normative text for message processing after RPR is
introduced. Here, we only describe the additional procedures for introduced. Here, we only describe the additional procedures for
supporting RPR. Please refer to [I-D.ietf-p2psip-base] for RELOAD supporting RPR. Please refer to [RFC6940] for RELOAD base
base procedures. procedures.
6.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 using SRR to return an "Error_Unknown_Extension" response attempt using 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 RPR, the destination peer MUST construct a If the routing mode is RPR, the destination peer MUST construct a
destination_list for the response with two entries. The first MUST destination_list for the response with two entries as defined in
be set to the relay peer Node-ID from the option in the request and [RFC6940]. The first MUST be set to the relay peer Node-ID from the
the second MUST be the sending peer Node-ID from the option of the option in the request and the second MUST be the sending peer Node-ID
request. from the option of the request.
In the event that the routing mode is set to RPR and there are not In the event that the routing mode is set to RPR and there are not
exactly two destinations, the destination peer MUST try to send an exactly two destinations, the destination peer MUST try to send 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 retransmit with SRR preference on the message it is trying to
response to now, the responding peer SHOULD abort the RPR response response to now, the responding peer SHOULD abort the RPR response
and use SRR. and use SRR.
6.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]. If the sender used RPR and does not get a response If the sender used RPR and does not get a response until the timeout,
until the timeout, it MAY either resend the message using RPR but it MAY either resend the message using RPR but with a different relay
with a different relay peer (if available), or resend the message peer (if available), or resend the message using SRR.
using SRR.
6.4.3. Relay peer processing 5.4.3. Relay peer processing
Relay peers are designed to forward responses to peers who are not Relay peers are designed to forward responses to peers who are not
publicly reachable. For the routing of the response, this document publicly reachable. For the routing of the response, this document
still uses the destination_list. The only difference from SRR is still uses the destination_list. The only difference from SRR is
that the destination_list is not the reverse of the via_list. that the destination_list is not the reverse of the via_list.
Instead, it is constructed from the forwarding option as described Instead, it is constructed from the forwarding option as described
below. below.
When a relay peer receives a response, it MUST follow the rules in When a relay peer receives a response, it MUST follow the rules in
[I-D.ietf-p2psip-base]. It receives the response, validates the [RFC6940]. It receives the response, validates the message, re-
message, re-adjust the destination_list and forward the response to adjust the destination_list and forward the response to the next hop
the next hop in the destination_list based on the connection table. in the destination_list based on the connection table. There is no
There is no added requirement for relay peer. added requirement for relay peer.
7. Overlay configuration extension 6. Overlay configuration extension
This document uses the new RELOAD overlay configuration element, This document uses the new RELOAD overlay configuration element,
"route-mode", inside each "configuration" element, as defined in "route-mode", inside each "configuration" element, as defined in
Section 7 of the DRR document [I-D.ietf-p2psip-drr]. Section 6 of the DRR document [I-D.ietf-p2psip-drr]. The route mode
MUST be "RPR".
8. Discovery of relay peers 7. Discovery of relay peers
There are several ways to distribute the information about relay There are several ways to distribute the information about relay
peers throughout the overlay. P2P network providers can deploy some peers throughout the overlay. P2P network providers can deploy some
relay peers and advertise them in the configuration file. With the relay peers and advertise them in the configuration file. With the
configuration file at hand, peers can get relay peers to try RPR. configuration file at hand, peers can get relay peers to try RPR.
Another way is to consider relay peer as a service and then some Another way is to consider relay peer as a service and then some
service advertisement and discovery mechanism can also be used for service advertisement and discovery mechanism can also be used for
discovering relay peers, for example, using the same mechanism as discovering relay peers, for example, using the same mechanism as
used in TURN server discovery in base RELOAD [I-D.ietf-p2psip-base]. used in TURN server discovery in base RELOAD [RFC6940]. Another
Another option is to let a peer advertise its capability to be a option is to let a peer advertise its capability to be a relay in the
relay in the response to ATTACH or JOIN. response to ATTACH or JOIN.
9. Security Considerations 8. Security Considerations
The normative security recommendations of Section 13 of base draft
[I-D.ietf-p2psip-base] are applicable to this document. As a routing
alternative, the security part of RPR conforms to Section 13.6 of the
base draft which describes routing security. RPR behaves like a DRR
requesting node towards the destination node. The RPR relay node is
not an arbitrary node but SHOULD be a trusted one (managed network,
bootstrap nodes or configured relay) which will make it less of a
risk as outlined in section13 of the based draft.
10. IANA Considerations The normative security recommendations of Section 13 of base draft
[RFC6940] are applicable to this document. As a routing alternative,
the security part of RPR conforms to Section 13.6 of the base draft
which describes routing security. RPR behaves like a DRR requesting
node towards the destination node. The RPR relay node may be not an
arbitrary node, for example, managed network, bootstrap nodes or
configured relay which will make it less of a risk as outlined in
Section 13 of the based draft [RFC6940].
10.1. A new RELOAD Forwarding Option In order to address possible DOS attacks, the relay SHOULD also limit
the number of maximum connections, this is required also to reduce to
load on the relay as explained in Section 4.1.
A new RELOAD Forwarding Option type is added to the Forwarding Option 9. IANA Considerations
Registry defined in [I-D.ietf-p2psip-base].
Type: 0x02 - extensive_routing_mode No IANA update.
11. Acknowledgments 10. Acknowledgments
David Bryan has helped extensively with this document, and helped David Bryan has helped extensively with this document, and helped
provide some of the text, analysis, and ideas contained here. The provide some of the text, analysis, and ideas contained here. The
authors would like to thank Ted Hardie, Narayanan Vidya, Dondeti authors would like to thank Ted Hardie, Narayanan Vidya, Dondeti
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.
12. References 11. References
12.1. Normative References 11.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.
[I-D.ietf-p2psip-drr] Zong, N., Jiang, X., Even, R. and Zhang, Y., [I-D.ietf-p2psip-drr] Zong, N., Jiang, X., Even, R. and Zhang, Y.,
"An extension to RELOAD to support Direct Response Routing", draft- "An extension to RELOAD to support Direct Response Routing", draft-
ietf-p2psip-drr-11 (work in progress), October 2013. ietf-p2psip-drr-12 (work in progress), February 2014.
12.2. Informative References 11.2. Informative References
[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.
[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.
13. 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 RPR can be used. It summarizes some methods which can not specify if RPR 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 RPR to function correctly, a peer may attempt to determine For RPR to function correctly, a peer may attempt to determine
whether it is publicly reachable. If it is not, RPR may be chosen to whether it is publicly reachable. If it is not, RPR may be chosen to
route the response with the help from relay peers, or the peers route the response with the help from relay peers, or the peers
should fall back to SRR. NATs and firewalls are two major should fall back to SRR. NATs and firewalls are two major
contributors preventing RPR from functioning properly. There are a contributors preventing RPR from functioning properly. There are a
number of techniques by which a peer can get its reflexive address on number of techniques by which a peer can get its reflexive address on
the public side of the NAT. After obtaining the reflexive address, a the 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 14, line 5 skipping to change at page 12, line 13
peers in the overlay. P2P routing algorithms can easily deliver a peers in the overlay. P2P routing algorithms can easily deliver a
request from a sending peer to a peer with whom the sending peer has request from a sending peer to a peer with whom the sending peer has
no direct connection. This makes it easy for a peer to ask other no direct connection. This makes it easy for a peer to ask other
peers to send unsolicited messages back to the requester. peers to send unsolicited messages back to the requester.
The approaches for a peer to get the addresses needed for the further The approaches for a peer to get the addresses needed for the further
tests, as well as the test for learning whether a peer may be tests, as well as the test for learning whether a peer may be
publicly reachable is same as the DRR case. Please refer to DRR publicly reachable is same as the DRR case. Please refer to DRR
document [I-D.ietf-p2psip-drr] for more details. document [I-D.ietf-p2psip-drr] for more details.
Appendix B. Comparison on cost of SRR and RPR
The major advantage of the use of RPR is that it reduces the number
of intermediate peers traversed by the response. By doing that, it
reduces the load on those peers' resources like processing and
communication bandwidth.
B.1. Closed or managed networks
As described in Section 3, many P2P systems run in a closed or
managed environment (e.g., carrier networks) so that network
administrators would know that they could safely use RPR.
The number of hops for a response in SRR and RPR are listed in the
following table. Note that the same illustrative settings can be
found in DRR document [I-D.ietf-p2psip-drr].
Mode | Success | No. of Hops | No. of Msgs
----------------------------------------------------
SRR | Yes | log(N) | log(N)
RPR | Yes | 2 | 2
RPR(DTLS) | Yes | 2 | 7+2
Table 1. Comparison of SRR and RPR in closed networks
From the above comparison, it is clear that:
1) In most cases when the number of peers N > 4 (2^2), RPR uses fewer
hops than SRR. Using a shorter route means less overhead and
resource usage on intermediate peers, which is an important
consideration for adopting RPR in the cases where the resources such
as CPU and bandwidth are limited, e.g., the case of mobile, wireless
networks.
2) In the cases when N > 512 (2^9), RPR also uses fewer messages than
SRR.
3) In the cases when N < 512, RPR uses more messages than SRR (but
still uses fewer hops than SRR). So the consideration on whether
using RPR or SRR depends on other factors like using less resources
(bandwidth and processing) from the intermediate peers. Section 4
provides use cases where RPR has better chance to work or where the
intermediary resources considerations are important.
B.2. Open networks
In open networks (e.g., Internet) where RPR is not guaranteed to
work, RPR can fall back to SRR if it fails after trial, as described
in Section 4. Based on the same settings of Section B.1, the number
of hops, number of messages for a response in SRR and RPR are listed
in the following table.
Mode | Success | No. of Hops | No. of Msgs
-----------------------------------------------------------
SRR | Yes | log(N) | log(N)
RPR | Yes | 2 | 2
| Fail&Fall back to SRR | 2+log(N)| 2+log(N)
RPR(DTLS) | Yes | 2 | 7+2
| Fail&Fall back to SRR | 2+log(N)| 9+log(N)
Table 2. Comparison of SRR and RPR in open networks
From the above comparison, it can be observed that trying to first
use RPR could still provide an overall number of hops lower than
directly using SRR. The detailed analysis is same as DRR case and
can be found in DRR document [I-D.ietf-p2psip-drr].
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. 53 change blocks. 
211 lines changed or deleted 199 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/