Üzerinde işlem yapamadığımız düğümlerin veri modeli (DM) alakalı değildir. Etkileşim Modeli (IM), bir Düğümün DM ilişkisini diğer Düğümlerin DM'siyle tanımlar: DM'ler arasındaki iletişim için ortak bir dil.
Düğümler, aşağıdaki yöntemlerle birbirleriyle etkileşim kurar:
- Özellikleri ve Etkinlikleri Okuma ve Bunlara Abone Olma
- Özelliklere Yazma
- Komutları Çağırma
Bir düğüm başka bir düğümle şifrelenmiş bir iletişim dizisi oluşturduğunda Etkileşim ilişkisi kurulur. Etkileşimler bir veya daha fazla işlemden oluşabilir. İşlemler ise bir veya daha fazla eylemden oluşur. Eylemler, düğümler arasındaki anlık mesajlaşma düzeyindeki mesajlar olarak anlaşılabilir.
İşlemlerde çeşitli işlemler desteklenir. Örneğin, başka bir düğümden bir özellik veya etkinlik isteyen bir okuma isteği işlemi ya da yanıtı olan ve bilgileri sunucudan istemciye geri taşıyan rapor verileri işlemi.
Başlatanlar ve Hedefler
Bir işlemi başlatan düğüm Başlatıcı, yanıt veren düğüm ise Hedef'tir. Genellikle Başlatan bir İstemci Kümesi, Hedef ise bir Sunucu Kümesi'dir. Ancak bu kalıbın istisnaları vardır. Örneğin, bu bölümün ilerleyen kısımlarında daha ayrıntılı olarak analiz edilen abonelik etkileşimleri bu istisnalardan biridir.
Gruplar
Matter içindeki düğümler bir gruba ait olabilir. Cihaz Grubu, aynı İşlemdeki birden fazla Cihaza aynı anda mesaj gönderme ve bu cihazlara mesaj gönderme mekanizmasıdır. Bir gruptaki tüm düğümler, 16 bitlik bir tam sayı olan aynı Group ID'yi paylaşır.
Grup düzeyinde iletişim (Groupcast) için Matter, IPv6 Multicast mesajlarını kullanır ve tüm grup üyeleri aynı Multicast adresine sahiptir.
Yollar
Bir Özellik, Etkinlik veya Komut ile etkileşimde bulunmak istediğimizde bu etkileşimin Yolunu belirtmemiz gerekir: Bir Özellik, Etkinlik veya Komut'un bir Düğümün Veri Modeli hiyerarşisindeki konumu. Bununla birlikte, yollar aynı anda birden fazla Düğüm veya Küme'ye hitap etmek için Gruplar veya Joker İşleçler de kullanabilir. Bu etkileşimler toplanır ve böylece işlem sayısı azalır.
Bu mekanizma, iletişimin yanıt verme hızını artırmak için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, ayrı ayrı etkileşimler dizisi yerine bir grup içindeki birkaç ışıkla tek bir etkileşim kurabilir. Başlatan, her ışıkla ayrı ayrı Etkileşimler oluşturursa Cihaz yanıt verme hızında insan tarafından algılanabilen bir gecikme oluşabilir. Bu efekt, birden fazla cihazın bir komuta aralarında görünür gecikmelerle tepki vermesine neden olur. Bu duruma genellikle "patlamış mısır efekti" denir.
Matter içindeki bir yol, aşağıdaki seçeneklerden biri kullanılarak oluşturulabilir:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
Bu yol oluşturma yapı taşları içinde, endpoint ve cluster birden fazla düğüm örneği seçmek için joker karakter operatörleri de içerebilir.
Süreli ve Süresiz
Yazma veya İşlem Çağırma işlemini gerçekleştirmenin iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış işlemler, gönderilecek Yazma/Çağırma İşlemi için maksimum zaman aşımı oluşturur. Bu zaman aşımının amacı, İşlem üzerinde Araya Girme Saldırısı'nı önlemektir. Bu durum, özellikle garaj kapısı açıcıları ve kilitler gibi varlıklara erişimi kontrol eden cihazlar için geçerlidir.
Zamanlanmış İşlemleri anlamak için araya girme saldırılarının nasıl gerçekleşebileceğini ve Zamanlanmış İşlemlerin neden önemli olduğunu anlamak faydalıdır.
The Intercept Attack
Arada yakalama saldırısı aşağıdaki kalıba sahiptir:
- Ayşe, Ali'ye ilk mesajı gönderir (ör. Yazma İsteği İşlemi).
- Ortadaki adam olan Eve, mesajı yakalar ve örneğin bir tür radyo sinyali karıştırma yoluyla Bob'un mesajı almasını engeller.
- Ayşe, Başar'dan yanıt alamayınca ikinci bir mesaj gönderir.
- Eve tekrar araya girer ve Bob'un mesajı almasını engeller.
- Eve, Alice'ten geliyormuş gibi ilk yakalanan mesajı Bob'a gönderir.
- Bob, yanıtı Alice'e (ve Eve'e) gönderir.
- Eve, ikinci yakalanan mesajı daha sonra tekrar oynatmak üzere saklar. Başar, Aylin'den gelen orijinal ikinci yakalanan mesajı hiç almadığı için bu mesajı kabul eder. Bu mesaj, "kilidi aç" gibi bir komutu kodladığında güvenlik ihlali anlamına gelir.
Zamanlanmış işlemler, bu tür saldırıları önlemek için işlemin başında maksimum işlem zaman aşımı süresi belirler. Eve, saldırı vektörünün ilk altı adımını gerçekleştirmeyi başarsa bile işlemdeki zaman aşımı süresi dolduğu için 7. adımda mesajı yeniden oynatamaz.
Zamanlanmış işlemler, işlemlerin karmaşıklığını ve sayısını artırır. Bu nedenle, her işlem için değil, yalnızca fiziksel veya sanal güvenlik ve gizlilik öğeleri üzerinde kontrol sahibi olan cihazlardaki kritik işlemler için önerilir.
SDK soyutlamaları
Read Transactions (İşlemleri Okuma), Write Transactions (İşlemleri Yazma) ve Invoke Transactions (İşlemleri Çağırma) bölümleri, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemleri'ne dair üst düzey bir genel bakış sunar.
Matter SDK'sını kullanan bir ürün oluşturan geliştirici, genellikle İşlemleri doğrudan yürütmek için çağrı yapmaz. İşlemler, bunları bir Etkileşim'e kapsayacak SDK işlevleri tarafından soyutlanır. Ancak, mühendise Matter özelliklerinde iyi bir yeterlilik sağlamak ve SDK uygulaması üzerinde ayrıntılı kontrol sahibi olmak için IM İşlemlerini anlamak önemlidir.