裝置通訊協定 - AWS IoT Core

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

裝置通訊協定

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

TLSTLS1.2 和

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

AWS IoT 裝置 SDKs支持MQTT一MQTT遍,WSS並支持客戶端連接的安全要求。建議您使用 AWS IoT 裝置 SDKs 將用戶端連線至 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 延伸模組,並使用用戶端所ALPN ProtocolNameList 傳送的ALPN通訊協定名稱做為訊息的一部分。ClientHello

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

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

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

注意

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

連接到 AWS IoT Core

通訊協定

端點或 URL

MQTT

iot-endpoint

MQTT以上 WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

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

對於通過設備端點進行的大多數 IoT 設備通信,您需要使用MQTT或通MQTT過WSS協議;但是,設備端點也支持HTTPS。下表比較如何 AWS IoT Core 使用這兩種通訊協定進行裝置通訊。

AWS IoT 設備協議 side-by-side

功能

MQTT

HTTPS

發佈/訂閱支援

發佈和訂閱

僅發佈

SDK支持

AWS 裝置SDKs支援MQTT與WSS通訊協定

沒有SDK支持,但您可以使用特定於語言的方法來提出請求 HTTPS

服務品質支援

MQTTQoS 等級 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) 連線中斷

  • 服務修補程式

  • 服務部署

  • 服務自動擴展

  • 服務主機無法使用

  • 負載平衡器問題和更新

  • 用戶端錯誤

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