Etkileşim Modeli Kavramları

Düğüm üzerinde işlem gerçekleştiremediğimiz durumlarda söz konusu Düğümün Veri Modeli (DM) geçerli olmaz. Etkileşim Modeli (IM), bir Düğümün diğer Düğümlerin DM'si ile olan DM ilişkisini tanımlar. DM'ler arasında ortak bir iletişim dili kullanılır.

Düğümler birbiriyle şu şekilde etkileşime girer:

  • Özellikleri ve Etkinlikleri Okuma ve bunlara abone olma
  • Özelliklere Yazma
  • Komutları Çağırma

Bir Düğüm, başka bir düğüm ile şifrelenmiş bir iletişim dizisi oluşturduğunda bir Etkileşim ilişkisi oluşturur. Etkileşimler bir veya daha fazla İşlem'den, İşlemler ise düğümler arasında IM düzeyinde mesajlar olarak anlaşılabilecek bir veya daha fazla İşlem'den oluşur.

Etkileşim Modeli Hiyerarşisi
Şekil 1: Etkileşim Modeli Hiyerarşisi

İşlemlerde, başka bir Düğümden Özellik veya Etkinlik isteyen Okuma İsteği İşlemi ya da bunun yanıtı, bilgileri sunucudan istemciye geri taşıyan Rapor Veri İşlemi gibi birçok Eylem desteklenir.

Başlatıcılar ve Hedefler

Bir İşlemi başlatan Düğüm Başlatan, yanıt veren Düğüm ise Hedef'tir. Genellikle Başlatıcı bir İstemci Kümesi, Hedef ise bir Sunucu Kümesidir. Ancak bu kalıbın, bu bölümde daha aşağıda analiz edilen Abonelik Etkileşimleri'ndeki gibi istisnalar vardır.

Gruplar

Matter içindeki düğümler bir Gruba ait olabilir. Cihaz Grubu, aynı İşlem'de birden fazla Cihaza aynı anda mesaj göndermek ve bunları ele almak için kullanılan bir mekanizmadır. Bir Gruptaki tüm Düğümler aynı Grup Kimliği'ni (16 bitlik bir tam sayı) paylaşır.

Grup düzeyinde iletişimi (Groupcast) gerçekleştirmek için Matter IPv6 Multicast mesajlarından yararlanır ve tüm grup üyeleri aynı Multicast adresine sahip olur.

Yollar

Bir Özellik, Etkinlik veya Komutla etkileşimde bulunmak istediğimizde, bu etkileşim için Yol'u belirtmemiz gerekir: bir Düğümün Veri Modeli hiyerarşisinde bir Özelliğin, Etkinliğin veya Komutun konumu. Dikkat edilmesi gereken nokta, yolların birkaç Düğümü veya Kümeyi aynı anda ele almak, bu Etkileşimleri toplamak ve böylece işlemlerin sayısını azaltmak için Gruplar veya Joker Karakter Operatörleri'ni de kullanabilmesidir.

Bu mekanizma, iletişimin yanıt verme yeteneğini geliştirmek açısından önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, Etkileşimleri ayrı ayrı izlemek yerine bir Grup içindeki birkaç ışıkla tek bir etkileşim gerçekleştirebilir. Başlatıcı her ışıkla bağımsız Etkileşimler oluşturursa, Cihaz duyarlılığında insan 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. Buna genellikle "patlamış mısır etkisi" 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 Path 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.

Zamanlanmış ve Zamanlanmamış

Yazma veya çağırma işlemi yapmanın iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış İşlemler, yazma/çağrı işleminin gönderilmesi için bir maksimum zaman aşımı belirler. Bu zaman aşımının amacı, İşlem'de bir Kesme Saldırısı'nı önlemektir. Özellikle garaj kapısı ve kilit gibi öğelere erişim sağlayan Cihazlar için geçerlidir.

Zamanlanmış İşlemleri anlamak için Müdahale Saldırılarının nasıl gerçekleşebileceğini ve Zamanlanmış İşlemler'in neden önemli olduğunu anlamanız önemlidir.

Müdahale Saldırısı

Müdahale Saldırısı aşağıdaki modele sahiptir:

  1. Aylin, Ali'ye Yazma İsteği İşlemi gibi bir ilk mesaj gönderir.
  2. Ortadaki adam olan Eve mesaja müdahale eder ve örneğin bir tür radyoda çalarak Ahmet'in mesajı almasını engeller.
  3. Ayşe, ancak Ali'den bir yanıt alamayarak ikinci bir mesaj gönderir.
  4. Eve bir kez daha kesişerek Barış'ın e-postayı almasını engeller.
  5. Eve yakalanan ilk mesajı sanki Alice'den geliyormuş gibi Ali'ye gönderir.
  6. Bob, yanıtı Aylin'e (ve Efe'ye) gönderir.
  7. Elif, yakalanan ikinci mesajı tutarak daha sonra tekrar oynatıyor. Bob, Alice'den gelen ilk müdahale edilen mesajı almadığından, mesajı kabul eder. Bu mesaj, mesaj "açık kilit" gibi bir komut kodladığında bu bir güvenlik ihlalini temsil eder.

Zamanlanmış İşlemler, bu tür saldırıları önlemek için İşlemin başında maksimum bir İşlem zaman aşımı belirler. Eve saldırı vektörünün ilk altı adımını yürütse bile İşlem'deki zaman aşımı süresinin sona ermesi nedeniyle 7. adımdaki mesajı tekrar oynatamaz.

Zamanlanmış İşlemler, İşlemlerin karmaşıklığını ve sayısını artırır. Dolayısıyla, her İşlem için değil, yalnızca fiziksel veya sanal güvenlik ve gizlilik öğeleri üzerinde kontrolü olan Cihazlardaki kritik işlemler için önerilir.

SDK özetleri

İşlemleri Okuma, İşlemleri Yazma ve İşlemleri Çağırma bölümleri, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemlerine üst düzey bir genel bakış sağlar.

Matter SDK'sını kullanan bir ürün oluşturan geliştirici, genellikle İşlemleri doğrudan yürütmek için çağrılar gerçekleştirmez. İşlemler, bunları bir Etkileşime dahil edecek SDK işlevleri tarafından soyutlanır. Bununla birlikte, IM İşlemleri'nin anlaşılması, mühendise Matter özellikleri konusunda iyi bir yetkinlik sağlaması ve SDK uygulaması üzerinde hassas kontrol sağlaması açısından önemlidir.