Skip to main content

Setting up a SIP (Session Initiation Protocol) connection in a dual stack network using connection oriented transports
draft-johansson-sip-he-connection-00

The information below is for an old version of the document.
Document Type
This is an older version of an Internet-Draft whose latest revision state is "Expired".
Authors Olle E. Johansson , Gonzalo Salgueiro , Dale R. Worley
Last updated 2016-09-04
RFC stream (None)
Formats
Stream Stream state (No stream defined)
Consensus boilerplate Unknown
RFC Editor Note (None)
IESG IESG state I-D Exists
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-johansson-sip-he-connection-00
SIPCORE                                                     O. Johansson
Internet-Draft                                                 Edvina AB
Intended status: Standards Track                            G. Salgueiro
Expires: March 8, 2017                                     Cisco Systems
                                                               D. Worley
                                                                 Ariadne
                                                       September 4, 2016

  Setting up a SIP (Session Initiation Protocol) connection in a dual
           stack network using connection oriented transports
                  draft-johansson-sip-he-connection-00

Abstract

   The Session Initiation Protocol (SIP) supports multiple transports
   running both over IPv4 and IPv6 protocols.  In more and more cases, a
   SIP user agent (UA) is connected to multiple network interfaces.  In
   these cases setting up a connection from a dual stack client to a
   dual stack server may suffer from the issues described in RFC 6555
   [RFC6555] - Happy Eyeballs - significant delays in the process of
   setting up a working flow to a server.  This negatively affects user
   experience.

   This document builds on RFC 6555 and explains how a RFC3261 [RFC3261]
   compliant SIP implementation can quickly set up working flows in a
   dual stack network using connection oriented transport protocols.  A
   solution for connectionless transport protocols is discussed in a
   separate document.

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 March 8, 2017.

Johansson, et al.         Expires March 8, 2017                 [Page 1]
Internet-DraftSIP Happy Eyeballs - connection-oriented traSeptember 2016

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Terminology and Conventions Used in This Document . . . . . .   3
   3.  Background: DNS Procedures in a Dual-Stack Network  . . . . .   4
   4.  Setting up the connection . . . . . . . . . . . . . . . . . .   4
   5.  Security Considerations . . . . . . . . . . . . . . . . . . .   4
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .   4
   7.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .   4
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .   5
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .   5
     8.2.  Informative References  . . . . . . . . . . . . . . . . .   5
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .   5

1.  Introduction

   The core SIP [RFC3261] RFCs were written with support for both IPv4
   and IPv6 in mind, but they were not fully equipped to handle highly
   hybridized environments during this transitional phase of migration
   from IPv4 to IPv6 networks, where many server and client
   implementations run on dual stack hosts.  In such environments, a
   dual-stack host will likely suffer greater connection delay, and by
   extension an inferior user experience, than an IPv4-only host.  The
   need to remedy this diminished performance of dual-stack hosts led to
   the development of the Happy Eyeballs [RFC6555] algorithm, that has
   since been implemented in many applications.

   This document updates RFC 3261[RFC3261] procedures so that a dual-
   stack client using connection oriented transport SHOULD set up
   multiple connections in parallell, based on the result of DNS
   queries.

Johansson, et al.         Expires March 8, 2017                 [Page 2]
Internet-DraftSIP Happy Eyeballs - connection-oriented traSeptember 2016

   Procedures for connectionless transport protocols for SIP will be
   described in a separate document.

   While this document use the term "dual-stack" based on RFC 6555 and
   earlier terminology, the authors acknowledge that the same solution
   can be applied to multi-interface environments as well as future
   versions of IP alongside with the current ones.

2.  Terminology and Conventions Used in This Document

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

   RFC 3261 [RFC3261] defines additional terms used in this document
   that are specific to the SIP domain such as "proxy"; "registrar";
   "redirect server"; "user agent server" or "UAS"; "user agent client"
   or "UAC"; "back-to-back user agent" or "B2BUA"; "dialog";
   "transaction"; "server transaction".

   This document uses the term "SIP Server" that is defined to include
   the following SIP entities: user agent server, registrar, redirect
   server, a SIP proxy in the role of user agent server, and a B2BUA in
   the role of a user agent server.

   This document also uses the following terminology to make clear
   distinction between SIP entities supporting only IPv4, only IPv6 or
   supporting both IPv4 and IPv6.

   IPv4-only UA/UAC/UAS:  An IPv4-only UA/UAC/UAS supports SIP signaling
      and media only on the IPv4 network.  It does not understand IPv6
      addresses.

   IPv6-only UA/UAC/UAS:  An IPv6-only UA/UAC/UAS supports SIP signaling
      and media only on the IPv6 network.  It does not understand IPv4
      addresses.

   IPv4/IPv6 UA/UAC/UAS:  A UA/UAC/UAS that supports SIP signaling and
      media on both IPv4 and IPv6 networks; such a UA/UAC/UAS is known
      (and will be referred to in this document) as a "dual-stack"
      [RFC4213] UA/UAC/UAS.

   Discussion: Do we need special handling of websocket transport?

Johansson, et al.         Expires March 8, 2017                 [Page 3]
Internet-DraftSIP Happy Eyeballs - connection-oriented traSeptember 2016

3.  Background: DNS Procedures in a Dual-Stack Network

   SIP used DNS to find a server based on a SIP URI.  This process is
   described in RFC 3263[RFC3263] and updated in draft-ietf-sipcore-dns-
   dual-stack.  Using these procedures, a host name is selected and DNS
   lookups of address records for all address families will generate a
   list of IP addresses to connect to.  This list will be used as input
   for setting up a connection.

4.  Setting up the connection

   The Happy Eyeballs RFC [RFC6555] does not specify the algorithm used,
   but requirements on algorithms used for quickly setting up a working
   connection for the user.  The reader is encouraged to read the
   available documentation as well as study Open Source implementations
   in order to learn from experience since the publishing of RFC 6555 in
   2012.

   In short, the SIP client is expected to set up two connections, with
   some head start for one address family (which possibly should be
   configurable) and then select the first working connection and close
   the other one.  The SIP message is sent on the selected connection
   only.

   The reason behind this is to avoid the timeout on one connection
   before another address will be tested - which in the case of SIP with
   default timers is 32 seconds.  Waiting for timeout before trying with
   a secondary address will lead to a very poor user experience.

5.  Security Considerations

   This document makes two normative changes to the existing procedures
   in the SIP protocol.  The specific security vulnerabilities, attacks
   and threat models of the various protocols discussed in this document
   (SIP, DNS, SRV records, etc.) are well documented in their respective
   specifications.

6.  IANA Considerations

   This document does not require any actions by IANA.

7.  Acknowledgements

   The author would like to acknowledge the support and contribution of
   the SIP Forum IPv6 Working Group.  This document is based on a lot of
   tests and discussions at SIPit events, organized by the SIP Forum.

   Acknowledgements for reviews and input: Your name can be here!

Johansson, et al.         Expires March 8, 2017                 [Page 4]
Internet-DraftSIP Happy Eyeballs - connection-oriented traSeptember 2016

8.  References

8.1.  Normative References

   [RFC6555]  Wing, D. and A. Yourtchenko, "Happy Eyeballs: Success with
              Dual-Stack Hosts", RFC 6555, DOI 10.17487/RFC6555, April
              2012, <http://www.rfc-editor.org/info/rfc6555>.

8.2.  Informative References

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

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              DOI 10.17487/RFC3261, June 2002,
              <http://www.rfc-editor.org/info/rfc3261>.

   [RFC3263]  Rosenberg, J. and H. Schulzrinne, "Session Initiation
              Protocol (SIP): Locating SIP Servers", RFC 3263,
              DOI 10.17487/RFC3263, June 2002,
              <http://www.rfc-editor.org/info/rfc3263>.

   [RFC4213]  Nordmark, E. and R. Gilligan, "Basic Transition Mechanisms
              for IPv6 Hosts and Routers", RFC 4213,
              DOI 10.17487/RFC4213, October 2005,
              <http://www.rfc-editor.org/info/rfc4213>.

Authors' Addresses

   Olle E. Johansson
   Edvina AB
   Runbovaegen 10
   Sollentuna  SE-192 48
   SE

   Email: oej@edvina.net

Johansson, et al.         Expires March 8, 2017                 [Page 5]
Internet-DraftSIP Happy Eyeballs - connection-oriented traSeptember 2016

   Gonzalo Salgueiro
   Cisco Systems
   7200-12 Kit Creek Road
   Research Triangle Park, NC  27709
   US

   Email: gsalguei@cisco.com

   Dale R. Worley
   Ariadne Internet Services
   738 Main St.
   Waltham, MA  02451
   US

   Email: worley@ariadne.com

Johansson, et al.         Expires March 8, 2017                 [Page 6]