상호작용 모델 개념

노드의 데이터 모델 (DM)은 노드에서 작업을 수행할 수 없다면 의미가 없습니다. 상호작용 모델 (IM)은 노드의 DM과 다른 노드의 DM 관계를 정의합니다. 즉, DM 간 통신을 위한 공통 언어입니다.

노드는 다음을 통해 서로 상호 작용합니다.

  • 속성 및 이벤트 읽기 및 구독
  • 속성에 쓰기
  • 명령 호출

노드가 다른 노드와 암호화된 통신 시퀀스를 설정할 때마다 이들은 상호작용 관계를 구성합니다. 상호작용은 하나 이상의 트랜잭션으로 구성될 수 있으며, 트랜잭션은 노드 간의 IM 수준 메시지로 이해될 수 있는 하나 이상의 액션으로 구성됩니다.

상호작용 모델의 계층 구조
그림 1: 상호작용 모델의 계층 구조

트랜잭션에서는 여러 가지 작업이 지원됩니다. 예를 들어 다른 노드에서 속성이나 이벤트를 요청하는 읽기 요청 작업이나 이에 대한 응답인 보고 데이터 작업(서버에서 클라이언트로 정보를 다시 전달)이 있습니다.

개시자와 대상

거래를 시작하는 노드는 개시자이고, 응답하는 노드는 대상입니다. 일반적으로 이니시에이터는 클라이언트 클러스터이고 타겟은 서버 클러스터입니다. 하지만 이 패턴에는 예외가 있습니다. 예를 들어 이 섹션의 아래쪽에서 분석하는 구독 상호작용이 있습니다.

그룹

Matter의 노드는 그룹에 속할 수 있습니다. 기기 그룹은 동일한 작업에서 여러 기기에 동시에 메시지를 전송하는 메커니즘입니다. 그룹의 모든 노드는 동일한 그룹 ID(16비트 정수)를 공유합니다.

그룹 수준 통신 (그룹캐스트)을 수행하기 위해 Matter는 IPv6 Multicast 메시지를 활용하고 모든 그룹 구성원은 동일한 Multicast 주소를 갖습니다.

경로

속성, 이벤트 또는 명령과 상호 작용하려면 해당 상호 작용에 대한 경로를 지정해야 합니다. 경로는 노드의 데이터 모델 계층에서 속성, 이벤트 또는 명령의 위치입니다. 단, 경로에서 그룹 또는 와일드 카드 연산자를 사용하여 여러 노드 또는 클러스터를 동시에 처리하고 이러한 상호작용을 집계하여 작업 수를 줄일 수도 있습니다.

이 메커니즘은 커뮤니케이션의 응답성을 향상하는 데 중요합니다. 예를 들어 사용자가 모든 조명을 끄려고 할 때 음성 어시스턴트는 개별 상호작용의 시퀀스 대신 그룹 내 여러 조명과의 단일 상호작용을 설정할 수 있습니다. 시작자가 각 조명과 개별 상호작용을 생성하면 기기 응답성에 사람이 감지할 수 있는 지연 시간이 발생할 수 있습니다. 이 효과로 인해 여러 기기가 명령에 반응할 때 기기 간에 눈에 띄는 지연이 발생합니다. 이를 '팝콘 효과'라고도 합니다.

Matter의 경로는 아래 옵션 중 하나를 사용하여 어셈블할 수 있습니다.

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

이러한 경로 빌딩 블록 내에서 endpointcluster에는 둘 이상의 노드 인스턴스를 선택하기 위한 와일드카드 연산자가 포함될 수도 있습니다.

시간 제한 및 시간 제한 없음

쓰기 또는 호출 트랜잭션을 실행하는 방법에는 시간 제한시간 제한 없음 두 가지가 있습니다. 시간 제한 트랜잭션은 쓰기/호출 작업을 전송하기 위한 최대 시간 제한을 설정합니다. 이 시간 초과의 목적은 거래에 대한 가로채기 공격을 방지하는 것입니다. 특히 차고 문 개폐기 및 도어락과 같이 애셋 액세스를 관리하는 기기에 유효합니다.

시간 제한 거래를 이해하려면 가로채기 공격이 어떻게 발생하는지, 그리고 시간 제한 거래가 왜 중요한지 이해하는 것이 유용합니다.

인터셉트 공격

인터셉트 공격에는 다음과 같은 패턴이 있습니다.

  1. 앨리스가 밥에게 쓰기 요청 작업과 같은 초기 메시지를 보냅니다.
  2. 중간자 역할을 하는 이브는 메시지를 가로채서 밥이 메시지를 받지 못하도록 막습니다. 예를 들어, 일종의 무선 방해를 통해서요.
  3. 앨리스는 밥으로부터 응답을 받지 못하자 두 번째 메시지를 보낸다.
  4. 이브가 다시 가로채서 밥이 메시지를 받지 못하게 막는다.
  5. 이브는 앨리스가 보낸 것처럼 첫 번째로 가로챈 메시지를 밥에게 보냅니다.
  6. 밥이 앨리스 (및 이브)에게 응답을 보냅니다.
  7. 이브는 나중에 재생하기 위해 두 번째로 가로챈 메시지를 보관합니다. 밥은 앨리스가 보낸 두 번째 가로채기 메시지를 전혀 받지 못했으므로 이를 수락할 것입니다. 이 메시지는 메시지가 '잠금 해제'와 같은 명령어를 인코딩하는 경우 보안 침해를 나타냅니다.

이러한 유형의 공격을 방지하기 위해 시간 제한 작업은 트랜잭션 시작 시 최대 트랜잭션 제한 시간을 설정합니다. 이브가 공격 벡터의 처음 6단계를 실행하더라도 트랜잭션의 만료된 시간 제한으로 인해 7단계에서 메시지를 재생할 수 없습니다.

시간 제한 트랜잭션은 복잡성과 작업 수를 늘립니다. 따라서 모든 트랜잭션에 권장되는 것은 아니고 물리적 또는 가상 보안 및 개인 정보 보호 애셋을 제어하는 기기의 중요한 작업에만 권장됩니다.

SDK 추상화

읽기 트랜잭션, 쓰기 트랜잭션, 트랜잭션 호출 섹션에서는 SDK에서 실행하는 상호작용 모델 작업에 대한 간략한 개요를 제공합니다.

Matter SDK를 사용하는 제품을 만드는 개발자는 일반적으로 작업을 실행하기 위해 직접 호출을 실행하지 않습니다. 작업은 상호작용으로 캡슐화하는 SDK 함수에 의해 추상화됩니다. 하지만 IM 작업을 이해하는 것은 엔지니어에게 Matter의 기능에 대한 숙련도를 높이고 SDK 구현을 세부적으로 제어하는 데 중요합니다.