AWS Security ChangesHomeSearch

AWS iot documentation change

Service: iot · 2025-11-22 · Documentation low

File: iot/latest/developerguide/mqtt.md

Summary

Updated documentation URLs to include double slashes after domain for consistency

Security assessment

The changes only modify URL paths by adding an extra slash after the domain (e.g., changing '/general' to '//general'). This appears to be a formatting correction for documentation links and does not introduce, remove, or modify any security-related content. No security vulnerabilities, mitigations, or features are addressed in these changes.

Diff

diff --git a/iot/latest/developerguide/mqtt.md b/iot/latest/developerguide/mqtt.md
index d5088377f..63b32eeae 100644
--- a//iot/latest/developerguide/mqtt.md
+++ b//iot/latest/developerguide/mqtt.md
@@ -13 +13 @@ AWS IoT Core supports device connections that use the MQTT protocol and MQTT ove
-While we recommend using the AWS IoT Device SDKs to connect to AWS IoT, they are not required. If you do not use the AWS IoT Device SDKs, however, you must provide the necessary connection and communication security. Clients must send the [Server Name Indication (SNI) TLS extension](https://tools.ietf.org/html/rfc3546#section-3.1) in the connection request. Connection attempts that don't include the SNI are refused. For more information, see [Transport Security in AWS IoT](transport-security.html). Clients that use IAM users and AWS credentials to authenticate clients must provide the correct [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) authentication.
+While we recommend using the AWS IoT Device SDKs to connect to AWS IoT, they are not required. If you do not use the AWS IoT Device SDKs, however, you must provide the necessary connection and communication security. Clients must send the [Server Name Indication (SNI) TLS extension](https://tools.ietf.org/html/rfc3546#section-3.1) in the connection request. Connection attempts that don't include the SNI are refused. For more information, see [Transport Security in AWS IoT](transport-security.html). Clients that use IAM users and AWS credentials to authenticate clients must provide the correct [Signature Version 4](https://docs.aws.amazon.com//general/latest/gr/signature-version-4.html) authentication.
@@ -164 +164 @@ After the client joins a persistent session, it can publish messages and subscri
-A persistent session represents an ongoing connection between a client and an MQTT message broker. When a client connects to the message broker using a persistent session, the message broker saves all subscriptions that the client makes during the connection. When the client disconnects, the message broker stores unacknowledged QoS 1 messages and new QoS 1 messages published to topics to which the client is subscribed. Messages are stored according to account limit. Messages that exceed the limit will be dropped. For more information about persistent message limits, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits). When the client reconnects to its persistent session, all subscriptions are reinstated and all stored messages are sent to the client at a maximum rate of 10 messages per second. In MQTT 5, if an outbound QoS 1 with the Message Expiry Interval expires when a client is offline, after the connection resumes, the client won't receive the expired message.
+A persistent session represents an ongoing connection between a client and an MQTT message broker. When a client connects to the message broker using a persistent session, the message broker saves all subscriptions that the client makes during the connection. When the client disconnects, the message broker stores unacknowledged QoS 1 messages and new QoS 1 messages published to topics to which the client is subscribed. Messages are stored according to account limit. Messages that exceed the limit will be dropped. For more information about persistent message limits, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits). When the client reconnects to its persistent session, all subscriptions are reinstated and all stored messages are sent to the client at a maximum rate of 10 messages per second. In MQTT 5, if an outbound QoS 1 with the Message Expiry Interval expires when a client is offline, after the connection resumes, the client won't receive the expired message.
@@ -166 +166 @@ A persistent session represents an ongoing connection between a client and an MQ
-After reconnection, the stored messages are sent to the client, at a rate that is limited to 10 stored messages per second, along with any current message traffic until the [`Publish requests per second per connection`](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) limit is reached. Because the delivery rate of the stored messages is limited, it will take several seconds to deliver all stored messages if a session has more than 10 stored messages to deliver after reconnection.
+After reconnection, the stored messages are sent to the client, at a rate that is limited to 10 stored messages per second, along with any current message traffic until the [`Publish requests per second per connection`](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) limit is reached. Because the delivery rate of the stored messages is limited, it will take several seconds to deliver all stored messages if a session has more than 10 stored messages to deliver after reconnection.
@@ -168 +168 @@ After reconnection, the stored messages are sent to the client, at a rate that i
-For shared subscribers, messages will be queued if at least one subscriber of a group uses a persistent session and no subscribers are online to receive the QoS 1 message. Dequeuing of messages is done at a maximum speed of 20 messages per second per active subscriber in a group. For more information, see [shared subscriptions message queuing](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt5-shared-subscription-queuing).
+For shared subscribers, messages will be queued if at least one subscriber of a group uses a persistent session and no subscribers are online to receive the QoS 1 message. Dequeuing of messages is done at a maximum speed of 20 messages per second per active subscriber in a group. For more information, see [shared subscriptions message queuing](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html#mqtt5-shared-subscription-queuing).
@@ -210 +210 @@ Messages are charged to your AWS account when the message broker sends a message
-The default persistent session expiration time of one hour can be increased by using the standard limit increase process. Note that increasing the session expiration time might increase your message charges because the additional time could allow for more messages to be stored for the offline device and those additional messages would be charged to your account at the standard messaging rate. The session expiration time is approximate and a session could persist for up to 30 minutes longer than the account limit; however, a session will not be shorter than the account limit. For more information about session limits, see [AWS Service Quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits).
+The default persistent session expiration time of one hour can be increased by using the standard limit increase process. Note that increasing the session expiration time might increase your message charges because the additional time could allow for more messages to be stored for the offline device and those additional messages would be charged to your account at the standard messaging rate. The session expiration time is approximate and a session could persist for up to 30 minutes longer than the account limit; however, a session will not be shorter than the account limit. For more information about session limits, see [AWS Service Quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits).
@@ -214 +214 @@ The default persistent session expiration time of one hour can be increased by u
-AWS IoT Core supports the `RETAIN` flag described in the MQTT protocol. When a client sets the `RETAIN` flag on an MQTT message that it publishes, AWS IoT Core saves the message. It can then be sent to new subscribers, retrieved by calling the [`GetRetainedMessage`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_GetRetainedMessage.html) operation, and viewed in the [AWS IoT console](https://console.aws.amazon.com/iot/home#/retainedMessages).
+AWS IoT Core supports the `RETAIN` flag described in the MQTT protocol. When a client sets the `RETAIN` flag on an MQTT message that it publishes, AWS IoT Core saves the message. It can then be sent to new subscribers, retrieved by calling the [`GetRetainedMessage`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_GetRetainedMessage.html) operation, and viewed in the [AWS IoT console](https://console.aws.amazon.com//iot/home#/retainedMessages).
@@ -252 +252 @@ This section describes common operations that involve retained messages.
-The client determines whether a message is retained when it publishes an MQTT message. Clients can set the `RETAIN` flag when they publish a message by using a [Device SDK](./iot-sdks.html). Applications and services can set the `RETAIN` flag when they use the [`Publish` action](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_Publish.html) to publish an MQTT message.
+The client determines whether a message is retained when it publishes an MQTT message. Clients can set the `RETAIN` flag when they publish a message by using a [Device SDK](./iot-sdks.html). Applications and services can set the `RETAIN` flag when they use the [`Publish` action](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_Publish.html) to publish an MQTT message.
@@ -278 +278 @@ Retained messages are delivered to clients automatically when they subscribe to
-Services and apps can list and retrieve retained messages by calling [`ListRetainedMessages`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_ListRetainedMessages.html) and [`GetRetainedMessage`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_GetRetainedMessage.html).
+Services and apps can list and retrieve retained messages by calling [`ListRetainedMessages`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_ListRetainedMessages.html) and [`GetRetainedMessage`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_GetRetainedMessage.html).
@@ -286 +286 @@ With MQTT 5, if a retained message has the Message Expiry Interval set and the r
-You can list retained messages by calling [`ListRetainedMessages`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_ListRetainedMessages.html) and the retained messages can be viewed in the [AWS IoT console](https://console.aws.amazon.com/iot/home#/retainedMessages). 
+You can list retained messages by calling [`ListRetainedMessages`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_ListRetainedMessages.html) and the retained messages can be viewed in the [AWS IoT console](https://console.aws.amazon.com//iot/home#/retainedMessages). 
@@ -290 +290 @@ You can list retained messages by calling [`ListRetainedMessages`](https://docs.
-You can get retained message details by calling [`GetRetainedMessage`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_GetRetainedMessage.html) and they can be viewed in the [AWS IoT console](https://console.aws.amazon.com/iot/home#/retainedMessages).
+You can get retained message details by calling [`GetRetainedMessage`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_GetRetainedMessage.html) and they can be viewed in the [AWS IoT console](https://console.aws.amazon.com//iot/home#/retainedMessages).
@@ -300 +300 @@ Devices, applications, and services can delete a retained message by publishing
-Retained messages can also be deleted interactively by accessing the retained message in the [AWS IoT console](https://console.aws.amazon.com/iot/home#/retainedMessages). Retained messages that are deleted by using the [AWS IoT console](https://console.aws.amazon.com/iot/home#/retainedMessages) also send a 0-byte message to clients that have subscribed to the retained message's topic.
+Retained messages can also be deleted interactively by accessing the retained message in the [AWS IoT console](https://console.aws.amazon.com//iot/home#/retainedMessages). Retained messages that are deleted by using the [AWS IoT console](https://console.aws.amazon.com//iot/home#/retainedMessages) also send a 0-byte message to clients that have subscribed to the retained message's topic.
@@ -306 +306 @@ Retained messages can't be restored after they are deleted. A client would need
-The [AWS IoT console](https://console.aws.amazon.com/iot/home#) provides several tools to help you troubleshoot retained messages:
+The [AWS IoT console](https://console.aws.amazon.com//iot/home#) provides several tools to help you troubleshoot retained messages:
@@ -308 +308 @@ The [AWS IoT console](https://console.aws.amazon.com/iot/home#) provides several
-    * ###### The **[Retained messages](https://console.aws.amazon.com/iot/home#/retainedMessages)** page
+    * ###### The **[Retained messages](https://console.aws.amazon.com//iot/home#/retainedMessages)** page
@@ -318 +318 @@ The **Retained messages** page in the AWS IoT console provides a paginated list
-    * ###### The **[MQTT test client](https://console.aws.amazon.com/iot/home#/test)**
+    * ###### The **[MQTT test client](https://console.aws.amazon.com//iot/home#/test)**
@@ -337 +337 @@ The sequence of retained message and subscribed message delivery is not guarante
-Publishing messages with the `RETAIN` flag set from a client, by using AWS IoT console, or by calling [`Publish`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_Publish.html) incurs additional messaging charges described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com/iot-core/pricing/#Messaging).
+Publishing messages with the `RETAIN` flag set from a client, by using AWS IoT console, or by calling [`Publish`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_Publish.html) incurs additional messaging charges described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com//iot-core/pricing/#Messaging).
@@ -339 +339 @@ Publishing messages with the `RETAIN` flag set from a client, by using AWS IoT c
-Retrieving retained messages by a client, by using AWS IoT console, or by calling [`GetRetainedMessage`](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_GetRetainedMessage.html) incurs messaging charges in addition to the normal API usage charges. The additional charges are described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com/iot-core/pricing/#Messaging).
+Retrieving retained messages by a client, by using AWS IoT console, or by calling [`GetRetainedMessage`](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_GetRetainedMessage.html) incurs messaging charges in addition to the normal API usage charges. The additional charges are described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com//iot-core/pricing/#Messaging).
@@ -341 +341 @@ Retrieving retained messages by a client, by using AWS IoT console, or by callin
-MQTT [_Will_ messages](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Will_Flag) that are published when a device disconnects unexpectedly incur messaging charges described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com/iot-core/pricing/#Messaging).
+MQTT [_Will_ messages](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/mqtt-v3.1.1-errata01-os-complete.html#_Will_Flag) that are published when a device disconnects unexpectedly incur messaging charges described in [AWS IoT Core pricing - Messaging](https://aws.amazon.com//iot-core/pricing/#Messaging).
@@ -343 +343 @@ MQTT [_Will_ messages](http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/errata01/os/m
-For more information about messaging costs, see [AWS IoT Core pricing - Messaging](https://aws.amazon.com/iot-core/pricing/#Messaging).
+For more information about messaging costs, see [AWS IoT Core pricing - Messaging](https://aws.amazon.com//iot-core/pricing/#Messaging).
@@ -371 +371 @@ Retained messages and Device Shadows both retain data from a device, but they be
-**Updating the message payload generates event messages** | Publishing a retained message sends the message to subscribed clients, but doesn't generate additional update messages. |  Updating a Device Shadow produces [update messages that describe the change](https://docs.aws.amazon.com/iot/latest/developerguide/device-shadow-mqtt.html#update-delta-pub-sub-topic).  
+**Updating the message payload generates event messages** | Publishing a retained message sends the message to subscribed clients, but doesn't generate additional update messages. |  Updating a Device Shadow produces [update messages that describe the change](https://docs.aws.amazon.com//iot/latest/developerguide/device-shadow-mqtt.html#update-delta-pub-sub-topic).  
@@ -384 +384 @@ When managing client connections, you can control whether LWT messages are publi
-The broker will store the Will Messages until an uninitiated disconnection occurs. When that happens, the broker will publish the messages to all clients that subscribed to the Will Topic to notify the disconnection. If the client disconnects from the broker with a client-initiated disconnection using the MQTT DISCONNECT message, the broker won't publish the stored LWT messages. In all other cases, the LWT messages will be dispatched. Due to the asynchronous nature of disconnect processing, LWT messages are not guaranteed to be dispatched in order during reconnection. We recommend that you use [lifecycle events](./life-cycle-events.html) to improve the accuracy of connectivity state detection, as these events provide attributes such as timestamps and version numbers to manage out-of-order events. For a complete list of the disconnect scenarios when the broker will send the LWT messages, see [Connect/Disconnect events](https://docs.aws.amazon.com/iot/latest/developerguide/life-cycle-events.html#connect-disconnect).
+The broker will store the Will Messages until an uninitiated disconnection occurs. When that happens, the broker will publish the messages to all clients that subscribed to the Will Topic to notify the disconnection. If the client disconnects from the broker with a client-initiated disconnection using the MQTT DISCONNECT message, the broker won't publish the stored LWT messages. In all other cases, the LWT messages will be dispatched. Due to the asynchronous nature of disconnect processing, LWT messages are not guaranteed to be dispatched in order during reconnection. We recommend that you use [lifecycle events](./life-cycle-events.html) to improve the accuracy of connectivity state detection, as these events provide attributes such as timestamps and version numbers to manage out-of-order events. For a complete list of the disconnect scenarios when the broker will send the LWT messages, see [Connect/Disconnect events](https://docs.aws.amazon.com//iot/latest/developerguide/life-cycle-events.html#connect-disconnect).
@@ -435 +435 @@ Message queuing capabilities are available for shared subscriptions on both MQTT
-To use shared subscriptions, clients subscribe to a shared subscription's [topic filter](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#topicfilters) as follows:
+To use shared subscriptions, clients subscribe to a shared subscription's [topic filter](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) as follows:
@@ -444 +444 @@ To use shared subscriptions, clients subscribe to a shared subscription's [topic
-  * `{TopicFilter}` follows the same [topic filter](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html#topicfilters) syntax as a non-shared subscription. The maximum size for `{TopicFilter}` is 256 UTF-8 characters.
+  * `{TopicFilter}` follows the same [topic filter](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) syntax as a non-shared subscription. The maximum size for `{TopicFilter}` is 256 UTF-8 characters.
@@ -451 +451 @@ To use shared subscriptions, clients subscribe to a shared subscription's [topic
-Subscriptions that have the same `{ShareName}/{TopicFilter}` belong to the same shared subscription group. You can create multiple shared subscription groups and don't exceed the [Shared Subscriptions per group limit](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits). For more information, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html) from the _AWS General Reference_.
+Subscriptions that have the same `{ShareName}/{TopicFilter}` belong to the same shared subscription group. You can create multiple shared subscription groups and don't exceed the [Shared Subscriptions per group limit](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits). For more information, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html) from the _AWS General Reference_.
@@ -479 +479 @@ Non-shared subscriptions flow  | Shared subscriptions flow
-  * Shared subscriptions don't receive [retained messages](https://docs.aws.amazon.com/iot/latest/developerguide/mqtt.html#mqtt-retain) when subscribing to topic patterns as part of a shared subscriber group. Messages that are published on topics that have shared subscribers and have the `RETAIN` flag set are delivered to shared subscribers like any other publish message.
+  * Shared subscriptions don't receive [retained messages](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html#mqtt-retain) when subscribing to topic patterns as part of a shared subscriber group. Messages that are published on topics that have shared subscribers and have the `RETAIN` flag set are delivered to shared subscribers like any other publish message.
@@ -496 +496 @@ Client 5 and client 6 share the subscription: `$share/consumer2/sports/tennis`
-For more information about shared subscriptions limits, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html) from the _AWS General Reference_. To test shared subscriptions using the AWS IoT MQTT client in the [AWS IoT console](https://console.aws.amazon.com/iot/home), see [Testing Shared Subscriptions in the MQTT client](./view-mqtt-messages.html#view-mqtt-shared-subscriptions). You can also view which topics connected clients are subscribed to, including shared subscriptions, by using the client connection management features. For more information, see Managing MQTT connections. For more information about shared subscriptions, see [Shared Subscriptions](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901250) from the MQTTv5.0 specification.
+For more information about shared subscriptions limits, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html) from the _AWS General Reference_. To test shared subscriptions using the AWS IoT MQTT client in the [AWS IoT console](https://console.aws.amazon.com/iot/home), see [Testing Shared Subscriptions in the MQTT client](./view-mqtt-messages.html#view-mqtt-shared-subscriptions). You can also view which topics connected clients are subscribed to, including shared subscriptions, by using the client connection management features. For more information, see Managing MQTT connections. For more information about shared subscriptions, see [Shared Subscriptions](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901250) from the MQTTv5.0 specification.
@@ -500 +500 @@ For more information about shared subscriptions limits, see [AWS IoT Core endpoi
-To enhance message delivery reliability, shared subscriptions include message queuing capabilities that store messages when no online subscribers are available. When a shared subscription group contains at least one member with a persistent session, the queuing feature is enabled for the group. When distributing messages, online members are selected as recipients. QoS 1 messages are queued when no members are found online or when subscribers exceed the [`Publish requests per second per connection`](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) limit. Queued messages are delivered when either existing members resume their persistent sessions, or new members join the group. Queued messages are delivered at up to 20 queued messages per second per active group subscriber, along with any other messages delivered to the subscriber as per the subscriptions.
+To enhance message delivery reliability, shared subscriptions include message queuing capabilities that store messages when no online subscribers are available. When a shared subscription group contains at least one member with a persistent session, the queuing feature is enabled for the group. When distributing messages, online members are selected as recipients. QoS 1 messages are queued when no members are found online or when subscribers exceed the [`Publish requests per second per connection`](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) limit. Queued messages are delivered when either existing members resume their persistent sessions, or new members join the group. Queued messages are delivered at up to 20 queued messages per second per active group subscriber, along with any other messages delivered to the subscriber as per the subscriptions.
@@ -502 +502 @@ To enhance message delivery reliability, shared subscriptions include message qu
-By default, queued message retention follows the [`Persistent Session expiry period`](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) quota. However, if a Message Expiry Interval (MEI) is set in the inbound publish message, the MEI takes precedence. When MEI is present, it determines the message retention period, regardless of the Persistent Session expiry period.
+By default, queued message retention follows the [`Persistent Session expiry period`](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) quota. However, if a Message Expiry Interval (MEI) is set in the inbound publish message, the MEI takes precedence. When MEI is present, it determines the message retention period, regardless of the Persistent Session expiry period.
@@ -504 +504 @@ By default, queued message retention follows the [`Persistent Session expiry per
-Message queue rates are limited according to the [`Queued messages per second per account`](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) quota, and the number of messages is limited by the [`Maximum number of queued messages per shared subscription group`](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) quota.
+Message queue rates are limited according to the [`Queued messages per second per account`](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) quota, and the number of messages is limited by the [`Maximum number of queued messages per shared subscription group`](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) quota.
@@ -526 +526 @@ You can debug or process error messages more easily using the reason codes. Reas
-You can substitute a topic name with a topic alias, which is a two-byte integer. Using topic aliases can optimize the transmission of topic names to potentially reduce data costs on metered data services. AWS IoT Core has a default limit of 8 topic aliases. For more information, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html) from the _AWS General Reference_.
+You can substitute a topic name with a topic alias, which is a two-byte integer. Using topic aliases can optimize the transmission of topic names to potentially reduce data costs on metered data services. AWS IoT Core has a default limit of 8 topic aliases. For more information, see [AWS IoT Core endpoints and quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html) from the _AWS General Reference_.
@@ -565 +565 @@ You can specify the payload format (binary, text) and content type when a messag
-MQTT 5 properties are important additions to the MQTT standard to support new MQTT 5 features such as Session Expiry and the Request/Response pattern. In AWS IoT Core, you can create [rules](https://docs.aws.amazon.com/iot/latest/developerguide/republish-rule-action.html) that can forward the properties in outbound messages, or use [HTTP Publish](https://docs.aws.amazon.com/iot/latest/apireference/API_iotdata_Publish.html) to publish MQTT messages with some of the new properties.
+MQTT 5 properties are important additions to the MQTT standard to support new MQTT 5 features such as Session Expiry and the Request/Response pattern. In AWS IoT Core, you can create [rules](https://docs.aws.amazon.com//iot/latest/developerguide/republish-rule-action.html) that can forward the properties in outbound messages, or use [HTTP Publish](https://docs.aws.amazon.com//iot/latest/apireference/API_iotdata_Publish.html) to publish MQTT messages with some of the new properties.
@@ -677 +677 @@ The message broker implementation is based on the [MQTT v3.1.1 specification](ht
-  * AWS IoT can have limits that are different from the specifications. For more information, see [AWS IoT Core message broker and protocol limits and quotas](https://docs.aws.amazon.com/general/latest/gr/iot-core.html#message-broker-limits) from the _AWS IoT Reference Guide_.
+  * AWS IoT can have limits that are different from the specifications. For more information, see [AWS IoT Core message broker and protocol limits and quotas](https://docs.aws.amazon.com//general/latest/gr/iot-core.html#message-broker-limits) from the _AWS IoT Reference Guide_.