One document matched: draft-matthews-p2psip-nats-and-overlays-00.txt
Network Working Group E. Cooper
Internet-Draft P. Matthews
Expires: August 28, 2006 Avaya
February 24, 2006
The Effect of NATs on P2P SIP Overlay Architecture
draft-matthews-p2psip-nats-and-overlays-00
Status of this Memo
By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware
have been or will be disclosed, and any of which he or she becomes
aware will be disclosed, in accordance with Section 6 of BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on August 28, 2006.
Copyright Notice
Copyright (C) The Internet Society (2006).
Abstract
This document discusses the constraints that NATs put on the possible
overlay architectures of a P2P SIP system. Given what seems to be a
reasonable set of assumptions on where nodes are deployed and the
kinds of NATs they are located behind, the document concludes that a
structured partial-mesh overlay network exhibiting a property known
as "symmetric interest" is the most reasonable overlay architecture.
Cooper & Matthews Expires August 28, 2006 [Page 1]
Internet-Draft NATs and Overlays February 2006
1. Introduction
In general terms, P2P overlays attempt to eliminate a central
bottleneck in a system by taking the data traditionally stored on a
server (or set of servers) and dispersing it amongst a number of
peers. Also in general terms, NAT boxes multiplex many "private" IP
addresses onto a single "public" address. As a result of this
multiplexing function, a NAT which receives an unsolicited message on
its "public" address cannot determine which "private" address should
receive it. Such messages are generally discarded. In client-server
network topologies this is not a problem, since servers are usually
given "public" addresses and clients never receive unsolicited
messages. In P2P networks however, peers that cannot receive
unsolicited messages cannot participate in the overlay. It follows
then, that the presence of NATs in the network topology has a major
influence on the overlay architecture.
Comments on this draft are solicited and should be addressed either
to the authors or to the P2P-SIP mailing list at
p2p-sip@cs.columbia.edu (see
https://lists.cs.columbia.edu/cucslists/listinfo/p2p-sip).
Cooper & Matthews Expires August 28, 2006 [Page 2]
Internet-Draft NATs and Overlays February 2006
2. Scenario
Figure 1 shows a set of peers that want to create a P2P SIP overlay
network. Though this set is rather small, it still illustrates some
key points.
,-------.
,' P P `. ,-----.
( P ) ( P )
`. P P ,' `-----'
`-------' NAT
NAT
_.------------.
,--'' `---.
,-' `-.
/ \
/ \
( Internet )
\ /
\ /
`-. ,-'
`---. _.--'
N A T `------------''
,-. ,-. ,-----.
/ P \ ( P ) ,' `.
( P ) `-' ( P P )
\ P/ `. ,'
`-' `-----'
Legend
P - Peer node
NAT - NAT box
Figure 1: Example Scenario
In this figure we see six clouds. Five represent subnets containing
peers and one represents the Internet. Some of the subnets contain
just a single peer while others contain multiple peers. One of the
subnets uses public IP addresses, while the other subnets have NATs
between them and the Internet and thus use private addresses. Two of
the subnets are sitting behind the same NAT. Not illustrated in this
figure are more complex NAT scenarios -- for example, a cascading NAT
scenario where there are two NATs between a subnet and the Internet.
This document talks about overlay architectures for hooking these
peers together into a P2P SIP system.
Cooper & Matthews Expires August 28, 2006 [Page 3]
Internet-Draft NATs and Overlays February 2006
3. Assumptions
This section presents and discusses our assumptions about the P2P SIP
system, about the NATs the system must traverse, and about the
interaction between the system and these NATs.
The first assumption deals with the size range of P2P SIP systems.
We assume that there can be many different P2P SIP systems, ranging
from very small systems to very large systems, and nodes can be
scattered anywhere around the world. This assumption is not directly
related to NATs, but influences the other assumptions.
Assumption 1: There may be many different P2P SIP systems, with
sizes ranging from two nodes to millions of nodes, with the node
scattered across one to millions of subnets.
The next assumption deals with the question of whether a P2P SIP
system will always have a certain proportion of nodes with public IP
addresses. This question is important because nodes with public IP
addresses make things easier, and if there is a large proportion of
them, then nodes behind NATs can be treated as leaf nodes (that hang
off of nodes with public IP addresses). Most P2P systems (e.g., file
sharing systems) assume a certain proportion of nodes with public IP
addresses.
However, this assumption seems less tenable with P2P SIP systems,
especially in systems where the system is used in an enterprise
and/or is primarily composed of hard phones (rather than general-
purpose computers). Thus we make the following assumption:
Assumption 2: There can be P2P SIP systems where every peer has a
NAT box between it and the open Internet.
In corporate environments, we expect this situation to be common.
The next set of assumptions deal with the behavior of the various
NATs. At this point, readers should be familiar with references [1],
[2], [3]. In this document, we use the terminology of the IETF
BEHAVE working group.
The two key behaviors of a NAT as are mapping behavior and its
filtering behavior.
Consider the various possible mapping behaviors first (c.f. section
4.1 of [1]). If a NAT has a behavior other than "Endpoint
Independent mapping", then peers behind the NAT cannot use "UDP hole-
punching" (see [3]). The only way to support these peers is by
treating them as leaf nodes hanging off a "relay peer". This relay
Cooper & Matthews Expires August 28, 2006 [Page 4]
Internet-Draft NATs and Overlays February 2006
peer must have either a public IP address or be located behind a NAT
with a filtering behavior of "Endpoint Independent filtering". Since
(a) acting as a relay is very bandwidth- and processor-intensive
(which some peers may not be able to handle) and since (b) a given
P2P network may not have a node that has the required address
properties to act as a relay, many P2P SIP networks may not be able
to support peers behind NATs which do not provide "Endpoint
Independent mapping".
For these reasons, we limit our architectural investigation to NATs
with "Endpoint Independent mapping". (A later version of this
document may describe the necessary extensions to support NATs that
do not satisfy this assumption).
Assumption 3: All NATs must have a mapping behavior of "Endpoint
Independent mapping".
Note that various investigations (see, for example, sections 6.2 and
6.4 of [3]) have suggested that about 85% of all NATs have a mapping
behavior of "Endpoint Independent mapping".
Now consider the various possible filtering behaviors (c.f. section
4.1 of [1]). It is easier to create a P2P network with nodes behind
NATs that have a filtering behavior of "Endpoint Independent
filtering" than with nodes behind NATs with other filtering
behaviors. However, other filtering behaviors are seen as more
secure, and especially in corporate NATs, these other filtering
behaviors are more common.
So can we assume that the NATs in the P2P system have a variety of
filtering behaviors, and that at least a significant percentage of
them have the more P2P-friendly "Endpoint Independent filtering"
behavior? Unfortunately, this seems overly optimistic. This may be
true in larger systems with a significant number of residential-based
peers, but in smaller deployments and/or deployments with a large
number of enterprise-based peers, this seems unlikely. Especially in
a P2P SIP systems deployed in enterprise environments, it seems
likely that many systems will reside exclusively behind NATs with a
filtering behavior of "Address Dependent filtering" (or worse).
So it seems best to be very conservative in this regard, and assume
the worst possible filtering behavior.
Assumption 4: The P2P SIP system must function when all peers are
located behind NATs with a filtering behavior of "Address and Port
Dependent filtering".
An architecture that works in this situation will also work where
Cooper & Matthews Expires August 28, 2006 [Page 5]
Internet-Draft NATs and Overlays February 2006
some NATs have a less-restrictive filtering behavior.
The BEHAVE group has specified a number of other NAT UDP requirements
[1]. The appendix discusses our assumptions relative to this
document in detail. For now, there is no similar table for TCP since
the work on TCP in the BEHAVE working group has just started.
However, many of the requirements for UDP apply to TCP as well.
In addition to the BEHAVE approach, there are some other approaches
to NAT traversal that warrant discussion: UPnP, ALGs, SBCs, and
manual configuration.
Universal Plug-n-Play (UPnP) is an approach developed by Microsoft.
In this approach, the P2P application talks directly with the NAT and
asks the NAT to open up pinholes for it. Many consumer-grade NATs
support the UPnP protocol, and this approach is a viable option for
P2P applications targeted only at the consumer market. However, most
corporate-grade NATs do not support UPnP. In addition, ISPs that NAT
their entire network (a practice that is becoming more common in
certain environments) typically do not allow their customers to
configure that NAT using UPnP.
Many NATs contain one or more Application Level Gateways (ALGs). An
ALG is special code within the NAT that recognizes packets of a
particular application-level protocol and treats the packets
specially. ALG support for the File Transfer Protocol (FTP) is
almost universal in NATs, and ALG support for the SIP is becoming
more common. However, ALG support requires that the application
protocol not be encrypted, and encryption of both SIP and P2P
messages is likely to be desirable for security reasons. Also, ALG
support for whatever P2P protocol we pick is very unlikely, at least
in the short term.
Assumption 5: The traversal of a given NAT must not depend on that
NAT supporting either UPnP or any ALG (except for FTP).
Session Border Controllers (SBCs) are boxes that are deployed in the
network, sometimes by the customer but more commonly by the SIP
service provider, to enable NAT traversal for standard client-server
SIP. SBCs are becoming more common, but are typically restricted to
working only with the SIP proxy servers of the SIP service provider
that deploys the SBC. Furthermore, they are unlikely to support
whatever P2P protocol we pick. Thus they are not a NAT traversal
option for P2P SIP networks.
Assumption 6: The P2P NAT traversal strategy must not depend on
the presence of SBCs in the network.
Cooper & Matthews Expires August 28, 2006 [Page 6]
Internet-Draft NATs and Overlays February 2006
NAT traversal is often much easier if the user can manually configure
the NAT. The user can open up pinholes in the NAT and/or modify the
NAT's behavior. However, this requires that the user have the
knowledge and interest to do the configuration (non-technical users
often do not), have a NAT which is configurable (some low-end NATs
are not configurable), and have permission to configure the NAT
(problematic in corporate environments or when the ISP NATs the
entire access network).
Furthermore, history has shown that systems which are "plug-and-play"
tend to get much better acceptance by users. We would like users to
be able to deploy P2P SIP peers without even know what a NAT is.
Though we may not be "plug-and-play" in all cases, our NAT traversal
strategy will be a failure if this is not true in the vast majority
of cases.
Assumption 7: The NAT traversal strategy must be "plug-and-play"
in the vast majority of cases.
Finally, there is the question of how many mapping and filtering
entries ("pinholes") a NAT can support. Low-end NAT boxes found in
homes and small enterprises may support only a very small number of
mapping and filtering entries. NAT boxes deployed in larger
enterprise environments usually support more entries since there are
more devices (computers, IP phones, etc) behind them. However, a
general rule seems to be that NAT vendors expect a given node to use
only fairly few entries at a time. The exact number is not known to
the authors at this time, but it is clearly small. Thus a NAT
traversal strategy that has one or more peers opening up a large
number of pinholes to communicate with other peers is not acceptable,
partly because it uses up what may be a very limited resource, and
partly because of the refresh traffic required (especially if UDP is
used).
Assumption 8: The NAT traversal strategy must limit the number of
mapping and filtering entries opened up on a given NAT box to a
fairly small number (exact value is TBD).
Here is a summary of the assumptions listed above:
Assumption 1: There may be many different P2P SIP systems, with
sizes ranging from two nodes to millions of nodes, with the node
scattered across one to millions of subnets.
Assumption 2: There can be P2P SIP systems where every peer has a
NAT box between it and the open Internet.
Cooper & Matthews Expires August 28, 2006 [Page 7]
Internet-Draft NATs and Overlays February 2006
Assumption 3: All NATs must have a mapping behavior of "Endpoint
Independent mapping".
Assumption 4: The P2P SIP system must function when all peers are
located behind NATs with a filtering behavior of "Address and Port
Dependent filtering".
Assumption 5: The traversal of a given NAT must not depend on that
NAT supporting either UPnP or any ALG (except for FTP).
Assumption 6: The P2P NAT traversal strategy must not depend on
the presence of SBCs in the network.
Assumption 7: The NAT traversal strategy must be "plug-and-play"
in the vast majority of cases.
Assumption 8: The NAT traversal strategy must limit the number of
mapping and filtering entries opened up on a given NAT box to a
fairly small number (i.e., 10s of pinholes, not 100s of pinholes).
Cooper & Matthews Expires August 28, 2006 [Page 8]
Internet-Draft NATs and Overlays February 2006
4. Architectural Options
This section discusses various architectural options in light of the
above assumptions. The goal of this section is to do a pretty
complete exploration of the design space, and discuss the pros and
cons of the various approaches.
First of all, it is important to note the distinction between NAT
traversal for signaling messages and NAT traversal for media
messages. The latter problem (media) is solved in a peer-to-peer
fashion using the ICE mechanism[5]. If two peers can exchange
signaling messages in some way (perhaps indirectly through other
peers), then ICE can be used to set up a direct peer-to-peer
connection through intervening NATs for the exchange of media
messages. Furthermore, the ICE mechanism is consistent with the
assumptions listed above. Thus the problem we need to solve can be
reduced to finding a way for peers to exchange signaling messages.
4.1. Types of Networks
So let's consider an overlay network of peers where all peers are
behind NATs with the most restrictive filtering policy, and consider
ways for the peers to exchange signaling messages. Several different
approaches can be used to accomplish this:
Relay -- All peers exchange SIP messages via a centralized "Relay
Server" (with a public IP address). This scheme minimizes the
load on the peers and their associated NATs but requires a central
server. SIP messages flow relatively quickly between the peers,
provided the central server is always available and not
constrained by processing power or network bandwidth.
Rendezvous -- Peers use a "Rendezvous Server" (with a public IP
address) as an intermediary to initiate "NAT hole-punching" ([3])
every time they wish to begin communicating. Once NAT pinholes
have been established, SIP messages are then exchanged directly.
This scheme is still highly dependant on a central server, but
reduces the load on it somewhat. Initial SIP messages are
slightly delayed by the retrieval of SIP addresses from the
"Rendezvous Server" and by the "NAT hole-punching" technique. The
"Rendezvous Server" must maintain knowledge of and links to every
active peer.
Mesh -- Once connected into the peer network, nodes exchange
messages with selected other peers periodically to keep NAT
pinholes open. SIP messages are either sent directly to the
destination peer, or are sent indirectly via intermediate peers.
No central server is required. The load on the peers and their
Cooper & Matthews Expires August 28, 2006 [Page 9]
Internet-Draft NATs and Overlays February 2006
local NATs is proportional to the number of NAT pinholes that must
be maintained and the number of messages that must be sent within
the mesh. (Methods for a peer to create or join such a peer-to-
peer network are discussed in section 3.2).
Graphically, the communication flows in these networks would appear
as shown in Figure 2. In the diagram, only signaling connections are
shown; Media (RTP) connections are not shown.
P P P
P | P P |. P P---|---P
\ | / .\ | ./ / | / \
\ | / . \ | / . | / |
P-----S-----P P-.---S-----P P-----------P
/ | \ . / | \ \ / | /
/ | \ ./ | \ /\ | |
P | P P | P P \| P
P P P
Relay Rendezvous Mesh
Legend:
P - Peers
S - Central Server
/ \ | - Permanent connnections
. - Temporary connections
Figure 2: Overlay Network Connectivity
The networks in the figure above can be considered as discrete points
in a spectrum that ranges from "fully centralized" on the left to
"fully distributed" on the right. In general, the effort required to
establish and maintain NAT pinholes increases as we move to the
right, as does the amount of effort required to deliver a SIP message
between two arbitrary nodes. However, the reliance on centralized
equipment and the overall scalability decreases as we move to the
right, and the network becomes more peer-to-peer. Further discussion
of each topology is given below.
The Relay Network appears similar to a Client-Server configuration.
It operates in a straightforward manner. A peer that wishes to call
another creates a request and delivers it to the "Relay Server". The
server forwards the request on to the target. The performance and
scalability characteristics of this network are quite suitable for
small- and medium-scale deployments. As the system grows into large
Cooper & Matthews Expires August 28, 2006 [Page 10]
Internet-Draft NATs and Overlays February 2006
scale deployments however, keeping the NAT pinholes open between the
clients and the server places a heavy load on the server's resources.
This load increases (at least) linearly with the size of the network.
Even on a smaller scale, the "Relay Server" requires a sizable
expenditure of resources (both initial and operational). For very
small systems, this cost may be impractical. From a network
availability standpoint, the "Relay Server" is also a liability. It
represents a single point of failure upon which all nodes are totally
dependant. Finally, the centralization of the administration of the
network may be undesirable or impractical in some deployments.
The Rendezvous Network reduces the load on a central server by
eliminating it from the messaging path once communications between
the two endpoints has been established. One way this could work
would be to have the originating node send the "Rendezvous Server" an
'INITIATE_NAT_HOLE' request that specifies the target peer (perhaps
via node-id, or SIP URI), as well as its own IP address(es). In
processing this request, the "Rendezvous Server" replies with the
mapped IP address and port of the target peer and forwards the
request to the target peer, perhaps also appending the mapped IP
address and port of the originating peer. Upon reception of the
'INITIATE_NAT_HOLE' request, the target peer begins NAT hole-punching
procedures to establish a link to the originator. This effort may
include an ICE-like trial of various IP addresses, to avoid the
problems associated with double-NAT topologies. Once the NAT
pinholes are established, the two peers can begin regular SIP
communications.
Overall load on the "Rendezvous Server" is somewhat reduced, since it
is only party to a portion of the session signaling. These savings
may not be substantial, though, since the reduction in SIP message
traffic will require an increase in traffic to keep NAT pinholes
alive. The availability and administration characteristics are the
same as with the Relay Network.
The Mesh Network eliminates the use of a centralized server (except
perhaps for bootstrapping, see section Section 5.2). A node in this
type of overlay establishes connections to some of the other peers.
SIP messages are then routed via these connections.
4.2. More on Mesh Networks
Of the topologies described above, the Mesh Network is the most peer-
to-peer, the most scalable, and the most plug-and-play. Thus it
seems to line up the best with our assumptions. However, even with
the general Mesh paradigm, several variations are still possible.
The actual number of NAT pinhole connections is a key consideration.
Consider Figure 3: Mesh Network Connectivity:
Cooper & Matthews Expires August 28, 2006 [Page 11]
Internet-Draft NATs and Overlays February 2006
P P P
/ \ / | \ / /|\ \
P P P----|----P P----|----P
/ \ /| | |\ /|/ \ | / \|\
P P P-------------P P-------------P
\ / \| | |/ \|/ / | \ \|/
P P P----|----P P----|----P
\ / \ | / \ \|/ /
P P P
Ring Partial Mesh Full Mesh
Figure 3
A Mesh Network in which every node is connected only to two
neighbours can be termed a "Ring Network". This topology expends
very little effort to maintain NAT pinholes but results in extremely
high hop counts as the number of nodes increases. As a result, the
overall scalability of this topology is very poor.
On the other hand, in small peer-to-peer overlay networks it is
possible to maintain NAT pinhole connections between all pairs of
peers (a "Full Mesh Network"). However, as the number of peers and
distinct NATs increase, the number of pinholes (and traffic required
to maintain them) quickly becomes impractical. In this topology,
overall scalability is also poor.
In between these two extremes, the "Partial Mesh Network" seeks to
strike a balance between the minimum and maximum sustainable numbers
of NAT pinholes. This seems to be the only viable approach. The
"ideal" number of pinholes is the one that results in the lowest hop
counts whilst also keeping pinhole maintenance traffic manageable.
4.3. Static vs. Dynamic Connections
Given the selection of a partial-mesh network, the next question is
whether the connection topology should be relatively static, or
should evolve dynamically as calls are made. Note that we are
talking about signaling connections here -- as with classical client-
server SIP, the volume of media messages means that it always makes
sense to set up a dedicated connection between the call endpoints for
the media whenever that is possible.
Say peer P wants to set up a connection to peer Q. In keeping with
assumption 4, we assume peer Q is behind a NAT with a restrictive
filtering behavior. Thus P cannot send a connection request directly
to Q, but must send it via existing connections in the overlay. Only
Cooper & Matthews Expires August 28, 2006 [Page 12]
Internet-Draft NATs and Overlays February 2006
once the connection request is delivered to Q can P and Q use UDP (or
TCP) hole-punching to initiate a connection, and then do any
connection handshaking required (e.g, for TCP).
So setting up a connection requires a number of messages to be
exchanged between P and Q. If P and Q just need to exchange a very
small number of messages, then it is probably more efficient for P
and Q to use the existing mesh of connections rather than
establishing a new connection. Though it is not the goal of this
document to discuss lookup and signaling mechanisms for P2P SIP, it
seems likely that most transactions between two peers will be short
and consist of only a small number of messages. Thus a static
connection pattern (perhaps with some additional connections
established dynamically) is likely to be appropriate.
4.4. Message Routing and Structured vs. Unstructured Meshes
Assuming a fairly static pattern of connections, the next logical
question is: What should the pattern of connections be? There are
many different patterns or schemes that can be used -- how can we
classify and evaluate these choices?
We believe that an important property of a overlay is the ability to
route messages from one peer to an arbitrary second peer in the
overlay. We believe that this property is essential at times to
allow a peer to place a call to another node, to publish the status
of a peer or user (for example, to a peer acting as a distributed
registrar), or when a peer want to create a connection to another
peer in the overlay (when creating the partial mesh).
With this in mind, we can classify connection patterns (or schemes)
into two main groups:
Structured -- In a structured scheme, connection pattern between
peers is exploited when routing messages between peers.
Unstructured -- In an unstructured scheme, the connection pattern
is more or less random, and properties of the connection scheme
are NOT exploited when routing messages.
In the next few subsections, we consider the various properties of
structured and unstructured partial meshes.
4.4.1. Unstructured Schemes
Some examples of unstructured schemes are:
Cooper & Matthews Expires August 28, 2006 [Page 13]
Internet-Draft NATs and Overlays February 2006
o Purely Random -- a peer randomly selects a number of other peers
to connect to.
o Longest Lived -- a peer prefers connections to peers who have been
part of the overlay for a longer time.
o Nearby Neighbors -- a peer prefers connections to peers who are
closer (e.g., smaller round-trip times)
There are a number of ways messages might be routed in an
unstructured scheme. The simplest way is to flood the message
through the overlay. Though not particularly efficient, this way may
be practical in smaller overlays or when the volume of messages is
low. Another way is to use a graph searching algorithm to locate the
message target, for example depth-first search or breadth-first
search. A graph search algorithm will generally take longer than
flooding to get the message to the peer, but may use fewer messages.
Remembering a route, once found, and then using source routing for
subsequent messages can be used with either of these two methods to
improve performance, but suffers from the problem that topology
changes (caused, for example, by a peer leaving the overlay) can
invalidate the route unexpectedly.
Another approach is to run a routing protocol, which is the approach
used in the Internet. In this case, each peer acts as both a host
and a router. Let's consider the impact of choosing one of the
standard IETF routing protocols.
o RIP -- RIP is an example of a Distance Vector protocol. Distance
vector protocols require only small amounts of CPU and memory, and
work well in networks will only a small number of loops, but tend
to perform poorly in networks with lots of loops. Since the
number of loops in a partially meshed network increases rapidly as
the number of connections per peer increases, DV protocols are
likely to be a poor choice.
o BGP -- BGP is an example of a Path Vector protocols. Path Vector
protocols perform better (than DV protocols) in networks with lots
of loops, but require significantly more storage and bandwidth,
and can (at least in the case of BGP) converge slowly.
o OSPF, IS-IS -- OSPF and IS-IS are Link State protocols. Link
state protocols perform very well in meshed networks, but not
considered suitable for networks larger than hundreds of routers.
As can be seen, no one single IETF protocol works will in meshed
networks of the scale we are interested in. The Internet solves this
problem by dividing the network up into regions (Autonomous Systems
Cooper & Matthews Expires August 28, 2006 [Page 14]
Internet-Draft NATs and Overlays February 2006
or ASes), each AS containing up to a few hundred routers, then
running both a link state protocol (either OSPF or IS-IS) and a
version of BGP call iBGP inside each AS, and running another version
of BGP called eBGP between ASes. However, all this requires
considerable configuration and monitoring on the part of an army of
operational personnel.
All this suggests that unstructured schemes may not represent a good
choice for P2P-SIP
4.4.2. Structured Schemes
The idea of a structured scheme is to create a connection pattern
that can be exploited in routing.
Consider, for example, the following connection scheme based on a few
of the ideas of Chord. As in Chord, some unique peer identifier is
hashed and the result used to place peers on a ring. Each peer then
maintains connections to peers located at various locations going
clockwise around the ring. In this scheme, a message to peer Q can
be addressed to Q's location in the ring, and an intermediate peer R
can forward the message by forwarding it to the peer S in R's
connection table that is closest to Q without overshooting Q.
If the NAT can support 160 different connections per peer, then the
targets of the connections radiating out from each peer can be
located at exponentially increasing distances from that peer. This
allows a peer can reach any other peer in O(log N) hops using this
scheme. However, if 160 different connections per peer proves
excessive (see assumption 8), then hop counts may be larger.
Many other structured connections schemes exist. For example,
structured connections schemes can be created using the ideas
contained any one of a number of DHT schemes. (See, however, the
comments of section Section 6).
4.4.3. Symmetric Interest
When evaluating connection schemes, there is a property we have
dubbed "symmetric interest". A connection scheme exhibits "symmetric
interest" if, when peer P desires a connection to peer Q, then peer Q
also desires a connection to peer P. "Symmetric interest" seems a
desirable property of connection schemes since connections through
NATs, by their nature, are bi-directional and because both peers
incur the overhead of sending keep-alives to establish and maintain
the connection.
A connection scheme based on peers randomly selecting peers to
Cooper & Matthews Expires August 28, 2006 [Page 15]
Internet-Draft NATs and Overlays February 2006
establish connections to does NOT exhibit symmetric interest because
peer P can select peer Q without peer Q selecting peer P. The
connection scheme based on the ideas of Chord that was mentioned in
the previous section also does NOT exhibit symmetric interest because
a given peer P in the ring desires connections to peers in the
clockwise half-circle but not in the counter-clockwise half-circle.
One scheme that does exhibit symmetric interest has each peer
maintains connections to peers located an exponentially increasing
distances going both clockwise AND counter-clockwise around the ring.
The authors have not yet had a chance to do a thorough analysis of
various structured schemes. Never-the-less, the idea of a structured
scheme (perhaps exhibiting "symmetric interest") seems a lot more
promising than unstructured schemes.
Cooper & Matthews Expires August 28, 2006 [Page 16]
Internet-Draft NATs and Overlays February 2006
5. A Few Additional Points
This section discusses a few additional points about P2P SIP
architecture.
5.1. Superpeers
Orthogonal to these connectivity approaches is the idea of
superpeers. A group of peers that are all behind the same NAT can
elect one or more of their number to act on their behalf in the
larger P2P overlay. These elected peers are called superpeers.
The overlay architecture can then create two types of connections:
connections between superpeers that traverse NATs, and connections
between a superpeer and its local peers that do not traverse NATs.
In this way, the number of NAT pinholes can be reduced compared with
an architecture that has each peer connect to peers behind other
NATs.
5.2. Joining the Network
How can a node X, which is not currently a part of a particular P2P
network, can join that network.
The first thing to note is that if node X can contact just one peer P
in the P2P overlay network, then it can learn about other peers
though peer P and so join the network.
So the question can be reworded as: how can node X locate and contact
at least one peer in the P2P overlay network that it wishes to join?
One approach is to use multicast. Node X could send out a "Hello, is
anyone there?" multicast message, and any peer currently in the P2P
network can reply. Alternatively, peers that are currently in a P2P
network can periodically send out multicast messages advertising the
existence of the network.
This approach works well when there are a number of peers on the same
subnet. It also works well when there a number of peers on subnets
linked by multicast-enabled routers. However, many low-end routers
do not support multicast, and multicast support on high-end routers
needs to be configured, so using multicast between subnets likely
works only in more sophisticated deployments.
A second approach can be used if node X was previously part of the
P2P network and then disconnected for a while. Node X can remember
the IP addresses and ports of some peers when it disconnects, and
then try to contact those peers when it wants to rejoin the network.
Cooper & Matthews Expires August 28, 2006 [Page 17]
Internet-Draft NATs and Overlays February 2006
If at least one of the other peers (a) can be contacted and (b) is
still a member of the P2P overlay network, then node X can rejoin the
network.
This approach will not work if all the other peers are behind NATs
with a filtering policy of "Address Restricted filtering" (or worse)
and node X disconnects for more than the lifetime of a filtering
entry in a NAT (typically 2 - 5 minutes). However, it will work if
some peers are behind NATs with "Endpoint-Independent filtering".
A third approach is to configure node X with the "mapped address and
port" of some peer P. Here the "mapped IP address and port" is the
public IP address and port of the peer that the NAT (if any) assigns
[ETH] this is typically learned through a protocol such as STUN
(which requires a STUN server). If peer P is behind a NAT with a
filtering behavior of "Address Restricted filtering" (or worse), then
peer P must also configured with the mapped address and port of node
X.
Given the manual configuration required, this approach must be
considered a last-ditch approach.
A fourth, and most general, approach is to use an Introduction
Server. This is a node with a public IP address and a DNS entry
which is not part of the P2P network but is used only for
bootstrapping purposes. In the minimal usage scenario, the P2P
network elects a single peer P to maintain a connection to the
Introduction Server. When node X contacts the Introduction Server,
node X is given the mapped IP address and port of peer P, and the
Introduction Server forwards node X's mapped address and port to P.
The disadvantage of this approach is that it requires a stable helper
node with a public IP address. But otherwise it is the most
generally applicable of all the approaches.
+---------------------+-----------+-------+----------+--------------+
| | Multicast | Buddy | Manual | Introduction |
| | | List | Config | Server |
+---------------------+-----------+-------+----------+--------------+
| Plug and Play | Y | Y | N | Y |
| | | | | |
| Works when node X | N | Y | Y | Y |
| is anywhere | | | | |
| | | | | |
| Can be used for | Y | N | Y | Y |
| first connnection | | | | |
| | | | | |
Cooper & Matthews Expires August 28, 2006 [Page 18]
Internet-Draft NATs and Overlays February 2006
| Does not require an | Y | Y | Y | N |
| external node | | | | |
+---------------------+-----------+-------+----------+--------------+
Table 1: Comparison of Discovery Methods
Cooper & Matthews Expires August 28, 2006 [Page 19]
Internet-Draft NATs and Overlays February 2006
6. Comments on Existing P2P Overlays
Many existing P2P overlays have ignored the presence of NATs in the
network. Their assumption is that all participating nodes are fully
reachable by all other nodes. In practice, this turns out not to be
true. The "Endpoint-dependant filtering" NAT behaviour specified in
[1] will impair the ability of many DHT algorithms to provide the
guarantees they strive for. Some popular file-sharing networks
require manual configuration of user's local NAT in order to join.
Incorrect configuration makes it impossible to participate in the
overlay. Other P2P systems deal with NATs by assigning "helpers" to
nodes behind NATs. These "helpers" have publicly available addresses
and act as relay points for the NAT-ed nodes. This is a relatively
effective approach, but requires the nodes with publicly available
addresses to carry more than their share of the load. The load will
quickly become overwhelming in a network with a small proportion of
public nodes.
Cooper & Matthews Expires August 28, 2006 [Page 20]
Internet-Draft NATs and Overlays February 2006
7. Conclusions
Given the analysis done so far, it seem like the best P2P overlay
architecture will have the following properties:
o Partial mesh,
o Mostly static connections,
o Structured,
o Exhibits symmetric interest, and
o Uses superpeers.
Cooper & Matthews Expires August 28, 2006 [Page 21]
Internet-Draft NATs and Overlays February 2006
Appendix A. Detailed NAT UDP Assumptions
+-----------+-------+-----------------+-----------+-----------------+
| Criterion | BEHAV | Brief | Our | Justification |
| | E # | Description | Requireme | |
| | | | nt | |
+-----------+-------+-----------------+-----------+-----------------+
| Mapping | REQ-1 | MUST be | Must | Peers behind a |
| | | "Endpoint-Indep | comply | NAT which does |
| | | endent" | | not comply |
| | | | | require a |
| | | | | "surrogate" to |
| | | | | act on their |
| | | | | behalf in the |
| | | | | P2P network and |
| | | | | to relay |
| | | | | traffic to |
| | | | | them. This |
| | | | | surrogate must |
| | | | | have either a |
| | | | | public IP |
| | | | | address or be |
| | | | | behind a NAT |
| | | | | with a |
| | | | | Filtering rule |
| | | | | of |
| | | | | "Endpoint-Indep |
| | | | | endent" (REQ-8) |
| | | | | .It is likely |
| | | | | that some |
| | | | | systems will |
| | | | | not have peers |
| | | | | that can act a |
| | | | | ssurrogates. |
| | | | | Furthermore, |
| | | | | acting as a |
| | | | | surrogate is |
| | | | | very bandwidth |
| | | | | -and |
| | | | | processor-inte |
| | | | | nsive. |
| | | | | |
| IP | REQ-2 | RECOMMENDED to | Don't | Since we |
| Address | | be "Paired" | care | control both |
| Pooling | | | | endpoints, it |
| | | | | is easy for us |
| | | | | to handle other |
| | | | | behaviors |
Cooper & Matthews Expires August 28, 2006 [Page 22]
Internet-Draft NATs and Overlays February 2006
| Port | REQ-3 | MUST NOT be | Must | "Port |
| Assignmen | | "Port | comply | Overloading" |
| t | | Overloading" | | can often cause |
| | | | | seemingly |
| | | | | random and |
| | | | | inexplicable |
| | | | | failures, as |
| | | | | well as making |
| | | | | testing much |
| | | | | harder. |
| | | | | |
| Port | REQ-3 | RECOMMENDED | Don't | Since we |
| Range | a | that the range | care | control both |
| | | classification | | endpoints, it |
| | | of the source | | is easy for us |
| | | port be | | to handle other |
| | | preserved. | | behaviors. |
| | | | | |
| Port | REQ-4 | RECOMMENDED | Don't | Since we |
| Parity | | that the NAT | care | control both |
| | | exhibit "Port | | endpoints, it |
| | | parity | | is easy for us |
| | | preservation" | | to handle other |
| | | | | behaviors. |
| | | | | |
| Mapping | REQ-5 | MUST NOT be | (TBD) | (TBD) |
| Refresh | | less than 2 | | |
| Interval | | minutes | | |
| | | | | |
| | REQ-5 | Value MAY be | (TBD) | (TBD) |
| | a | configurable | | |
| | | | | |
| | REQ-5 | Default | Don't | |
| | b | RECOMMENDED to | care | |
| | | be 5 minutes | | |
| | | | | |
| Mapping | REQ-6 | MUST have "NAT | Must | Are their any |
| Refresh | | Outbound | comply | NATs that do |
| Direction | | refresh | | not comply with |
| | | behavior" of | | this??? |
| | | "True". | | |
| | | | | |
Cooper & Matthews Expires August 28, 2006 [Page 23]
Internet-Draft NATs and Overlays February 2006
| | REQ-6 | MAY have "NAT | Don't | Many NATs |
| | a | Inbound refresh | care | refresh only on |
| | | behavior" of | | outbound |
| | | "True" | | traffic, so it |
| | | | | is simplest to |
| | | | | assume this is |
| | | | | false. |
| | | | | |
| Conflicti | REQ-7 | MUST either | Should | Conflicting |
| ng Addres | | ensure no | comply | addresses are |
| sSpaces | | conflict or | | not common, but |
| | | behave sensibly | | do occur. NATs |
| | | when a conflict | | that do not |
| | | occurs | | comply will |
| | | | | cause problems |
| | | | | for the peers |
| | | | | behind them. |
| | | | | |
| Filtering | REQ-8 | RECOMMENDED to | Should | (see discussion |
| | | be either | comply | in section XXX) |
| | | "Endpoint | | |
| | | independent" or | | |
| | | "Address | | |
| | | dependent" | | |
| | | | | |
| | REQ-8 | Filtering | Don't | Best to assume |
| | a | behavior MAY be | care | it is NOT |
| | | configurable | | configurable |
| | | | | |
| Hairpinni | REQ-9 | MUST support | Should | This issue |
| ng | | "hairpinning" | comply | becomes crucial |
| | | | | when the NAT in |
| | | | | question is the |
| | | | | NAT closest to |
| | | | | the public |
| | | | | internet in a |
| | | | | multi-NAT |
| | | | | environment. |
| | | | | In this |
| | | | | scenario, a |
| | | | | failure to |
| | | | | support |
| | | | | "hairpinning" |
| | | | | will hinder |
| | | | | (possibly |
| | | | | prevent) |
| | | | | bootstrapping |
| | | | | attempts. |
Cooper & Matthews Expires August 28, 2006 [Page 24]
Internet-Draft NATs and Overlays February 2006
| | REQ-9 | Hairpinning | Must | (TBD) |
| | a | behavior MUST | comply | |
| | | be "External | (if NAT | |
| | | source IP | does | |
| | | address and | hair-pinn | |
| | | port" | ing) | |
| | | | | |
| ALGs | REQ-1 | RECOMMENDED | Should | (TBD) |
| | 0 | that ALGs be | comply | |
| | | disabled by | | |
| | | default | | |
| | | | | |
| | REQ-1 | RECOMMENDED | Should | (TBD) |
| | 0 a | that each ALG | comply | |
| | | can be enabled | | |
| | | or disabled | | |
| | | separately | | |
| | | | | |
| Determini | REQ-1 | MUST have | Must | (TBD) |
| sm | 1 | deterministic | comply | |
| | | behavior | | |
| | | | | |
| ICMP | REQ-1 | Receipt of ICMP | Must | (TBD) |
| support | 2 | message MUST | comply | |
| | | NOT destroy NAT | | |
| | | mapping | | |
| | | | | |
| | REQ-1 | SHOULD NOT | Don't | (TBD) |
| | 2 a | filter ICMP | care | |
| | | messages based | | |
| | | on source IP | | |
| | | address. | | |
| | | | | |
| | REQ-1 | RECOMMENDED | Don't | (TBD) |
| | 2 b | that the NAT | care | |
| | | support ICMP | | |
| | | Destination | | |
| | | Unreachable | | |
| | | messages. | | |
| | | | | |
| Fragmenta | REQ-1 | MUST support | Should | (TBD) |
| tion when | 3 | fragmentation | comply | |
| sending | | of packets | | |
| | | larger than | | |
| | | link MTU | | |
| | | | | |
Cooper & Matthews Expires August 28, 2006 [Page 25]
Internet-Draft NATs and Overlays February 2006
| Fragmenta | REQ-1 | MUST support | Should | (TBD) |
| tion when | 4 | "Receive | comply | |
| receivin | | Fragment Out of | | |
| g | | Order" behavior | | |
+-----------+-------+-----------------+-----------+-----------------+
Table 2: NAT UDP Assumptions
8. References
[1] Audet, F. and C. Jennings, "NAT Behavioral Requirements for
Unicast UDP", draft-ietf-behave-nat-udp-04 (work in progress).
[2] Guha, S. and P. Francis, "NAT Behavioral Requirements for
Unicast TCP", draft-hoffman-behave-tcp-03 (work in progress).
[3] Ford, B. and P. Srisuresh, "Peer-to-Peer Communication Across
Network Address Translators", article available at
http://www.brynosaurus.com/pub/net/p2pnat/.
[4] Stoica, I., Morris, R., Liben-Nowell, D., Karger, D., Kaashoek,
M., Dabek, F., and H. Balakrishnan, "Chord: A Scalable Peer-to-
peer Lookup Service for Internet Applications",
article available at http://pdos.csail.mit.edu/chord/.
[5] Rosenberg, J., "Interactive Connectivity Establishment (ICE): A
Methodology for Network Address Translator (NAT) Traversal for
Offer/Answer Protocols", draft-ietf-mmusic-ice-06 (work in
progress).
[6] Network World, "P2P Traffic Still Dominates the Net",
article available at
http://www.toptechnews.com/story.xhtml?story_id=38121.
Cooper & Matthews Expires August 28, 2006 [Page 26]
Internet-Draft NATs and Overlays February 2006
Authors' Addresses
Eric Cooper
Avaya
100 Innovation Drive
Ottawa, Ontario K2K 3G7
Canada
Phone: +1 613 592 4343 x228
Email: ecooper@avaya.com
Philip Matthews
Avaya
100 Innovation Drive
Ottawa, Ontario K2K 3G7
Canada
Phone: +1 613 592 4343 x224
Email: philip_matthews@magma.ca
Cooper & Matthews Expires August 28, 2006 [Page 27]
Internet-Draft NATs and Overlays February 2006
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Cooper & Matthews Expires August 28, 2006 [Page 28]
| PAFTECH AB 2003-2026 | 2026-04-23 16:14:33 |