โมเดลข้อมูล (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
โดยปกติแล้ว นักพัฒนาแอปที่สร้างผลิตภัณฑ์ที่ใช้ Matter SDK จะไม่เรียกใช้การดำเนินการโดยตรง การดำเนินการจะได้รับการแยกให้เป็นนามธรรมโดยฟังก์ชัน SDK ที่จะรวมการดำเนินการไว้ในอินเทอร์แอกชัน อย่างไรก็ตาม การเข้าใจการทำงานของ IM นั้นเป็นสิ่งสำคัญในการทำให้วิศวกร ความเชี่ยวชาญในความสามารถของ Matter รวมถึงปรับ ควบคุมการใช้งาน SDK