The Quality for Service (Q4S) Protocol
RFC 8802

Document Type RFC - Informational (July 2020; No errata)
Was draft-aranda-dispatch-q4s (individual)
Authors Jose Aranda  , Monica Cortes  , Joaquin Salvachua  , Tecnalia Innovation  , Inaki Sarriegui 
Last updated 2020-07-29
Stream ISE
Formats plain text html xml pdf htmlized bibtex
IETF conflict review conflict-review-aranda-dispatch-q4s
Stream ISE state Published RFC
Consensus Boilerplate Unknown
Document shepherd Adrian Farrel
Shepherd write-up Show (last changed 2019-05-25)
IESG IESG state RFC 8802 (Informational)
Telechat date
Responsible AD (None)
Send notices to Adrian Farrel <>
IANA IANA review state Version Changed - Review Needed
IANA action state No IANA Actions

Independent Submission                                       J.J. Aranda
Request for Comments: 8802                                     M. Cortés
Category: Informational                                            Nokia
ISSN: 2070-1721                                             J. Salvachúa
                                             Univ. Politecnica de Madrid
                                                             M. Narganes
                                                   I. Martínez-Sarriegui
                                                            Optiva Media
                                                               July 2020

                 The Quality for Service (Q4S) Protocol


   This memo describes an application-level protocol for the
   communication of end-to-end QoS compliance information based on the
   HyperText Transfer Protocol (HTTP) and the Session Description
   Protocol (SDP).  The Quality for Service (Q4S) protocol provides a
   mechanism to negotiate and monitor latency, jitter, bandwidth, and
   packet loss, and to alert whenever one of the negotiated conditions
   is violated.

   Implementation details on the actions to be triggered upon reception/
   detection of QoS alerts exchanged by the protocol are out of scope of
   this document; it is either application dependent (e.g., act to
   increase quality or reduce bit-rate) or network dependent (e.g.,
   change connection's quality profile).

   This protocol specification is the product of research conducted over
   a number of years; it is presented here as a permanent record and to
   offer a foundation for future similar work.  It does not represent a
   standard protocol and does not have IETF consensus.

Status of This Memo

   This document is not an Internet Standards Track specification; it is
   published for informational purposes.

   This is a contribution to the RFC Series, independently of any other
   RFC stream.  The RFC Editor has chosen to publish this document at
   its discretion and makes no statement about its value for
   implementation or deployment.  Documents approved for publication by
   the RFC Editor are not candidates for any level of Internet Standard;
   see 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

Copyright Notice

   Copyright (c) 2020 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
   ( 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.

Table of Contents

   1.  Introduction
     1.1.  Scope
     1.2.  Motivation
     1.3.  Summary of Features
     1.4.  Differences from OWAMP/TWAMP
   2.  Terminology
   3.  Overview of Operation
   4.  Q4S Messages
     4.1.  Requests
     4.2.  Responses
     4.3.  Header Fields
       4.3.1.  Common Q4S Header Fields
       4.3.2.  Specific Q4S Request Header Fields
       4.3.3.  Specific Q4S Response Header Fields
     4.4.  Bodies
       4.4.1.  Encoding
   5.  Q4S Method Definitions
     5.1.  BEGIN
     5.2.  READY
     5.3.  PING
     5.4.  BWIDTH
     5.5.  Q4S-ALERT
     5.6.  Q4S-RECOVERY
     5.7.  CANCEL
   6.  Response Codes
     6.1.  100 Trying
     6.2.  Success 2xx
       6.2.1.  200 OK
     6.3.  Redirection 3xx
     6.4.  Request Failure 4xx
       6.4.1.  400 Bad Request
       6.4.2.  404 Not Found
       6.4.3.  405 Method Not Allowed
       6.4.4.  406 Not Acceptable
       6.4.5.  408 Request Timeout
       6.4.6.  413 Request Entity Too Large
       6.4.7.  414 Request-URI Too Long
       6.4.8.  415 Unsupported Media Type
       6.4.9.  416 Unsupported URI Scheme
     6.5.  Server Failure 5xx
       6.5.1.  500 Server Internal Error
       6.5.2.  501 Not Implemented
       6.5.3.  503 Service Unavailable
       6.5.4.  504 Server Time-Out
       6.5.5.  505 Version Not Supported
       6.5.6.  513 Message Too Large
     6.6.  Global Failures 6xx
       6.6.1.  600 Session Does Not Exist
       6.6.2.  601 Quality Level Not Allowed
       6.6.3.  603 Session Not Allowed
       6.6.4.  604 Authorization Not Allowed
   7.  Protocol
     7.1.  Protocol Phases
     7.2.  SDP Structure
       7.2.1.  "qos-level" Attribute
       7.2.2.  "alerting-mode" Attribute
       7.2.3.  "alert-pause" Attribute
       7.2.4.  "recovery-pause" Attribute
       7.2.5.  "public-address" Attributes
       7.2.6.  "latency" Attribute
       7.2.7.  "jitter" Attribute
       7.2.8.  "bandwidth" Attribute
       7.2.9.  "packetloss" Attribute
       7.2.10. "flow" Attributes
       7.2.11. "measurement" Attributes
Show full document text