[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [OASIS Issue Tracker] (MQTT-286) Make Qos 2 Delivery Method 'B' Normative
[ https://issues.oasis-open.org/browse/MQTT-286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=63405#comment-63405 ] Ed Briggs commented on MQTT-286: -------------------------------- I propose the following changes, using the MQTT 3.1.1 standard as the starting point. (I suspect the diagram will be mangled in transport, but have no other way to depict this. Apologies in advance). 1. Diagram 4.3 (QoS Flow Control, Non-normative example) should be modified to remove references to delivery method A. (Abbreviated here) Sender action Control Packet Receiver Action Store Msg Publish QoS 2 DUP 0 -----------------> Method A, Store Message (remove this) or Method B, Store <Packet Identifier> then initiate onward delivery of Application message. (Remove 'Method B', keep the 'Store .... message' part <--------------------- Discard Message, Store PUBREC received <Packet Identifier> PUBREL <Packet Identifier> ----------------------> Method A, Initiate Onward delivery of the Application message, then discard message (remove the above) Method B Discard Packet Identifier (remove "Method B', keep 'Discard. <Packet Identifier> part' Send PUBCOMP <Packet ID> <----------------------- Discard Stored State 2. In the caption for Diagram 4.3 which reads "Figure 4.3 shows there are to methods by which QoS 2 traffic can be handled by the receiver ... [and describes using either A or B - ed] I proposed this should be changed to eliminate references to Method A, so perhaps "Diagram 4.3 shows the sequence of events by which QoS 2 traffic is handled by the receiver." > Make Qos 2 Delivery Method 'B' Normative > ---------------------------------------- > > Key: MQTT-286 > URL: https://issues.oasis-open.org/browse/MQTT-286 > Project: OASIS Message Queuing Telemetry Transport (MQTT) TC > Issue Type: New Feature > Affects Versions: 5 > Reporter: Ed Briggs > Assignee: Ed Briggs > > 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: > https://www.oasis-open.org/apps/org/workgroup/mqtt/download.php/58364/Mqtt-286-MqttQoS2DeliveryProposal.pdf -- This message was sent by Atlassian JIRA (v6.2.2#6258)
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]