โมเดลข้อมูล (DM) ของโหนดจะไม่มีความเกี่ยวข้องหากเราไม่สามารถดำเนินการกับโหนดเหล่านั้น โมเดลการโต้ตอบ (IM) กำหนดความสัมพันธ์ DM ของโหนดกับ DM ของโหนดอื่นๆ ซึ่งเป็นภาษาทั่วไปสำหรับการสื่อสารระหว่าง DM
โหนดจะโต้ตอบซึ่งกันและกันโดยดำเนินการดังนี้
- การอ่านและการสมัครรับแอตทริบิวต์และเหตุการณ์
- การเขียนถึงแอตทริบิวต์
- การเรียกใช้คำสั่ง
เมื่อใดก็ตามที่โหนดสร้างลำดับการสื่อสารที่เข้ารหัสกับโหนดอื่น โหนดจะสร้างความสัมพันธ์แบบการโต้ตอบ การโต้ตอบอาจประกอบด้วยธุรกรรมอย่างน้อย 1 รายการ และธุรกรรมจะประกอบขึ้นจากการดำเนินการอย่างน้อย 1 รายการซึ่งเข้าใจได้ว่าเป็นข้อความระดับ IM ระหว่างโหนดต่างๆ

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