summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc7890.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc7890.txt')
-rw-r--r--doc/rfc/rfc7890.txt1067
1 files changed, 1067 insertions, 0 deletions
diff --git a/doc/rfc/rfc7890.txt b/doc/rfc/rfc7890.txt
new file mode 100644
index 0000000..fa9d892
--- /dev/null
+++ b/doc/rfc/rfc7890.txt
@@ -0,0 +1,1067 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) D. Bryan
+Request for Comments: 7890 Cogent Force, LLC
+Category: Informational P. Matthews
+ISSN: 2070-1721 Nokia
+ E. Shim
+ Samsung Electronics Co., Ltd.
+ D. Willis
+ Softarmor Systems
+ S. Dawkins
+ Huawei (USA)
+ June 2016
+
+
+ Concepts and Terminology for Peer-to-Peer SIP (P2PSIP)
+
+Abstract
+
+ This document defines concepts and terminology for using the Session
+ Initiation Protocol in a peer-to-peer environment where the
+ traditional proxy-registrar and message-routing functions are
+ replaced by a distributed mechanism. These mechanisms may be
+ implemented using a Distributed Hash Table or other distributed data
+ mechanism with similar external properties. This document includes a
+ high-level view of the functional relationships between the network
+ elements defined herein, a conceptual model of operations, and an
+ outline of the related problems addressed by the P2PSIP working
+ group, the REsource LOcation And Discovery (RELOAD) protocol, and the
+ SIP usage document defined by the working group.
+
+Status of This Memo
+
+ This document is not an Internet Standards Track specification; it is
+ published for informational purposes.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Not all documents
+ approved by the IESG are a candidate for any level of Internet
+ Standard; see Section 2 of RFC 7841.
+
+ 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/rfc7890.
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 1]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+Copyright Notice
+
+ Copyright (c) 2016 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Background . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 2. High-Level Description . . . . . . . . . . . . . . . . . . . 4
+ 2.1. Services . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 2.2. Clients . . . . . . . . . . . . . . . . . . . . . . . . . 4
+ 2.3. Relationship between P2PSIP and RELOAD . . . . . . . . . 5
+ 2.4. Relationship between P2PSIP and SIP . . . . . . . . . . . 5
+ 2.5. Relationship between P2PSIP and Other AoR-Dereferencing
+ Approaches . . . . . . . . . . . . . . . . . . . . . . . 6
+ 2.6. NAT Issues . . . . . . . . . . . . . . . . . . . . . . . 6
+ 3. Reference Model . . . . . . . . . . . . . . . . . . . . . . . 6
+ 4. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 8
+ 5. Discussion . . . . . . . . . . . . . . . . . . . . . . . . . 12
+ 5.1. The Distributed Database Function . . . . . . . . . . . . 12
+ 5.2. Using the Distributed Database Function . . . . . . . . . 13
+ 5.3. NAT Traversal . . . . . . . . . . . . . . . . . . . . . . 14
+ 5.4. Locating and Joining an Overlay . . . . . . . . . . . . . 14
+ 5.5. Clients and Connecting Unmodified SIP Devices . . . . . . 15
+ 5.6. Architecture . . . . . . . . . . . . . . . . . . . . . . 16
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 16
+ 7. Informative References . . . . . . . . . . . . . . . . . . . 16
+ Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 19
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 2]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+1. Background
+
+ One of the fundamental problems in multimedia communication between
+ Internet nodes is the rendezvous problem, or discovering the host at
+ which a given user can be reached. In the Session Initiation
+ Protocol (SIP) [RFC3261], this problem is expressed as the problem of
+ mapping an Address of Record (AoR) for a user into one or more
+ Contact URIs [RFC3986]. The AoR is a name for the user that is
+ independent of the host or hosts where the user can be contacted,
+ while a Contact URI indicates the host where the user can be
+ contacted.
+
+ In the common SIP-using architectures that we refer to as
+ "Conventional SIP" or "Client/Server SIP", there is a relatively
+ fixed hierarchy of SIP routing proxies and SIP user agents. To
+ deliver a SIP INVITE to the host or hosts at which the user can be
+ contacted, a SIP UA follows the procedures specified in [RFC3263] to
+ determine the IP address of a SIP proxy, and then sends the INVITE to
+ that proxy. The proxy will then, in turn, deliver the SIP INVITE to
+ the hosts where the user can be contacted.
+
+ This document gives a high-level description of an alternative
+ solution to this problem. In this alternative solution, the
+ relatively fixed hierarchy of Client/Server SIP is replaced by a
+ peer-to-peer overlay network. In this peer-to-peer overlay network,
+ the various mappings of AoRs to Contact URIs are not centralized at
+ proxy/registrar nodes but are instead distributed amongst the peers
+ in the overlay.
+
+ The details of this alternative solution are specified by the RELOAD
+ protocol [RFC6940], which defines a mechanism for distribution using
+ a Distributed Hash Table (DHT) and specifies the wire protocol,
+ security, and authentication mechanisms needed to convey this
+ information. This DHT protocol was designed specifically with the
+ purpose of enabling a distributed SIP registrar in mind. While
+ designing the protocol, other applications were considered, and then
+ design decisions were made that allow RELOAD to be used in other
+ instances where a DHT is desirable, but only when such decisions did
+ not add undue complexity to the RELOAD protocol. The RELOAD SIP
+ document [P2PSIP] specifies how RELOAD is used with the SIP protocol
+ to enable a distributed, server-less SIP solution.
+
+
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 3]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+2. High-Level Description
+
+ A Peer-to-Peer SIP (P2PSIP) Overlay is a collection of nodes
+ organized in a peer-to-peer fashion for the purpose of enabling real-
+ time communication using the Session Initiation Protocol (SIP).
+ Collectively, the nodes in the Overlay provide a distributed
+ mechanism for mapping names to Overlay locations. This provides for
+ the mapping of Addresses of Record (AoRs) to Contact URIs, thereby
+ providing the "location server" function of [RFC3261]. An Overlay
+ also provides a transport function by which SIP messages can be
+ transported between any two nodes in the Overlay.
+
+ A P2PSIP Overlay consists of one or more nodes called "Peers". The
+ nodes in the Overlay collectively run a distributed database
+ algorithm. This distributed database algorithm allows data to be
+ stored on nodes and retrieved in an efficient manner. It may also
+ ensure that a copy of a data item is stored on more than one node, so
+ that the loss of a node does not result in the loss of the data item
+ to the Overlay.
+
+ One use of this distributed database is to store the information
+ required to provide the mapping between AoRs and Contact URIs for the
+ distributed location function. This provides a location function
+ within each Overlay that is an alternative to the location functions
+ described in [RFC3263]. However, the model of [RFC3263] is used
+ between Overlays.
+
+2.1. Services
+
+ The nature of peer-to-peer computing is that each peer offers
+ services to other peers to allow the overlay to collectively provide
+ larger functions. In P2PSIP, Peers offer both distributed storage
+ and distributed message-routing services, allowing these functions to
+ be implemented across the Overlay. Additionally, the RELOAD protocol
+ offers a simplistic discovery mechanism specific to the Traversal
+ Using Relays around NAT (TURN) [RFC5766] protocol used for NAT
+ traversal. Individual Peers may also offer other services as an
+ enhancement to P2PSIP functionality (for example, to support
+ voicemail) or to support other applications beyond SIP. To support
+ these additional services, Peers may need to store additional
+ information in the Overlay. [RFC7374] describes the mechanism used
+ in P2PSIP for resource discovery.
+
+2.2. Clients
+
+ An Overlay may or may not also include one or more nodes called
+ "Clients". Clients are supported in the RELOAD protocol as peers
+ that have not joined the Overlay, and therefore do not route messages
+
+
+
+Bryan, et al. Informational [Page 4]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ or store information. Clients access the services of the RELOAD
+ protocol by connecting to a Peer that performs operations on the
+ behalf of the Client. Note that in RELOAD, there is no distinct
+ client protocol. Instead, a Client connects using the same protocol,
+ but never joins the Overlay as a Peer. For more information, see
+ [RFC6940].
+
+ A special Peer may also be a member of the P2PSIP Overlay and may
+ present the functionality of one or all of a SIP registrar, proxy, or
+ redirect server to conventional SIP devices (i.e., unmodified SIP
+ user agent (UA) or client). In this way, existing, unmodified SIP
+ clients may connect to the P2PSIP network. Note that in the context
+ of P2PSIP, the unmodified SIP client is also sometimes referred to as
+ a "client". These unmodified SIP devices do not speak the RELOAD
+ protocol, and this is a distinct concept from the notion of "Client"
+ discussed in the previous paragraph.
+
+2.3. Relationship between P2PSIP and RELOAD
+
+ The RELOAD protocol defined by the P2PSIP working group implements a
+ DHT primarily for use by server-less, peer-to-peer SIP deployments.
+ However, the RELOAD protocol could be used for other applications as
+ well. As such, a "P2PSIP" deployment is generally assumed to be a
+ use of RELOAD to implement distributed SIP, but it is possible that
+ RELOAD is used as a mechanism to distribute other applications,
+ completely unrelated to SIP.
+
+2.4. Relationship between P2PSIP and SIP
+
+ Since P2PSIP is about peer-to-peer networks for real-time
+ communication, it is expected that most Peers and Clients will be
+ coupled with SIP entities (although RELOAD may be used for other
+ applications than P2PSIP). For example, one Peer might be coupled
+ with a SIP UA, another might be coupled with a SIP proxy, while a
+ third might be coupled with a SIP-to-PSTN gateway. For such nodes,
+ the Peer or Client portion of the node is logically distinct from the
+ SIP entity portion. However, there is no hard requirement that every
+ P2PSIP node (Peer or Client) be coupled to a SIP entity. As an
+ example, additional Peers could be placed in the Overlay to provide
+ additional storage or redundancy for the RELOAD Overlay, but might
+ not have any direct SIP capabilities.
+
+
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 5]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+2.5. Relationship between P2PSIP and Other AoR-Dereferencing Approaches
+
+ As noted above, the fundamental task of P2PSIP is to turn an AoR into
+ a Contact. This task might be approached using zero configuration
+ techniques such as multicast DNS (mDNS) and DNS Service Discovery
+ (DNS-SD) [RFC6762] [RFC6763], Link-Local Multicast Name Resolution
+ [RFC4795], and dynamic DNS [RFC2136].
+
+ These alternatives were discussed in the P2PSIP working group, and
+ not pursued as a general solution for a number of reasons related to
+ scalability, the ability to work in a disconnected state, partition
+ recovery, and so on. However, there does seem to be some continuing
+ interest in the possibility of using mDNS and DNS-SD for the
+ bootstrapping of P2PSIP overlays.
+
+2.6. NAT Issues
+
+ Network Address Translators (NATs) are impediments to establishing
+ and maintaining peer-to-peer networks, since NATs hinder direct
+ communication between nodes. Some peer-to-peer network architectures
+ avoid this problem by insisting that all nodes exist in the same
+ address space. However, RELOAD provides capabilities that allow
+ nodes to be located in multiple address spaces interconnected by
+ NATs, to allow RELOAD messages to traverse NATs, and to assist in
+ transmitting application-level messages (for example, SIP messages)
+ across NATs.
+
+3. Reference Model
+
+ The following diagram shows a P2PSIP Overlay consisting of a number
+ of Peers, one Client, and an ordinary SIP UA. It illustrates a
+ typical P2PSIP Overlay but does not limit other compositions or
+ variations; for example, Proxy Peer P might also talk to an ordinary
+ SIP proxy as well. The figure is not intended to cover all possible
+ architecture variations, but simply to show a deployment with many
+ common P2PSIP elements.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 6]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ --->PSTN
+ +------+ N +------+ +---------+ /
+ | | A | | | Gateway |-/
+ | UA |####T#####| UA |#####| Peer |########
+ | Peer | N | Peer | | G | # RELOAD
+ | E | A | F | +---------+ # P2PSIP
+ | | T | | # Protocol
+ +------+ N +------+ # |
+ # A # |
+ NATNATNATNAT # |
+ # # | \__/
+ NATNATNATNAT +-------+ v / \
+ # N | |#####/ UA \
+ +------+ A P2PSIP Overlay | Peer | /Client\
+ | | T | Q | |___C__|
+ | UA | N | |
+ | Peer | A +-------+
+ | D | T #
+ | | N #
+ +------+ A # RELOAD
+ # T # P2PSIP
+ # N +-------+ +-------+ # Protocol
+ # A | | | | #
+ #########T####| Proxy |########| Redir |#######
+ N | Peer | | Peer |
+ A | P | | R |
+ T +-------+ +-------+
+ | /
+ | SIP /
+ \__/ / /
+ /\ / ______________/ SIP
+ / \/ /
+ / UA \/
+ /______\
+ SIP UA A
+
+ Figure 1: P2PSIP Overlay Reference Model
+
+ Here, the large perimeter depicted by "#" represents a stylized view
+ of the Overlay (the actual connections could be a mesh, a ring, or
+ some other structure). Around the periphery of the Overlay
+ rectangle, we have a number of Peers. Each Peer is labeled with its
+ coupled SIP entity -- for example, "Proxy Peer P" means that Peer P
+ is coupled with a SIP proxy. In some cases, a Peer or Client might
+ be coupled with two or more SIP entities. In this diagram, we have a
+ Public Switched Telephone Network (PSTN) gateway coupled with Peer
+ "G", three Peers ("D", "E", and "F") that are each coupled with a UA,
+ a Peer "P" that is coupled with a SIP proxy, an ordinary Peer "Q"
+
+
+
+Bryan, et al. Informational [Page 7]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ with no SIP capabilities, and one Peer "R" that is coupled with a SIP
+ redirector. Note that because these are all Peers, each is
+ responsible for storing Resource Records and transporting messages
+ around the Overlay.
+
+ To the left, two of the Peers ("D" and "E") are behind network
+ address translators (NATs). These Peers are included in the P2PSIP
+ Overlay, and thus participate in storing resource records and routing
+ messages, despite being behind the NATs.
+
+ On the right side, we have a Client "C", which uses the RELOAD
+ Protocol to communicate with Proxy Peer "Q". The Client "C" uses
+ RELOAD to obtain information from the Overlay, but has not inserted
+ itself into the Overlay, and therefore does not participate in
+ routing messages or storing information.
+
+ Below the Overlay, we have a conventional SIP UA "A" that is not part
+ of the Overlay, either directly as a Peer or indirectly as a Client.
+ It does not speak the RELOAD P2PSIP protocol and is not participating
+ in the Overlay as a Peer or a Client. Instead, it uses SIP to
+ interact with the Overlay via an adapter Peer or Peers that
+ communicate with the Overlay using RELOAD.
+
+ Both the SIP proxy coupled with Peer "P" and the SIP redirector
+ coupled with Peer "R" can serve as adapters between ordinary SIP
+ devices and the Overlay. Each accepts standard SIP requests and
+ resolves the next hop by using the P2PSIP protocol to interact with
+ the routing knowledge of the Overlay, and then processes the SIP
+ requests as appropriate (proxying or redirecting towards the next
+ hop). Note that proxy operation is bidirectional -- the proxy may be
+ forwarding a request from an ordinary SIP device to the Overlay, or
+ from the P2PSIP Overlay to an ordinary SIP device.
+
+ The PSTN Gateway at Peer "G" provides a similar sort of adaptation to
+ and from the PSTN.
+
+4. Definitions
+
+ This section defines a number of concepts that are key to
+ understanding the P2PSIP work.
+
+ Overlay Network: An overlay network is a computer network that is
+ built on top of another network. Nodes in the overlay can be
+ thought of as being connected by virtual or logical links, each of
+ which corresponds to a path, perhaps through many physical links,
+ in the underlying network. For example, many peer-to-peer
+
+
+
+
+
+Bryan, et al. Informational [Page 8]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ networks are overlay networks because they run on top of the
+ Internet. Dial-up Internet is an overlay upon the telephone
+ network.
+
+ P2P Network: A peer-to-peer (or P2P) computer network is a network
+ that relies primarily on the computing power and bandwidth of the
+ participants in the network rather than concentrating it in a
+ relatively low number of servers. P2P networks are typically used
+ for connecting nodes via largely ad hoc connections. Such
+ networks are useful for many purposes. Sharing content files
+ containing audio, video, data, or anything in digital format is
+ very common, and real-time data, such as telephony traffic, is
+ also exchanged using P2P technology. A P2P Network may also be
+ called a "P2P Overlay", a "P2P Overlay Network", or a "P2P Network
+ Overlay", since its organization is not at the physical layer, but
+ is instead "on top of" an existing Internet Protocol network.
+
+ P2PSIP: A suite of communications protocols related to the Session
+ Initiation Protocol (SIP) [RFC3261] that enable SIP to use peer-
+ to-peer techniques for resolving the targets of SIP requests,
+ providing SIP message transport, and providing other SIP-related
+ functions. At present, these protocols include [RFC6940],
+ [RFC7363], [RFC7374], [RFC7851] and [P2PSIP].
+
+ User: A human that interacts with the Overlay through SIP UAs
+ located on Peers and Clients (and perhaps in other ways).
+
+ The following terms are defined here only within the scope of P2PSIP.
+ These terms may have conflicting definitions in other bodies of
+ literature. Some draft versions of this document prefixed each term
+ with "P2PSIP" to clarify the term's scope. This prefixing has been
+ eliminated from the text; however, the scoping still applies.
+
+ Overlay Name: A human-friendly name that identifies a specific
+ P2PSIP Overlay. This is in the format of (a portion of) a URI,
+ but may or may not have a related record in the DNS.
+
+ Peer: A node participating in a P2PSIP Overlay that provides storage
+ and transport services to other nodes in that P2PSIP Overlay.
+ Each Peer has a unique identifier, known as a Peer-ID, within the
+ Overlay. Each Peer may be coupled to one or more SIP entities.
+ Within the Overlay, the Peer is capable of performing several
+ different operations, including: joining and leaving the Overlay,
+ transporting SIP messages within the Overlay, storing information
+ on behalf of the Overlay, putting information into the Overlay,
+ and getting information from the Overlay.
+
+
+
+
+
+Bryan, et al. Informational [Page 9]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ Node-ID: Information that uniquely identifies each Node within a
+ given Overlay. This value is not human-friendly -- in a DHT
+ approach, this is a numeric value in the hash space. These Node-
+ IDs are completely independent of the identifier of any user of a
+ user agent associated with a Peer.
+
+ Client: A node that participates in a P2PSIP Overlay but does not
+ store information or forward messages. A Client can also be
+ thought of as a peer that has not joined the Overlay. Clients can
+ store and retrieve information from the Overlay.
+
+ User Name: A human-friendly name for a user. This name must be
+ unique within the Overlay, but may be unique in a wider scope.
+ User Names are formatted so that they can be used within a URI
+ (likely a SIP URI), perhaps in combination with the Overlay Name.
+
+ Service: A capability contributed by a Peer to an Overlay or to the
+ members of an Overlay. Not all Peers and Clients will offer the
+ same set of services, and P2PSIP provides service discovery
+ mechanisms to locate services.
+
+ Service Name: A unique, human-friendly name for a service.
+
+ Resource: Anything about which information can be stored in the
+ Overlay. Both Users and Services are examples of Resources.
+
+ Resource-ID: A non-human-friendly value that uniquely identifies a
+ resource and that is used as a key for storing and retrieving data
+ about the resource. One way to generate a Resource-ID is by
+ applying a mapping function to some other unique name (e.g., User
+ Name or Service Name) for the resource. The Resource-ID is used
+ by the distributed database algorithm to determine the Peer or
+ Peers that are responsible for storing data for the Overlay.
+
+ Resource Record: A block of data, stored using the distributed
+ database mechanism of the Overlay, that includes information
+ relevant to a specific resource. We presume that there may be
+ multiple types of resource records. Some may hold data about
+ Users, and others may hold data about Services, and the working
+ group may define other types. The types, usages, and formats of
+ the records are a question for future study.
+
+ Responsible Peer The Peer that is responsible for storing the
+ Resource Record for a Resource. In the literature, the term "Root
+ Peer" is also used for this concept.
+
+
+
+
+
+
+Bryan, et al. Informational [Page 10]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ Peer Protocol: The protocol spoken between P2PSIP Overlay Peers to
+ share information and organize the P2PSIP Overlay Network. In
+ P2PSIP, this is implemented using the RELOAD protocol [RFC6940].
+
+ Client Protocol: The protocol spoken between Clients and Peers. In
+ P2PSIP and RELOAD, this is syntactically the same protocol as the
+ Peer Protocol. The only difference is that Clients are not
+ routing messages or routing information, and have not (or cannot)
+ insert themselves into the Overlay.
+
+ Peer Protocol Connection / P2PSIP Client Protocol Connection:
+ The Transport Layer Security (TLS), Datagram Transport Layer
+ Security (DTLS), TCP, UDP, or other transport-layer protocol
+ connection over which the RELOAD Peer Protocol messages are
+ transported.
+
+ Neighbors: The set of P2PSIP Peers that a Peer or Client know of
+ directly and can reach without further lookups.
+
+ Joining Peer: A node that is attempting to become a Peer in a
+ particular Overlay.
+
+ Bootstrap Peer: A Peer in the Overlay that is the first point of
+ contact for a Joining Peer. It selects the Peer that will serve
+ as the Admitting Peer and helps the Joining Peer contact the
+ Admitting Peer.
+
+ Admitting Peer: A Peer in the Overlay that helps the Joining Peer
+ join the Overlay. The choice of the Admitting Peer may depend on
+ the Joining Peer (e.g., depend on the Joining Peer's Peer-ID).
+ For example, the Admitting Peer might be chosen as the Peer which
+ is "closest" in the logical structure of the Overlay to the future
+ position of the Joining Peer. The selection of the Admitting Peer
+ is typically done by the Bootstrap Peer. It is allowable for the
+ Bootstrap Peer to select itself as the Admitting Peer.
+
+ Bootstrap Server: A network node used by Joining Peers to locate a
+ Bootstrap Peer. A Bootstrap Server may act as a proxy for
+ messages between the Joining Peer and the Bootstrap Peer. The
+ Bootstrap Server itself is typically a stable host with a DNS name
+ that is somehow communicated (for example, through configuration,
+ specification on a web page, or using DHCP) to Peers that want to
+ join the Overlay. A Bootstrap Server is NOT required to be a Peer
+ or Client, though it may be if desired.
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 11]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ Peer Admission: The act of admitting a node (the "Joining Peer")
+ into an Overlay as a Peer. After the admission process is over,
+ the Joining Peer is a fully functional Peer of the Overlay.
+ During the admission process, the Joining Peer may need to present
+ credentials to prove that it has sufficient authority to join the
+ Overlay.
+
+ Resource Record Insertion: The act of inserting a P2PSIP Resource
+ Record into the distributed database. Following insertion, the
+ data will be stored at one or more Peers. The data can be
+ retrieved or updated using the Resource-ID as a key.
+
+5. Discussion
+
+5.1. The Distributed Database Function
+
+ A P2PSIP Overlay functions as a distributed database. The database
+ serves as a way to store information about Resources. A piece of
+ information, called a "Resource Record", can be stored by and
+ retrieved from the database using a key associated with the Resource
+ Record called its "Resource-ID". Each Resource must have a unique
+ Resource-ID. In addition to uniquely identifying the Resource, the
+ Resource-ID is also used by the distributed database algorithm to
+ determine the Peer or Peers that store the Resource Record in the
+ Overlay.
+
+ Users are humans that can use the Overlay to do things like making
+ and receiving calls. Information stored in the resource record
+ associated with a user can include things like the full name of the
+ user and the location of the UAs that the user is using (the user's
+ SIP AoR). Full details of how this is implemented using RELOAD are
+ provided in [P2PSIP].
+
+ Before information about a user can be stored in the Overlay, a user
+ needs a User Name. The User Name is a human-friendly identifier that
+ uniquely identifies the user within the Overlay. In RELOAD, users
+ are issued certificates, which in the case of centrally signed
+ certificates, identify the User Name as well as a certain number of
+ Resource-IDs where the user may store their information. For more
+ information, see [RFC6940].
+
+ The P2PSIP suite of protocols also standardizes information about how
+ to locate services. Services represent actions that a Peer (and
+ perhaps a Client) can do to benefit other Peers and Clients in the
+ Overlay. Information that might be stored in the resource record
+ associated with a service might include the Peers (and perhaps
+ Clients) offering the service. Service discovery for P2PSIP is
+ defined in [RFC7374].
+
+
+
+Bryan, et al. Informational [Page 12]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ Each service has a human-friendly Service Name that uniquely
+ identifies the service. Like User Names, the Service Name is not a
+ Resource-ID, rather the Resource-ID is derived from the service name
+ using some function defined by the distributed database algorithm
+ used by the Overlay.
+
+ A class of algorithms known as Distributed Hash Tables (DHTs) are one
+ way to implement the distributed database. The RELOAD protocol is
+ extensible and allows many different DHTs to be implemented, but
+ specifies a mandatory-to-implement DHT in the form of a modified
+ Chord DHT. For more information, see [Chord].
+
+5.2. Using the Distributed Database Function
+
+ While there are a number of ways the distributed database described
+ in the previous section can be used to establish multimedia sessions
+ using SIP, the basic mechanism defined in the RELOAD protocol and SIP
+ usage is summarized below. This is a very simplistic overview. For
+ more detailed information, please see the RELOAD protocol [RFC6940].
+
+ Contact information for a user is stored in the resource record for
+ that user. Assume that a user is using a device, here called "Peer
+ A", that serves as the contact point for this user. The user adds
+ contact information to this resource record, as authorized by the
+ RELOAD certificate mechanism. The resource record itself is stored
+ with Peer Z in the network, where Peer Z is chosen by the particular
+ distributed database algorithm in use by the Overlay.
+
+ When the SIP entity coupled with Peer B has an INVITE message
+ addressed to this user, it retrieves the resource record from Peer Z.
+ It then extracts the contact information for the various Peers that
+ are a contact point for the user, including Peer A, and uses the
+ Overlay to establish a connection to Peer A, including any
+ appropriate NAT traversal (the details of which are not shown).
+
+ Note that RELOAD is used only to establish the connection. Once the
+ connection is established, messages between the Peers are sent using
+ ordinary SIP.
+
+ This exchange is illustrated in the following figure. The notation
+ "Store(U@A)" is used to show the distributed database operation of
+ updating the resource record for user U with the contract A, and
+ "Fetch(U)" illustrates the distributed database operation of
+ retrieving the resource record for user U. Note that the messages
+ between the Peers A, B, and Z may actually travel via intermediate
+ Peers (not shown) as part of the distributed lookup process or so as
+ to traverse intervening NATs.
+
+
+
+
+Bryan, et al. Informational [Page 13]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ Peer B Peer Z Peer A
+ | | |
+ | | Store(U@A)|
+ | |<------------------|
+ | |Store-Resp(OK) |
+ | |------------------>|
+ | | |
+ |Fetch(U) | |
+ |------------------->| |
+ | Fetch-Resp(U@A)| |
+ |<-------------------| |
+ | | |
+ (RELOAD IS USED TO ESTABLISH CONNECTION)
+ | | |
+ | SIP INVITE(To:U) | |
+ |--------------------------------------->|
+ | | |
+
+ Figure 2: SIP Exchange Using Distributed Database Function
+
+5.3. NAT Traversal
+
+ NAT traversal in P2PSIP using RELOAD treats all Peers as equal and
+ establishes a partial mesh of connections between them. Messages
+ from one Peer to another are routed along the edges in the mesh of
+ connections until they reach their destination. To make the routing
+ efficient and to avoid the use of standard Internet routing
+ protocols, the partial mesh is organized in a structured manner. If
+ the structure is based on any one of a number of common DHT
+ algorithms, then the maximum number of hops between any two Peers is
+ log N, where N is the number of peers in the overlay. Existing
+ connections, along with the Interactive Connectivity Establishment
+ (ICE) NAT traversal techniques [RFC5245], are used to establish new
+ connections between Peers, and also to allow the applications running
+ on Peers to establish a connection to communicate with one another.
+
+5.4. Locating and Joining an Overlay
+
+ Before a Peer can attempt to join a P2PSIP Overlay, it must first
+ obtain a Node-ID, configuration information, and optionally a set of
+ credentials. The Node-ID is an identifier that uniquely identifies
+ the Peer within the Overlay, while the credentials show that the Peer
+ is allowed to join the Overlay.
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 14]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ The P2PSIP WG does not impose a particular mechanism for how the
+ Peer-ID and the credentials are obtained, but the RELOAD protocol
+ does specify the format for the configuration information and how
+ this information may be obtained, along with credentials and a
+ Node-ID, from an offline enrollment server.
+
+ Once the configuration information is obtained, RELOAD specifies a
+ mechanism whereby a Peer may obtain a multicast-bootstrap address in
+ the configuration file and broadcast to this address to attempt
+ locating a Bootstrap Peer. Additionally, the Peer may store previous
+ Peers it has seen and attempt using these as Bootstrap Peers, or it
+ may obtain an address for a Bootstrap Peer by some other mechanism.
+ For more information, see the RELOAD protocol.
+
+ The job of the Bootstrap Peer is simple: refer the Joining Peer to a
+ Peer (called the "Admitting Peer") that will help the Joining Peer
+ join the network. The choice of the Admitting Peer will often depend
+ on the Joining Peer -- for example, the Admitting Peer may be a Peer
+ that will become a neighbor of the Joining Peer in the Overlay. It
+ is possible that the Bootstrap Peer might also serve as the Admitting
+ Peer.
+
+ The Admitting Peer will help the Joining Peer learn about other Peers
+ in the Overlay and establish connections to them as appropriate. The
+ Admitting Peer and/or the other Peers in the Overlay will also do
+ whatever else is required to help the Joining Peer become a fully
+ functional Peer. The details of how this is done will depend on the
+ distributed database algorithm used by the Overlay.
+
+ At various stages in this process, the Joining Peer may be asked to
+ present its credentials to show that it is authorized to join the
+ Overlay. Similarly, the various Peers contacted may be asked to
+ present their credentials so the Joining Peer can verify that it is
+ really joining the Overlay it wants to.
+
+5.5. Clients and Connecting Unmodified SIP Devices
+
+ As mentioned above, in RELOAD, from the perspective of the protocol,
+ Clients are simply peers that do not store information, do not route
+ messages, and have not inserted themselves into the Overlay. The
+ same protocol is used for the actual message exchanged. Note that
+ while the protocol is the same, the Client need not implement all the
+ capabilities of a Peer. If, for example, it never routes messages,
+ it will not need to be capable of processing such messages or
+ understanding a DHT.
+
+
+
+
+
+
+Bryan, et al. Informational [Page 15]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ For SIP devices, another way to realize this functionality is for a
+ Peer to behave as a proxy/registrar as specified in [RFC3261]. SIP
+ devices then use standard SIP mechanisms to add, update, and remove
+ registrations and to send SIP messages to Peers and other Clients.
+ The authors here refer to these devices simply as a "SIP UA", not a
+ "P2PSIP Client", to distinguish it from the concept described above.
+
+5.6. Architecture
+
+ The architecture adopted by RELOAD to implement P2PSIP is shown
+ below. An application (for example, SIP or another application using
+ RELOAD) uses RELOAD to locate other Peers and (optionally) to
+ establish connections to those Peers, potentially across NATs.
+ Messages may still be exchanged directly between the Peers. The
+ overall block diagram for the architecture is as follows:
+
+ __________________________
+ | |
+ | SIP, other apps... |
+ | ___________________|
+ | | RELOAD Layer |
+ |______|___________________|
+ | Transport Layer |
+ |__________________________|
+
+ Figure 3: Architecture for Implementing P2PSIP
+
+6. Security Considerations
+
+ This specification is an overview of existing specifications and does
+ not introduce any security considerations on its own. Please refer
+ to the security considerations of the respective specifications,
+ particularly the RELOAD protocol specification ([RFC6940]) for
+ further details.
+
+7. Informative References
+
+ [Chord] Stoica, I., Morris, R., Liben-Nowell, D., Karger, D.,
+ Kaashoek, M., Dabek, F., and H. Balakrishnan, "Chord: A
+ scalable peer-to-peer lookup protocol for internet
+ applications", IEEE/ACM Transactions on Networking,
+ Volume 11, Issue 1, pp. 17-32,
+ DOI 10.1109/TNET.2002.808407, February 2003.
+
+ [P2PSIP] Jennings, C., Lowekamp, B., Rescorla, E., Baset, S.,
+ Schulzrinne, H., and T. Schmidt, "A SIP Usage for RELOAD",
+ Work in Progress, draft-ietf-p2psip-sip-21, April 2016.
+
+
+
+
+Bryan, et al. Informational [Page 16]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ [RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound,
+ "Dynamic Updates in the Domain Name System (DNS UPDATE)",
+ RFC 2136, DOI 10.17487/RFC2136, April 1997,
+ <http://www.rfc-editor.org/info/rfc2136>.
+
+ [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
+ A., Peterson, J., Sparks, R., Handley, M., and E.
+ Schooler, "SIP: Session Initiation Protocol", RFC 3261,
+ DOI 10.17487/RFC3261, June 2002,
+ <http://www.rfc-editor.org/info/rfc3261>.
+
+ [RFC3263] Rosenberg, J. and H. Schulzrinne, "Session Initiation
+ Protocol (SIP): Locating SIP Servers", RFC 3263,
+ DOI 10.17487/RFC3263, June 2002,
+ <http://www.rfc-editor.org/info/rfc3263>.
+
+ [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
+ Resource Identifier (URI): Generic Syntax", STD 66,
+ RFC 3986, DOI 10.17487/RFC3986, January 2005,
+ <http://www.rfc-editor.org/info/rfc3986>.
+
+ [RFC4795] Aboba, B., Thaler, D., and L. Esibov, "Link-local
+ Multicast Name Resolution (LLMNR)", RFC 4795,
+ DOI 10.17487/RFC4795, January 2007,
+ <http://www.rfc-editor.org/info/rfc4795>.
+
+ [RFC5245] Rosenberg, J., "Interactive Connectivity Establishment
+ (ICE): A Protocol for Network Address Translator (NAT)
+ Traversal for Offer/Answer Protocols", RFC 5245,
+ DOI 10.17487/RFC5245, April 2010,
+ <http://www.rfc-editor.org/info/rfc5245>.
+
+ [RFC5766] Mahy, R., Matthews, P., and J. Rosenberg, "Traversal Using
+ Relays around NAT (TURN): Relay Extensions to Session
+ Traversal Utilities for NAT (STUN)", RFC 5766,
+ DOI 10.17487/RFC5766, April 2010,
+ <http://www.rfc-editor.org/info/rfc5766>.
+
+ [RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762,
+ DOI 10.17487/RFC6762, February 2013,
+ <http://www.rfc-editor.org/info/rfc6762>.
+
+ [RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service
+ Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
+ <http://www.rfc-editor.org/info/rfc6763>.
+
+
+
+
+
+
+Bryan, et al. Informational [Page 17]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+ [RFC6940] Jennings, C., Lowekamp, B., Ed., Rescorla, E., Baset, S.,
+ and H. Schulzrinne, "REsource LOcation And Discovery
+ (RELOAD) Base Protocol", RFC 6940, DOI 10.17487/RFC6940,
+ January 2014, <http://www.rfc-editor.org/info/rfc6940>.
+
+ [RFC7363] Maenpaa, J. and G. Camarillo, "Self-Tuning Distributed
+ Hash Table (DHT) for REsource LOcation And Discovery
+ (RELOAD)", RFC 7363, DOI 10.17487/RFC7363, September 2014,
+ <http://www.rfc-editor.org/info/rfc7363>.
+
+ [RFC7374] Maenpaa, J. and G. Camarillo, "Service Discovery Usage for
+ REsource LOcation And Discovery (RELOAD)", RFC 7374,
+ DOI 10.17487/RFC7374, October 2014,
+ <http://www.rfc-editor.org/info/rfc7374>.
+
+ [RFC7851] Song, H., Jiang, X., Even, R., Bryan, D., and Y. Sun,
+ "Peer-to-Peer (P2P) Overlay Diagnostics", RFC 7851,
+ DOI 10.17487/RFC7851, May 2016,
+ <http://www.rfc-editor.org/info/rfc7851>.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 18]
+
+RFC 7890 P2PSIP Concepts and Terminology June 2016
+
+
+Authors' Addresses
+
+ David A. Bryan
+ Cogent Force, LLC
+ Cedar Park, Texas
+ United States
+
+ Email: dbryan@ethernot.org
+
+
+ Philip Matthews
+ Nokia
+ 600 March Road
+ Ottawa, Ontario K2K 2E6
+ Canada
+
+ Phone: +1 613 784 3139
+ Email: philip_matthews@magma.ca
+
+
+ Eunsoo Shim
+ Samsung Electronics Co., Ltd.
+ San 14, Nongseo-dong, Giheung-gu
+ Yongin-si, Gyeonggi-do 446-712
+ South Korea
+
+ Email: eunsooshim@gmail.com
+
+
+ Dean Willis
+ Softarmor Systems
+ 3100 Independence Pkwy #311-164
+ Plano, Texas 75075
+ United States
+
+ Phone: +1 214 504 1987
+ Email: dean.willis@softarmor.com
+
+
+ Spencer Dawkins
+ Huawei Technologies (USA)
+
+ Phone: +1 214 755 3870
+ Email: spencerdawkins.ietf@gmail.com
+
+
+
+
+
+
+
+Bryan, et al. Informational [Page 19]
+