Stream Schedulers and User Message Interleaving for the Stream Control Transmission Protocol
RFC 8260

Document Type RFC - Proposed Standard (November 2017; No errata)
Last updated 2017-11-15
Replaces draft-stewart-tsvwg-sctp-ndata
Stream IETF
Formats plain text pdf html bibtex
Reviews
Stream WG state Submitted to IESG for Publication (wg milestone: Apr 2017 - Submit 'SCTP New Dat... )
Document shepherd Gorry Fairhurst
Shepherd write-up Show (last changed 2017-06-22)
IESG IESG state RFC 8260 (Proposed Standard)
Consensus Boilerplate Yes
Telechat date
Responsible AD Spencer Dawkins
Send notices to "Gorry Fairhurst" <gorry@erg.abdn.ac.uk>
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
Internet Engineering Task Force (IETF)                        R. Stewart
Request for Comments: 8260                                 Netflix, Inc.
Category: Standards Track                                      M. Tuexen
ISSN: 2070-1721                         Muenster Univ. of Appl. Sciences
                                                               S. Loreto
                                                                Ericsson
                                                           R. Seggelmann
                                     Metafinanz Informationssysteme GmbH
                                                           November 2017

            Stream Schedulers and User Message Interleaving
              for the Stream Control Transmission Protocol

Abstract

   The Stream Control Transmission Protocol (SCTP) is a message-oriented
   transport protocol supporting arbitrarily large user messages.  This
   document adds a new chunk to SCTP for carrying payload data.  This
   allows a sender to interleave different user messages that would
   otherwise result in head-of-line blocking at the sender.  The
   interleaving of user messages is required for WebRTC data channels.

   Whenever an SCTP sender is allowed to send user data, it may choose
   from multiple outgoing SCTP streams.  Multiple ways for performing
   this selection, called stream schedulers, are defined in this
   document.  A stream scheduler can choose to either implement, or not
   implement, user message interleaving.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8260.

Stewart, et al.              Standards Track                    [Page 1]
RFC 8260         Stream Schedulers and the I-DATA Chunk    November 2017

Copyright Notice

   Copyright (c) 2017 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
   (https://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.

Stewart, et al.              Standards Track                    [Page 2]
RFC 8260         Stream Schedulers and the I-DATA Chunk    November 2017

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.1.  Overview  . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.2.  Conventions . . . . . . . . . . . . . . . . . . . . . . .   6
   2.  User Message Interleaving . . . . . . . . . . . . . . . . . .   6
     2.1.  The I-DATA Chunk Supporting User Message Interleaving . .   7
     2.2.  Procedures  . . . . . . . . . . . . . . . . . . . . . . .   9
       2.2.1.  Negotiation . . . . . . . . . . . . . . . . . . . . .  10
       2.2.2.  Sender-Side Considerations  . . . . . . . . . . . . .  10
       2.2.3.  Receiver-Side Considerations  . . . . . . . . . . . .  11
     2.3.  Interaction with Other SCTP Extensions  . . . . . . . . .  11
       2.3.1.  SCTP Partial Reliability Extension  . . . . . . . . .  11
       2.3.2.  SCTP Stream Reconfiguration Extension . . . . . . . .  13
   3.  Stream Schedulers . . . . . . . . . . . . . . . . . . . . . .  14
     3.1.  First-Come, First-Served Scheduler (SCTP_SS_FCFS) . . . .  14
     3.2.  Round-Robin Scheduler (SCTP_SS_RR)  . . . . . . . . . . .  14
     3.3.  Round-Robin Scheduler per Packet (SCTP_SS_RR_PKT) . . . .  14
     3.4.  Priority-Based Scheduler (SCTP_SS_PRIO) . . . . . . . . .  14
     3.5.  Fair Capacity Scheduler (SCTP_SS_FC)  . . . . . . . . . .  15
     3.6.  Weighted Fair Queueing Scheduler (SCTP_SS_WFQ)  . . . . .  15
   4.  Socket API Considerations . . . . . . . . . . . . . . . . . .  15
     4.1.  Exposure of the Stream Sequence Number (SSN)  . . . . . .  15
     4.2.  SCTP_ASSOC_CHANGE Notification  . . . . . . . . . . . . .  16
     4.3.  Socket Options  . . . . . . . . . . . . . . . . . . . . .  16
Show full document text