[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]