Konsep Model Interaksi

Model Data (DM) dari Node menjadi tidak relevan jika kita tidak dapat menjalankan operasi pada node tersebut. Model Interaksi (IM), mendefinisikan 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 menetapkan urutan komunikasi terenkripsi dengan Node lain, node tersebut 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 di antara Node.

Hierarki Model Interaksi
Gambar 1: Hierarki Model Interaksi

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

Inisiator dan Target

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

Grup

Node di Matter mungkin merupakan 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, bilangan bulat 16-bit.

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

Jalur

Setiap kali ingin berinteraksi dengan Atribut, Peristiwa, atau Perintah, kita harus menentukan Jalur untuk interaksi ini: lokasi Atribut, Peristiwa, atau Perintah dalam hierarki Model Data sebuah Node. Perlu diperhatikan bahwa jalur juga dapat menggunakan Grup atau Operator Wildcard untuk menangani beberapa Node atau Cluster secara bersamaan, yang 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 urutan Interaksi individual. Jika Inisiator membuat Interaksi individual dengan setiap cahaya, inisiator dapat menghasilkan latensi yang dapat disimak 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 pengganti untuk memilih lebih dari satu instance Node.

Dengan Waktu dan Tanpa Batas Waktu

Ada dua cara untuk melakukan Transaksi Tulis atau Pemanggilan: Timed dan Untimed. Transaksi Berwaktu menetapkan waktu tunggu maksimum untuk Tindakan Tulis/Panggil yang akan dikirim. Tujuan waktu tunggu ini adalah untuk mencegah Serangan Gangguan pada Transaksi. Hal ini sangat valid untuk Perangkat yang membuka akses ke aset, seperti pembuka dan kunci garasi.

Untuk memahami Transaksi Berbatas Waktu, sebaiknya pahami bagaimana Serangan Intersep dapat terjadi dan mengapa Transaksi Berbatas Waktu itu penting.

Serangan Penyadapan

Serangan Intercept memiliki pola berikut:

  1. Anita mengirimkan pesan awal kepada Bob, seperti Tindakan Permintaan Tulis.
  2. Eve, man in the middle, mencegat pesan dan mencegah Bob menerimanya, misalnya melalui beberapa jenis gangguan radio.
  3. Anisa, tidak menerima tanggapan dari Bob, mengirim pesan kedua.
  4. Eve mencegat lagi dan mencegah Bob menerimanya.
  5. Eve mengirim pesan pertama yang disadap kepada Bob, seolah-olah pesan tersebut berasal dari Alice.
  6. Bob mengirimkan respons kepada Alia (dan Hadi).
  7. Eve menyimpan pesan kedua yang disadap untuk replay berikutnya. Karena Bob tidak pernah menerima pesan asli yang disadap kedua dari Anis, Bobi akan menerimanya. Pesan ini mewakili pelanggaran keamanan saat pesan mengenkode perintah seperti "kunci terbuka".

Untuk mencegah jenis serangan ini, Tindakan Berwaktu menetapkan waktu tunggu Transaksi maksimum di awal Transaksi. Sekalipun Eve berhasil mengeksekusi enam langkah pertama vektor serangan, ia tidak akan dapat memutar ulang pesan pada langkah 7 karena waktu tunggu Transaksi telah habis.

Transaksi Berjangka waktu meningkatkan kompleksitas dan jumlah Tindakan. Oleh karena itu, solusi ini tidak direkomendasikan untuk setiap Transaksi, tetapi hanya untuk operasi penting pada Perangkat yang memiliki kontrol atas aset privasi dan keamanan fisik atau virtual.

Abstraksi SDK

Bagian Membaca Transaksi, Menulis Transaksi, dan Transaksi Pemanggilan memberikan ringkasan umum tentang Tindakan Model Interaksi yang dilakukan oleh SDK.

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