Network Working Group                                       J. Rosenberg
Internet-Draft                                                     Cisco
Intended status: Standards Track                       February 15, 2008
Expires: August 18, 2008


    NICE: Non Session Initiation Protocol (SIP) usage of Interactive
                    Connectivity Establishment (ICE)
                  draft-rosenberg-mmusic-ice-nonsip-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 18, 2008.

Copyright Notice

   Copyright (C) The IETF Trust (2008).

Abstract

   Interative Connectivity Establishment (ICE) has been specified as a
   NAT traversal mechanism for protocols based on the offer/answer
   exchange model.  In practice, only the Session Initiation Protocol
   (SIP) has been based on the offer/answer model.  This document
   defines a SIP independent subset of ICE, called NICE, which can be
   used with any protocol wishing to establish a direct host-to-host
   relationship through NAT.  Protocol specifications need only



Rosenberg                Expires August 18, 2008                [Page 1]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   reference this document, and include the object defined here in their
   messages, in order to achieve NAT traversal.


Table of Contents

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
   2.  Can My Protocol Use NICE?  . . . . . . . . . . . . . . . . . .  3
   3.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   4.  Overview of Operation  . . . . . . . . . . . . . . . . . . . .  6
   5.  Differences between ICE and NICE . . . . . . . . . . . . . . .  6
   6.  Gathering Candidates . . . . . . . . . . . . . . . . . . . . .  8
   7.  Sending an Initiate Message  . . . . . . . . . . . . . . . . .  8
   8.  Receiving an Initiate Message  . . . . . . . . . . . . . . . .  9
   9.  Receiving an Accept Message  . . . . . . . . . . . . . . . . .  9
   10. Connectivity Checks  . . . . . . . . . . . . . . . . . . . . . 10
   11. Concluding ICE . . . . . . . . . . . . . . . . . . . . . . . . 10
   12. Subsequent Messaging . . . . . . . . . . . . . . . . . . . . . 10
   13. Keepalives . . . . . . . . . . . . . . . . . . . . . . . . . . 10
   14. Sending and Receiving Data . . . . . . . . . . . . . . . . . . 10
   15. The NICE Object  . . . . . . . . . . . . . . . . . . . . . . . 11
   16. Security Considerations  . . . . . . . . . . . . . . . . . . . 12
   17. IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 12
   18. Tongue Twister . . . . . . . . . . . . . . . . . . . . . . . . 13
   19. References . . . . . . . . . . . . . . . . . . . . . . . . . . 13
     19.1.  Normative References  . . . . . . . . . . . . . . . . . . 13
     19.2.  Informative References  . . . . . . . . . . . . . . . . . 14
   Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 14
   Intellectual Property and Copyright Statements . . . . . . . . . . 16






















Rosenberg                Expires August 18, 2008                [Page 2]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


1.  Introduction

   Interactive Connectivity Establishment (ICE) [I-D.ietf-mmusic-ice]
   has been specified by the IETF as a mechanism for NAT traversal for
   protocols based on the offer/answer model [RFC3264], which exchanges
   Session Description Protocol (SDP) [RFC4566] objects to negotiate
   media sessions.

   ICE has many benefits.  It is automated, relying on very little
   configuration.  It works through an extremely broad range of network
   and NAT topologies.  It is robust, establishing connections in many
   challenging environments.  It is efficient, utilizing relays and
   intermediaries only when other options will not work.  At the time of
   writing, ICE has seen widespread usage on the Internet for traversal
   of Voice over IP, primarily based on the Session Initiation Protocol
   (SIP) [RFC3261]

   However, SIP is not the only protocol that requires the establishment
   of host-to-host relationships for communications.  Consequently, ICE
   has recently been considered as the NAT traversal technique for other
   protocols.  These include Peer-to-Peer SIP (P2PSIP)
   [I-D.bryan-p2psip-reload], Host Identity Protocol (HIP)
   [I-D.manyfolks-hip-sturn] and Mobile IP v6 [I-D.tschofenig-mip6-ice].
   In each case, the protocol in question provides a mechanism for two
   hosts to rendezvous through some intermediary, and then needs a host-
   to-host connection established.  This fits the NAT traversal
   capability provided by ICE.

   Unfortunately, the ICE specification itself is intertwined with SDP
   and the offer/answer model, and is not immediately usable by
   protocols that do not utilize offer/answer.  For this reason, each of
   these protocols has needed to define its own usage of ICE.  This
   results in duplicate work and inconsistent solutions for NAT
   traversal.

   To remedy this, this document defines a generic NAT traversal
   solution based on ICE, called NICE.  It does so by referencing the
   specific parts of the ICE specification that are needed.  It also
   defines a simply object that can be exchanged in other protocols.
   Consequently, protocols that fit the design pattern for NICE need
   only reference this document, and provide a way to include the
   defined object in their messages.  With that, they have a solution
   for NAT traversal.


2.  Can My Protocol Use NICE?

   Not all protocols can make use of NICE.  NICE works only with



Rosenberg                Expires August 18, 2008                [Page 3]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   protocols that fit the pattern of a session protocol.  A session
   protocol is one in which there exists some kind of rendezvous
   service, typically through a server on the Internet, by which hosts
   can contact each other.  Through the rendezvous service, hosts can
   exchange information for the purposes of negotiating a direct host to
   host connection.  Each host is assumed to have an identifier by which
   it is known to the rendezvous service, and by which other hosts can
   identify it.  There is typically some kind of registration operation,
   by which a host connects to the rendezvous service and identifies
   itself.  This protocol design pattern is shown in Figure 1.


                         +--------------+
                         |              |
                         |              |
                      >  |  Rendezvous  | \
                     /   |    Service   |  \
                    /    |              |   \
                   /     |              |    \
                  /      |              |     \
                 /       +--------------+      \
                /                               \
               /  Connect                        \
              /   To Y                            \
             /                                     \

        +--------+                            +--------+
        |        |                            |        |
        |        |                            |        |
        |  Host  |  ......................... |  Host  |
        | ID:X   |                            | ID:Y   |
        |        |                            |        |
        +--------+                            +--------+

                        Figure 1: Session Protocols

   If hosts can reach each other through the rendezvous service, why
   create direct connections?  Typically, the rendezvous service
   provides an indirect connection, and may be very suboptimal in terms
   of latency and other path metrics.  The rendezvous service may also
   have limited bandwidth, and not be capable of supporting the volume
   of data required to flow between the hosts.

   As an example, in SIP, the rendezvous service is the SIP server.  The
   identifier is the SIP URI.  The registration process is supported
   using the REGISTER method.  Connections are established using the
   INVITE method.




Rosenberg                Expires August 18, 2008                [Page 4]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   For a protocol to use NICE, it must exhibit the properties of a
   session protocol as described above.  Furthermore, it must provide a
   mechanism for exchanging MIME objects between the hosts for purposes
   of establishing the connection.  It must provide for, at least, one
   message from the initiator to the other host, and one message back.
   If all of these criteria are met, NICE can be used.


3.  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 RFC 2119 [RFC2119].

   In addition, this document introduces the following terms:

   Session Initiator:  A software or hardware entity on a host that
      wishes to establish establish communications with another host,
      called the session responder.  A session initiator is also called
      an initiator.

   Initiator:  Another term for a session initiator.

   Session Responder:  A software or hardware entity on a host that
      receives a request for establishment of communications from the
      session initiator, and either accepts or declines the request.  A
      session responder is also called a responder.

   Responder:  Another term for a session responder.

   Client:  Either the initiator or responder.

   Peer:  From the perspective of one of the clients in a session, its
      peer is the other client.  Specifically, from the perspective of
      the initiator, the peer is the responder.  From the perspective of
      the responder, the peer is the initiator.

   Rendezvous Service:  A protocol service provided to the clients that
      allows them to identify each other using a well known identifier,
      and then send messages back and forth.

   Initiate Message:  The message in the rendezvous protocol used by an
      initiator to establish communications.  It contains the ICE
      parameters needed to establish communications.







Rosenberg                Expires August 18, 2008                [Page 5]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   Accept Message:  The message in the rendezvous protocol used by a
      responder to establish communications.  It contains the ICE
      parameters needed to establish communications.


4.  Overview of Operation

   To utilize NICE, one host, the INITIATOR, sends a message using the
   rendezvous protocol.  This message is addressed towards another host,
   the RESPONDER.  This message is called the Initiate message.  That
   message contains a MIME object, specified in Section 15, which
   includes the information needed by NICE.  In particular, it contains
   a set of candidates for the purposes of establishing a single
   "stream".  This stream is a host-to-host UDP association or TCP
   connection.  The rendezvous service delivers the Initiate message to
   the RESPONDER.  It sends a message back to the initiator, called the
   Accept message.  This message also carries the same object,
   containing information from the Responder for the purposes of
   establishing the stream.

   NICE uses server reflexive and relayed candidates learned from
   Session Traversal Utilities for NAT (STUN) STUN
   [I-D.ietf-behave-rfc3489bis] and Traversal Using Relay through NAT
   (TURN) [I-D.ietf-behave-turn] servers.  These functions can be
   provided by the rendezvous service, or by traditional STUN and TURN
   servers in the network.  The candidates learned from these servers
   are what is included in the objects exchanged through the rendezvous
   protocol.

   Once exchanged, the clients perform connectivity checks.  These
   checks probe for connectivity between the pairs of candidates
   signaled through the rendezvous protocol.  Once a match is found, the
   Initiator sends an updated connectivity check, indicating that a pair
   has been selected.  At that point, packets can flow between initiator
   and responder.


5.  Differences between ICE and NICE

   NICE differs from ICE in two fundamental ways.  Firstly, it is
   abstracted from SDP and RTP specifics.  Secondly, it is subsetted.
   This subsetting operation removes many of the features in ICE that
   are there for reasons having to do with the nuances of SIP, or the
   need for real-time operation.  In particular, the following ICE
   features are not used in NICE:

   o  ICE has the notion of a default candidate.  This default candidate
      is used for backwards compatibility with pre-ICE SIP



Rosenberg                Expires August 18, 2008                [Page 6]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


      implementations.  That mechanism is very specific to SDP backwards
      compatibility techniques, and is not used here.  Instead, if the
      protocol using NICE requires backwards compatibility, it needs to
      define its own mechanisms for such.

   o  ICE supports the notion of updated offers and answers that can
      modify information.  Indeed, it requires such an update when the
      pair selected by ICE does not match the default.  The notion of
      default has been removed in NICE, as has the ability to update the
      ICE information.  This update allowed for mid-call changes in
      connectivity, a frequent occurrence in events like call transfer.
      If a protocol using NICE requires a connection to a different
      host, it has to start a totally new and unrelated ICE session.
      This can result in discontinuous connectivity while the checks re-
      run.  Continuous operation is needed for real-time usage, but not
      more generally.

   o  Simllarly, ICE restarts are not supported in NICE.  Restarts are
      an artifact of sending updated offers and answers.

   o  ICE provides some guidance for handling SIP forking.  This is a
      case where a single offer elicits multiple answers.  Forking is
      specific to SIP, and so this capability is removed from NICE.
      NICE allows connectivity to be set up only between a pair of
      hosts.

   o  ICE defines a lite mode of operation for supporting ease of
      implementation.  Since NICE is already simpler by the removal of
      several large ICE features (most notably updated offers and
      answers), this simplified mode seems unneeded.  It seems better to
      simplify NICE overall rather than define complexity in the normal
      mode in order to introduce a simplified lite mode.

   o  ICE supports the notion of multiple streams and multiple
      components per stream.  This was done specifically to address the
      needs of multimedia.  NICE provides the ability to establish a
      single connection between a pair of hosts.  Consequently, that
      capability is not present in NICE.

   o  ICE defines an algorithm called the Frozen algorithm.  This
      algorithm exists to speed up completion of ICE in cases where
      multiple candidates share similar properties.  For example, when
      an audio and video candidate are on the same host IP address.
      Since NICE only supports a single candidate and a single
      component, the use cases for the Frozen algorithm diminish
      significantly.  Furthermore, the Frozen algorithm is entirely
      about speed and is not as much an issue for more general non-real
      tiem protocols .  Thus, this algorithm is not used by NICE.  It



Rosenberg                Expires August 18, 2008                [Page 7]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


      falls out by using the algorithm defined in ICE, but by setting
      each foundation to a unique value.

   o  ICE defines SDP attributes for "remote-candidates".  These are
      used to resolve a race condition between a subsequent offer/answer
      and the ICE checks.  Since NICE does not use any subsequent
      rendezvous signaling, this attribute and its procedures are not
      used in NICE.

   o  ICE defines an SDP attribute called "ice-mismatch".  This detects
      an ICE failure case due to the presence of signaling
      intermediaries that don't support ICE.  This problem is specific
      to SIP and thus this attribute and associated procedures are not
      used in NICE.


6.  Gathering Candidates

   When a client wishes to establish a connection, it follows the
   process of gathering candidates as described in Section 4.1 of ICE
   [I-D.ietf-mmusic-ice].  However, the client MUST follow those rules
   under the assumption of a single media stream and a single component
   for that stream.  This simplification means that component ID for an
   ICE candidate is always one.  In addition, the rules in Section
   4.1.1.3 MUST be ignored; instead, each candidate MUST have a unique
   foundation, assigned arbitrarily by the client.

   If the client wishes to establish a TCP connection and not a UDP
   stream, or wishes to try both, the client MUST implement ICE-tcp
   [I-D.ietf-mmusic-ice], and MUST follow the procedures defined there
   for gathering of TCP candidates, again assuming a single component.

   The default candidate selection described in Section 4.1.3 of ICE
   MUST be ignored; defaults are not signaled or utilized here.

   The ICE specification assumes that an ICE agent is configured with,
   or somehow knows of, TURN and STUN servers.  Protocols using ICE need
   to describe how such information is learned by clients.


7.  Sending an Initiate Message

   Section 4.3 of ICE describes procedures for encoding the SDP.
   Instead of actually encoding an SDP, the candidate information (IP
   address and port and transport protocol, priority, foundation,
   component ID, type and related address) is carried within the object
   defined in Section 15.  Similarly, the username fragment and password
   are carried in this object.  This object does not contain any default



Rosenberg                Expires August 18, 2008                [Page 8]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   candidates or the ice-lite attribute, as these features of ICE are
   not used in NICE.  The object does contain a Next-Protocol field.
   This field is a string that contains the protocol name that is to be
   run over the TCP or UDP association created by ICE.  These names are
   drawn from the list of protocols defined by IANA at
   http://www.iana.org/assignments/port-numbers.  Note that, since NICE
   will cause STUN and this protocol to be multiplexed on the same port,
   NICE can only be used to negotiate protocols that can be
   differentiated from STUN by inspection.  If the desired protocol
   cannot be differentiated, it MUST be shimmed with a field that allows
   such differentiation, and the resulting protocol MUST be given a new
   name.


8.  Receiving an Initiate Message

   A responder MUST take the role of controlled.  The role determination
   mechanism in Section 5.2 of ICE is not used with NICE.  The ICE
   verification step in Section 5.1 is not used either.  Instead,
   protocols using this specification will need to describe how to
   handle interoperability between clients which are using it, and ones
   which are not.

   The responder follows the procedures in Section 6 to gather
   candidates.  It then forms an Accept message and includes the object
   defined in Section 15.

   The responder MUST follow the procedures in Section 5.7 and 5.8 of
   ICE, following the full implementation requirements and behaving as
   if there was a single media stream with a single component.  Because
   there is only a single media stream and single component in NICE, the
   states described in Section 5.7.4 will become simplified.  There will
   only be a single check list, and none of the candidate pairs will
   ever have the state of Frozen; all pairs will start in the Waiting
   state.


9.  Receiving an Accept Message

   When the initiator receives a response message, it extracts and NICE
   object from the message.  The initiator MUST take the role of
   controlled, and then MUST follow the procedures of Section 5.7 and
   5.8 of ICE, following the full implementation requirements and
   behaving as if there was a single media stream with a single
   component.






Rosenberg                Expires August 18, 2008                [Page 9]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


10.  Connectivity Checks

   The process of performing connectivity checks, as described in
   Section 7 of ICE, is used here without change.  This means that STUN
   connectivity checks will contain the ICE-CONTROLLED and ICE-
   CONTROLLING attributes.  Strictly speaking, these are not needed.
   However, they are retained here to allow for the possibility of
   gatewaying between NICE and ICE (for example, in the event that H.323
   decided to utilize NICE).


11.  Concluding ICE

   The controlling client MUST utilize regular nomination.  This is to
   ensure consistent state on the final selected pairs without the need
   for additional signaling.

   The procedures in Section 8 of ICE are followed to conclude ICE, with
   the following exceptions:

   o  The controlling agent MUST NOT attempt to send an updated offer
      once the state of its single media stream reaches Completed.

   o  Once the state of ICE reaches Completed, the agent can immediately
      free all unused candidates.  This is because the concept of
      forking is not used here, and thus the three second delay in
      Section 8.3 of ICE does not apply.


12.  Subsequent Messaging

   A client MUST NOT send additional Initiate or Accept messages.  Thus,
   the procedures in Section 9 of ICE MUST be ignored.  A client that
   needs to modify its connection parameters in some way MUST establish
   a completely new connection by starting a totally new Initiate/Accept
   exchange and ICE connectivity checks.


13.  Keepalives

   A NICE client MUST utilize STUN for the keepalives described in
   Section 10 of ICE.


14.  Sending and Receiving Data

   A client follows the procedures of Section 11.1.1 of ICE to determine
   when it can proceed to send data.  However, in this case, the "media"



Rosenberg                Expires August 18, 2008               [Page 10]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   takes the form of application layer protocols.  The concept of a
   previous selected pair for a component does not apply to NICE, since
   ICE restarts are not used.  A client MUST be prepared to receive data
   at any time.


15.  The NICE Object

   NICE operates by exchaning a MIME object, called the NICE object, in
   an initiate and response message.  The syntax of that object is
   described here using the BNF defined in [RFC5234].


   NICE-obj    =     nice-ufrag CRLF
                     nice-pwd CRLF
                     nice-proto CRLF
                     1*(nice-cand CRLF)
                     *(nice-opts CRLF)
                     *(nice-ext CRLF)
   nice-ufrag  =     ice-pwd-att
   nice-pwd    =     ice-ufrag-att
   nice-cand   =     candidate-attribute
   nice-opts   =     ice-options
   nice-proto  =     "nextproto:" token
   nice-ext    =     ext-name ":" ext-value
   ext-name    =     token
   ext-value   =     byte-string

   The BNF productions for ice-pwd-att, ice-ufrag-att, candidate-
   attribute and ice-options are defined in [I-D.ietf-mmusic-ice].  The
   NICE object also contains an extensibility mechanism, allowing new
   parameters to be defined which follow the form of name:value.  The
   grammar for the name and its value follow those for SDP attributes.
   This allows for a direct copying of any future ICE-related SDP
   extensions into NICE without translations or specifications; the
   attribute is simply placed into the bottom of the NICE object using
   the grammar defined for it in the ICE extension.

   The nextproto field contains an indication of the protocol that is to
   be multiplexed with STUN over the established connection.  In some
   cases there is only one choice, based on the rendezvous protocol.

   STUN connectivity checks between agents are authenticated using the
   short term credential mechanism defined for STUN
   [I-D.ietf-behave-rfc3489bis].  This mechanism relies on a username
   and password that are exchanged through protocol machinery between
   the client and server.  With NICE, the Initiate and Accept exchange
   is used to exchange them.  The username part of this credential is



Rosenberg                Expires August 18, 2008               [Page 11]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   formed by concatenating a username fragment from each agent,
   separated by a colon.  Each agent also provides a password, used to
   compute the message integrity for requests it receives.  The username
   fragment and password are exchanged in the nice-ufrag and nice-pwd
   attributes, respectively.  In addition to providing security, the
   username provides disambiguation and correlation of checks to media
   streams.


16.  Security Considerations

   ICE provides an extensive discussion on security considerations.
   That discussion applies here as well.

   In particular, ICE security depends in part on message integrity and
   confidentiality of the offer/answer exchange.  In the case of NICE,
   the rendezvous protocol carrying the ICE object needs to provide
   confidentiality and message integrity.  Rendezvous protocols
   utilizing ICE MUST implement and SHOULD use some kind of mechanism to
   achieve that.


17.  IANA Considerations

   This specification registers a new MIME type, "message/nice",
   according to the procedures of RFC 2048 [RFC2048].  This allows NICE
   to readily be used with protocols that provide MIME transport, though
   MIME transport is not required to use NICE.

   MIME media type name:  message

   MIME subtype name:  nice

   Mandatory parameters:  None

   Optional parameters:  None.

   Encoding considerations:  None

   Security considerations:  See Section 16 of RFC XXXX [[RFC EDITOR:
      Replace with RFC number of this specification]].

   Interoperability considerations:  none.

   Published specification:  RFC XXXX [[NOTE TO RFC EDITOR: Please
      replace XXXX with the published RFC number of this
      specification.]].




Rosenberg                Expires August 18, 2008               [Page 12]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


   Applications which use this media type:  This media type is used in
      the NICE protocol defined in in RFC XXXX [[NOTE TO RFC EDITOR:
      Please replace XXXX with the published RFC number of this
      specification.]].

   Additional Information:

      Magic Number:  None

      File Extension:  .nic

      Macintosh file type code:  "TEXT"

      Personal and email address for further information:  Jonathan
         Rosenberg, jdrosen@jdrosen.net

      Intended usage:  COMMON

      Author/Change controller:  The IETF.


18.  Tongue Twister

   Say this five times fast: "ICE is nice, but NICE is nicer ICE".


19.  References

19.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [I-D.ietf-mmusic-ice]
              Rosenberg, J., "Interactive Connectivity Establishment
              (ICE): A Protocol for Network Address  Translator (NAT)
              Traversal for Offer/Answer Protocols",
              draft-ietf-mmusic-ice-19 (work in progress), October 2007.

   [I-D.ietf-behave-rfc3489bis]
              Rosenberg, J., Mahy, R., Matthews, P., and D. Wing,
              "Session Traversal Utilities for (NAT) (STUN)",
              draft-ietf-behave-rfc3489bis-14 (work in progress),
              February 2008.

   [I-D.ietf-behave-turn]
              Rosenberg, J., Mahy, R., and P. Matthews, "Traversal Using
              Relays around NAT (TURN): Relay Extensions to Session



Rosenberg                Expires August 18, 2008               [Page 13]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


              Traversal Utilities for NAT (STUN)",
              draft-ietf-behave-turn-06 (work in progress),
              January 2008.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [RFC2048]  Freed, N., Klensin, J., and J. Postel, "Multipurpose
              Internet Mail Extensions (MIME) Part Four: Registration
              Procedures", BCP 13, RFC 2048, November 1996.

19.2.  Informative References

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              June 2002.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, July 2006.

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              June 2002.

   [I-D.bryan-p2psip-reload]
              Jennings, C., Lowekamp, B., Rescorla, E., and J.
              Rosenberg, "REsource LOcation And Discovery (RELOAD)",
              draft-bryan-p2psip-reload-02 (work in progress),
              November 2007.

   [I-D.manyfolks-hip-sturn]
              Nikander, P., Melen, J., Komu, M., and M. Bagnulo,
              "Mapping STUN and TURN messages on HIP",
              draft-manyfolks-hip-sturn-01 (work in progress),
              November 2007.

   [I-D.tschofenig-mip6-ice]
              Tschofenig, H. and G. Bajko, "Mobile IP Interactive
              Connectivity Establishment (M-ICE)",
              draft-tschofenig-mip6-ice-01 (work in progress),
              July 2007.









Rosenberg                Expires August 18, 2008               [Page 14]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


Author's Address

   Jonathan Rosenberg
   Cisco
   Edison, NJ
   US

   Phone: +1 973 952-5000
   Email: jdrosen@cisco.com
   URI:   http://www.jdrosen.net









































Rosenberg                Expires August 18, 2008               [Page 15]


Internet-Draft       NICE: ICE for non-SIP Protocols       February 2008


Full Copyright Statement

   Copyright (C) The IETF Trust (2008).

   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.

   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, THE IETF TRUST 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.


Intellectual Property

   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.


Acknowledgment

   Funding for the RFC Editor function is provided by the IETF
   Administrative Support Activity (IASA).





Rosenberg                Expires August 18, 2008               [Page 16]