Uploaded image for project: 'OASIS Message Queuing Telemetry Transport (MQTT) TC'
  1. OASIS Message Queuing Telemetry Transport (MQTT) TC
  2. MQTT-286

Make Qos 2 Delivery Method 'B' Normative



    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5
    • Fix Version/s: 5
    • Component/s: core
    • Labels:
    • Resolution:

      Added to WD09

      Added to WD09


      I propose QoS 2 Delivery Method B should become the only forwarding method, and Method A be eliminated in future MQTT versions.

      This can reduce delivery delays for PUBLISH messages over QoS 2 flows when the network propagation delay is substantial. In addition, Method B eliminates temporary storage required by Method A. Both methods are described in MQTT 3.1.1 Section 4.3.3 in non-normative text accompanying diagram 4.3.

      This change may also be beneficial for the following MQTT isses:

      MQTT-197 Support Request Reply
      MQTT-236 Consolidate ACKs, Enable NAKs
      MQTT-271 Describe Small Device Limitations aka The Arduino problem.

      I propose the existing non-normative text in section 4.3.3 :

      "...there are two methods by which QoS 2 can be handled by the receiver. They differ in the point within the flow at which the message is made available for onward delivery. The choice of Method A or Method B is implementation specific. As long as an implementation chooses exactly one of these approaches, this does not affect the guarantees of a QoS 2 flow."

      Be replaced by normative text along the lines of the following:

      "Upon receiving a QoS 2 PUBLISH message which is both valid and not a duplicate, the receiver SHOULD immediately initiate onward delivery and send a PUBREC. The receiver MAY send a PUBREC before the onward delivery is complete. If the forwarding operation fails, the receiver MUST send an appropriate error response, or terminate the transport as specified in section

      {TBD part of MQTT-236 }

      . The receiver MUST NOT send more than one PUBREC for the a single message arrival."

      A brief containing additional details can be found here:





            • Assignee:
              edbriggs Ed Briggs [X] (Inactive)
              edbriggs Ed Briggs [X] (Inactive)
            • Watchers:
              3 Start watching this issue


              • Due: