本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
裝置通訊協定
AWS IoT Core 支援使用 MQTT 和 MQTT 透過 WebSocket 安全 (WSS) 通訊協定發佈和訂閱訊息的裝置和用戶端,以及使用 HTTPS 通訊協定發佈訊息的裝置和用戶端。所有通訊協定皆支援 IPv4 和 IPv6。本節說明裝置和用戶端的不同連線選項。
TLS 1.2 和 TLS 1.3
AWS IoT Core 使用 TLS
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† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT | 發佈、訂閱 | X.509 用戶端憑證 | 8883 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
發佈、訂閱 |
自訂身分驗證 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
僅發佈 |
Signature 第 4 版 |
443 |
N/A |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
僅發佈 |
X.509 用戶端憑證 |
443† |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 僅發佈 | X.509 用戶端憑證 | 8443 | N/A | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS | 僅發佈 | 自訂身分驗證 | 443 | N/A |
應用程式層通訊協定交涉 (ALPN)
† 使用 X.509 用戶端憑證驗證連線至連接埠 443 的用戶端必須實作應用程式層通訊協定交涉 (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
連接到 AWS IoT Core | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
通訊協定 |
端點或 URL |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
透過 WSS 的 MQTT |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
HTTPS |
|
為您的裝置通訊選擇通訊協定
對於大多數透過裝置端點進行的 IoT 裝置通訊,您必須透過 WSS 通訊協定使用 MQTT 或 MQTT;不過,裝置端點也支援 HTTPS。下表比較如何 AWS IoT Core 使用這兩種通訊協定進行裝置通訊。
AWS IoT 設備協議 side-by-side | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
功能 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
發佈/訂閱支援 |
發佈和訂閱 |
僅發佈 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
開發套件支援 |
AWS 裝置開發套件支援 MQTT 和 WSS 通訊協定 |
不支援軟體開發套件,但您可以使用特定語言的方法來發出 HTTPS 要求 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
服務品質支援 |
QoS 的支援是透過傳遞查詢字串參數 ?qos=qos 來進行,其中值可以是 0 或 1。您可以新增此查詢字串,以發佈內含您所需之 QoS 值的訊息。 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
可接收裝置離線時所遺漏的訊息 | 是 | 否 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
裝置中斷連線偵測 |
是 |
否 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
安全通訊 |
是。請參閱 通訊協定、連接埠映射和身分驗證 |
是。請參閱 通訊協定、連接埠映射和身分驗證 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
主題定義 |
應用程式定義 |
應用程式定義 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
訊息資料格式 |
應用程式定義 |
應用程式定義 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
通訊協定負荷 | 較低 | 較高 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
耗電量 | 較低 | 較高 |
連線持續時間限制
HTTPS 連線的持續時間不保證比接收和回應要求所需時間更長。
MQTT 連線持續時間取決於您使用的身分驗證功能。下表列出每項功能在理想條件下的連線持續時間上限。
依身分驗證功能分類的 MQTT 連線持續時間 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
功能 |
持續時間上限 * |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
X.509 用戶端憑證 |
1–2 週 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
自訂身分驗證 |
1–2 週 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signature 第 4 版 |
長達 24 小時 |
* 不保證
使用 X.509 憑證和自訂身分驗證時,連線持續時間沒有硬性限制,但可以短至幾分鐘。有多種原因可能導致連線中斷。下方清單中包含一些最常見的原因。
-
Wi-Fi 可用性中斷
-
網際網路服務供應商 (ISP) 連線中斷
-
服務修補程式
-
服務部署
-
服務自動擴展
-
服務主機無法使用
-
負載平衡器問題和更新
-
用戶端錯誤
您的裝置必須實作偵測中斷連線和重新連線的策略。如需中斷連線事件的詳細資訊,以及處理前述事件的指導,請參閱 生命週期事件 中的 連線/中斷連線事件。