Columbia University G. Camarillo Ericsson October 2005

Similar documents
Request for Comments: 4759 Category: Standards Track Neustar Inc. L. Conroy Roke Manor Research November 2006

Request for Comments: 3968 Updates: 3427 December 2004 BCP: 98 Category: Best Current Practice

Request for Comments: 3959 Category: Standards Track December 2004

Network Working Group. BCP: 131 July 2007 Category: Best Current Practice

Ericsson D. Willis. Cisco Systems. April 2006

Request for Comments: 4715 Category: Informational NTT November 2006

Request for Comments: 3764 Category: Standards Track April enumservice registration for Session Initiation Protocol (SIP) Addresses-of-Record

Request for Comments: 5369 Category: Informational October Framework for Transcoding with the Session Initiation Protocol (SIP)

Request for Comments: 5115 Category: Standards Track UCL January Telephony Routing over IP (TRIP) Attribute for Resource Priority

Request for Comments: 5079 Category: Standards Track December Rejecting Anonymous Requests in the Session Initiation Protocol (SIP)

Request for Comments: 3861 Category: Standards Track August 2004

vcard Extensions for Instant Messaging (IM)

Network Working Group Request for Comments: 4143 Category: Standards Track Brandenburg November 2005

Category: Standards Track December 2007

Category: Standards Track Cisco H. Tschofenig Nokia Siemens Networks August 2008

September The Internet Assigned Number Authority (IANA) tel Uniform Resource Identifier (URI) Parameter Registry. Status of This Memo

Category: Standards Track June Requesting Attributes by Object Class in the Lightweight Directory Access Protocol (LDAP) Status of This Memo

Network Working Group. Ericsson September TCP-Based Media Transport in the Session Description Protocol (SDP)

Network Working Group. Intended status: Standards Track Columbia U. Expires: March 5, 2009 September 1, 2008

Request for Comments: 4571 Category: Standards Track July 2006

Request for Comments: 4755 Category: Standards Track December 2006

Network Working Group Request for Comments: 4424 February 2006 Updates: 4348 Category: Standards Track

Category: Standards Track March Extensible Provisioning Protocol (EPP) Transport Over TCP

Network Working Group. Category: Standards Track August Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Remote-ID Option

Request for Comments: 4680 Updates: 4346 September 2006 Category: Standards Track

Network Working Group Request for Comments: 5167 Category: Informational Polycom March 2008

Network Working Group. Category: Standards Track June 2005

Request for Comments: Category: Standards Track January 2008

Request for Comments: 4315 December 2005 Obsoletes: 2359 Category: Standards Track. Internet Message Access Protocol (IMAP) - UIDPLUS extension

Category: Standards Track October 2006

Network Working Group Request for Comments: 4573 Category: Standard Track July MIME Type Registration for RTP Payload Format for H.

Network Working Group. Category: Informational October 2005

Category: Standards Track August 2002

Network Working Group. Category: Informational May OSPF Database Exchange Summary List Optimization

Request for Comments: 3934 Updates: 2418 October 2004 BCP: 94 Category: Best Current Practice

Network Working Group. Category: Standards Track June Dynamic Host Configuration Protocol for IPv6 (DHCPv6) Relay Agent Subscriber-ID Option

INTERNET-DRAFT DTLS over DCCP February 6, DTLS over DCCP

Category: Standards Track October Vendor-Identifying Vendor Options for Dynamic Host Configuration Protocol version 4 (DHCPv4)

Category: Standards Track September MIB Textual Conventions for Uniform Resource Identifiers (URIs)

Expires: October 9, 2005 April 7, 2005

Request for Comments: 3578 Category: Standards Track dynamicsoft J. Peterson NeuStar L. Ong Ciena August 2003

October Network News Transfer Protocol (NNTP) Extension for Streaming Feeds

Request for Comments: K. Norrman Ericsson June 2006

Request for Comments: Ericsson February 2004

Request for Comments: May 2007

Isode Limited March 2008

Category: Standards Track May Transport Layer Security Protocol Compression Methods

Network Working Group. Category: Standards Track Juniper Networks August 2008

Network Working Group. Juniper Networks January Maximum Transmission Unit Signalling Extensions for the Label Distribution Protocol

Category: Informational September A Suggested Scheme for DNS Resolution of Networks and Gateways

Network Working Group Request for Comments: 4242 Category: Standards Track University of Southampton B. Volz Cisco Systems, Inc.

Category: Standards Track October 2006

Category: Standards Track Cisco Systems, Inc January The Secure Shell (SSH) Session Channel Break Extension

Network Working Group. Cisco Systems June 2007

Network Working Group. Category: Standards Track Cisco Systems May 2007

Category: Standards Track Cisco Systems, Inc. March 2005

Network Working Group Request for Comments: Cisco Systems, Inc. December 2005

Request for Comments: M. Stillman Nokia M. Tuexen Muenster Univ. of Applied Sciences September 2008

Authentication, Authorization and Accounting Requirements for the Session Initiation Protocol

Network Working Group Request for Comments: August Address-Prefix-Based Outbound Route Filter for BGP-4

Request for Comments: 5010 Category: Standards Track Cisco Systems, Inc. September 2007

Network Working Group Request for Comments: September IANA Considerations for the IPv4 and IPv6 Router Alert Options

Category: Standards Track August 2002

Network Working Group. February 2005

Request for Comments: 4142 Category: Standards Track Nine by Nine November 2005

Category: Standards Track June 2006

Network Working Group. Category: Standards Track December 2005

Category: Standards Track LabN Consulting, LLC July 2008

Category: Experimental June 2006

Updates: 2409 May 2005 Category: Standards Track. Algorithms for Internet Key Exchange version 1 (IKEv1)

Network Working Group Request for Comments: 4060 Category: Standards Track May 2005

Network Working Group. Category: Informational September 2007

Network Working Group Request for Comments: 3508 Category: Informational April H.323 Uniform Resource Locator (URL) Scheme Registration

Category: Standards Track July The Post Office Protocol (POP3) Simple Authentication and Security Layer (SASL) Authentication Mechanism

Request for Comments: 5179 Category: Standards Track May 2008

Network Working Group. Category: Informational Cisco Systems A. Shaikh AT&T Labs (Research) April 2005

Network Working Group. February Media Gateway Control Protocol (MGCP) Redirect and Reset Package

Request for Comments: 2711 Category: Standards Track BBN October 1999

Updates: 2710 September 2003 Category: Standards Track. Source Address Selection for the Multicast Listener Discovery (MLD) Protocol

Network Working Group. Category: Standards Track September 2006

Request for Comments: January 2007

Internet Engineering Task Force (IETF) Request for Comments: ISSN: June 2010

Network Working Group. Category: Informational June Intermediate System to Intermediate System (IS-IS) Extensions for Traffic Engineering (TE)

Network Working Group. Category: Standards Track July 2007

Network Working Group Request for Comments: 3937 Category: Informational October 2004

Network Working Group Request for Comments: A. Zinin Alcatel-Lucent March 2007

C. Martin ipath Services February A Policy Control Mechanism in IS-IS Using Administrative Tags

Network Working Group. Category: Standards Track DENIC eg January 2005

Network Working Group. Category: Standards Track Samsung S. Kumar Tech Mahindra Ltd S. Madanapalli Samsung May 2008

Network Working Group Request for Comments: 4162 Category: Standards Track KISA August 2005

Request for Comments: Category: Best Current Practice June 2008

Request for Comments: 3932 October 2004 BCP: 92 Updates: 3710, 2026 Category: Best Current Practice

Category: Standards Track Redback Networks June 2008

Network Working Group Request for Comments: 4869 Category: Informational May Suite B Cryptographic Suites for IPsec. Status of This Memo

Network Working Group. M. Duckett T. Anschutz BellSouth J. Moisand Juniper Networks September 2006

Network Working Group Request for Comments: 4558 Category: Standards Track Cisco Systems D. Papadimitriou Alcatel June 2006

Network Working Group Request for Comments: February 2006

Network Working Group. Category: Informational January 2006

Expires in six months 24 October 2004 Obsoletes: RFC , , 3377, 3771

Network Working Group Request for Comments: A. Zinin Alcatel-Lucent March OSPF Out-of-Band Link State Database (LSDB) Resynchronization

Transcription:

Network Working Group Request for Comments: 4168 Category: Standards Track J. Rosenberg Cisco Systems H. Schulzrinne Columbia University G. Camarillo Ericsson October 2005 The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol (SIP) Status of This Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. Copyright Notice Copyright (C) The Internet Society (2005). Abstract This document specifies a mechanism for usage of SCTP (the Stream Control Transmission Protocol) as the transport mechanism between SIP (Session Initiation Protocol) entities. SCTP is a new protocol that provides several features that may prove beneficial for transport between SIP entities that exchange a large amount of messages, including gateways and proxies. As SIP is transport-independent, support of SCTP is a relatively straightforward process, nearly identical to support for TCP. Rosenberg, et al. Standards Track [Page 1]

Table of Contents 1. Introduction...2 2. Terminology...2 3. Potential Benefits...2 3.1. Advantages over UDP...3 3.2. Advantages over TCP...3 4. Transport Parameter...5 5. SCTP Usage...5 5.1. Mapping of SIP Transactions into SCTP Streams...5 6. Locating a SIP Server...6 7. Security Considerations...7 8. IANA Considerations...7 9. References...7 9.1. Normative References...7 9.2. Informative References...8 1. Introduction The Stream Control Transmission Protocol (SCTP) [4] has been designed as a new transport protocol for the Internet (or intranets) at the same layer as TCP and UDP. SCTP has been designed with the transport of legacy SS7 signaling messages in mind. We have observed that many of the features designed to support transport of such signaling are also useful for the transport of SIP (the Session Initiation Protocol) [5], which is used to initiate and manage interactive sessions on the Internet. SIP itself is transport-independent, and can run over any reliable or unreliable message or stream transport. However, procedures are only defined for transport over UDP and TCP. This document defines transport of SIP over SCTP. 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 RFC 2119 [1]. 3. Potential Benefits RFC 3257 presents some of the key benefits of SCTP [10]. We summarize some of these benefits here and analyze how they relate to SIP (a more detailed analysis can be found in [12]). Rosenberg, et al. Standards Track [Page 2]

3.1. Advantages over UDP All the advantages that SCTP has over UDP regarding SIP transport are also shared by TCP. Below, there is a list of the general advantages that a connection-oriented transport protocol such as TCP or SCTP has over a connection-less transport protocol such as UDP. Fast Retransmit: SCTP can quickly determine the loss of a packet, because of its usage of SACK and a mechanism that sends SACK messages faster than normal when losses are detected. The result is that losses of SIP messages can be detected much faster than when SIP is run over UDP (detection will take at least 500 ms, if not more). Note that TCP SACK exists as well, and TCP also has a fast retransmit option. Over an existing connection, this results in faster call setup times under conditions of packet loss, which is very desirable. This is probably the most significant advantage of SCTP for SIP transport. Congestion Control: SCTP maintains congestion control over the entire association. For SIP, this means that the aggregate rate of messages between two entities can be controlled. When SIP is run over TCP, the same advantages are afforded. However, when run over UDP, SIP provides less effective congestion control. This is because congestion state (measured in terms of the UDP retransmit interval) is computed on a transaction-by-transaction basis, rather than across all transactions. Thus, congestion control performance is similar to opening N parallel TCP connections, as opposed to sending N messages over one TCP connection. Transport-Layer Fragmentation: SCTP and TCP provide transport-layer fragmentation. If a SIP message is larger than the MTU size, it is fragmented at the transport layer. When UDP is used, fragmentation occurs at the IP layer. IP fragmentation increases the likelihood of having packet losses and makes NAT and firewall traversal difficult, if not impossible. This feature will become important if the size of SIP messages grows dramatically. 3.2. Advantages over TCP We have shown the advantages of SCTP and TCP over UDP. We now analyze the advantages of SCTP over TCP. Head of the Line: SCTP is message-based, as opposed to TCP, which is stream-based. This allows SCTP to separate different signalling messages at the transport layer. TCP only understands bytes. Assembling received bytes to form signalling messages is performed at the application layer. Therefore, TCP always delivers an Rosenberg, et al. Standards Track [Page 3]

ordered stream of bytes to the application. On the other hand, SCTP can deliver signalling messages to the application as soon as they arrive (when using the unordered service). The loss of a signalling message does not affect the delivery of the rest of the messages. This avoids the head of line blocking problem in TCP, which occurs when multiple higher layer connections are multiplexed within a single TCP connection. A SIP transaction can be considered an application layer connection. There are multiple transactions running between proxies. The loss of a message in one transaction should not adversely effect the ability of a different transaction to send a message. Thus, if SIP is run between entities with many transactions occurring in parallel, SCTP can provide improved performance over SIP over TCP (but not SIP over UDP; SIP over UDP is not ideal from a congestion control standpoint; see above). Easier Parsing: Another advantage of message-based protocols, such as SCTP and UDP, over stream-based protocols, such as TCP, is that they allow easier parsing of messages at the application layer. There is no need to establish boundaries (typically using Content-Length headers) between different messages. However, this advantage is almost negligible. Multihoming: An SCTP connection can be associated with multiple IP addresses on the same host. Data is always sent over one of the addresses, but if it becomes unreachable, data sent to one can migrate to a different address. This improves fault tolerance; network failures making one interface of the server unavailable do not prevent the service from continuing to operate. SIP servers are likely to have substantial fault tolerance requirements. It is worth noting that, because SIP is message oriented and not stream oriented, the existing SRV (Service Selection) procedures defined in [5] can accomplish the same goal, even when SIP is run over TCP. In fact, SRV records allow the connection to fail over to a separate host. Since SIP proxies can run statelessly, failover can be accomplished without data synchronization between the primary and its backups. Thus, the multihoming capabilities of SCTP provide marginal benefits. It is important to note that most of the benefits of SCTP for SIP occur under loss conditions. Therefore, under a zero loss condition, SCTP transport of SIP should perform on par with TCP transport. Research is needed to evaluate under what loss conditions the improvements in setup times and throughput will be observed. Rosenberg, et al. Standards Track [Page 4]

4. Transport Parameter Via header fields carry a transport protocol identifier. RFC 3261 defines the value "SCTP" for SCTP, but does not define the value for the transport parameter for TLS over SCTP. Note that the value "TLS", defined by RFC 3261, is intended for TLS over TCP. Here we define the value "TLS-SCTP" for the transport part of the Via header field to be used for requests sent over TLS over SCTP [8]. The updated augmented BNF (Backus-Naur Form) [2] for this parameter is the following (the original BNF for this parameter can be found in RFC 3261): transport = "UDP" / "TCP" / "TLS" / "SCTP" / "TLS-SCTP" / other-transport The following are examples of Via header fields using "SCTP" and "TLS-SCTP": Via: SIP/2.0/SCTP ws1234.example.com:5060 Via: SIP/2.0/TLS-SCTP ws1234.example.com:5060 5. SCTP Usage Rules for sending a request over SCTP are identical to TCP. The only difference is that an SCTP sender has to choose a particular stream within an association in order to send the request (see Section 5.1). Note that no SCTP identifier needs to be defined for SIP messages. Therefore, the Payload Protocol Identifier in SCTP DATA chunks transporting SIP messages MUST be set to zero. The SIP transport layers of both peers are responsible for managing the persistent SCTP connection between them. On the sender side, the core or a client (or server) transaction generates a request (or response) and passes it to the transport layer. The transport sends the request to the peer s transaction layer. The peer s transaction layer is responsible for delivering the incoming request (or response) to the proper existing server (or client) transaction. If no server (or client) transaction exists for the incoming message, the transport layer passes the request (or response) to the core, which may decide to construct a new server (or client) transaction. 5.1. Mapping of SIP Transactions into SCTP Streams SIP transactions need to be mapped into SCTP streams in a way that avoids Head Of the Line (HOL) blocking. Among the different ways of performing this mapping that fulfill this requirement, we have chosen Rosenberg, et al. Standards Track [Page 5]

the simplest one; a SIP entity SHOULD send every SIP message (request or response) over stream zero with the unordered flag set. On the receiving side, a SIP entity MUST be ready to receive SIP messages over any stream. In the past, it was proposed that SCTP stream IDs be used as lightweight SIP transaction identifiers. That proposal was withdrawn because SIP now provides (as defined in RFC 3261 [5]) a transaction identifier in the branch parameter of the Via entries. This transaction identifier, missing in the previous SIP spec [9], makes it unnecessary to use the SCTP stream IDs to demultiplex SIP traffic. In many circumstances, SIP requires the use of TLS [3], for instance, when routing a SIPS URI [5]. As defined in RFC 3436 [8], TLS running over SCTP MUST NOT use the SCTP unordered delivery service. Moreover, any SIP use of an extra layer between the transport layer and SIP that requires ordered delivery of messages MUST NOT use the SCTP unordered delivery service. SIP applications that require ordered delivery of messages from the transport layer (e.g., TLS) SHOULD send SIP messages belonging to the same SIP transaction over the same SCTP stream. Additionally, they SHOULD send messages belonging to different SIP transactions over different SCTP streams, as long as there are enough available streams. A common scenario where the above mechanism should be used consists of two proxies exchanging SIP traffic over a TLS connection using SCTP as the transport protocol. This works because all of the SIP transactions between the two proxies can be established within one SCTP association. Note that if both sides of the association follow this recommendation, when a request arrives over a particular stream, the server is free to return responses over a different stream. This way, both sides manage the available streams in the sending direction, independently of the streams chosen by the other side to send a particular SIP message. This avoids undesirable collisions when seizing a particular stream. 6. Locating a SIP Server The primary issue when sending a request is determining whether the next hop server supports SCTP so that an association can be opened. SIP entities follow normal SIP procedures to discover [6] a server that supports SCTP. Rosenberg, et al. Standards Track [Page 6]

However, in order to use TLS on top of SCTP, an extra definition is needed. RFC 3263 defines the NAPTR (Naming Authority Pointer) [7] service value "SIP+D2S" for SCTP, but fails to define a value for TLS over SCTP. Here we define the NAPTR service value "SIPS+D2S" for servers that support TLS over SCTP [8]. 7. Security Considerations The security issues raised in RFC 3261 [5] are not worsened by SCTP, provided the advice in Section 5.1 is followed and TLS over SCTP [8] is used where TLS would be required in RFC 3261 [5] or in RFC 3263 [6]. So, the mechanisms described in RFC 3436 [8] MUST be used when SIP runs on top of TLS [3] and SCTP. 8. IANA Considerations This document defines a new NAPTR service field value (SIPS+ D2S). The IANA has registered this value under the "Registry for the SIP SRV Resource Record Services Field". The resulting entry is as follows: Services Field Protocol Reference -------------------- -------- --------- SIPS+D2S SCTP [RFC4168] 9. References 9.1. Normative References [1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [2] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", RFC 2234, November 1997. [3] Dierks, T. and C. Allen, "The TLS Protocol Version 1.0", RFC 2246, January 1999. [4] Stewart, R., Xie, Q., Morneault, K., Sharp, C., Schwarzbauer, H., Taylor, T., Rytina, I., Kalla, M., Zhang, L., and V. Paxson, "Stream Control Transmission Protocol", RFC 2960, October 2000. [5] 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. [6] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol (SIP): Locating SIP Servers", RFC 3263, June 2002. Rosenberg, et al. Standards Track [Page 7]

[7] Mealling, M., "Dynamic Delegation Discovery System (DDDS) Part Three: The Domain Name System (DNS) Database", RFC 3403, October 2002. [8] Jungmaier, A., Rescorla, E., and M. Tuexen, "Transport Layer Security over Stream Control Transmission Protocol", RFC 3436, December 2002. 9.2. Informative References [9] Handley, M., Schulzrinne, H., Schooler, E., and J. Rosenberg, "SIP: Session Initiation Protocol", RFC 2543, March 1999. [10] Coene, L., "Stream Control Transmission Protocol Applicability Statement", RFC 3257, April 2002. [11] Camarillo, G., "The Internet Assigned Number Authority (IANA) Uniform Resource Identifier (URI) Parameter Registry for the Session Initiation Protocol (SIP)", BCP 99, RFC 3969, December 2004. [12] Camarillo, G., Schulrinne, H., and R. Kantola, "Evaluation of Transport Protocols for the Session Initiation Protocol", IEEE, Network vol. 17, no. 5, 2003. Rosenberg, et al. Standards Track [Page 8]

Authors Addresses Jonathan Rosenberg Cisco Systems 600 Lanidex Plaza Parsippany, NJ 07054 US Phone: +1 973 952-5000 EMail: jdrosen@cisco.com URI: http://www.jdrosen.net Henning Schulzrinne Columbia University M/S 0401 1214 Amsterdam Ave. New York, NY 10027-7003 US EMail: schulzrinne@cs.columbia.edu Gonzalo Camarillo Ericsson Hirsalantie 11 Jorvas 02420 Finland EMail: Gonzalo.Camarillo@ericsson.com Rosenberg, et al. Standards Track [Page 9]

Full Copyright Statement Copyright (C) The Internet Society (2005). 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 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 ietfipr@ietf.org. Acknowledgement Funding for the RFC Editor function is currently provided by the Internet Society. Rosenberg, et al. Standards Track [Page 10]