상호작용 모델 개념

노드의 데이터 모델 (DM)은 노드에서 작업을 수행할 수 없으면 관련이 없습니다. 상호작용 모델 (IM)은 노드와 다른 노드의 DM 관계를 정의합니다. 이는 DM 간의 커뮤니케이션을 위한 공통 언어입니다.

노드는 다음과 같은 방법으로 서로 상호작용합니다.

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

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

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

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

개시자 및 대상

트랜잭션을 시작하는 노드는 Initiator이며 응답하는 노드가 Target입니다. 일반적으로 개시자는 클라이언트 클러스터이고 대상은 서버 클러스터입니다. 그러나 이 섹션의 뒷부분에서 분석한 정기 결제 상호작용과 같이 이 패턴에는 예외가 있습니다.

그룹스

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

그룹 수준 통신 (Groupcast)을 수행하기 위해 Matter는 IPv6 Multicast 메시지를 활용하고 모든 그룹 구성원의 Multicast 주소가 동일합니다.

경로

속성, 이벤트 또는 명령어와 상호작용하려고 할 때마다 이 상호작용의 경로를 지정해야 합니다. 즉, 노드의 데이터 모델 계층 구조에서 속성, 이벤트 또는 명령어의 위치를 지정해야 합니다. 단, 경로에서 그룹 또는 와일드 카드 연산자를 사용하여 여러 노드 또는 클러스터를 동시에 처리할 수 있으므로 이러한 상호작용이 집계되어 작업 수가 줄어들 수 있습니다.

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

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

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

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

시간 제한 및 시간 제한이 없습니다.

쓰기 또는 호출 트랜잭션을 수행하는 방법에는 TimedUntimed가 있습니다. 시간이 지정된 트랜잭션은 전송될 쓰기/호출 작업의 최대 제한 시간을 설정합니다. 이 제한 시간의 목적은 트랜잭션에 대한 차단 공격을 방지하는 것입니다. 특히 차고 개폐 장치 및 도어락과 같은 자산에 대한 액세스를 제어하는 기기의 경우에 유효합니다.

시간이 지정된 트랜잭션을 이해하려면 가로채기 공격이 어떻게 발생할 수 있는지, 그리고 Timed Transactions가 중요한 이유를 이해하면 도움이 됩니다.

가로채기 공격

가로채기 공격은 다음과 같은 패턴을 가집니다.

  1. 앨리스는 밥에게 쓰기 요청 작업과 같은 초기 메시지를 보냅니다.
  2. 중간자인 이브가 메시지를 가로채고 밥이 이러한 메시지를 수신하지 못하도록 합니다(예: 라디오 전파 방해).
  3. 앨리스는 밥의 응답을 받지 못해 두 번째 메시지를 보냅니다.
  4. 이브가 다시 가로채서 밥이 받지 못하도록 합니다.
  5. 앨리스가 보낸 것처럼 첫 번째 가로채기 메시지를 밥에게 보냅니다.
  6. 철수씨가 윤아와 이브에게 응답을 보냅니다.
  7. 이브는 나중에 다시 재생할 수 있도록 두 번째 가로채기된 메시지를 보유합니다. Bob은 앨리스로부터 두 번째 가로채기된 원래 메시지를 받은 적이 없으므로 이를 수락합니다. 이 메시지는 메시지가 '잠금 열기'와 같은 명령어를 인코딩할 때 보안 위반을 나타냅니다.

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

Timed Transactions는 작업의 복잡성과 수를 증가시킵니다. 따라서 모든 거래에 권장되지 않으며 물리적 또는 가상 보안과 개인 정보 보호 애셋을 제어할 수 있는 기기의 중요한 작업에만 권장됩니다.

SDK 추상화

트랜잭션 읽기, 트랜잭션 쓰기, 트랜잭션 호출 섹션에서는 SDK에서 실행하는 상호작용 모델 작업을 개략적으로 설명합니다.

Matter SDK를 사용하는 제품을 만드는 개발자는 일반적으로 작업을 직접 실행하는 호출을 실행하지 않습니다. 작업은 SDK 함수에 의해 추상화되어 상호작용으로 캡슐화됩니다. 그러나 엔지니어가 Matter의 기능에 능숙하고 SDK 구현을 세밀하게 제어할 수 있도록 하려면 IM 작업을 이해하는 것이 중요합니다.