OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

mqtt message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: [OASIS Issue Tracker] (MQTT-208) confusing narrative around redelivery of control packets


     [ https://tools.oasis-open.org/issues/browse/MQTT-208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Coppen updated MQTT-208:
--------------------------------

    Proposal: 
Update Section 4.4 as follows:

Remove

>> 
When a Client reconnects with CleanSession set to 0, both the Client and Server MUST re-send any unacknowledged PUBLISH Packets (where QoS > 0) and PUBREL Packets using their original Packet Identifiers [MQTT-4.4.0-1]. This is the only circumstance where a Client or Server is REQUIRED to redeliver messages. Clients MAY re-send SUBSCRIBE and UNSUBSCRIBE Packets on reconnect but are not REQUIRED to do this.

While a modern TCP network is unlikely to lose packets, a Client or Server is permitted to attempt redelivery of unacknowledged packets at other times. However, redelivery is not encouraged unless a network failure has been detected.

The PUBLISH packet MUST have the DUP flag set to 1 when it is re-sent [MQTT-4.4.0-2].

Non Normative comment.
Historically retransmission of Control Packets was required to overcome data loss on some older TCP networks. This might remain a concern where MQTT 3.1.1 implementations are to be deployed in such environments.
<<

Replace with:

>>
When a Client reconnects with CleanSession set to 0, both the Client and Server MUST re-send any unacknowledged PUBLISH Packets (where QoS > 0) and PUBREL Packets using their original Packet Identifiers [MQTT-4.4.0-1]. This is the only circumstance where a Client or Server is REQUIRED to redeliver messages. 

Non Normative comment.
Historically retransmission of Control Packets was required to overcome data loss on some older TCP networks. This might remain a concern where MQTT 3.1.1 implementations are to be deployed in such environments.
<<

Note: the clause "The PUBLISH packet MUST have the DUP flag set to 1 when it is re-sent [MQTT-4.4.0-2]." is a dup of "The DUP flag MUST be set to 1 by the Client or Server when it attempts to re-deliver a PUBLISH Packet [MQTT-2.2.2-3]." under Section 2.2.2.1. Removing it from 4.4 seems to make sense.

  was:
Remove:

While a modern TCP network is unlikely to lose packets, a Client or Server is permitted to attempt redelivery of unacknowledged packets at other times. However, redelivery is not encouraged unless a network failure has been detected. 

Adjust the following para 4.4:

...This is the only circumstance where a Client or Server is REQUIRED to redeliver messages. Clients MAY resend SUBSCRIBE and UNSUBSCRIBE Packets on reconnect but are not REQUIRED to do this. >> Redelivery of Control Packets at any other time is discouraged and should not be necessary on modern network transports. <<


> confusing narrative around redelivery of control packets
> --------------------------------------------------------
>
>                 Key: MQTT-208
>                 URL: https://tools.oasis-open.org/issues/browse/MQTT-208
>             Project: OASIS Message Queuing Telemetry Transport (MQTT) TC
>          Issue Type: Bug
>          Components: core
>            Reporter: Richard Coppen
>
> Section 4.4 is slightly confusing with respect to Control Packet redelivery - the suggestion is that all packets can be retried. 3.1 CONNECT states that a second flow of CONNECT is not allowed. 
>  



--
This message was sent by Atlassian JIRA
(v6.1.1#6155)


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]