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-608) Add gateway retransmssion. and clarify client retransmission


Andrew Banks created MQTT-608:
---------------------------------

             Summary: Add gateway retransmssion. and clarify client retransmission
                 Key: MQTT-608
                 URL: https://issues.oasis-open.org/browse/MQTT-608
             Project: OASIS Message Queuing Telemetry Transport (MQTT) TC
          Issue Type: Improvement
          Components: MQTT-SN
            Reporter: Andrew Banks


The current specification describes the need for client retransmission in section 4.18, 
however there circumstances where the gateway will also need to retransmit packets.

Â

Discussion points.

1) I don't see that it matters whether a Packet is Unicast or Multicast for the purposes of retransmission.
2) There is little difference between sending PUBLISH Qos1 NRetry times and then stopping, and sending PUBLISH Qos 0?
3) Once a Qos2 PUBLISH has been sent the receiver may have stored state that it is obliged to keep until it has received PUBREL. MQTT states that 
in this case the sender MUST NOT apply Publication expiry if a PUBLISH packet has been sent, so that the receivers state is always deleted eventually.
MQTT-SN needs to do something similar , so Nretry can't apply to Qos2 messages. 
4) Clean start can be used by the Client to reset the protocol Session state if necessary. Session Present can be used by the Gateway 
to indicate that it has deleted the Session State. The client and Gateway already have a mechanism to close the Virtual Connection and restart 
with the Session state reset, so that NRetry would not be needed.
5 We need to reinstate the conformance clauses in

3.1.5.3 Connack Flags

If the Gateway accepts a connection with Clean Start set to 1, the Server MUST set Session Present to 0 in the CONNACK packet in addition to setting a 0x00 (Success) Reason Code in the CONNACK packet [????].

If the Gateway accepts a connection with Clean Start set to 0 and the Gateway has Session State for the ClientID, it MUST set Session Present to 1 in the CONNACK packet, otherwise it MUST set Session Present to 0 in the CONNACK packet. In both cases it MUST set a 0x00 (Success) Reason Code in the CONNACK packet [????].


If the value of Session Present received by the Client from the Server is not as expected, the Client proceeds as follows:

 If the Client does not have Session State and receives Session Present set to 1 it MUST close the Virtual Connection [?????]. If it wishes to restart with a new Session the Client can reconnect using Clean Start set to 1.

 If the Client does have Session State and receives Session Present set to 0 it MUST discard its Session State if it continues with the Virtual Connection [????].

Â

If a Server sends a CONNACK packet containing a non-zero Reason Code it MUST set Session Present to 0 [?????].



--
This message was sent by Atlassian Jira
(v8.3.3#803004)


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