draft-ietf-p2psip-rpr-11.txt   rfc7264.txt 
P2PSIP N. Zong, Ed. Internet Engineering Task Force (IETF) N. Zong
Internet-Draft X. Jiang Request for Comments: 7264 X. Jiang
Intended status: Standards Track R. Even Category: Standards Track R. Even
Expires: April 24, 2014 Huawei Technologies ISSN: 2070-1721 Huawei Technologies
Y. Zhang Y. Zhang
CoolPad CoolPad / China Mobile
October 21, 2013 June 2014
An Extension to REsource LOcation And Discovery (RELOAD) Protocol to An Extension to the REsource LOcation And Discovery (RELOAD) Protocol
Support Relay Peer Routing to Support Relay Peer Routing
draft-ietf-p2psip-rpr-11
Abstract Abstract
This document proposes an optional extension to REsource LOcation And This document defines an optional extension to the REsource LOcation
Discovery (RELOAD) protocol to support relay peer routing mode. And Discovery (RELOAD) protocol to support the relay peer routing
RELOAD recommends symmetric recursive routing for routing messages. mode. RELOAD recommends symmetric recursive routing for routing
The new optional extension provides a shorter route for responses messages. The new optional extension provides a shorter route for
reducing the overhead on intermediate peers and describes the responses, thereby reducing overhead on intermediate peers. This
potential use cases where this extension can be used. document also describes potential cases where this extension can be
used.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
This Internet-Draft will expire on April 24, 2014. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7264.
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 .....................................................4
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Overview ........................................................5
3. Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.1. RPR ........................................................5
3.1. RPR . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. Scenarios Where RPR Can Be Used ............................6
3.2. Scenarios where RPR can be used . . . . . . . . . . . . . 5 3.2.1. Managed or Closed P2P Systems .......................6
3.2.1. Managed or closed P2P systems . . . . . . . . . . . . 5 3.2.2. Using Bootstrap Nodes as Relay Peers ................7
3.2.2. Using bootstrap nodes as relay peers . . . . . . . . 5 3.2.3. Wireless Scenarios ..................................7
3.2.3. Wireless scenarios . . . . . . . . . . . . . . . . . 6 4. Relationship between SRR and RPR ................................7
4. Relationship between SRR and RPR . . . . . . . . . . . . . . 6 4.1. How RPR Works ..............................................7
4.1. How RPR works . . . . . . . . . . . . . . . . . . . . . . 6 4.2. How SRR and RPR Work Together ..............................7
4.2. How SRR and RPR work together . . . . . . . . . . . . . . 6 5. RPR Extensions to RELOAD ........................................8
5. Comparison on cost of SRR and RPR . . . . . . . . . . . . . . 7 5.1. Basic Requirements .........................................8
5.1. Closed or managed networks . . . . . . . . . . . . . . . 7 5.2. Modification to RELOAD Message Structure ...................8
5.2. Open networks . . . . . . . . . . . . . . . . . . . . . . 7 5.2.1. Extensive Routing Mode ..............................8
6. RPR extensions to RELOAD . . . . . . . . . . . . . . . . . . 8 5.3. Creating a Request .........................................9
6.1. Basic requirements . . . . . . . . . . . . . . . . . . . 8 5.3.1. Creating a Request for RPR ..........................9
6.2. Modification to RELOAD message structure . . . . . . . . 8 5.4. Request and Response Processing ............................9
6.2.1. State-keeping flag . . . . . . . . . . . . . . . . . 8 5.4.1. Destination Peer: Receiving a Request and
6.2.2. Extensive routing mode . . . . . . . . . . . . . . . 9 Sending a Response ..................................9
6.3. Creating a request . . . . . . . . . . . . . . . . . . . 9 5.4.2. Sending Peer: Receiving a Response .................10
6.3.1. Creating a request for RPR . . . . . . . . . . . . . 9 5.4.3. Relay Peer Processing ..............................10
6.4. Request and response processing . . . . . . . . . . . . . 10 6. Overlay Configuration Extension ................................10
6.4.1. Destination peer: receiving a request and sending a 7. Discovery of Relay Peers .......................................11
response . . . . . . . . . . . . . . . . . . . . . . 10 8. Security Considerations ........................................11
6.4.2. Sending peer: receiving a response . . . . . . . . . 11 9. IANA Considerations ............................................11
6.4.3. Relay peer processing . . . . . . . . . . . . . . . . 11 9.1. A New RELOAD Forwarding Option ............................11
7. Overlay configuration extension . . . . . . . . . . . . . . . 11 10. Acknowledgments ...............................................11
8. Discovery of relay peers . . . . . . . . . . . . . . . . . . 11 11. References ....................................................12
9. Security Considerations . . . . . . . . . . . . . . . . . . . 11 11.1. Normative References .....................................12
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 11.2. Informative References ...................................12
10.1. A new RELOAD Forwarding Option . . . . . . . . . . . . . 12 Appendix A. Optional Methods to Investigate Peer Connectivity .....13
11. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 12 Appendix B. Comparison of Cost of SRR and RPR .....................14
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 B.1. Closed or Managed Networks .................................14
12.1. Normative References . . . . . . . . . . . . . . . . . . 12 B.2. Open Networks ..............................................15
12.2. Informative References . . . . . . . . . . . . . . . . . 12
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- The 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. In addition to 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
(RPR) are also discussed in Appendix A of [I-D.ietf-p2psip-base]. As also discussed in Appendix A of [RFC6940]. As we show in Section 3,
we show in section 3, RPR is advantageous over SRR in some scenarios RPR is advantageous over SRR in some scenarios in that RPR can reduce
reducing load (CPU and link bandwidth) on intermediate peers. RPR load (CPU and link bandwidth) on intermediate peers. RPR works
works better in a network where relay peers are provisioned in better in a network where relay peers are provisioned in advance so
advance so that relay peers are publicly reachable in the P2P system. that relay peers are publicly reachable in the P2P system. In other
In other scenarios, using a combination of RPR and SRR together is scenarios, using a combination of RPR and SRR together is more likely
more likely to bring benefits than if SRR is used alone. to provide benefits 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 the RPR 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 [RFC7263] for details on the DRR mode.
We first discuss the problem statement in Section 3, then how to We first discuss the problem statement in Section 3. How to combine
combine RPR and SRR is presented in Section 4. In Section 5, we give RPR and SRR is presented in Section 4. An extension to RELOAD to
comparison on the cost of SRR and RPR in both managed and open support RPR is defined in Section 5. Discovery of relay peers is
networks. An extension to RELOAD to support RPR is proposed in introduced in Section 7. Some optional methods to check peer
Section 6. Discovery of relay peers is introduced in Section 7. connectivity are introduced in Appendix A. In Appendix B, we give a
Some optional methods to check peer connectivity are introduced in comparison of 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 terminology and definitions from the base RELOAD specification
[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 the NAT behavior discovery document [RFC5780]. Other terms used in
in this document are defined inline when used and are also defined this document are defined inline when used and are also defined below
below for reference. for 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 relay peer is a type of publicly reachable peer that
unsolicited messages from all other peers in the overlay and can receive unsolicited messages from all other peers in the
forward the responses from destination peers towards the sender of overlay and forward the responses from destination peers towards
the request. the sender of the request.
Relay Peer Routing (RPR): refers to a routing mode in which Relay Peer Routing (RPR): "RPR" refers to a routing mode in which
responses to P2PSIP requests are sent by the destination peer to a responses to Peer-to-Peer SIP (P2PSIP) requests are sent by the
relay peer transport address who will forward the responses destination peer to a relay peer transport address that will
towards the sending peer. For simplicity, the abbreviation RPR is forward the responses towards the sending peer. For simplicity,
used instead in the rest of the document. the abbreviation "RPR" is used in the rest of this document.
Symmetric Recursive Routing (SRR): refers to a routing mode in Symmetric Recursive Routing (SRR): "SRR" refers to a routing mode
which responses follow the reverse path of the request to get to in which responses follow the reverse path of the request to get
the sending peer. For simplicity, the abbreviation SRR is used to the sending peer. For simplicity, the abbreviation "SRR" is
instead in the rest of the document. used in the rest of this document.
Direct Response Routing (DRR): "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 in the rest of this 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
like system intended to provide public service, while others run in Skype-like system intended to provide public service, while others
closed networks of small scale. SRR works in any situation, but RPR run in small-scale closed networks. SRR works in any situation, but
may work better in some specific scenarios. RPR may work better in some specific scenarios.
3.1. RPR 3.1. RPR
RELOAD is a simple request-response protocol. After sending a RELOAD is a simple request-response protocol. After sending a
request, a peer waits for a response from a destination peer. There request, a peer waits for a response from a destination peer. There
are several ways for the destination peer to send a response back to are several ways for the destination peer to send a response back to
the source peer. In this section, we will provide detailed the source peer. In this section, we will provide detailed
information on RPR. Note that the same illustrative settings can be information on RPR. Note that the same types of illustrative
found in DRR document [I-D.ietf-p2psip-drr]. settings can be found in Appendix B.1 of [RFC7263].
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 had prior connections, peer A can try
RPR. Assume A is associated with relay peer R. When sending the RPR. Assume that peer A is associated with relay peer R. When
request, peer A includes information describing peer R transport sending the request, peer A includes information describing peer R's
address in the request. When peer X receives the request, peer X transport address in the request. When peer X receives the request,
sends the response to peer R, which forwards it directly to Peer A on peer X sends the response to peer R, which forwards it directly to
the existing connection. Figure 1 illustrates RPR. Note that RPR peer A on the existing connection. Figure 1 illustrates RPR. Note
also allows a shorter route for responses compared to SRR, which that RPR also allows a shorter route for responses compared to SRR;
means less overhead on intermediate peers. Establishing a connection this means less overhead on intermediate peers. Establishing a
to the relay with TLS requires multiple round trips. Please refer to connection to the relay with Transport Layer Security (TLS) requires
Section 5 for cost comparison between SRR and RPR. multiple round trips. Please refer to Appendix B for a 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 | |
| | | |----------->| | | | | |----------->| |
| | | | | Response | | | | | | Response |
| | | | |---------->| | | | | |---------->|
| | | | Response | | | | | | Response | |
|<-----------+------------+------------+------------+-----------| |<-----------+------------+------------+------------+-----------|
| | | | | | | | | | | |
Figure 1. RPR routing mode Figure 1: RPR Mode
This technique relies on the relative population of peers such as A This technique relies on the relative population of peers such as
that require relay peers, and peers such as R that are capable of peer A that require relay peers, and peers such as peer R that are
serving as a relay peers. It also requires a mechanism to enable capable of serving as relay peers. It also requires a mechanism to
peers to know which peers can be used as their relays. This enable peers to know which peers can be used as their relays. This
mechanism may be based on configuration, for example as part of the mechanism may be based on configuration -- for example, as part of
overlay configuration an initial list of relay peers can be supplied. the overlay configuration, an initial list of relay peers can be
Another option is in a response message, the responding peer can supplied. Another option is a response message in which the
announce that it can serve as a relay peer. responding peer can announce that it can serve as a relay peer.
3.2. Scenarios where RPR can be used 3.2. Scenarios Where RPR Can Be Used
In this section, we will list several scenarios where using RPR would In this section, we will list several scenarios where using RPR would
provide an improved performance. improve performance.
3.2.1. Managed or closed P2P systems 3.2.1. Managed or Closed P2P Systems
As described in Section 3.2.1 of DRR draft [I-D.ietf-p2psip-drr], As described in Section 3.2.1 of [RFC7263], many P2P systems run in a
many P2P systems run in a closed or managed environment so that closed or managed environment so that network administrators can
network administrators can better manage their system. For example, better manage their system. For example, the network administrator
the network administrator can deploy several relay peers which are can deploy several relay peers that are publicly reachable in the
publicly reachable in the system and indicate their presence in the system and indicate their presence in the configuration file. After
configuration file. After learning where these relay peers are, learning where these relay peers are, peers behind NATs can use RPR
peers behind NATs can use RPR with the help from these relay peers. with help from these relay peers. Peers MUST also support SRR in
Peers MUST also support SRR in case RPR fails. case RPR fails.
Another usage is to install relay peers on the managed network Another usage is to install relay peers on the managed network
boundary allowing external peers to send responses to peers inside boundary, allowing external peers to send responses to peers inside
the managed network. the managed network.
3.2.2. Using bootstrap nodes as relay peers 3.2.2. Using Bootstrap Nodes as Relay Peers
Bootstrap nodes are typically publicly reachable in a RELOAD Bootstrap nodes are typically publicly reachable in a RELOAD
architecture. As a result, one possible architecture would be to use architecture. As a result, one possible scenario would be to use the
the bootstrap nodes as relay peers for use with RPR. A relay peer bootstrap nodes as relay peers for use with RPR. A relay peer SHOULD
SHOULD be publicly accessible and maintain a direct connection with be publicly accessible and maintain a direct connection with its
its client. As such, bootstrap nodes are well suited to play the client. As such, bootstrap nodes are well suited to play the role of
role of relay peers. relay peers.
3.2.3. Wireless scenarios 3.2.3. Wireless Scenarios
In some mobile deployments, using RPR may help reducing radio battery In some mobile deployments, using RPR may help reduce radio battery
usage and bandwidth by the intermediate peers. The service provider usage and bandwidth by the intermediate peers. The service provider
may recommend using RPR based on his/her knowledge of the topology. may recommend using RPR based on his knowledge of the topology.
4. Relationship between SRR and RPR 4. Relationship between SRR and RPR
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 using the Attach method [RFC6940].
A requirement for RPR is for the source peer to convey their relay A requirement for RPR is that the source peer convey its relay peer's
peer (or peers) transport address in the request, so the destination (or peers') transport address(es) 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 peers are and will send the response to a
peer first. The request SHOULD include also the requesting peer relay peer first. The request MUST also include the requesting
information enabling the relay peer to route the response back to the peer's Node-ID or IP address, which enables the relay peer to route
right peer. the response back 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
more functionality than an ordinary peer. As discussed later, relay have more functionality than an ordinary peer. Relay peers comply
peers comply with the same procedure as an ordinary peer to forward with the same procedure as an ordinary peer to forward messages. The
messages. The only difference is that there may be a larger traffic only difference is that there may be a larger traffic burden on relay
burden on relay peers. Relay peers can decide whether to accept a peers. Relay peers can decide whether to accept a new connection
new connection based on their current burden. 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 for how to transition between SRR and RPR
are the same with that of DRR. Please refer to DRR document [I-D are the same as those for DRR. Please refer to Section 4.2 of
.ietf-p2psip-drr] for more details. If a relay peer is provided by [RFC7263] for more details. If a relay peer is provided by the
the service provider, peers MAY prefer RPR over SRR. Otherwise, service provider, peers SHOULD prefer RPR over SRR. However, RPR
using RPR SHOULD be discouraged in the open Internet or if the SHOULD NOT be used in the open Internet or if the administrator does
administrator does not feel he have enough information about the not feel he has enough information about the overlay network
overlay. A new overlay configuration element specifying the usage of topology. A new overlay configuration element specifying the usage
DRR is defined in Section 7. of RPR 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 required extensions,
protocol, including extensions to message structure and to message including extensions to message structure and 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
MAY support RPR routing requests. 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 for the
and present a state-keeping flag to support RPR mode. extensive routing mode specified in [RFC7263]. The state-keeping
flag [RFC7263] is needed to support the 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;
Note that DRR value in RouteMode is defined in DRR document [I-D Note that the DRR value in RouteMode is defined in [RFC7263].
.ietf-p2psip-drr].
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 that is used to deliver
deliver responses from the destination peer to the relay peer. 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 for sending responses. 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 items: the relay peer's
relay peer's Node-ID and the sending peer's Node-ID. 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 ForwardingOption 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
option field within the ForwardingOptions structure. The fields MUST option field within the ForwardingOption structure. The fields
be defined as follows: MUST be defined as follows:
2.1) routemode set to 0x02 (RPR). 2.1) routemode set to 0x02 (RPR).
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
that the sender wishes the message to be relayed through. peer through which the sender wishes the message relayed.
2.4) destination structure MUST contain two values. The first MUST 2.4) The destination structure MUST contain two values. The
be defined as type node and set with the values for the relay peer. first MUST be defined as type "node" and set with the
The second MUST be defined as type node and set with the sending values for the relay peer. The second MUST be defined as
peer's own values. type "node" and set with the sending 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 cannot
understand extensive_routing_mode option in the request, it MUST understand the extensive_routing_mode option in the request, it MUST
attempt using 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 Sections 6.3.3.1 and 14.9 of [RFC6940]) to the sending
base]) to the sending peer. 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 entry MUST be set to the relay peer's Node-ID
the second MUST be the sending peer Node-ID from the option of the from the option in the request, and the second entry MUST be the
request. sending peer's Node-ID from the option in 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 Sections 6.3.3.1 and
Section 14.9 of [I-D.ietf-p2psip-base]) to the sending peer using 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
ipaddressport field in the option using the specific transport mode the ipaddressport field in the option using the specific transport
in the Forwardingoption. If the destination peer receives a mode 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 respond
response to now, the responding peer SHOULD abort the RPR response to now, the responding peer SHOULD abort the RPR response and
and use SRR. 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 did not get a response until the timeout,
until the timeout, it MAY either resend the message using RPR but it MAY resend the message using either RPR (but with a different
with a different relay peer (if available), or resend the message relay peer, if available) or 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,
message, re-adjust the destination_list and forward the response to readjusts the destination_list, and forwards the response to the next
the next hop in the destination_list based on the connection table. hop in the destination_list based on the connection table. There is
There is no added requirement for relay peer. no added requirement for the 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 [RFC7263]. 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 information about relay peers
peers throughout the overlay. P2P network providers can deploy some throughout the overlay. P2P network providers can deploy some relay
relay peers and advertise them in the configuration file. With the 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 the relay peer as a service; some service
service advertisement and discovery mechanism can also be used for advertisement and discovery mechanism can then 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]. that used in Traversal Using Relays around NAT (TURN) server
Another option is to let a peer advertise its capability to be a discovery as discussed in [RFC6940]. Another option is to let a peer
relay in the response to ATTACH or JOIN. advertise its capability to be a relay in the response to an Attach
or Join [RFC6940].
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 [RFC6940] are
applicable to this document. As a routing alternative, the security
part of RPR conforms to Section 13.6 of [RFC6940], which describes
routing security. RPR behaves like a DRR requesting node towards the
destination node. The RPR relay peer is not necessarily an arbitrary
node -- for example, a managed network, a bootstrap node, or a
configured relay peer; it should be a trusted node, because a trusted
node will be less of a risk, as outlined in Section 13 of [RFC6940].
10.1. A new RELOAD Forwarding Option In order to address possible DoS attacks, the relay peer SHOULD also
limit the number of maximum connections; this is required in order to
also reduce load on the relay peer, 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 9.1. A New RELOAD Forwarding Option
11. Acknowledgments A new RELOAD Forwarding Option type has been added to the "RELOAD
Forwarding Option Registry" defined in [RFC6940].
David Bryan has helped extensively with this document, and helped Code: 2
provide some of the text, analysis, and ideas contained here. The Forwarding Option: extensive_routing_mode
authors would like to thank Ted Hardie, Narayanan Vidya, Dondeti
Lakshminath, Bruce Lowekamp, Stephane Bryant, Marc Petit-Huguenin and
Carlos Jesus Bernardos Cano for their constructive comments.
12. References 10. Acknowledgments
12.1. Normative References David Bryan helped extensively with this document and helped provide
some of the text, analysis, and ideas contained here. The authors
would like to thank Ted Hardie, Narayanan Vidya, Dondeti Lakshminath,
Bruce Lowekamp, Stephane Bryant, Marc Petit-Huguenin, and Carlos
Jesus Bernardos Cano for their constructive comments.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 11. References
Requirement Levels", BCP 14, RFC2119, March 1997.
[I-D.ietf-p2psip-base] Jennings, C., Lowekamp, B., Rescorla, E., 11.1. Normative References
Baset, S., and H. Schulzrinne, "REsource LOcation And Discovery
(RELOAD) Base Protocol", draft-ietf-p2psip-base-26 (work in
progress), February 2013.
[I-D.ietf-p2psip-drr] Zong, N., Jiang, X., Even, R. and Zhang, Y., [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
"An extension to RELOAD to support Direct Response Routing", draft- Requirement Levels", BCP 14, RFC 2119, March 1997.
ietf-p2psip-drr-11 (work in progress), October 2013.
12.2. Informative References [RFC6940] Jennings, C., Lowekamp, B., Rescorla, E., Baset, S., and
H. Schulzrinne, "REsource LOcation And Discovery (RELOAD)
Base Protocol", RFC 6940, January 2014.
[RFC5780] MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery [RFC7263] Zong, N., Jiang, X., Even, R., and Y. Zhang, "An Extension
Using STUN", RFC5780, May 2010. to the REsource LOcation And Discovery (RELOAD) Protocol
to Support Direct Response Routing", RFC 7263, June 2014.
[RFC3424] Daigle, L., "IAB Considerations for UNilateral Self-Address 11.2. Informative References
Fixing (UNSAF) Across Network Address Translation", RFC3424, November
2002.
13. References [RFC3424] Daigle, L. and IAB, "IAB Considerations for UNilateral
Self-Address Fixing (UNSAF) Across Network Address
Translation", RFC 3424, November 2002.
Appendix A. Optional methods to investigate peer connectivity [RFC5780] MacDonald, D. and B. Lowekamp, "NAT Behavior Discovery
Using Session Traversal Utilities for NAT (STUN)",
RFC 5780, May 2010.
This section is for informational purposes only for providing some Appendix A. Optional Methods to Investigate Peer Connectivity
This section is for informational purposes only and provides 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 that can
be used for a peer to determine its own network location compared be used by a peer to determine its own network location compared with
with NAT. These methods may help a peer to decide which routing mode NAT. These methods may help a peer to decide which routing mode it
it may wish to try. Note that there is no foolproof way to determine 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 whether a peer is publicly reachable, other than via out-of-band
mechanisms. This document addresses the UNSAF [RFC3424] concerns by mechanisms. This document addresses UNilateral Self-Address Fixing
specifying a fallback plan to SRR [p2psip-base-draft]. SRR is not an (UNSAF) [RFC3424] considerations by specifying a fallback plan to SRR
UNSAF mechanism. The document does not define any new UNSAF [RFC6940]. SRR is not an UNSAF mechanism. This document does not
mechanisms. define any new UNSAF 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 help from relay peers, or the peers should
should fall back to SRR. NATs and firewalls are two major fall back to SRR. NATs and firewalls are two major contributors to
contributors preventing RPR from functioning properly. There are a preventing RPR from functioning properly. There are a number of
number of techniques by which a peer can get its reflexive address on techniques by which a peer can get its reflexive address on the
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
reachable, the peers to which the address belongs can be a candidate reachable, the peer to which the address belongs can be a candidate
to serve as a relay peer. Peers which are not publicly reachable may to serve as a relay peer. Peers that are not publicly reachable may
still use RPR to shorten the response path with the help from relay still use RPR to shorten the response path, with help from relay
peers. peers.
Some conditions are unique in P2PSIP architecture which could be Some conditions that are unique in P2PSIP architecture could be
leveraged to facilitate the tests. In P2P overlay network, each peer leveraged to facilitate the tests. In a P2P overlay network, each
only has partial a view of the whole network, and knows of a few peer has only a partial view of the whole network and knows of a few
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 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, are the same as those for DRR. Please refer to
document [I-D.ietf-p2psip-drr] for more details. Appendix A of [RFC7263] for more details.
Appendix B. Comparison of Cost of SRR and RPR
The major advantage of using RPR is that it reduces the number of
intermediate peers traversed by the response. This reduces the load,
such as processing and communication bandwidth, on those peers'
resources.
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 network
administrators would know that they could safely use RPR.
The number of hops for a response in SRR and in RPR are listed in the
following table. Note that the same types of illustrative settings
can be found in Appendix B.1 of [RFC7263].
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 such resources
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 of whether
to use RPR or SRR depends on other factors such as using less
resources (bandwidth and processing) from the intermediate peers.
Section 4 provides use cases where RPR has a better chance of
working or where the considerations of intermediary resources are
important.
B.2. Open Networks
In open networks (e.g., the Internet) where RPR is not guaranteed to
work, RPR can fall back to SRR if it fails after trial, as described
in Section 4.2. Based on the same settings as those listed in
Appendix B.1, the number of hops, as well as the 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 the same as that for
DRR and can be found in [RFC7263].
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
Huawei Technologies Huawei Technologies
Email: roni.even@mail01.huawei.com EMail: roni.even@mail01.huawei.com
Yunfei Zhang Yunfei Zhang
CoolPad CoolPad / China Mobile
Email: hishigh@gmail.com EMail: hishigh@gmail.com
 End of changes. 107 change blocks. 
416 lines changed or deleted 409 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/