Internet DRAFT - draft-williams-peer-redirect

draft-williams-peer-redirect







Network Working Group                                        B. Williams
Internet-Draft                                                    Akamai
Intended status: Standards Track                                T. Reddy
Expires: May 5, 2016                                               Cisco
                                                        November 2, 2015


 Peer-specific Redirection for Traversal Using Relays around NAT (TURN)
                    draft-williams-peer-redirect-04

Abstract

   This specification describes a peer-specific redirection method that
   allows the TURN server to redirect a client for the purpose of
   improving communication with a specific peer without negatively
   affecting communication with other peers.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   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
   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."

   This Internet-Draft will expire on May 5, 2016.

Copyright Notice

   Copyright (c) 2015 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.



Williams & Reddy           Expires May 5, 2016                  [Page 1]

Internet-Draft           Peer Redirect for TURN            November 2015


Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Redirection for Performance . . . . . . . . . . . . . . .   3
     1.2.  Redirection for Load Balancing  . . . . . . . . . . . . .   4
   2.  Terminology . . . . . . . . . . . . . . . . . . . . . . . . .   4
   3.  Peer-specific Server Redirect Mechanism . . . . . . . . . . .   4
     3.1.  Forming an Allocate Request . . . . . . . . . . . . . . .   5
     3.2.  Receiving an Allocate Request . . . . . . . . . . . . . .   5
     3.3.  Forming a CreatePermission or ChannelBind Request . . . .   5
     3.4.  Receiving a CreatePermission or ChannelBind Request . . .   6
     3.5.  Forming a Redirect Indication . . . . . . . . . . . . . .   7
     3.6.  Receiving a Redirect Indication . . . . . . . . . . . . .   8
   4.  ICE Interactions  . . . . . . . . . . . . . . . . . . . . . .   8
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   9
     5.1.  Permission Flood  . . . . . . . . . . . . . . . . . . . .   9
     5.2.  Unsolicited or Invalid Redirect Indication  . . . . . . .  10
     5.3.  Replayed Redirect Indication  . . . . . . . . . . . . . .  10
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  11
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  12
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  12
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  12
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  12
   Appendix A.  Change History . . . . . . . . . . . . . . . . . . .  12
     A.1.  Changes from version 03 to 04 . . . . . . . . . . . . . .  13
     A.2.  Changes from version 02 to 03 . . . . . . . . . . . . . .  13
     A.3.  Changes from version 01 to 02 . . . . . . . . . . . . . .  13
     A.4.  Changes from version 00 to 01 . . . . . . . . . . . . . .  13
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  13

1.  Introduction

   A Traversal Using Relay around NAT (TURN) [RFC5766] service provider
   may provide multiple candidate TURN servers for use by a host, but it
   might not be possible to determine which candidate TURN server will
   provide the best performance until both peers have been identified.
   This could be true for a variety of reasons, including:

   o  Using the selected relay for a specific peer results in a sub-
      optimal end-to-end Internet path.

   o  Load conditions on the selected relay have changed since the
      allocation was established such that it cannot support the new
      data flow.

   At the same time, the above conditions might apply to one peer but
   not another, such that it would be best to selectively use the
   existing relay allocation for peers that will receive reasonable



Williams & Reddy           Expires May 5, 2016                  [Page 2]

Internet-Draft           Peer Redirect for TURN            November 2015


   performance and redirect data flows for other peers to an alternate
   server.  These scenarios are discussed in greater detail below.

   The Session Traversal Utilities for NAT (STUN) protocol
   [I-D.ietf-tram-stunbis] defines an ALTERNATE-SERVER mechanism with
   which a server can redirect a client to another server by replying to
   a request message with an error response with error code 300 (Try
   Alternate).  The TURN protocol describes error code 300 as one of the
   possible error codes for an Allocate error response.

   This specification describes an additional use of the ALTERNATE-
   SERVER STUN attribute for TURN that allows the TURN server to
   redirect a client for the purpose of improving communication with a
   specific peer without negatively affecting communication with other
   peers.

1.1.  Redirection for Performance

   Consider the following example:

                                                             Boston
                                                             Peer C
                                         Chicago              [PC]
                                          Peer B               /
   TURN Relay A                  ----------[PB]-------------[TC]
   San Francisco      ----------/                       TURN Relay C
       [TA]----------/                                    New York
        |
       [PA]
      Peer A
    Los Angeles

   When Peer B wishes to communicate with either Peer A or Peer C, it
   performs a DNS lookup and discovers TURN Relay C, the nearest of the
   candidate TURN servers.  Peer B then sends a TURN Allocate request to
   TURN Relay C to determine the reflexive and relay candidates to
   offer.  After the reflexive candidate has been chosen, Peer B sends a
   ChannelBind request to TURN Relay C to establish a channel for
   communication with the peer.  If Peer C is the remote peer, the
   existing allocation will perform reasonably well, but if Peer A is
   the remote peer, the latency for relayed packets will be nearly twice
   as long as if TURN Relay A had been selected as the relay candidate.
   The problem is worse if Peer B wishes to communicate with both Peer A
   and Peer C, since there is no single relay candidate that would
   provide optimum performance for both peers.

   If TURN Relay C and TURN Relay A are part of a common TURN service,
   it would be possible for TURN Relay C to determine that TURN Relay A



Williams & Reddy           Expires May 5, 2016                  [Page 3]

Internet-Draft           Peer Redirect for TURN            November 2015


   will provide optimal service for communication between Peer B and
   Peer A.  This allows the TURN service to redirect just the data
   channel between Peer A and Peer B to TURN relay A, thus providing
   optimal performance for both relay channels.

   The above example describes the problem in terms of physical
   geography instead of network geography in order to help clarify the
   discussion.  However, readers should note that the problem of
   selecting a relay server to achieve optimal end-to-end routing is
   much more complicated than the above description suggests, requiring
   a detailed real-time view of network connectivity characteristics and
   the peering relationships between autonomous systems.  A naive
   approach based solely on the physical location of the hosts involved
   is just as likely to produce negative results as positive ones.

   That said, a relay service provider with a broadly distributed system
   for actively monitoring network performance across the relevant parts
   of the Internet could make use of the resulting data set to select
   the optimal relay for each peer pair.

1.2.  Redirection for Load Balancing

   At the point when a relay allocation is first established, it can be
   difficult to determine how much aggregate concurrent load could
   eventually be associated with that allocation.  The initiating peer
   could attempt to use that allocation for any number of peer-to-peer
   data flows over an extended period of time, during which time load
   conditions on the relay could change substantially, such that quality
   of service for already established flows would degrade if the relay
   were to accept additional flows.

   Under these conditions, a TURN service provider with multiple relay
   hosts and distributed capacity could improve service quality by
   redirecting data flows to a different host that has more available
   capacity.

2.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

3.  Peer-specific Server Redirect Mechanism

   This specification describes a new STUN indication type, Redirect,
   which is used by a TURN server to notify a TURN client when better
   service could be available through an alternate TURN server.  The




Williams & Reddy           Expires May 5, 2016                  [Page 4]

Internet-Draft           Peer Redirect for TURN            November 2015


   Redirect indication contains an ALTERNATE-SERVER attribute to provide
   the address for the alternate TURN server.

   This specification also defines two new comprehension-optional STUN
   attributes: CHECK-ALTERNATE and XOR-OTHER-ADDRESS.  The CHECK-
   ALTERNATE attribute is used by the client to request that the server
   perform peer-specific redirection.  The XOR-OTHER-ADDRESS is used by
   the client to provide an alternate peer address for location
   identification in the event that the XOR-PEER-ADDRESS attribute in
   the CreatePermission or ChannelBind request is not expected to
   reliably serve this purpose.

3.1.  Forming an Allocate Request

   When forming an Allocate request, a TURN client includes a CHECK-
   ALTERNATE STUN attribute to signal to the TURN server that peer-
   specific redirection is both supported and desired.

   When forming a CHECK-ALTERNATE attribute, the STUN Type is TBD-CA.
   To maintain backward compatibility, this type is in the
   comprehension-optional range, which means that an [RFC5766] compliant
   TURN server can safely ignore it.

   The CHECK-ALTERNATE attribute has no value part and thus the
   attribute length field is 0.

3.2.  Receiving an Allocate Request

   When a server receives an Allocate request, it first processes the
   request as per the TURN specification [RFC5766].  After determining
   that a success response will be prepared, a TURN server that supports
   peer-specific redirection checks for a CHECK-ALTERNATE attribute.  If
   one exists, the server stores this information as part of the
   allocation state.  There is no need for the server to indicate that
   the attribute was accepted in the success response.

3.3.  Forming a CreatePermission or ChannelBind Request

   When sending a CreatePermission or a ChannelBind request, the XOR-
   OTHER-ADDRESS STUN attribute allows the TURN client to provide an
   alternate peer address that can be used by the server to identify the
   network geographic location of the peer when performing the peer-
   specific redirection check.  Use of this attribute is only necessary
   if the XOR-PEER-ADDRESS already contained in the CreatePermission or
   ChannelBind request does not adequately serve this purpose, which
   should only be true when both peers require a TURN relay for end-to-
   end data flow.  In this case, the TURN CreatePermission or
   ChannelBind request will provide the peer's TURN relay address as the



Williams & Reddy           Expires May 5, 2016                  [Page 5]

Internet-Draft           Peer Redirect for TURN            November 2015


   XOR-PEER-ADDRESS value.  If the RTT between the peer and its TURN
   relay server is very small, the TURN relay address might still be an
   appropriate address to use for the peer-specific redirection check.
   As the RTT grows, the TURN relay address will become less suitable
   for this purpose.  For this reason, it is generally the case that the
   peer's public address (i.e. its host or reflexive address) is a
   better indication of its network geographic location than its TURN
   relay address.

   When forming an XOR-OTHER-ADDRESS attribute, the STUN Type is TBD-
   XOA.  To support backward compatibility, this type is in the
   comprehension-optional range, which means that an [RFC5766] compliant
   TURN server can safely ignore it.

   The XOR-OTHER-ADDRESS value specifies an address and port suitable
   for identification of the peer's network geographic location.  It is
   encoded in the same way as XOR-MAPPED-ADDRESS
   [I-D.ietf-tram-stunbis].

   A CreatePermission request is allowed to contain multiple XOR-PEER-
   ADDRESS attributes.  When multiple peer addresses are provided in a
   CreatePermission request, it would be difficult for the TURN server
   to associate an XOR-OTHER-ADDRESS attribute with the correct XOR-
   PEER-ADDRESS.  For this reason, a TURN client MUST form a separate
   CreatePermission request for an XOR-PEER-ADDRESS request when an XOR-
   OTHER-ADDRESS attribute will be included in the request.

   The XOR-OTHER-ADDRESS attribute SHOULD NOT be included in a request
   if its value will be identical to the request's XOR-PEER-ADDRESS
   attribute.  Its value would be redundant and a waste of space in the
   message.

3.4.  Receiving a CreatePermission or ChannelBind Request

   When a TURN server receives a CreatePermission or ChannelBind request
   for an allocation that included the CHECK-ALTERNATE attribute, it
   processes the request as per the TURN specification [RFC5766] plus
   the specific rules mentioned here.

   If an XOR-OTHER-ADDRESS attribute is present, the server validates
   the number of XOR-PEER-ADDRESS attributes.  If there is more than one
   XOR-PEER-ADDRESS attribute in the request, the server MUST reject the
   request with an error response using error code 400 (Bad Request).
   If there is only one XOR-PEER-ADDRESS attribute, the request is
   accepted and the value of the XOR-OTHER-ADDRESS attribute is stored
   with the permission state for use when checking for an alternate
   server.




Williams & Reddy           Expires May 5, 2016                  [Page 6]

Internet-Draft           Peer Redirect for TURN            November 2015


   The mechanism for deciding when and how to check for an alternate
   server is implementation dependent.  This activity could be timer
   driven (e.g.  check for an alternate server once every 120 seconds),
   it could be event driven (e.g. check for an alternate server on every
   permission or binding refresh), or another mechanism appropriate for
   the internal implementation could be chosen.  Likewise, the decision
   of which specific address(es) to check for alternate servers is also
   implementation dependent.  A server could check for alternates for
   all active permissions, it could check just for permissions that have
   relayed non-ICE data, or another selection method appropriate for the
   implementation could be chosen.

   When checking for an alternate server for a permission where the XOR-
   OTHER-ADDRESS attribute was provided, the server SHOULD use this
   address for peer location identification.  Otherwise, the server
   SHOULD use the XOR-PEER-ADDRESS value.

   The TURN client will retransmit a CreatePermission or ChannelBind
   request if the response is not received.  [I-D.ietf-tram-stunbis]
   recommends that the retransmit timeout be greater than 500 ms, but
   does not require this, so it is important to avoid unnecessary delays
   in request processing.  For this reason, the mechanism for driving
   alternate server checks SHOULD be asynchronous relative to processing
   of the associated CreatePermission or ChannelBind request and SHOULD
   NOT delay transmission of the response message.

3.5.  Forming a Redirect Indication

   When an alternate server for a specific permission has been
   identified, the server notifies the client using a Redirect
   indication.  The server MUST NOT send Redirect indications if the
   client did not indicate support by including a CHECK-ALTERNATE
   attribute in its Allocate request.

   The codepoint for Redirect indication is TBD-RI.

   A Redirect indication MUST contain a single ALTERNATE-SERVER
   attribute to provide the address for the alternate server.  The
   message MAY contain one or more XOR-PEER-ADDRESS attributes to
   indicate a subset of peer addresses for redirection.  If all peer
   addresses are to be redirected, no XOR-PEER-ADDRESS attribute is
   required.  The message MUST contain either a MESSAGE-INTEGRITY or
   MESSAGE-INTEGRITY-SHA256 attribute (see Section 5 for an explanation
   of the rationale).

   Because this message codepoint is for indications only, the TURN
   client will not send a success response, and the TURN server will
   have no way to determine whether the message was received.  For



Williams & Reddy           Expires May 5, 2016                  [Page 7]

Internet-Draft           Peer Redirect for TURN            November 2015


   improved reliability, the TURN server MAY retransmit the indication
   multiple times, following the request retransmission semantics
   described in [I-D.ietf-tram-stunbis].  Retransmission requirements
   for indications might differ from those for requests, since requests
   are only retransmitted if no response was received.  For this reason,
   an implementation that retransmits Redirect indications SHOULD
   provide separate configuration settings to control the maximum number
   of Redirect retransmissions and the minimum RTO.

3.6.  Receiving a Redirect Indication

   When a TURN client receives a Redirect indication, it checks that the
   indication contains both an ALTERNATE-SERVER attribute and one of
   either a MESSAGE-INTEGRITY or a MESSAGE-INTEGRITY-SHA256 attribute
   and discards it if it does not.  If XOR-PEER-ADDRESS attributes are
   present, it checks that all specified addresses are recognized peers
   for the allocation and discards the indication if any addresses are
   not recognized.  Finally, it verifies the integrity attribute's value
   and discards the message if that value is invalid.

   After validating the message, the ALTERNATE-SERVER value and
   associated peer addresses are delivered to the ICE implementation.
   Interactions with ICE are described below (Section 4).

   See Section 5 below for discussion of how the client should respond
   when receiving a Redirect indication when redirection was not
   requested.

4.  ICE Interactions

   With "Vanilla" ICE as defined in [RFC5245], candidate gathering is
   complete before the offer/answer exchange.  When a client using
   standard ICE receives a valid Redirect indication, it first checks
   whether it already has an active allocation on the specified server.
   If not, it adds the new relay to its list of servers and forms an
   allocation.  This generates a new relayed candidate to be added to
   the local ICE candidates list, which requires ICE restart.

   With trickle ICE as defined in [I-D.ietf-ice-trickle], if the end-of-
   candidates announcement has not yet been sent, it could be possible
   to complete the TURN Allocate request and include the new relayed
   candidate in the candidates list for the current ICE negotiation.
   However, on some implementations, it could be true that candidate
   gathering is already complete, even though the end-of-candidates
   announcement hasn't been sent.  In other words, a trickle ICE agent
   might need to restart ICE in order to restart candidate gathering.
   If the end-of-candidates announcement has already been sent, ICE
   restart is necessary in order to add the new relayed candidate.



Williams & Reddy           Expires May 5, 2016                  [Page 8]

Internet-Draft           Peer Redirect for TURN            November 2015


   It is possible for a TURN relay to send multiple Redirect indications
   on the same allocation within a short time frame, each for a
   different set of peers.  For example, consider the case of a remote
   peer with two interfaces, one wifi and the other 4G on a different
   Internet service provider.  It is possible that the network geography
   for each interface requires a different relay for best performance
   and therefore a unique Redirect indication.  After receiving a
   Redirect indication that does not apply to all peers associated with
   the allocation, it might be beneficial for the ICE agent to delay ICE
   restart by a small interval in order to avoid restarting ICE multiple
   times within a short time frame.  However, selecting a good delay
   interval could be difficult, since the time between indications could
   vary due to packet loss and retransmission timeouts.

   The authors have considered alternative Redirect indication formats
   that would allow all concurrent redirects to be provided in a single
   indication, which would avoid the above described issue.  Feedback is
   desired on the question of whether the problem of minimizing ICE
   restarts is important enough to add greater complexity to the
   building and parsing of Redirect indications.

5.  Security Considerations

   This section considers attacks that are possible in a TURN deployment
   through the specified protocol extension, and discusses how they are
   mitigated by mechanisms in the protocol or recommended practices in
   the implementation.

   The specified mechanism affects the use of TURN CreatePermission
   request messages, ChannelBind request messages, and Redirect
   indication messages.  Each of these TURN message types requires a
   STUN message integrity attribute (either MESSAGE-INTEGRITY or
   MESSAGE-INTEGRITY-SHA256), which limits attacks that attempt to make
   use of the specified mechanism to authenticated clients and servers.

5.1.  Permission Flood

   A compromised TURN client could send a large number of
   CreatePermission or ChannelBind request messages with distinct peer
   address values, which would drive increased load on the TURN server.
   The mechanism described in this document does not make such an attack
   more likely, though it could make it possible to increase the impact
   of such an attack due to the additional load associated with
   determining whether an alternate server should be used by the client.
   The TURN server MAY be configured to disable or rate limit alternate
   server checks under some conditions in order to limit the associated
   load.  The conditions under which it is appropriate for a TURN server




Williams & Reddy           Expires May 5, 2016                  [Page 9]

Internet-Draft           Peer Redirect for TURN            November 2015


   to ignore disable or rate limit such checks are implementation
   dependent.

5.2.  Unsolicited or Invalid Redirect Indication

   A compromised TURN server could send Redirect indications for
   allocations that did not include the CHECK-ALTERNATE attribute.  For
   a client that does not support this mechanism, receiving such
   indications is no worse than receiving messages with any other
   unrecognized message type.  A client that recognizes the message type
   MUST ignore Redirect indications for allocations where CHECK-
   ALTERNATE was not specified, and in particular, to avoid unnecessary
   authentication overhead, the client SHOULD drop such indications
   before attempting to validate the message integrity attribute.

   A compromised TURN server could send an invalid ALTERNATE-SERVER
   attribute value in a Redirect indication message, where the value
   refers to an unaffiliated TURN server to which the sending TURN
   server is not allowed to redirect traffic.  Such an attack is already
   allowed by the use of Try Alternate errors in response to Allocate
   request messages.  Use of the ALTERNATE-SERVER attribute in the
   context of peer-specific redirection does not make such an attack
   more likely, though it could make it possible to increase the scale
   of such an attack by allowing multiple ALTERNATE-SERVER attributes to
   each client, one per requested permission or binding.  A client
   SHOULD ignore all future Redirect indications received from the TURN
   server after an authentication failure with any server identified via
   an ALTERNATE-SERVER attribute.  A client MAY discontinue use of the
   associated TURN allocation after an authentication failure with any
   server identified via an ALTERNATE-SERVER attribute.

   An external attacker could send an invalid ALTERNATE-SERVER attribute
   value in a Redirect indication message.  The client must have some
   way to detect when this occurs, which is the purpose of including a
   message integrity attribute in the Redirect indication.  Without the
   message integrity attribute, it would be possible for an attacker to
   spoof a Redirect indication from the TURN server and drive the client
   to attempt to connect to a bad relay server.

5.3.  Replayed Redirect Indication

   An in-path attacker could capture and replay Redirect indications.
   If the client has been redirected again after the replayed Redirect
   indication was received, the replay could drive the client to carry
   out unnecessary work to establish a new allocation and restart ICE if
   the results of the previous Redirect indication have since been
   discarded.  It could also drive unexpected load from the client to a
   server that has since become overloaded, potentially degrading



Williams & Reddy           Expires May 5, 2016                 [Page 10]

Internet-Draft           Peer Redirect for TURN            November 2015


   performance for not only the target client but also all others now
   connected to the alternate server.

   Multiple potential mitigations for this attack exist.  For example, a
   client that maintains a complete list of all TURN servers used
   throughout the life of the session could keep track of the
   Transaction ID for each Redirect indication received, which would
   allow the client to recognize and reject a replayed indication.
   Alternatively, a client could rate-limit its responses to Redirect
   indications, requiring a configurable interval to expire between
   Redirect indications before accepting a new one.

   The authors have also considered the option of adding a timestamp
   attribute to the Redirect indication message.  The timestamp could be
   used to minimize the window of opportunity for a Redirect indication
   replay attack.  However, such use of timestamps is fragile in the
   presence of potential clock skew problems between the client and the
   server and so has not been included in the specification.

6.  IANA Considerations

   [Paragraphs below in braces should be removed by the RFC Editor upon
   publication]

   [The CHECK-ALTERNATE attribute requires that IANA allocate a value in
   the "STUN Attributes Registry" from the comprehension-optional range
   (0x8000-0xFFFF), to be replaced for TBD-CA throughout this document]

   This document defines the CHECK-ALTERNATE STUN attribute, described
   in Section 3.1.  IANA has allocated the comprehension-optional
   codepoint TBD-CA for this attribute.

   [The XOR-OTHER-ADDRESS attribute requires that IANA allocate a value
   in the "STUN Attributes Registry" from the comprehension-optional
   range (0x8000-0xFFFF), to be replaced for TBD-XOA throughout this
   document]

   This document defines the XOR-OTHER-ADDRESS STUN attribute, described
   in Section 3.3.  IANA has allocated the comprehension-optional
   codepoint TBD-XOA for this attribute.

   [The Redirect indication codepoint requires that IANA allocate a
   value in the "STUN Methods Registry", to be replace for TBD-RI
   throughout this document.]

   This document defines the Redirect indication method type, described
   in Section 3.5.  IANA has allocated the codepoint TBD-RI for this
   method type.



Williams & Reddy           Expires May 5, 2016                 [Page 11]

Internet-Draft           Peer Redirect for TURN            November 2015


7.  Acknowledgements

   Many thanks to J.  Uberti for his suggestions regarding ICE
   interactions.

8.  References

8.1.  Normative References

   [I-D.ietf-tram-stunbis]
              Petit-Huguenin, M., Salgueiro, G., Rosenberg, J., Wing,
              D., Mahy, R., and P. Matthews, "Session Traversal
              Utilities for NAT (STUN)", draft-ietf-tram-stunbis-04
              (work in progress), March 2015.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
              RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [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>.

8.2.  Informative References

   [I-D.ietf-ice-trickle]
              Ivov, E., Rescorla, E., Uberti, J., and P. Saint-Andre,
              "Trickle ICE: Incremental Provisioning of Candidates for
              the Interactive Connectivity Establishment (ICE)
              Protocol", draft-ietf-ice-trickle-00 (work in progress),
              October 2015.

   [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>.

Appendix A.  Change History

   [Note to RFC Editor: Please remove this section prior to
   publication.]






Williams & Reddy           Expires May 5, 2016                 [Page 12]

Internet-Draft           Peer Redirect for TURN            November 2015


A.1.  Changes from version 03 to 04

   Introduced Redirect indication to redefine the mechanism as push-like
   notification.

   Moved CHECK-ALTERNATE to Allocation request.

   Added a short section on ICE interactions.

   Changed STUN reference to STUNbis, since the doc now references
   STUNbis content.  Left other references as they are.

A.2.  Changes from version 02 to 03

   Minor copy-editing.

A.3.  Changes from version 01 to 02

   Add warning about the difference between physical geography and
   network geography.

   Add load balancing use case.

A.4.  Changes from version 00 to 01

   Expand discussion of when/how to use CHECK-ALTERNATE and XOR-OTHER-
   ADDRESS.

Authors' Addresses

   Brandon Williams
   Akamai, Inc.
   8 Cambridge Center
   Cambridge, MA  02142
   USA

   Email: brandon.williams@akamai.com


   Tirumaleswar Reddy
   Cisco Systems, Inc.
   Cessna Business Park, Varthur Hobli
   Sarjapur Marathalli Outer Ring Road
   Bangalore, Karnataka  560103
   India

   Email: tireddy@cisco.com




Williams & Reddy           Expires May 5, 2016                 [Page 13]