Protokol komunikasi perangkat - AWS IoT Core

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Protokol komunikasi perangkat

AWS IoT Core mendukung perangkat dan klien yang menggunakan protokol MQTT dan MQTT over WebSocket Secure (WSS) untuk mempublikasikan dan berlangganan pesan, serta perangkat dan klien yang menggunakan HTTPS protokol untuk mempublikasikan pesan. Semua protokol mendukung IPv4 dan. IPv6 Bagian ini menjelaskan opsi koneksi yang berbeda untuk perangkat dan klien.

TLSversi protokol

AWS IoT Core menggunakan TLSversi 1.2 dan TLSversi 1.3 untuk mengenkripsi semua komunikasi. Anda dapat mengonfigurasi versi TLS kebijakan tambahan untuk titik akhir dengan mengonfigurasi TLS setelan dalam konfigurasi domain. Saat menghubungkan perangkat ke AWS IoT Core, klien dapat mengirim ekstensi Indikasi Nama Server (SNI), yang diperlukan untuk fitur seperti pendaftaran multi-akun, titik akhir yang dapat dikonfigurasi, domain khusus, dan titik akhir. VPC Untuk informasi selengkapnya, lihat Keamanan Transportasi di AWS IoT.

AWS IoT Perangkat SDKsDukungan MQTT dan MQTT lagi WSS dan mendukung persyaratan keamanan koneksi klien. Kami merekomendasikan menggunakan AWS IoT Perangkat SDKs untuk menghubungkan klien ke AWS IoT.

Protokol, pemetaan port, dan otentikasi

Bagaimana perangkat atau klien terhubung ke broker pesan dapat dikonfigurasi menggunakan jenis otentikasi. Secara default atau ketika tidak ada SNI ekstensi yang dikirim, metode otentikasi didasarkan pada protokol aplikasi, port, dan TLS ekstensi Application Layer Protocol Negotiation (ALPN) yang digunakan perangkat. Tabel berikut mencantumkan otentikasi yang diharapkan berdasarkan port, port, dan ALPN port.

Protokol, otentikasi, dan pemetaan port
Protokol Operasi didukung Autentikasi Port ALPNnama protokol

MQTTlebih WebSocket

Publikasikan, Berlangganan Tanda Tangan Versi 4 443

N/A

MQTTlebih WebSocket

Publikasikan, Berlangganan Otentikasi kustom 443

N/A

MQTT

Publikasikan, Berlangganan

Sertifikat klien X.509

443 †

x-amzn-mqtt-ca

MQTT Publikasikan, Berlangganan Sertifikat klien X.509 8883 N/A

MQTT

Publikasikan, Berlangganan

Otentikasi kustom

443 †

mqtt

HTTPS

Publikasikan saja

Tanda Tangan Versi 4

443

N/A

HTTPS

Publikasikan saja

Sertifikat klien X.509

443 †

x-amzn-http-ca

HTTPS Publikasikan saja Sertifikat klien X.509 8443 N/A
HTTPS Publikasikan saja Otentikasi kustom 443 N/A
Negosiasi Protokol Lapisan Aplikasi () ALPN

Saat menggunakan konfigurasi endpoint default, klien yang terhubung pada port 443 dengan otentikasi sertifikat klien X.509 harus menerapkan TLS ekstensi Application Layer Protocol Negotiation (ALPN) dan menggunakan nama ALPN protokol yang tercantum dalam ALPN ProtocolNameList pengiriman oleh klien sebagai bagian dari pesan. ClientHello

Pada port 443, titik akhir IoT: Data- mendukung ALPN x-amzn-http-caHTTP, tetapi ATS titik akhir IoT: Jobs tidak.

Pada port 8443 HTTPS dan port 443 MQTT dengan ALPN x-amzn-mqtt-ca, otentikasi khusus tidak dapat digunakan.

Klien terhubung ke titik akhir perangkat mereka Akun AWS. Lihat AWS IoT data perangkat dan titik akhir layanan untuk informasi tentang cara menemukan titik akhir perangkat akun Anda.

catatan

AWS SDKstidak membutuhkan keseluruhanURL. Mereka hanya memerlukan nama host titik akhir seperti pubsub.pysampel untuk AWS IoT Perangkat untuk SDK Python aktif. GitHub Melewati keseluruhan URL seperti yang disediakan dalam tabel berikut dapat menghasilkan kesalahan seperti nama host yang tidak valid.

Menghubungkan ke AWS IoT Core

Protokol

Titik akhir atau URL

MQTT

iot-endpoint

MQTTlebih WSS

wss://iot-endpoint/mqtt

HTTPS

https://iot-endpoint/topics

Memilih protokol aplikasi untuk komunikasi perangkat Anda

Untuk sebagian besar komunikasi perangkat IoT melalui titik akhir perangkat, Anda akan ingin menggunakan protokol Secure MQTT atau MQTT over WebSocket Secure (WSS); namun, titik akhir perangkat juga mendukung. HTTPS

Tabel berikut membandingkan bagaimana AWS IoT Core menggunakan dua protokol tingkat tinggi (MQTTdanHTTPS) untuk komunikasi perangkat.

AWS IoT protokol perangkat (dan) MQTT HTTPS side-by-side

Fitur

MQTT

HTTPS

Publikasi/Berlangganan dukungan

Publikasikan dan berlangganan

Publikasikan saja

SDKdukungan

AWS SDKsDukungan MQTT dan WSS protokol perangkat

Tidak ada SDK dukungan, tetapi Anda dapat menggunakan metode khusus bahasa untuk membuat permintaan HTTPS

Dukungan Kualitas Layanan

MQTTQoS level 0 dan 1

QoS didukung dengan melewatkan parameter string kueri ?qos=qos di mana nilainya bisa 0 atau 1. Anda dapat menambahkan string kueri ini untuk mempublikasikan pesan dengan nilai QoS yang Anda inginkan.
Dapat menerima pesan yang terlewatkan saat perangkat sedang offline Ya Tidak

clientIddukungan lapangan

Ya

Tidak

Deteksi pemutusan perangkat

Ya

Tidak

Komunikasi yang aman

Ya. Lihat Protokol, pemetaan port, dan otentikasi

Ya. Lihat Protokol, pemetaan port, dan otentikasi

Definisi topik

Aplikasi didefinisikan

Aplikasi didefinisikan

Format data pesan

Aplikasi didefinisikan

Aplikasi didefinisikan

Protokol overhead Lebih rendah Lebih tinggi
Konsumsi daya Lebih rendah Lebih tinggi

Memilih jenis otentikasi untuk komunikasi perangkat Anda

Anda dapat mengonfigurasi jenis otentikasi untuk titik akhir IoT Anda menggunakan titik akhir yang dapat dikonfigurasi. Atau, gunakan konfigurasi default dan tentukan bagaimana perangkat Anda mengautentikasi dengan protokol aplikasi, port, dan kombinasi ALPN TLS ekstensi. Jenis otentikasi yang Anda pilih menentukan bagaimana perangkat Anda akan mengautentikasi saat menghubungkan saat menghubungkan ke. AWS IoT Core Ada lima jenis otentikasi:

Sertifikat X.509

Otentikasi perangkat menggunakan sertifikat klien X.509, yang AWS IoT Core memvalidasi untuk mengautentikasi perangkat. Jenis otentikasi ini bekerja dengan Secure MQTT (MQTToverTLS) dan HTTPS protokol.

Sertifikat X.509 dengan otorisasi khusus

Otentikasi perangkat menggunakan sertifikat klien X.509 dan melakukan tindakan otentikasi tambahan menggunakan otorisasi khusus, yang akan menerima informasi sertifikat klien X.509. Jenis otentikasi ini bekerja dengan Secure MQTT (MQTToverTLS) dan HTTPS protokol. Jenis otentikasi ini hanya dimungkinkan menggunakan titik akhir yang dapat dikonfigurasi dengan otentikasi kustom X.509. Tidak ada ALPN pilihan.

AWS Tanda Tangan Versi 4 (SiGv4)

Mengautentikasi perangkat menggunakan Cognito atau layanan backend Anda, mendukung federasi sosial dan perusahaan. Jenis otentikasi ini bekerja dengan MQTT over WebSocket Secure (WSS) dan HTTPS protokol.

Authorizer kustom

Mengautentikasi perangkat dengan mengonfigurasi fungsi Lambda untuk memproses informasi otentikasi kustom yang dikirim ke. AWS IoT Core Jenis otentikasi ini berfungsi dengan protokol Secure MQTT (MQTToverTLS)HTTPS, dan MQTT over WebSocket Secure (WSS).

Default

Mengautentikasi perangkat berdasarkan ekstensi negosiasi protokol lapisan port dan/atau aplikasi (ALPN) yang digunakan perangkat. Beberapa opsi otentikasi tambahan tidak didukung. Untuk informasi selengkapnya, lihat Protokol, pemetaan port, dan otentikasi.

Tabel di bawah ini menunjukkan semua kombinasi yang didukung dari jenis otentikasi dan protokol aplikasi.

Kombinasi yang didukung dari jenis otentikasi dan protokol aplikasi
Jenis otentikasi Aman MQTT (MQTTlebihTLS) MQTTdi atas WebSocket Secure (WSS) HTTPS Default
Sertifikat X.509
Sertifikat X.509 dengan otorisasi khusus
AWS Tanda Tangan Versi 4 (SiGv4)
Authorizer kustom
Default

Batas durasi koneksi

HTTPSKoneksi tidak dijamin bertahan lebih lama dari waktu yang dibutuhkan untuk menerima dan menanggapi permintaan.

MQTTdurasi koneksi tergantung pada fitur otentikasi yang Anda gunakan. Tabel berikut mencantumkan durasi koneksi maksimum dalam kondisi ideal untuk setiap fitur.

MQTTdurasi koneksi dengan fitur otentikasi

Fitur

Durasi maksimum*

Sertifikat klien X.509

1—2 minggu

Otentikasi kustom

1—2 minggu

Tanda Tangan Versi 4

Hingga 24 jam

* Tidak dijamin

Dengan sertifikat X.509 dan otentikasi khusus, durasi koneksi tidak memiliki batas keras, tetapi bisa sesingkat beberapa menit. Gangguan koneksi dapat terjadi karena berbagai alasan. Daftar berikut berisi beberapa alasan paling umum.

  • Gangguan ketersediaan Wi-Fi

  • Penyedia layanan Internet (ISP) gangguan koneksi

  • Patch layanan

  • Penyebaran layanan

  • Penskalaan otomatis layanan

  • Host layanan tidak tersedia

  • Masalah dan pembaruan penyeimbang beban

  • Kesalahan sisi klien

Perangkat Anda harus menerapkan strategi untuk mendeteksi pemutusan dan penyambungan kembali. Untuk informasi tentang peristiwa pemutusan sambungan dan panduan tentang cara menanganinya, lihat Hubungkan/Putuskan acara diPeristiwa siklus hidup.