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

Provide a way for clean-session=1 clients to specify no client identifier

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 3.1.1
    • Fix Version/s: 3.1.1
    • Component/s: core
    • Labels:
      None
    • Proposal:
      Hide

      Edit WD12 from 647

      The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes.

      The server MAY restrict the ClientId it allows in terms of their lengths and the characters they contain, however the server MUST allow ClientIds which are between 1 and 23 UTF-8 encoded bytes in length, and contain only the characters "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".

      A zero-byte clientId is considered a special case and a server MUST support the following behaviour or not permit zero-byte clientIds.

      If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier and that the server will process the connection as if it were a unique client.

      If the client supplies a zero-byte clientId with Clean Session set to 0, the server MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection

      If the server rejects the ClientId it MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection

      Show
      Edit WD12 from 647 The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes. The server MAY restrict the ClientId it allows in terms of their lengths and the characters they contain, however the server MUST allow ClientIds which are between 1 and 23 UTF-8 encoded bytes in length, and contain only the characters "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ". A zero-byte clientId is considered a special case and a server MUST support the following behaviour or not permit zero-byte clientIds. If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier and that the server will process the connection as if it were a unique client. If the client supplies a zero-byte clientId with Clean Session set to 0, the server MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection If the server rejects the ClientId it MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection
    • Resolution:
      Hide

      Resolved in WD13

      Show
      Resolved in WD13

      Description

      Client libraries often provide a way to generate a random client identifier for situations in which the client had not been assigned a client identifier. It would be better to provide a way in the protocol to omit a client identifier in the CONNECT packet for these situations, effectively making such clients anonymous.

        Attachments

          Activity

          andrew_schofield Andrew Schofield (Inactive) created issue -
          Hide
          raphcohn Raphael Cohen (Inactive) added a comment -

          Note for MQTT-82: Time box if necessary to ensure discussion doesn't drag on

          Show
          raphcohn Raphael Cohen (Inactive) added a comment - Note for MQTT-82 : Time box if necessary to ensure discussion doesn't drag on
          coppen Richard Coppen (Inactive) made changes -
          Field Original Value New Value
          Proposal The Client Identifier (ClientId) MUST be present and is the first field in the payload.

          The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes.

          If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier. The server treats all clients connecting with a zero-byte ClientId as separate clients and does not take steps to ensure that there is only one active zero-byte ClientId connection at a time.
          Edit WD12 from 647

          The ClientId MUST comprise only Unicode characters, and the length of the UTF-8 encoding must be at least zero bytes and no more than 65535 bytes.

          The server MAY restrict the ClientId it allows in terms of their lengths and the characters they contain, however the server MUST allow ClientIds which are between 1 and 23 UTF-8 encoded bytes in length, and contain only the characters "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".

          A zero-byte clientId is considered a special case and a server MUST support the following behaviour or not permit zero-byte clientIds.

          If the client supplies a zero-byte ClientId, the client MUST also set Clean Session to 1. This combination indicates that the client has no unique identifier and that the server will process the connection as if it were a unique client.

          If the client supplies a zero-byte clientId with Clean Session set to 0, the server MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection

          If the server rejects the ClientId it MUST respond to the CONNECT packet with a CONNACK return code 0x02 (Identifier rejected) and then terminate the TCP connection
          Hide
          coppen Richard Coppen (Inactive) added a comment -

          TC Approve 03.10.2013

          Show
          coppen Richard Coppen (Inactive) added a comment - TC Approve 03.10.2013
          coppen Richard Coppen (Inactive) made changes -
          Assignee Andrew Banks [ andrew_banks ]
          andrew_banks Andrew Banks (Inactive) made changes -
          Resolution Resolved in WD13
          Status New [ 10000 ] Open [ 1 ]
          andrew_banks Andrew Banks (Inactive) made changes -
          Resolution Fixed [ 1 ]
          Status Open [ 1 ] Resolved [ 5 ]
          andrew_banks Andrew Banks (Inactive) made changes -
          Status Resolved [ 5 ] Applied [ 10002 ]
          Hide
          coppen Richard Coppen (Inactive) added a comment -

          fixed in WD15

          Show
          coppen Richard Coppen (Inactive) added a comment - fixed in WD15
          coppen Richard Coppen (Inactive) made changes -
          Status Applied [ 10002 ] Closed [ 6 ]

            People

            • Assignee:
              andrew_banks Andrew Banks (Inactive)
              Reporter:
              andrew_schofield Andrew Schofield (Inactive)
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: