Düğümün Veri Modeli (DM), üzerinde işlem yapamıyorsak bizim için önemli değildir. Etkileşim Modeli (IM), bir Düğümün diğer Düğümlerin DM'siyle (DM'ler arasında iletişim için ortak bir dil) olan DM ilişkisini tanımlar.
Düğümler aşağıdaki şekillerde 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 bir Etkileşim ilişkisi oluşturur. Etkileşimler bir veya daha fazla İşlemden, İşlemler ise Düğümler arasında IM düzeyinde mesaj olarak anlaşılabilecek bir veya daha fazla İşlemden oluşabilir.
İşlemlerde, başka bir düğümden Özellik veya Etkinlik isteyen Okuma İsteği İşlemi veya bunun yanıtı olan Rapor Veri İşlemi (bilgileri sunucudan istemciye taşıyan Rapor Veri İşlemi) gibi çeşitli işlemler desteklenir.
Başlatıcılar ve Hedefler
Bir İşlem başlatan Düğüm Başlatan, yanıt veren Düğüm ise Hedef'dir. Genellikle, Başlatan bir İstemci Kümesi, Hedef ise bir Sunucu Kümesi'dir. Ancak bu kalıbın, bu bölümde daha ayrıntılı bir şekilde incelenen Abonelik Etkileşimleri gibi istisnaları vardır.
Gruplar
Matter içindeki düğümler bir Gruba ait olabilir. Cihaz Grubu, aynı İşlemde birden fazla Cihaza mesajların ele alınmasına ve gönderilmesine yarayan bir mekanizmadır. Bir Gruptaki tüm Düğümler aynı Grup Kimliğini paylaşır. Bu kimlik, 16 bitlik bir tam sayıdır.
Matter, grup düzeyinde iletişim kurmak (Groupcast) için IPv6 Multicast mesajlarından yararlanı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. Bu bir Düğümün Veri Modeli hiyerarşisindeki Özelliğin, Etkinliğin veya Komutun konumudur. Dikkat edilmesi gereken nokta, yolların aynı anda birkaç Düğüm veya Kümeyi ele almak, bu Etkileşimleri toplamak ve böylece işlem sayısını azaltmak için Gruplar veya Joker Karakter Operatörleri'ni de kullanabileceğidir.
Bu mekanizma, iletişimin yanıt verme sürecini iyileştirmek için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, bir grup ışıkla tek bir etkileşim değil, tek tek etkileşimler yerine birkaç ışıkla etkileşim kurabilir. Başlatıcı, her bir ışıkla ayrı ayrı Etkileşimler oluşturursa Cihaz yanıt vermesinde insanlar tarafından algılanabilir gecikme oluşturabilir. Bu etki, birden fazla cihazın bir komuta aralarında görünür gecikmelerle tepki vermesine neden olur. Bu etkiye genellikle "patlamış mısır etkisi" denir.
Matter üzerinde 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>
endpoint ve
cluster, bu Path yapı taşlarının içinde birden fazla Düğüm örneği seçmek için Joker Karakter Operatörleri de içerebilir.
Zamanlanmış ve Zamanlanmamış
Yazma veya Çağırma İşlemini gerçekleştirmenin iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış İşlemler, Yazma/Çağrı İşleminin gönderilmesi için bir maksimum zaman aşımı belirler. Bu zaman aşımının amacı, İşlemde bir Müdahale Saldırısını önlemektir. Bu, özellikle garaj açıcıları ve kilitler gibi öğelere erişim sağlayan Cihazlar için geçerlidir.
Zamanlı İşlemleri anlamak için Müdahale Saldırılarının nasıl gerçekleşebileceğini ve Zamanlanmış İşlemlerin neden önemli olduğunu anlamak faydalıdır.
Müdahale Saldırısı
Müdahale Saldırısı aşağıdaki kalıba sahiptir:
- Ayla, Ali'ye Yazma İsteği İşlemi gibi bir başlangıç mesajı gönderir.
- Ortadaki adam olan Eve mesaja müdahale eder ve Bob'un mesajı almasını engeller (örneğin, bir tür radyo sıkışması gibi).
- Ali'den yanıt alamayan Ayşe, ikinci bir mesaj gönderir.
- Eve tekrar müdahale eder ve İbrahim'in buna ulaşmasını engeller.
- Eve ilk yakalanan mesajı Ali'den geliyormuş gibi Bora'ya gönderir.
- Ali yanıtı Ayşe'ye (ve Ece'ye) gönderir.
- Eve müdahale edilen ikinci mesajı daha sonra tekrar oynatmak üzere tutar. Bülent, Aylin'den müdahale edilen ilk mesajı hiç almadığı için mesajı kabul edecektir. Bu mesaj, mesajın "açık kilit" gibi bir komutu kodlamasına yol açan bir güvenlik ihlalini temsil eder.
Zamanlanmış İşlemler, bu tür saldırıları önlemek için İşlemin başında maksimum İşlem zaman aşımı belirler. Eve saldırı vektörünün ilk altı adımını yürütmeyi başarsa bile İşlem'deki süresi dolan zaman aşımı nedeniyle 7. adımdaki mesajı yeniden oynatamaz.
Zamanlı İşlemler, işlemlerin karmaşıklığını ve sayısını artırır. Dolayısıyla bu işlemler her İşlem için değil, yalnızca fiziksel veya sanal güvenlik ve gizlilik varlıkları üzerinde kontrolü olan Cihazlardaki kritik işlemler için önerilmez.
SDK soyutlamaları
Matter SDK'sını kullanan bir ürün oluşturan geliştirici, genellikle İşlemleri doğrudan yürütmek için çağrı gerçekleştirmez. İşlemler, bunları bir Etkileşime kaplayacak SDK işlevleri tarafından soyutlanır. Bununla birlikte, IM İşlemlerini anlamak mühendise Matter özellikleri konusunda iyi bir yeterlilik sağlamak ve SDK uygulaması üzerinde hassas kontrol sağlamak açısından önemlidir.