ietf-corpus

rfc-4168

The Stream Control Transmission Protocol (SCTP) as a Transport for the Session Initiation Protocol (SIP)

J. Rosenberg, H. Schulzrinne, G. Camarillo
date2005-10 streamIETF arearai wgsip statusPROPOSED STANDARD pages10 canonicalhttps://www.rfc-editor.org/rfc/rfc4168 doi10.17487/RFC4168
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. [STANDARDS-TRACK]

updated by

Extracted elements (18)

design-rationale §3.2

SCTP multihoming provides only marginal benefits for SIP because SIP's existing SRV-based failover procedures can accomplish the same fault tolerance goal, even allowing failover to a separate host since SIP proxies can run statelessly.

sip, sctp

design-rationale §3.1

SCTP's fast retransmit (via SACK) allows SIP message loss to be detected much faster than with UDP (which requires at least 500 ms), making SCTP's most significant advantage for SIP the improvement in call setup times under packet loss conditions.

sip, sctp, congestion

design-rationale §5.1

Using stream zero with the unordered flag was chosen as the simplest mapping that avoids HOL blocking. A prior proposal to use SCTP stream IDs as lightweight SIP transaction identifiers was withdrawn because RFC 3261 already provides a transaction identifier in the Via branch parameter, making SCTP stream demultiplexing unnecessary.

sip, sctp

design-rationale §5.1

When both sides follow the recommendation to use independent stream management, a server is free to return responses over a different stream than the one the request arrived on, avoiding undesirable collisions when seizing a particular stream.

sip, sctp

interoperability-note §4

RFC 3261 defines 'SCTP' as a Via transport value but does not define a value for TLS over SCTP; 'TLS' in RFC 3261 is intended for TLS over TCP only. This document fills that gap by defining 'TLS-SCTP'.

sip, sctp, tls

interoperability-note §6

RFC 3263 defines the NAPTR service value 'SIP+D2S' for SCTP but omits a value for TLS over SCTP. This document defines 'SIPS+D2S' to complete that gap.

sip, sctp, tls, dns

normative-requirement §5.1 SHOULD

A SIP entity SHOULD send every SIP message (request or response) over stream zero with the unordered flag set to avoid Head Of the Line (HOL) blocking.

sip, sctp

normative-requirement §5.1 MUST NOT

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, sctp

normative-requirement §5.1 MUST

On the receiving side, a SIP entity MUST be ready to receive SIP messages over any SCTP stream.

sip, sctp

normative-requirement §5.1 SHOULD

SIP applications requiring ordered delivery (e.g., TLS) SHOULD send SIP messages belonging to the same SIP transaction over the same SCTP stream, and SHOULD send messages from different transactions over different streams when enough streams are available.

sip, sctp, tls

normative-requirement §5 MUST

The Payload Protocol Identifier in SCTP DATA chunks transporting SIP messages MUST be set to zero, as no SCTP identifier needs to be defined for SIP messages.

sip, sctp

normative-requirement §5.1 MUST NOT

TLS running over SCTP MUST NOT use the SCTP unordered delivery service, as defined in RFC 3436.

sip, sctp, tls

normative-requirement §7 MUST

When SIP runs on top of TLS and SCTP, the mechanisms described in RFC 3436 MUST be used.

sip, sctp, tls, security

protocol-element §6

SIP server discovery for SCTP follows normal SIP procedures per RFC 3263. For TLS over SCTP, the NAPTR service value 'SIPS+D2S' is defined to identify servers supporting TLS over SCTP.

sip, sctp, tls, dns

protocol-element §5.1

SIP transactions are mapped to SCTP streams to avoid HOL blocking. The chosen mapping sends all SIP messages over stream zero with the unordered flag; each side manages its sending streams independently, allowing responses to arrive on different streams than requests.

sip, sctp

protocol-element §4

The Via header transport parameter is extended to include 'TLS-SCTP' for requests sent over TLS over SCTP. The updated ABNF is: transport = "UDP" / "TCP" / "TLS" / "SCTP" / "TLS-SCTP" / other-transport.

sip, sctp, tls

registry §8

This document registers the NAPTR service field value 'SIPS+D2S' for protocol SCTP under the 'Registry for the SIP SRV Resource Record Services Field'.

sip, sctp, registry, dns

security-consideration §7

The security issues raised in RFC 3261 are not worsened by SCTP, provided the stream mapping advice in Section 5.1 is followed and TLS over SCTP (RFC 3436) is used wherever TLS would be required under RFC 3261 or RFC 3263.

sip, sctp, tls, security