Konsep Model Interaksi

Model Data (DM) Node tidak relevan jika kita tidak dapat melakukan operasi pada Node tersebut. Model Interaksi (IM), menentukan hubungan DM Node dengan DM Node lain: bahasa umum untuk komunikasi antar-DM.

Node berinteraksi satu sama lain dengan:

  • Membaca dan Berlangganan Atribut dan Peristiwa
  • Menulis ke Atribut
  • Memanggil Perintah

Setiap kali Node membuat urutan komunikasi terenkripsi dengan Node lain, keduanya membentuk hubungan Interaksi. Interaksi dapat terdiri dari satu atau beberapa Transaksi, dan Transaksi terdiri dari satu atau beberapa Tindakan yang dapat dipahami sebagai pesan tingkat IM antara Node.

Hierarki Model Interaksi
Gambar 1: Hierarki Model Interaksi

Beberapa Tindakan didukung di Transaksi, seperti Tindakan Permintaan Baca yang meminta Atribut atau Peristiwa dari Node lain, atau responsnya, Tindakan Data Laporan, yang membawa informasi kembali dari server ke klien.

Inisiator dan Target

Node yang memulai Transaksi adalah Inisiator, sedangkan Node yang merespons adalah Target. Biasanya, Initiator adalah Cluster Klien dan Target adalah Cluster Server. Namun, ada pengecualian untuk pola ini, seperti dalam Interaksi Langganan yang dianalisis lebih lanjut di bagian ini.

Grup

Node di Matter dapat menjadi bagian dari Grup. Grup Perangkat adalah mekanisme untuk menangani dan mengirim pesan ke beberapa Perangkat dalam Action yang sama secara bersamaan. Semua Node dalam Grup memiliki ID Grup yang sama, yaitu bilangan bulat 16-bit.

Untuk mencapai komunikasi tingkat grup (Groupcast), Matter memanfaatkan pesan Multicast IPv6, dan semua anggota Grup memiliki alamat Multicast yang sama.

Jalur

Setiap kali kita ingin berinteraksi dengan Atribut, Peristiwa, atau Perintah, kita harus menentukan Jalur untuk interaksi ini: lokasi Atribut, Peristiwa, atau Perintah dalam hierarki Model Data Node. Peringatannya adalah jalur juga dapat menggunakan Grup atau Operator Karakter Pengganti untuk menangani beberapa Node atau Cluster secara bersamaan, menggabungkan Interaksi ini, sehingga mengurangi jumlah tindakan.

Mekanisme ini penting untuk meningkatkan responsivitas komunikasi. Misalnya, saat pengguna ingin mematikan semua lampu, asisten suara dapat membuat satu interaksi dengan beberapa lampu dalam Grup, bukan serangkaian Interaksi individual. Jika Initiator membuat Interaksi individual dengan setiap lampu, hal ini dapat menghasilkan latensi yang dapat dirasakan manusia dalam responsivitas Perangkat. Efek ini menyebabkan beberapa Perangkat bereaksi terhadap perintah dengan penundaan yang terlihat di antara perangkat tersebut. Hal ini sering disebut sebagai "efek popcorn".

Jalur di Matter dapat disusun menggunakan salah satu opsi di bawah:

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

Dan dalam elemen penyusun Jalur ini, endpoint dan cluster juga dapat menyertakan Operator Karakter Aksara Khusus untuk memilih lebih dari satu instance Node.

Dengan Waktu dan Tanpa Waktu

Ada dua cara untuk melakukan Transaksi Tulis atau Panggil: Berwaktu dan Tidak Berwaktu. Transaksi Berwaktu menetapkan waktu tunggu maksimum untuk Tindakan Tulis/Panggil yang akan dikirim. Tujuan waktu tunggu ini adalah untuk mencegah Serangan Intersepsi pada Transaksi. Hal ini terutama berlaku untuk Perangkat yang membatasi akses ke aset, seperti pembuka garasi dan smart lock.

Untuk memahami Transaksi Berwaktu, sebaiknya pahami cara Serangan Intersepsi dapat terjadi dan alasan Transaksi Berwaktu penting.

Serangan Intersepsi

Serangan Intersepsi memiliki pola berikut:

  1. Alice mengirimkan pesan awal kepada Bob, seperti Write Request Action.
  2. Eve, seorang peretas man-in-the-middle, mencegat pesan dan mencegah Bob menerimanya, misalnya melalui beberapa jenis jamming radio.
  3. Alice, yang tidak menerima respons dari Bob, mengirim pesan kedua.
  4. Eve mencegat lagi dan mencegah Bob menerimanya.
  5. Eve mengirim pesan pertama yang disadap ke Bob, seolah-olah pesan itu berasal dari Alice.
  6. Bob mengirimkan respons ke Alice (dan Eve).
  7. Eve menyimpan pesan kedua yang disadap untuk diputar ulang nanti. Karena Bob tidak pernah menerima pesan kedua yang dicegat dari Alice, dia akan menerimanya. Pesan ini menunjukkan pelanggaran keamanan saat pesan mengenkode perintah seperti "buka kunci".

Untuk mencegah jenis serangan ini, Timed Actions menetapkan waktu tunggu Transaksi maksimum di awal Transaksi. Meskipun Eve berhasil menjalankan enam langkah pertama vektor serangan, Eve tidak akan dapat memutar ulang pesan pada langkah 7 karena waktu tunggu yang habis pada Transaksi.

Transaksi Berbatas Waktu meningkatkan kompleksitas dan jumlah Action. Oleh karena itu, kunci ini tidak direkomendasikan untuk setiap Transaksi, tetapi hanya untuk operasi penting pada Perangkat yang memiliki kontrol atas aset keamanan dan privasi fisik atau virtual.

Abstraksi SDK

Bagian Transaksi Baca, Transaksi Tulis, dan Panggil Transaksi memberikan ringkasan umum tentang Tindakan Model Interaksi yang dilakukan oleh SDK.

Developer yang membuat produk yang menggunakan Matter SDK biasanya tidak melakukan panggilan untuk menjalankan Action secara langsung; Action diabstraksi oleh fungsi SDK yang akan mengenkapsulasinya ke dalam Interaksi. Namun, memahami IM Actions penting untuk memberikan pemahaman yang baik kepada engineer tentang kemampuan Matter, serta kontrol yang mendetail atas implementasi SDK.