โมเดลข้อมูล (DM) ของโหนดจะไม่เกี่ยวข้องหากเราดำเนินการไม่ได้ อยู่ โมเดลการโต้ตอบ (IM) จะกำหนดความสัมพันธ์ DM ของโหนด กับ DM ของโหนดอื่นๆ ซึ่งเป็นภาษากลางสำหรับการสื่อสารระหว่าง DM
โหนดต่างๆ จะโต้ตอบระหว่างกันด้วยการดำเนินการต่อไปนี้
- การอ่านและการสมัครรับข้อมูลแอตทริบิวต์และเหตุการณ์
- การเขียนถึงแอตทริบิวต์
- คำสั่งการเรียกใช้
เมื่อใดก็ตามที่โหนดสร้างลำดับการสื่อสารที่เข้ารหัสกับโหนดอื่น โหนดจะประกอบขึ้นเป็นความสัมพันธ์แบบการโต้ตอบ การโต้ตอบอาจมีลักษณะดังนี้ ซึ่งประกอบด้วยธุรกรรมอย่างน้อย 1 รายการและธุรกรรมประกอบด้วย การดำเนินการอย่างน้อย 1 รายการ ซึ่งเข้าใจได้ว่าเป็นข้อความระดับ IM ระหว่าง โหนด
การดำเนินการหลายอย่างได้รับการรองรับในธุรกรรม เช่น การดำเนินการส่งคำขออ่าน ที่ขอแอตทริบิวต์หรือเหตุการณ์จากโหนดอื่น หรือการตอบสนองของโหนดนั้น การดำเนินการข้อมูลรายงาน ซึ่งจะส่งข้อมูลกลับจากเซิร์ฟเวอร์ไปยัง ของคุณ
ผู้เริ่มและเป้าหมาย
โหนดที่เริ่มธุรกรรมคือ Initiator ในขณะที่โหนดที่ การตอบสนองคือเป้าหมาย โดยทั่วไป Initiator จะเป็นคลัสเตอร์ของไคลเอ็นต์ เป้าหมายคือคลัสเตอร์เซิร์ฟเวอร์ แต่ก็มีข้อยกเว้นสำหรับรูปแบบนี้ ในส่วนการโต้ตอบกับการติดตามซึ่งวิเคราะห์เพิ่มเติมในส่วนนี้
กลุ่ม
โหนดใน Matter อาจเป็นของ Group กลุ่มของ อุปกรณ์เป็นกลไกสำหรับการระบุและส่งข้อความถึงอุปกรณ์หลายเครื่องใน การดำเนินการเดียวกันได้พร้อมกัน โหนดทั้งหมดในกลุ่มใช้กลุ่มเดียวกัน ID จำนวนเต็ม 16 บิต
หากต้องการสื่อสารกันระดับกลุ่ม (Groupcast) Matter ใช้ประโยชน์จาก IPv6 Multicast และสมาชิกกลุ่มทุกคนจะมี Multicast ที่เหมือนกัน อีเมล
เส้นทาง
เมื่อใดก็ตามที่เราต้องการโต้ตอบกับแอตทริบิวต์ เหตุการณ์ หรือคำสั่ง เราจะต้อง ระบุเส้นทางสำหรับการโต้ตอบนี้ ได้แก่ ตำแหน่งของแอตทริบิวต์ เหตุการณ์ หรือ Command ในลำดับชั้นโมเดลข้อมูลของโหนด ข้อควรระวังก็คือเส้นทางอาจ แล้วใช้ Groups หรือ โอเปอเรเตอร์ที่เป็นไวลด์การ์ดเพื่อจัดการกับหลายโหนด หรือ คลัสเตอร์พร้อมๆ กัน โดยรวบรวมการโต้ตอบเหล่านี้ และลด จำนวนการดำเนินการ
กลไกนี้สำคัญต่อการปรับปรุงการตอบสนองของการสื่อสาร สำหรับ ตัวอย่างเช่น เมื่อผู้ใช้ต้องการปิดไฟทุกดวง ผู้ช่วยแบบเสียงสามารถ สร้างการโต้ตอบครั้งเดียวกับไฟหลายดวงภายในกลุ่ม ลำดับการโต้ตอบแต่ละรายการ หากผู้เริ่มต้นสร้าง การโต้ตอบกับแสงแต่ละดวง ในการสร้างเวลาในการตอบสนองที่มนุษย์รับรู้ได้ใน การตอบสนองของอุปกรณ์ เอฟเฟ็กต์นี้ทำให้อุปกรณ์หลายเครื่องตอบสนองต่อ ที่มีความล่าช้าที่มองเห็นได้ ซึ่งมักเรียกว่า "เอฟเฟกต์ป๊อปคอร์น"
คุณสามารถประกอบเส้นทางใน Matter ได้โดยใช้ตัวเลือกใดตัวเลือกหนึ่ง ด้านล่าง
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
และในองค์ประกอบที่ใช้สร้างสรรค์เส้นทางเหล่านี้ endpoint
และ cluster
อาจรวม
โอเปอเรเตอร์ไวลด์การ์ดสำหรับเลือกอินสแตนซ์โหนดมากกว่า 1 รายการ
จับเวลาและไม่มีเวลา
การทำธุรกรรมการเขียนหรือเรียกใช้มี 2 วิธี ได้แก่ จับเวลา และ ไม่กำหนดเวลา ธุรกรรมที่มีกำหนดเวลาจะกำหนดระยะหมดเวลาสูงสุดสำหรับ เขียน/เรียกใช้การทำงานที่จะส่ง วัตถุประสงค์ของการหมดเวลานี้คือการป้องกัน สกัดกั้นการโจมตีในธุรกรรม เหมาะสำหรับอุปกรณ์ที่ ประตูทางเข้าสินทรัพย์ เช่น ประตูเปิดโรงรถและล็อก
การทําความเข้าใจวิธีสกัดกั้นการโจมตี (Intercept Attack) นั้นมีประโยชน์ อาจเกิดขึ้นได้ และเหตุใดธุรกรรมที่กำหนดเวลาจึงมีความสำคัญ
การโจมตีแบบสกัดกั้น
การโจมตีแบบสกัดกั้นมีรูปแบบดังต่อไปนี้
- อลิซส่งข้อความเริ่มต้นให้กับบ๊อบ เช่น การดำเนินการคำขอเขียน
- นุ่นซึ่งเป็นคนกลางคอยดักฟังข้อความและป้องกันไม่ให้บ๊อบ รับการแจ้งเตือน เช่น ผ่านการรบกวนวิทยุบางประเภท
- แต่อลิซไม่ได้ส่งข้อความอีกฉบับหนึ่งจากบัญชา
- นุ่นเข้ามาดักจับอีกและป้องกันไม่ให้บ๊อบรับสาย
- อีฟส่งข้อความที่ดักจับไว้ฉบับแรกถึงบ๊อบ ราวกับว่ามาจาก Alice
- บ๊อบส่งคำตอบให้อลิซ (และอีฟ)
- อีฟเก็บข้อความที่ 2 ที่ดักไว้ไว้เล่นซ้ำในภายหลัง เนื่องจากบ๊อบไม่เคย ได้รับข้อความต้นฉบับที่ดักไว้ฉบับที่ 2 จากอลิสา ระบบก็จะยอมรับ ได้ ข้อความนี้แสดงถึงการละเมิดด้านความปลอดภัยเมื่อข้อความเข้ารหัส เช่น "เปิดล็อก"
การดำเนินการตามกำหนดเวลาจะกำหนดจำนวนธุรกรรมสูงสุดเพื่อป้องกันการโจมตีเหล่านี้ เมื่อสิ้นสุดการทำธุรกรรม แม้ว่านุ่นจะดำเนินการกับ 6 ขั้นตอนแรกของเวกเตอร์การโจมตี ก็จะไม่สามารถเล่นข้อความซ้ำได้ ในขั้นตอนที่ 7 เนื่องจากหมดเวลาในการทำธุรกรรม
ธุรกรรมแบบกำหนดเวลาจะเพิ่มความซับซ้อนและจำนวนการดำเนินการ ดังนั้น ไม่แนะนำสำหรับทุกธุรกรรม แต่ควรแสดงเฉพาะการดำเนินการที่สำคัญ อุปกรณ์ที่มีการควบคุมสินทรัพย์ด้านความปลอดภัยทางกายภาพหรือเสมือน
การแอบสแตรกชันของ SDK
ส่วนอ่านธุรกรรม เขียนธุรกรรม และ เรียกใช้ธุรกรรม ให้ภาพรวมระดับสูงของการกระทำของรูปแบบการโต้ตอบที่ดำเนินการโดย SDK
นักพัฒนาแอปที่สร้างผลิตภัณฑ์ที่ใช้ SDK ของ Matter มักจะไม่ทำการเรียกเพื่อดำเนินการต่างๆ โดยตรง การดำเนินการคือ ถูกย่อโดยฟังก์ชัน SDK ที่จะห่อหุ้มฟังก์ชันเหล่านั้นเป็นการโต้ตอบ อย่างไรก็ตาม การเข้าใจการทำงานของ IM นั้นเป็นสิ่งสำคัญในการทำให้วิศวกร ความเชี่ยวชาญในความสามารถของ Matter รวมถึงปรับ ควบคุมการใช้งาน SDK