裝置通訊協定 - AWS IoT Core

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

裝置通訊協定

AWS IoT Core 支援使用 MQTT 和 MQTT 透過 WebSocket 安全 (WSS) 通訊協定發佈和訂閱訊息的裝置和用戶端,以及使用 HTTPS 通訊協定發佈訊息的裝置和用戶端。所有通訊協定皆支援 IPv4 和 IPv6。本節說明裝置和用戶端的不同連線選項。

TLS 1.2 和 TLS 1.3

AWS IoT Core 使用 TLS 1.2 版TLS 1.3 版來加密所有通訊。將裝置連線到  AWS IoT Core 時,用戶端可以傳送伺服器名稱指示 (SNI) 擴充功能,雖然這不是必要,但強烈建議您這樣做。您必須使用 SNI 擴充功能,才能使用如多帳戶註冊自訂網域及 VPC 端點等功能。如需詳細資訊,請參閱中的傳輸安全性 AWS IoT

AWS IoT 裝置開發套件 支援 MQTT 或是經 WSS 的 MQTT,並支援用戶端連線的安全性需求。建議您使用 AWS IoT 裝置開發套件 將用戶端連線至 AWS IoT。

通訊協定、連接埠映射和身分驗證

裝置或用戶端使用裝置端點連線至訊息代理程式的方式,取決於它所使用的通訊協定。下表列出 AWS IoT 裝置端點支援的通訊協定,以及它們使用的驗證方法和通訊埠。

通訊協定、身分驗證和連接埠對應
通訊協定 支援的操作 身分驗證 連線埠 ALPN 通訊協定名稱

MQTT 超過 WebSocket

發佈、訂閱 Signature 第 4 版 443

N/A

MQTT 超過 WebSocket

發佈、訂閱 自訂身分驗證 443

N/A

MQTT

發佈、訂閱

X.509 用戶端憑證

443

x-amzn-mqtt-ca

MQTT 發佈、訂閱 X.509 用戶端憑證 8883 N/A

MQTT

發佈、訂閱

自訂身分驗證

443

mqtt

HTTPS

僅發佈

Signature 第 4 版

443

N/A

HTTPS

僅發佈

X.509 用戶端憑證

443

x-amzn-http-ca

HTTPS 僅發佈 X.509 用戶端憑證 8443 N/A
HTTPS 僅發佈 自訂身分驗證 443 N/A
應用程式層通訊協定交涉 (ALPN)

使用 X.509 用戶端憑證驗證連線至連接埠 443 的用戶端必須實作應用程式層通訊協定交涉 (ALPN) TLS 延伸模組,並使用用戶端 ProtocolNameList 傳送的 ALPN 通訊協定名稱做為訊息的一部分。ClientHello

在連接埠 443 上,物聯網:資料 ATS 端點支援 ALPN x-amzn-http-ca HTTP,但物聯網:工作端點則不支援。

在具有 ALPN 的連接埠 8443 HTTPS 和連接埠 443 MQTT 上 x-amzn-mqtt-ca,無法使用自訂驗證

用戶端會連線到其 AWS 帳戶裝置端點。如需有關如何尋找帳戶的裝置端點的資訊,請參閱AWS IoT 裝置資料和服務端點

注意

AWS SDK 不需要整個 URL。它們只需要端點主機名稱,例如適用於 Python 的 AWS IoT 設備 SDK 的pubsub.py示例 GitHub。如下表所示,傳遞完整 URL 可能會產生錯誤,例如主機名稱無效。

連接到 AWS IoT Core

通訊協定

端點或 URL

MQTT

iot-endpoint

透過 WSS 的 MQTT

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

為您的裝置通訊選擇通訊協定

對於大多數透過裝置端點進行的 IoT 裝置通訊,您必須透過 WSS 通訊協定使用 MQTT 或 MQTT;不過,裝置端點也支援 HTTPS。下表比較如何 AWS IoT Core 使用這兩種通訊協定進行裝置通訊。

AWS IoT 設備協議 side-by-side

功能

MQTT

HTTPS

發佈/訂閱支援

發佈和訂閱

僅發佈

開發套件支援

AWS 裝置開發套件支援 MQTT 和 WSS 通訊協定

不支援軟體開發套件,但您可以使用特定語言的方法來發出 HTTPS 要求

服務品質支援

MQTT QoS 層級 0 和 1

QoS 的支援是透過傳遞查詢字串參數 ?qos=qos 來進行,其中值可以是 0 或 1。您可以新增此查詢字串,以發佈內含您所需之 QoS 值的訊息。
可接收裝置離線時所遺漏的訊息

clientId 欄位支援

裝置中斷連線偵測

安全通訊

是。請參閱 通訊協定、連接埠映射和身分驗證

是。請參閱 通訊協定、連接埠映射和身分驗證

主題定義

應用程式定義

應用程式定義

訊息資料格式

應用程式定義

應用程式定義

通訊協定負荷 較低 較高
耗電量 較低 較高

連線持續時間限制

HTTPS 連線的持續時間不保證比接收和回應要求所需時間更長。

MQTT 連線持續時間取決於您使用的身分驗證功能。下表列出每項功能在理想條件下的連線持續時間上限。

依身分驗證功能分類的 MQTT 連線持續時間

功能

持續時間上限 *

X.509 用戶端憑證

1–2 週

自訂身分驗證

1–2 週

Signature 第 4 版

長達 24 小時

* 不保證

使用 X.509 憑證和自訂身分驗證時,連線持續時間沒有硬性限制,但可以短至幾分鐘。有多種原因可能導致連線中斷。下方清單中包含一些最常見的原因。

  • Wi-Fi 可用性中斷

  • 網際網路服務供應商 (ISP) 連線中斷

  • 服務修補程式

  • 服務部署

  • 服務自動擴展

  • 服務主機無法使用

  • 負載平衡器問題和更新

  • 用戶端錯誤

您的裝置必須實作偵測中斷連線和重新連線的策略。如需中斷連線事件的詳細資訊,以及處理前述事件的指導,請參閱 生命週期事件 中的 連線/中斷連線事件