KR102092100B1 - 공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치 - Google Patents

공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치 Download PDF

Info

Publication number
KR102092100B1
KR102092100B1 KR1020180042814A KR20180042814A KR102092100B1 KR 102092100 B1 KR102092100 B1 KR 102092100B1 KR 1020180042814 A KR1020180042814 A KR 1020180042814A KR 20180042814 A KR20180042814 A KR 20180042814A KR 102092100 B1 KR102092100 B1 KR 102092100B1
Authority
KR
South Korea
Prior art keywords
packet
connection
relay
relay server
publish
Prior art date
Application number
KR1020180042814A
Other languages
English (en)
Other versions
KR20180120576A (ko
Inventor
김상언
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2018/004373 priority Critical patent/WO2018199523A1/ko
Publication of KR20180120576A publication Critical patent/KR20180120576A/ko
Application granted granted Critical
Publication of KR102092100B1 publication Critical patent/KR102092100B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 M2M(Machine to Machine communication) 시스템에서 공인 IP를 경유하는 사설 IP 기반의 사물통신 방법과 그 장치에 대한 것이다. 일 실시예는 M2M(Machine to Machine communication) 장치가 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 방법에 있어서, 중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 연결 설정을 위한 연결 패킷에 대한 응답 정보를 수신하여 중계 서버와의 연결을 설정하는 단계와 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송하는 단계 및 요청 메시지에 대해서 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버로부터 수신하는 단계를 포함하는 방법 및 장치를 제공한다.

Description

공인 IP 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치{Methods for processing M2M communication via public IP And Apparatuses thereof}
본 발명은 M2M(Machine to Machine communication) 시스템에서 공인 IP를 경유하는 사설 IP 기반의 사물통신 방법과 그 장치에 대한 것이다.
사물 통신(M2M, "Machine to machine communication" 또는 MTC, "Machine type communication" 또는 스마트 디바이스 통신, "Smart Device communication" 또는 "Machine oriented communication" 또는 사물 인터넷, "Internet of Things")은 사람이 통신 과정에 개입하지 않고 통신이 이루어지는 방식의 모든 통신 방식을 지칭한다.
사물통신은 통상적으로 사람이 직접적으로 통신과 응용 제어를 수행하지 않기 때문에, 사물 간에 메시지를 교환하기 위해서 송수신 방법과 절차와 필요하다. 또한, M2M 장치 간의 원활한 메시지 교환을 위한 프로토콜이 필요하다.
특히, IoT 기기의 대중화에 따라서 다수의 사물 통신 장치가 가정 및 직장 내에서 사용되고 있으며, 동일 또는 유사한 기능을 수행하는 사물 통신 장치가 일정 목적을 위해서 다수 전개되는 상황이 존재한다.
이러한 상황에서 다수의 사물 통신 장치는 동일한 네트워크에 전개될 수도 있고, 서로 다른 네트워크에 전개될 수도 있다. 예를 들어, 서로 다른 사설 네트워크에 구성되는 사물 통신 장치가 상호 통신을 수행할 필요성도 발생할 수 있다.
그러나, 현재 사물 통신 네트워크는 동일 네트워크에 존재하는 사물 통신 장치 간의 통신 프로토콜을 정의하고 있을 뿐, 서로 다른 네트워크에 포함되는 사물 통신 장치 간의 통신에 대해서는 고려되지 않고 있다.
특히, 서로 다른 사설 IP 네트워크에 구성되는 사물 통신 장치가 공인 IP 네트워크를 통해서 통신을 수행하는 경우에 사설 IP 네트워크의 방화벽 등으로 인해서 원활하게 통신이 수행되지 못하는 문제점이 있다.
전술한 배경에서 안출된 일 실시예는 서로 다른 네트워크에 구성되는 사물 통신 장치 간의 원활한 통신 방법을 제공하고자 한다.
또한, 일 실시예는 사설 IP를 사용하는 사물 통신 장치가 공인 IP를 통해서 수행이 가능하도록 외부 사설 IP를 사용하는 사물 통신 장치와 통신을 수행할 수 있도록 하는 방법 및 장치를 제공하고자 한다.
전술한 과제를 해결하기 위한 일 실시예는 M2M(Machine to Machine communication) 장치가 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 방법에 있어서, 중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 연결 설정을 위한 연결 패킷에 대한 응답 정보를 수신하여 중계 서버와의 연결을 설정하는 단계와 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송하는 단계 및 요청 메시지에 대해서 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버로부터 수신하는 단계를 포함하는 방법을 제공한다.
또한, 일 실시예는 중계 서버가 공인 IP(Internet Protocol) 네트워크를 통해서 M2M(Machine to Machine communication) 장치 간의 통신을 중계하는 방법에 있어서, M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하여, M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 단계와 M2M 장치의 중계 클라이언트 모듈로부터 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계와 요청 메시지를 포함하는 퍼블리쉬 패킷을 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계와 타 M2M 장치의 중계 클라이언트 모듈로부터 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계 및 응답 메시지를 포함하는 퍼블리쉬 패킷을 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계를 포함하는 방법을 제공한다.
또한, 일 실시예는 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 M2M(Machine to Machine communication) 장치에 있어서, 중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 연결 설정을 위한 연결 패킷에 대한 응답 정보를 수신하여 중계 서버와의 연결을 설정하는 제어부와 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송하는 송신부 및 요청 메시지에 대해서 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버로부터 수신하는 수신부를 포함하는 M2M 장치를 제공한다.
또한, 일 실시예는 공인 IP(Internet Protocol) 네트워크를 통해서 M2M(Machine to Machine communication) 장치 간의 통신을 중계하는 중계 서버에 있어서, M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하여, M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 제어부와 M2M 장치의 중계 클라이언트 모듈로부터 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 수신부 및 요청 메시지를 포함하는 퍼블리쉬 패킷을 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 송신부를 포함하되, 수신부는 타 M2M 장치의 중계 클라이언트 모듈로부터 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 더 수신하고, 송신부는 응답 메시지를 포함하는 퍼블리쉬 패킷을 M2M 장치의 중계 클라이언트 모듈로 더 전송하는 중계 서버를 제공한다.
본 개시는 서로 다른 사설 IP를 사용하는 복수의 사물 통신 장치가 공인 IP를 통해서 원활하게 메시지를 송수신할 수 있는 효과를 제공한다.
또한, 본 개시는 서로 다른 네트워크에 구성되는 사물 통신 장치 간에 공인 또는 사설 IP의 제한없이 필요에 따라 데이터를 송수신할 수 있는 효과를 제공한다.
도 1은 M2M 시스템을 상위 레벨의 기능적 관점에서 도시한 도면이다.
도 2는 일 실시예에 따른 M2M 시스템 구성도를 보다 구체적으로 도시한 도면이다.
도 3은 M2M 시스템에서 요청 메시지 전송과 이에 따른 응답 정보를 수신하는 절차를 예시적으로 도시한 도면이다.
도 4는 일 실시예에 따른 공통 서비스 개체의 기능적 구조를 도시한 도면이다.
도 5는 공인 IP와 사설 IP를 사용하는 경우에 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 6은 사설 IP를 사용하는 M2M 장치 간에 공인 IP 네트워크를 경유하여 통신을 수행하는 경우에 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 M2M 장치의 동작을 설명하기 위한 도면이다.
도 8은 일 실시예에 다른 중계 서버의 동작을 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 중계 서버가 M2M 장치와 통합되어 구성된 구조를 예시적으로 도시한 도면이다.
도 10은 일 실시예에 따른 중계 서버가 독립적으로 구성된 구조를 예시적으로 도시한 도면이다.
도 11은 일 실시예에 따른 연결 패킷을 이용하여 중계 서버와 연결을 설정하는 절차를 설명하기 위한 도면이다.
도 12는 다른 실시예에 따른 연결 패킷을 이용하여 중계 서버와 연결을 설정하는 절차를 설명하기 위한 도면이다.
도 13은 일 실시예에 따른 퍼블리쉬 패킷을 이용하여 메시지를 전달하는 절차를 설명하기 위한 도면이다.
도 14는 다른 실시예에 따른 퍼블리쉬 패킷을 이용하여 메시지를 전달하는 절차를 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 연결 패킷 포맷과 고정 헤더의 구조를 도시한 도면이다.
도 16은 일 실시예에 따른 연결 패킷 가변 헤더의 구조를 도시한 도면이다.
도 17은 일 실시예에 따른 연결 패킷 페이로드의 구조를 도시한 도면이다.
도 18은 일 실시예에 따른 연결 확인 패킷 포맷과 각 헤더의 구조를 도시한 도면이다.
도 19는 일 실시예에 따른 가입(subscribe) 패킷 포맷과 고정 헤더, 가변 헤더 및 페이로드의 구조를 도시한 도면이다.
도 20은 일 실시예에 따른 가입(subscribe) 확인 패킷 포맷과 고정 헤더, 가변 헤더 및 페이로드의 구조를 도시한 도면이다.
도 21은 일 실시예에 따른 퍼블리쉬 패킷 포맷과 고정 헤더, 가변 헤더 구조를 도시한 도면이다.
도 22는 일 실시예에 다른 퍼블리쉬 확인 패킷 포맷과 고정 헤더, 가변 헤더 구조를 도시한 도면이다.
도 23은 일 실시예에 따른 M2M 장치의 구조를 도시한 도면이다.
도 24는 일 실시예에 따른 중계 서버의 구조를 도시한 도면이다.
이하, 본 발명의 일부 실시 예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조 부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 발명의 실시예들은 사물 통신을 중심으로 설명한다. 사물 통신은 M2M(Machine to Machine communication), MTC(Machine Type Communication), IoT(Internet of Things), 스마트 장치 통신(Smart Device Communication, SDC), 또는 사물 지향 통신(Machine Oriented Communication) 등으로 다양하게 불려질 수 있다. 최근 oneM2M에서 사물통신과 관련된 많은 기술적 사항을 제시하고 있다. 사물 통신은 사람이 통신 과정에 개입하지 않고 통신이 이루어지는 다양한 통신을 지칭한다. 사물 통신은 에너지(energy) 분야, 엔터프라이즈(enterprise) 분야, 헬스케어(Healthcare) 분야, 공공 서비스(Public Services) 분야, 주거(Residential) 분야, 소매(Retail) 분야, 운송(Transportation)분야, 그리고 기타 분야 등으로 나뉘어진다. 본 발명은 상기 분야를 포함하며, 그 외의 분야에도 적용 가능하다.
도 1은 일 실시예에 따른 M2M 시스템을 상위 레벨의 기능적 관점에서 도시한 도면이다.
애플리케이션 개체(Application Entity, AE)(110)는 종단간(end-to-end) M2M 솔루션을 위한 응용 서비스 로직을 제공한다. 일 예로 차량 등의 집단적인 추적 애플리케이션(fleet tracking application), 원격 혈당 감시 애플리케이션(remote blood sugar monitoring application), 또는 원격 전력 검침과 제어 애플리케이션(remote power metering and controlling application) 등이 될 수 있다.
공통 서비스 개체(Common Services Entity, CSE)(120)는 에너지(energy) 분야, 엔터프라이즈(enterprise) 분야, 헬스케어(Healthcare) 분야, 공공 서비스(Public Services) 분야, 주거(Residential) 분야, 소매(Retail) 분야, 운송(Transportation)분야, 그리고 기타 분야 등에서 공통적으로 필요한 집합적인 서비스 기능이다.
이러한 서비스 기능은 참조점(Reference Points) Mca, Mcc를 통해 다른 기능으로 드러나며, 참조점 Mcn를 이용하여 기반 네트워크 서비스를 이용한다. 공통 서비스 개체의 일 예로는 데이터 관리(Data Management), 디바이스 관리(Device Management), M2M 구독 관리(M2M Subscription Management), 위치 서비스(Location Service) 등이 될 수 있다. CSE에 의해 제공되는 서브기능(subfunction)은 논리적으로 CSF(Common service function)으로 이해될 수 있다. oneM2M 노드의 CSE내에 CSF 중 일부는 필수적(mandatory)이 되며 일부는 선택적(optional)이 될 수 있다. 마찬가지로 CSF 내의 서브기능들 역시 필수적 또는 선택적이 될 수 있다.
기반 네트워크 서비스 기능(Underlying Network Services Function, NSF)(130)은 공통 서비스 개체에게 서비스를 제공한다. 서비스의 예로는 디바이스 관리, 위치 서비스(location services)와 디바이스 트리거링(device triggering)을 포함한다.
참조점(Reference Points)은 공통 서비스 개체(CSE)에서 지원되는 것으로 Mca 참조점은 애플리케이션 개체와 공통 서비스 개체 간의 사물통신을 제공하기 위한 참조점이다. Mcc 참조점은 두 공통 서비스 개체 간의 통신 사물통신을 제공하기 위한 참조점이다. Mcn 참조점은 공통 서비스 개체와 하나의 네트워크 서비스 개체간의 사물통신을 제공하기 위한 참조점이다.
보다 상세히, Mca 참조점은 하나의 애플리케이션 개체(AE)가 공통 서비스 개체에 의해 지원되는 서비스를 사용할 수 있도록 한다. Mca 참조점을 통해 제공되는 서비스들은 공통 서비스 개체가 제공하는 기능에 의존적이며, 애플리케이션 개체와 공통 서비스 개체는 동일한 물리적 개체에 존재하거나 다른 물리적 개체에 따로 존재할 수 있다. Mcc 참조점은 필요한 기능을 제공하는 다른 공통 서비스 개체의 서비스를 사용하고자 하는 공통 서비스 개체에게 그러한 사용을 가능하게 한다. Mcc 참조점을 통해 제공되는 서비스들은 공통 서비스 개체가 제공하는 기능에 의존적이다. Mcc 참조점은 서로 다른 M2M 노드 간에 지원될 수 있다. Mcn 참조점은 필요한 기능을 제공하는 기반 네트워크의 서비스 개체를 사용하고자 하는 공통 서비스 개체에게 그러한 사용을 가능하게 하며, 이는 전송과 연결 이외의 서비스를 제공한다. Mcn 참조점의 인스턴스(instance)는 기반 네트워크에서 제공되는 서비스에 의존적으로 구현된다. 두 개의 물리적 M2M 노드 간의 정보 교환은 기본 서비스를 제공하는 기반 네트워크의 전송(transport) 및 연결(connectivity) 서비스를 사용할 수 있다.
본 명세서에서는 공통 서비스 개체를 CSE로 기재할 수 있으며, 네트워크 서비스 개체를 NSE (Network Service Entity)로 기재할 수 있다. 또한, 본 명세서에서의 M2M 장치는 CSE 또는 AE를 의미하거나, CSE 또는 AE를 포함하는 장치를 의미하며, M2M 시스템을 구성하는 디바이스 또는 단말을 의미한다.
도 2는 일 실시예에 따른 M2M 시스템 구성도를 보다 구체적으로 도시한 도면이다.
도 2를 참조하면, 기반노드(Infrastructure Node, 250)는 M2M 통신을 제공하는데 필수적인 서버 기능을 수행한다. 기반노드(250)는 기반노드 응용개체(AE, 252)와 기반노드 공통서비스개체(CSE, 254)로 구성된다. 기반노드 공통서비스 개체(254)는 다양한 자원을 이용하여 구성된다. 252와 254는 Mca 참조점을 통하여 구분하고, 사물통신에 필요한 메시지, 특히 스케줄러 자원의 생성 (create), 삭제 (delete), 갱신 (update), 조회 (retrieve), 통지 (notify)하기 위한 요청메시지와 응답메시지의 구성과 처리에 사용한다.
중계노드(200)는 응용서비스노드(220)와 기반노드(250)의 M2M 통신 또는 Internet of Things, 사물통신 기능을 중계한다. 중계노드(200)는 중계노드 응용개체(202)와 중계노드 공통서비스개체(204)로 구성된다. 중계노드 공통서비스개체 (204)는 다양한 자원을 이용하여 구성된다. 202와 204는 Mca 참조점을 통하여 구분하며, 254와 204는 Mcc참조점을 이용하여 구분하고, 사물통신에 필요한 메시지, 특히 스케줄러 자원의 생성 (create), 삭제 (delete), 갱신 (update), 조회(retrieve), 통지 (notify)하기 위한 요청메시지와 응답메시지의 구성과 처리에 사용한다.
응용서비스노드(210)는 응용개체(212)와 중계노드 공통서비스개체(214)로 구성할 수 있다. 응용개체(212)는 기기의 목적상 요구되는 응용 기능을 처리한다. 응용서비스노드(210)의 공통서비스개체(214)는 다양한 자원을 이용하여 구성한다. 212와 214는 Mca 참조점을 통하여 구분하며, 214와 254는 Mcc참조점을 이용하여 구분하고, 사물통신에 필요한 메시지, 특히 스케줄러 자원의 생성(create), 삭제 (delete), 갱신 (update), 조회 (retrieve), 통지 (notify)하기 위한 요청메시지와 응답 메시지의 구성과 처리에 사용한다. 한편, 응용서비스노드(220)는 중계노드(200)를 통하여 기반노드(250)와 사물통신 기능을 수행할 수도 있다. 210과 220의 차이점은 노드를 구성하는 통신 인터페이스가 다른 것이 특징이다. 예를 들어, 220은 블루투스, ZigBee, Zwave, WiFi등의 초근거리 통신이 가능한 인터페이스를 이용하여 200을 통하여 100과 통신한다. 이에 반해, 210은 3G, LTE, 5G, Ethernet, Gigabit Ethernet, ADSL등의 통신 인터페이스를 이용하여 250과 통신한다.
응용전용노드(230, 240)는 공통서비스개체를 가지지 않고, 응용개체(242)만을 가지고 사물통신을 하는 경우를 대상으로 한다. 230은 3G, LTE, Ethernet, Gigabit Ethernet, ADSL등의 통신 인터페이스를 이용하여 250과 통신하는 경우이고, 240은 블루투스, ZigBee, Zwave, WiFi등의 초근거리 통신이 가능한 인터페이스를 이용하여 200을 통하여 250과 통신한다.
도 2에서 설명한 바와 같이, M2M 시스템은 기반노드, 중계노드, 응용 서비스 노드 및 응용전용 노드 중 적어도 하나 이상의 노드로 구성될 수 있으며, 각 노드는 CSE 또는 AE를 포함하여 구성될 수 있다. CSE와 AE는 각각의 참조점을 통해서 타 CSE 또는 AE와 통신을 수행할 수 있다.
도 3을 참조하면, 발신자(Originator, 300)는 요청 메시지를 수신자(Receiver, 310)로 전송한다(S320). 발신자(300)와 수신자(310)는 각각 M2M 장치일 수 있으며, 전술한 바와 같이 CSE 또는 AE일 수 있다. 또한, 발신자(300)와 수신자(310)는 CSE 또는 AE를 포함하는 노드 또는 서버 또는 장치일 수 있다.
요청 메시지는 하나 이상의 파라미터를 포함할 수 있다. 예를 들어, 요청 메시지에는 필수적인 파라미터와 선택적인 파라미터가 포함될 수 있다. 예를 들어, 송신 (From) 측 파라미터, 수신측 (To) 파라미터, 요청 식별 정보 (Request Identifier) 파라미터 및 동작 (Operation) 파라미터는 필수적인 파라미터로 포함된다. From 파라미터는 메시지를 전송하는 발신자에 대한 정보를 포함하고, To 파라미터는 메시지를 수신하는 수신자에 대한 정보를 포함한다. Request Identifier 파라미터는 해당 요청 메시지를 식별하기 위한 유일한 식별 정보를 포함한다. 또한, Operation 파라미터는 요청 메시지에서 요청하는 동작을 구분하기 위한 정보를 포함한다. 동작 파라미터는 생성(Create), 조회(Retrieve), 갱신(Update), 삭제(Delete), 통지(Notify) 중 어느 하나로 설정될 수 있다. 또한, 요청 메시지의 다양한 동작을 제어하기 위하여 선택적인 파라미터를 부가할 수 있다. 예를 들어 응답 유형 (Response Type)의 선택적인 파라미터는 수신자의 처리 방식을 블록킹 (blockingRequest) 방식, 동기화된 넌블럭킹 (nonBlockingRequestSynch) 방식, 비동기화된 넌블럭킹 (nonBlockingRequestAsynch) 방식, 수신자 맞춤형 (flexBlocking) 방식으로 지정할 수 있다.
수신자(310)는 요청 메시지가 수신되면, 해당 요청 메시지를 처리하기 위한 동작을 수행한다(S330). 예를 들어, 수신자(310)는 요청메시지(Request Message)를 송신한 발신자(300)가 해당 요청에 대한 권한을 가지고 있는지를 확인할 수 있다. 발신자(300)가 요청에 대한 권한을 가지고 있다고 판단되는 경우, 요청의 대상이 되는 리소스(requested resource)의 존재 여부를 확인한 후 요청 메시지를 처리한다. 또는, 수신자(310)는 요청 메시지의 동작 파라미터에 따라 해당하는 동작을 수행할 수 있다. 예를 들어, 동작 파라미터가 생성으로 설정되고, 특정 데이터의 변경, 추가, 삭제 등이 발생할 경우에 이를 발신자(300)측으로 알려주도록 지시하는 구독 기능이 설정되는 경우에 수신자(310)는 구독 정보를 생성하고, 해당 구독 정보에 해당하는 데이터에 변경, 추가, 삭제 등의 이벤트가 발생하는 경우에 이를 발신자(300) 측으로 통지할 수 있다.
수신자(310)는 요청 동작에 따른 처리 결과 정보를 생성하여 이를 응답메시지에 포함하여 발신자(300)로 전송한다(S340). S340 단계는 S330 단계 이전에 수행될 수도 있다. 즉, 수신자(310)는 요청 메시지를 수신하면, 이에 대한 단순 수신을 나타내는 ACK 응답 메시지를 생성하여 발신자(300)측으로 전송하고, 이후 S330 단계를 수행하여 요청 메시지를 처리할 수도 있다.
도 4는 본 발명의 일 실시예에 의한 공통 서비스 개체를 구성하는 도면이다. 도 4에서는 식별 정보의 처리 기능을 포함한다.
공통 서비스 개체가 제공하는 기능을 도 4와 같이 정리하면 식별(Addressing & Identification), 애플리케이션/서비스 계층 관리(Application and Service Layer Management), 데이터 관리 및 저장(Data Management & Repository), 위치(Location), 보안(Security), 통신 관리/전달 핸들링(Communication Management / Delivery Handling), 등록(Registration), 서비스 세션 관리(Service Session Management), 디바이스 관리(Device Management), 구독/알림(Subscription/Notification), 연결 관리(Connectivity Management), 탐색(Discovery), 서비스 과금/정산(Service Charging/Accounting), 네트워크 서비스 표출/서비스 실행 및 트리거링(Network Service Exposure / Service execution and triggering ), 그룹 관리(Group Management) 등이 있다.
각각의 기능에 대해 살펴보면 다음과 같다.
ASM(Application and Service Layer Management)는 ADN, ASN, MN, IN의 AE와 CSE를 관리하는 것을 담당하며, 이는 CSE의 설정(configure), 장애처리(troubleshoot), 업그레이드 기능과 AE의 업그레이드를 포함한다.
CMDH(Communication Management and Delivery Handling)는 다른 CSE, AE, NSE간의 통신을 책임진다. CMDH는 어느 시각에 어떤 통신 연결을 이용하여 통신을 전달할 것인지(CSE-CSE간 통신), 언제 필요하고 언제 허가되는지, 그리고 통신의 전달이 이후로 미루어질 때 통신 요청을 저장하는 것을 책임진다. CMDH는 통신에 대한 각 요청에 특화된 프로비전된 정책과 전달 핸들링 파라미터에 따라 수행된다. 기반 네트워크 데이터 전송 서비스를 이용한 통신에서 기반 네트워크는 동일한 전달 핸들링 기능을 지원할 수 있다. 이 경우 CMDH는 기반 네트워크를 사용할 수 있으며, 기반 네트워크에 동일한 전달 핸들링 기능을 액세스하는 프런트엔드로 동작할 수 있다.
DMR(Data Management and Repository)은 M2M 애플리케이션이 다른 개체와 데이터를 교환할 수 있도록 한다. DMR CSF는 데이터 저장 공간을 제공하고 이를 조정하는 기능을 제공한다. 또한 대량의 데이터를 수집하고 결합하거나, 데이터를 특정한 포맷으로 변환하거나, 또는 데이터를 분석하고 의미를 처리하기 위해 저장하는 기능을 포함한다. "데이터"라는 것은 M2M 디바이스로부터 투명하게 추출되는 가공되지 않은 원시 데이터(raw data)를 의미하거나 M2M 개체에 의해 계산 또는 결합되어 처리된 데이터를 의미할 수 있다. 대량의 데이터를 수집하는 것은 빅데이터 저장 기능으로 알려진 것을 구성한다.
DMG(Device Management) CSF는 MN과 디바이스 노드 및 M2M 국부통신망에 있는 디바이스들의 디바이스 기능의 관리를 담당한다. 다음의 기능을 하나 이상 제공하는 디바이스 관리를 가능하게 한다. 애플리케이션 소프트웨어의 설치 및 세팅, 설정 세팅 및 프로비저닝, 펌웨어 업데이트, 로깅과 모니터링과 분석, 국부통신망의 토폴로지 관리, 그리고 국부통신망 관리 내의 디바이스를 포함한다.
DIS(탐색) CSF는 주어진 범위와 주제 내에서 허락된 권한(M2M 서비스 구독에서 허락된 것을 포함)과 주어진 범위 내에서 발신자(Originator)의 요청에 해당하는 정보와 리소스를 검색하는 것을 책임진다. 발신자는 애플리케이션 또는 다른 CSE가 될 수 있다. 검색의 범위는 하나의 CSE가 되거나 다수의 CSE가 될 수 있다. 탐색 결과는 발신자에게 전달된다.
GMG(Group Management)는 요청과 관련된 그룹을 핸들링한다. 요청은 그룹과 그룹의 멤버십의 관리를 위해 전송되며 또한 그룹에 의해 지원되는 벌크 오퍼레이션도 담당한다. 그룹에 멤버를 추가 또는 삭제할 경우, 멤버가 그룹의 목적에 순응하는지를 확인할 필요가 있다. 벌크 오퍼레이션은 읽기, 쓰기, 구독하기, 알리기, 디바이스 관리 등을 포함한다. 요청 또는 구독은 그룹을 통하여 이루어지고, 그룹이 이러한 요청과 알림을 결합하는 것을 책임진다. 그룹의 멤버는 리소스에 대한 접근 권한에 대해 동일한 역할을 가진다. 이 경우, 접근 제어는 그룹에 의해 이루어진다. 기반 네트워크가 브로드캐스팅과 멀티캐스팅 기능을 제공할 경우, GMG CSF는 이러한 기능을 이용해야 한다.
LOC(Location) CSF는 위치 기반 서비스를 위해 M2M 노드(예를 들어 ASN, MN)의 지리적 위치 정보를 M2M AE가 습득할 수 있도록 한다. 동일한 또는 상이한 M2M 노드 내에 존재하는 M2M AE로부터 이러한 위치 정보가 요청될 수 있다.
NSE(Network Service Exposure) CSF는 M2M 애플리케이션을 대신하여 M2M 시스템으로부터의 서비스 요청에 대한 사용 가능하거나 지원 가능한 방식을 Mcn 참조점을 통하여 네트워크 서비스 기능을 액세스 하기 위해 기반 네트워크와의 통신을 관리한다. NSE CSF는 다른 CSF와 AF를 기반 네트워크에서 지원되는 특정한 기술과 메커니즘으로부터 은폐한다. 기반 네트워크로부터 제공되는 네트워크 서비스 기능은 디바이스 트리거링, 스몰 데이터 전송, 위치 알림, 폴리시 룰 셋팅, 위치 질의, IMS 서비스, 디바이스 관리 등을 포함하지만 이에 한정되지는 않는다. 이러한 기능들은 일반적인 전송 서비스를 포함하지 않는다
REG(Registration)는 애플리케이션 또는 다른 CSE가 CSE에 등록하도록 핸들링하는 것을 담당하는데, 이는 CSE에서 제공되는 서비스를 사용하려는 개체의 등록을 허락하기 위함이다. REG CSF는 CSE에 대한 디바이스의 등록 뿐만 아니라 디바이스의 특성/속성의 등록도 핸들링한다.
SEC(Security)는 주의를 요하는 민감한 데이터 핸들링 기능, 보안 운영 기능, 보안 결합 설정 기능, 권한 부여와 액세스 제어 기능, 식별 보호 기능을 제공한다. SEC CSF가 제공하는 민감한 데이터 핸들링 기능은 저장과 조작 과정에서 보안이 필요한 로컬 크리덴셜을 보호하는 기능을 제공한다. 민감한 데이터 핸들링 기능 역시 보안 알고리즘을 사용한다. 이 기능은 다양한 암호기법이 분리된 보안 환경을 지원한다. 보안 운영 기능은 다음의 기능을 제공하는데, 먼저 민감한 데이터 핸들링 기능에 의해 지원되도록 전용된 보안 환경의 생성과 운영 기능을 제공한다. 또한 보안 환경에서 보호되는 루트 크리덴셜의 포스트 프로비저닝을 지원하며, M2M 서비스와 M2M 애플리케이션 서비스와 관련된 구독의 프로비저닝과 운영을 지원한다. 보안 결합 설정 기능은 M2M 노드들 간의 보안 결합을 설정하여 기밀성, 통합성, 인증, 권한 부여가 가능하도록 한다. 권한 부여와 액세스 제어 기능은 프로비전된 보안 정책과 할당된 롤에 따라 권한 부여된 개체로의 서비스와 데이터 접근을 제어한다. 개체의 유일한 식별자가 권한 부여에 사용되며, 식별 보호 기능은 개체 또는 사용자와 결합된 실제 식별 정보와 링크되지 않도록 임시의 식별자로 기능하는 익명을 제공할 수 있다.
SCA(Service Charging and Accounting)는 서비스 계층의 과금 기능을 제공한다. 온라인 과금과 오프라인 과금을 포함하는 상이한 과금 모델들을 지원한다. SCA CSF는 과금 가능한 이벤트를 확보하고, 정보를 저장하며, 과금 기록과 과금 정보를 생성한다. SCA CSF는 기반 네트워크의 과금 시스템과 상호작용 할 수 있다. 그러나 SCA CSF는 최종 서비스 레벨의 과금 정보를 생성하고 기록할 책임을 가진다. 기반 노드 또는 서비스 계층 과금 서버의 SCA CSF는 과금을 위한 과금 정보를 핸들링하는 것을 책임진다.
SSM(Service Session Management) CSF는 단대단 서비스 계층 연결인 M2M 서비스 세션을 관리한다. SSM CSF는 M2M 애플리케이션들 간의, 또는 M2M 애플리케이션과 CSE 간의, 또는 CSE들 간의 M2M 서비스 세션을 관리한다. M2M 서비스 세션의 관리는 세션 상태의 관리, 세션 인증과 설립, 세션과 관련된 기반 네트워크 연결 및 서비스의 관리, CSE의 멀티 홉인 cse의 세션 확장의 조정, 세션 종단간의 정보의 교환, 그리고 세션의 종료를 포함한다. 주어진 M2M 서비스 세션내에서 다음 홉의 CSE 또는 애플리케이션으로/부터의 메시지 송수신을 위해 SSM CSF는 로컬 CSE 내의 CMDH CSF를 이용한다. SSM CSF는 세션 참가자의 보안 크리덴셜과 인증과 관련된 세션 관리를 위해 SEC CSF를 이용한다. SSM CSF는 세션에 특화된 과금 이벤트를 생성하며 로컬 CSE 내의 SCA CSF와도 통신한다.
SUB(Subscription and Notification)는 구독을 유지하는 알림을 제공하며, 리소스의 변화(예를 들어 리소스의 삭제)를 추적한다. 리소스의 구독은 M2M AE 또는 CSE에 의해 시작되며, 호스팅 CSE에 의해 접근 권한이 허락된다. 활성화된 구독 중에 호스팅 CSE는 구독된 리소스의 변화가 발생하는 경우 리소스 구독자가 수신하길 원하는 주소로 알림을 전송한다.
도 4 및 그에 대한 설명은 공통 서비스 개체를 구현하는 실시예들이며 본 발명이 이에 한정되지는 않는다.
한편, 본 실시예들에 적용될 수 있는 식별자(identifier)를 살펴보면 다음과 같다. M2M 식별자로는 M2M-SP-ID(M2M Service Provider Identifier), App-Inst-ID(Application Instance Identifier), App-ID(Application Identifier), CSE-ID(CSE Identifier), M2M-Node-ID(M2M Node Identifier/Device Identifier), M2M-Sub-ID(M2M Service Subscription Identifier), M2M-Request-ID(Request Identifier) 등이 있다.
oneM2M은 시스템을 구현하기 위해 충족시켜야 할 요구사항으로 전반적인 시스템 요구사항(Overall System Requirements), 관리 요구사항(Management Requirements), 데이터 모델과 의미 요구사항(Data Model & Semantics Requirements), 보안 요구사항(Security Requirements), 과금 요구사항(Charging Requirements), 운영 요구사항(Operational Requirements)을 제시하고 있다.
본 명세서에서는 M2M 시스템 기술, 특히 oneM2M 서비스 플랫폼 기술을 중심으로 설명한다. 그러나 이러한 설명이 M2M 서비스 플랫폼 기술에만 한정되는 것은 아니며, 기기간 통신, 즉 사물 통신을 제공하는 모든 시스템 및 구조와 이들 시스템에서 발생하는 통신 동작에 적용 가능하다.
또한, 본 명세서에서의 M2M 장치는 전술한 AE, CSE, NSE 등을 포함하는 다양한 노드를 의미하는 명칭으로 기재하여 설명하며, 이해의 편의를 위하여 호스팅 CSE를 중심으로 설명을 진행하나 이에 한정되는 것은 아니다. 즉, M2M 장치는 M2M 시스템을 구성하는 일 구성 장치를 의미하며, 요청 메시지를 수신하여 이에 대한 처리를 수행하고 응답 메시지를 전송하는 다양한 노드, 장치, 개체 등을 의미한다.
도 5는 공인 IP와 사설 IP를 사용하는 경우에 발생할 수 있는 문제점을 설명하기 위한 도면이고, 도 6은 사설 IP를 사용하는 M2M 장치 간에 공인 IP 네트워크를 경유하여 통신을 수행하는 경우에 발생할 수 있는 문제점을 설명하기 위한 도면이다.
도 5 및 도 6을 참조하면, M2M 장치(500, 550)는 서로 다른 네트워크네트워크에 구성될 수 있다.
일 예를 들어, M2M 장치 #1(500)은 사설 IP 네트워크에 구성되고, M2M 장치 #2(550)는 공인 IP 네트워크에 구성될 수 있다. 이 경우에 M2M 장치 #1(500)은 방화벽을 통과하여 TCP/IP를 통해서 M2M 장치 #2(550)와 연결되어 통신을 수행하게 된다.
다른 예를 들어, M2M 장치 #1(500)과 M2M 장치 #2(550)는 서로 다른 사설 IP 네트워크에 구성되고, 방화벽을 통과하여 TCP/IP를 통해서 연결되어 통신을 수행하게 된다.
그러나, 위에서 설명한 두 가지 경우 모두 사설 IP 네트워크와 공인 IP 네트워크 간의 통신 문제로 통신이 원활하게 이루어지지 않을 수 있다. 예를 들어, 공인 IP를 사용하는 M2M 장치 #2(550)는 사설 IP를 사용하는 M2M 장치 #1(500)과 통신을 수행하는 경우 통신을 시작할 수 없는 문제점이 있다. 또한, 사설 IP를 사용하는 M2M 장치(500, 550) 간에 공인 IP를 통해서 통신을 수행하는 경우에 어느 M2M 장치도 통신을 시작할 수 없는 문제점이 있다.
이는 사설 IP 네트워크에서의 통신 시작 패킷은 공인 IP 네트워크로 전달되어 통신이 가능하지만, 공인 IP 네트워크에서의 통신 시작 패킷은 사설 IP 네트워크로 전달되지 못하기 때문이다. 즉, 방화벽으로 인해서 공인 IP 네트워크을 통한 패킷은 사설 IP 네트워크로 진입하지 못하여 통신 시작을 위한 패킷이 전달되지 못하는 문제점이 발생할 수 있다.
따라서, 사설 IP를 사용하는 M2M 장치는 공인 IP를 사용하는 M2M 장치와 통신하기 위하여, 사설 IP를 사용하는 M2M 장치에서 통신을 시작하는 경우에만 통신이 가능한 문제점이 있다. 또한, 사설 IP를 사용하는 M2M 장치들이 공인 IP를 통해서 통신을 어느 쪽도 시작할 수 없는 문제점이 있다.
이러한 문제점을 해결하기 위해서 안출된 본 개시는 M2M 시스템에서 공인 IP를 경유하는 사설 IP 기반의 M2M 장치가 사물 통신을 수행하는 구체적인 방법에 대해서 제안하고자 한다. 특히, 공인 IP를 사용하는 M2M 장치가 사설 IP를 사용하는 M2M 장치와 통신을 수행하기 위한 구체적인 절차를 제시하고, 사설 IP를 사용하는 M2M 장치 간의 사물 통신을 수행하기 위한 구체적인 절차를 제시한다.
이하에서 설명하는 M2M 장치는 사설 IP 또는 공인 IP를 사용하는 개체를 의미하며, 해당 M2M 장치와 메시지를 주고 받는 타 M2M 장치도 사설 IP 또는 공인 IP를 사용하는 개체를 의미한다. 다만, M2M 장치와 타 M2M 장치는 공인 IP 네트워크에 의한 위에서 설명한 문제를 야기시키는 위치에 구성되는 것으로 가정하여 설명한다. 예를 들어, M2M 장치가 사설 IP를 사용하는 경우에 타 M2M 장치는 공인 IP를 사용하거나 M2M 장치와 다른 사설 IP를 사용할 수 있다. 이와 달리, M2M 장치가 공인 IP를 사용하는 경우에 타 M2M 장치는 사설 IP를 사용할 수 있다.
한편, 본 명세서에서의 중계 서버는 M2M 장치 또는 타 M2M 장치가 전송하는 메시지를 전달하기 위한 개체를 의미하는 것으로 중계 모듈, 전달 서버, 중계 프로토콜 서버 등을 포함할 수 있다. 또한, 중계 서버는 M2M 장치들의 메시지를 전달하기 위한 다양한 프로토콜 기반으로 동작할 수 있다. 예를 들어, 중계 서버는 MQTT(Message Queuing Telemetry Transport) 기반의 프로토콜로 동작할 수 있다. 즉, 중계 서버는 MQTT 모듈, MQTT 서버 등을 의미할 수 있으며, 동일하게 중계 클라이언트 모듈은 MQTT 클라이언트 모듈을 의미할 수도 있다.
이하, M2M 장치와 중계 서버의 동작에 대해서 도면을 참조하여 설명한다.
도 7은 일 실시예에 따른 M2M 장치의 동작을 설명하기 위한 도면이다.
도 7을 참조하면, M2M(Machine to Machine communication) 장치는 중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 연결 설정을 위한 연결 패킷에 대한 응답 정보를 수신하여 중계 서버와의 연결을 설정하는 단계를 수행할 수 있다(S700). 예를 들어, M2M 장치는 공인 IP 네트워크를 경유하여 타 사설 IP를 사용하는 타 M2M 장치 또는 공인 IP를 사용하는 타 M2M 장치 또는 사설 IP를 사용하는(M2M 장치가 공인 IP 사용 시) 타 M2M 장치와 통신을 수행하기 위해서 중계 서버로의 연결 설정을 먼저 수행할 수 있다.
이를 위해서, M2M 장치는 중계 서버와 연결을 설정하기 위한 연결 패킷을 중계 서버로 전송하고, 중계 서버로부터 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 수신할 수 있다. 이 경우, M2M 장치는 M2M 장치와 연결된 중계 클라이언트 모듈을 통해서 연결 패킷 및 연결 확인 패킷을 송수신할 수 있다. M2M 장치는 연결 확인 패킷을 수신하여 연결 설정을 수행할 수 있다. 한편, 중계 클라이언트 모듈은 M2M 장치가 노드인 경우에 M2M 장치 내부에 구성되는 일 모듈일 수 있고, M2M 장치가 AE, CSE 등인 경우에 동일 노드에 구성되는 별도의 모듈일 수 있다. 본 명세서에서는 M2M 장치를 AE 또는 CSE와 중계 클라이언트 모듈을 포함하는 노드로 가정하여 설명하나, 이에 한정되는 것은 아니며, 각 개체인 경우에도 중계 클라이언트 모듈과 연계되는 것을 전제로 본 개시가 동일하게 적용될 수 있다.
또는, 연결 확인 패킷을 M2M 장치가 수신하는 경우, M2M 장치는 중계 서버로 가입 패킷을 전송하고, 이에 대한 가입 확인 패킷을 수신할 수 있다. 가입 패킷은 중계 서버에서 해당 M2M 장치의 AE 또는 CSE를 식별하기 위한 식별정보를 포함할 수 있다. M2M 장치는 가입 확인 패킷을 수신하여 연결 설정을 수행할 수도 있다.
한편, 중계 서버와 중계 클라이언트 모듈 간의 연결 패킷은 아래와 같은 포맷으로 구성될 수 있다.
예를 들어, 연결 패킷은 2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성될 수 있다. 또한, 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고, 페이로드 영역은 클라이언트 모듈 식별자 정보를 포함할 수 있다.
또한, 중계 서버는 M2M 시스템을 구성하는 노드인 미들 노드 및 인프라 노드와는 독립적으로 구성될 수 있다. 이 경우에 미들 노드 및 인프라 노드는 중계 클라이언트 모듈을 이용하여 독립적으로 구성된 중계 서버와 통신을 수행할 수 있다.
또는, 중계 서버는 M2M 시스템을 구성하는 노드인 미들 노드 또는 인프라 노드에 구성될 수도 있다. 이 경우에도 중계 서버와 미들 노드 또는 인프라 노드에 구성되는 각 개체와 통신을 수행하기 위한 중계 클라이언트 모듈은 각 노드에 같이 구성될 수 있다.
한편, 연결 설정 절차는 M2M 장치와 통신을 수행하기 위한 타 M2M 장치도 동일한 방식으로 수행할 수 있다. 예를 들어, 타 M2M 장치도 중계 서버와 연결 패킷 및 연결 확인 패킷 송수신 절차를 통해서 연결을 설정할 수 있다. 또는, 타 M2M 장치는 중계 서버와 연결 패킷 및 연결 확인 패킷 송수신 절차를 진행하고, 가입 패킷 및 가입 확인 패킷 송수신 절차를 통해서 연결을 설정할 수 있다.
M2M 장치는 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송하는 단계를 수행할 수 있다(S710).
예를 들어, M2M 장치는 중계 서버와의 연결을 설정하여 연결 설정이 완료되면, 타 M2M 장치로 보내기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송한다. 퍼블리쉬 패킷은 사물 통신 메시지임을 지시하는 정보, 메시지 타입을 지시하는 정보(요청 또는 응답), 발신자의 식별정보 및 수신자의 식별정보를 포함할 수 있다.
한편, 퍼블리쉬 패킷은 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며, 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함할 수 있다. 페이로드 영역에는 요청 메시지가 포함될 수 있으며, 요청 메시지에 요청 식별정보가 포함될 수 있다. 요청 식별정보는 추후 응답 메시지에 포함되어 응답 메시지가 어느 요청 메시지에 대한 응답인지를 식별할 수 있는 정보를 나타낸다.
필요에 따라, M2M 장치는 퍼블리쉬 패킷에 대한 응답 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 서버로부터 수신할 수도 있다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다.
M2M 장치는 요청 메시지에 대해서 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버로부터 수신하는 단계를 수행할 수 있다(S720).
예를 들어, 중계 서버가 S710 단계에서의 퍼블리쉬 패킷은 타 M2M 장치로 전달하고, 타 M2M 장치로부터 수신한 응답 메시지를 포함하는 퍼블리쉬 패킷을 M2M 장치로 전달할 수 있다. 이에 따라 M2M 장치는 요청 메시지에 대한 응답 메시지가 포함되는 퍼블리쉬 패킷을 중계 클라이언트 모듈을 통해서 중계 서버로부터 수신할 수 있다. 필요에 따라, M2M 장치는 응답 메시지를 포함하는 퍼블리쉬 패킷에 대한 확인 정보를 퍼블리쉬 확인 패킷에 포함하여 중계 서버로 전송한다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다. 또한, 전술한 바와 같이, 응답 메시지를 퍼블리쉬 패킷의 페이로드에 포함될 수 있으며, 응답 메시지는 요청 식별정보 및 응답 상태 코드 정보를 포함할 수 있다. 요청 식별정보는 요청 메시지와 동일한 값으로 설정되어, 해당 응답 메시지가 어느 요청 메시지에 대한 응답 결과를 포함하는지를 지시할 수 있다. 응답 상태 코드는 해당 요청 메시지에서 요구하는 절차의 처리 결과에 대한 코드 값을 포함한다. 예를 들어, 해당 요청 메시지에 대한 처리가 성공인 경우에 '2000'으로 응답 결과 코드가 설정될 수 있으며, 이는 처리 성공을 지시하는 코드 값을 의미한다.
중계 클라이언트 모듈과 중계 서버 간의 패킷 교환은 중계 프로토콜에 따라 수행될 수 있으며, 중계 클라이언트 모듈과 M2M 개체(ex, AE 또는 CSE) 간의 데이터 교환은 M2M 프로토콜에 의해서 이루어질 수 있다.
또한, M2M 장치와 타 M2M 장치 간의 데이터 교환은 각각 중계 서버와의 연결을 설정한 이후에 진행되므로, 각 M2M 장치가 서로 다른 네트워크에 위치하거나, 공인 IP 네트워크를 경유하는 경우에도 연결 설정을 기반으로 통신을 시작할 수 있다.
따라서, 전술한 공인 IP 네트워크에서 사설 IP 네트워크로의 통신 개시가 불가능한 문제는 본 실시예에 따라 해결될 수 있다.
이상에서 설명한 내용은 타 M2M 장치에서도 동일하게 수행될 수 있다.
도 8은 일 실시예에 다른 중계 서버의 동작을 설명하기 위한 도면이다.
도 8을 참조하면, 중계 서버는 M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하여, M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 단계를 수행할 수 있다(S800).
예를 들어, 중계 서버는 중계 서버를 통해서 통신을 수행하고자 하는 M2M 장치들로부터 연결 패킷을 수신하고, 연결 패킷에 기초하여 연결 설정을 수행할 수 있다. 연결 패킷은 각각의 M2M 장치에 구성될 수 있는 중계 클라이언트 모듈로부터 수신될 수 있다. 또한, 중계 서버는 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 각 M2M 장치로 전송할 수 있다.
또는, 중계 서버는 연결 패킷 수신, 연결 확인 패킷 전송 후에 각 M2M 장치로부터 가입 패킷을 수신하고, 가입 패킷에 대한 가입 확인 패킷을 각 M2M 장치로 전송하여 연결 설정을 수행할 수도 있다. 예를 들어, 가입 패킷은 연결 설정을 요청하는 M2M 장치에 대한 식별정보를 포함할 수 있다. 또는, 가입 패킷은 연결 설정을 요청하는 M2M 장치의 요청 메시지 전송과 관련된 식별정보 및 응답 메시지 수신과 관련된 식별정보에 대한 정보를 포함할 수 있다. 물론, 해당 M2M 장치가 M2M 네트워크를 사용하는 사물 통신 장치 패킷임을 지시하는 정보도 포함될 수 있다.
한편, 중계 서버는 M2M 시스템을 구성하는 노드인 미들 노드 및 인프라 노드와는 독립적으로 구성될 수 있다. 이 경우에 미들 노드 및 인프라 노드는 중계 클라이언트 모듈을 이용하여 독립적으로 구성된 중계 서버와 통신을 수행할 수 있다.
또는, 중계 서버는 M2M 시스템을 구성하는 노드인 미들 노드 또는 인프라 노드에 구성될 수도 있다. 이 경우에도 중계 서버와 미들 노드 또는 인프라 노드에 구성되는 각 개체와 통신을 수행하기 위한 중계 클라이언트 모듈은 각 노드에 같이 구성될 수 있다.
중계 서버는 M2M 장치의 중계 클라이언트 모듈로부터 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계를 수행할 수 있다(S810). 예를 들어, 중계 서버는 M2M 장치가 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷을 통해서 중계 클라이언트 모듈로부터 수신할 수 있다.
예를 들어, 퍼블리쉬 패킷은 사물 통신 메시지임을 지시하는 정보, 메시지 타입을 지시하는 정보(요청 또는 응답), 발신자의 식별정보 및 수신자의 식별정보를 포함할 수 있다. 또는, 퍼블리쉬 패킷은 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며, 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함할 수 있다.
필요에 따라, 중계 서버는 퍼블리쉬 패킷에 대한 응답 정보를 포함하는 퍼블리쉬 확인 패킷을 M2M 장치로 전송할 수도 있다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다.
중계 서버는 요청 메시지를 포함하는 퍼블리쉬 패킷을 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계를 수행할 수 있다(S820). 예를 들어, 중계 서버는 퍼블리쉬 패킷이 수신되면, 해당 퍼블리쉬 패킷에서 지시하는 대상 타 M2M 장치에 대한 식별정보를 확인하고, 연결 설정된 타 M2M 장치의 중계 클라이언트 모듈로 요청 메시지를 포함하는 퍼블리쉬 패킷을 전송할 수 있다. 즉, 중계 서버는 중계 클라이언트 모듈로부터 퍼블리쉬 패킷이 수신되면, 토픽 네임을 참조하여 해당 패킷을 수신자 측의 중계 클라이언트 모듈로 전송한다.
예를 들어, 중계 서버는 M2M 장치로부터 수신한 퍼블리쉬 패킷을 이용하여 가입 패킷을 통해서 확인한 타 M2M 장치의 식별정보에 따라 요청 메시지의 수신자인 타 M2M 장치로 퍼블리쉬 패킷을 전송할 수 있다. 타 M2M 장치는 퍼블리쉬 패킷 수신 이전에 중계 서버와 연결 설정 과정을 수행하였으므로, 중계 서버가 공인 IP 네트워크를 사용하더라도 사설 IP를 사용하는 타 M2M 장치로 요청 메시지를 포함하는 퍼블리쉬 패킷을 전송할 수 있다.
필요에 따라, 중계 서버는 타 M2M 장치로부터 요청 메시지를 포함하는 퍼블리쉬 패킷에 대한 수신 확인을 지시하는 퍼블리쉬 확인 패킷을 수신할 수 있다. 타 M2M 장치의 중계 클라이언트 모듈은 퍼블리쉬 패킷의 요청 메시지를 M2M 장치의 AE 또는 CSE로 전달할 수 있다.
중계 서버는 타 M2M 장치의 중계 클라이언트 모듈로부터 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계를 수행할 수 있다(S830). 타 M2M 장치의 AE 또는 CSE는 요청 메시지를 처리한 응답 메시지를 타 M2M 장치로 전달하고, 타 M2M 장치의 중계 클라이언트 모듈은 응답 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송할 수 있다. 이에 따라, 중계 서버는 타 M2M 장치의 중계 클라이언트 모듈로부터 응답 메시지를 포함하는 퍼블리쉬 패킷을 수신할 수 있다.
필요에 따라, 중계 서버는 퍼블리쉬 패킷에 대한 퍼블리쉬 확인 패킷을 타 M2M 장치로 전송할 수 있다.
중계 서버는 응답 메시지를 포함하는 퍼블리쉬 패킷을 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계를 수행할 수 있다(S840). 중계 서버는 응답 메시지를 포함하는 퍼블리쉬 패킷의 수신자 식별정보를 확인하고, 해당 수신자 식별정보가 지시하는 M2M 장치로 응답 메시지를 포함하는 퍼블리쉬 패킷을 전송할 수 있다.
필요에 따라, 중계 서버는 M2M 장치로부터 퍼블리쉬 확인 패킷을 수신할 수 있다. M2M 장치의 중계 클라이언트 모듈은 중계 서버로부터 퍼블리쉬 패킷을 수신하고, 퍼블리쉬 패킷에 포함되는 응답 메시지를 M2M 장치의 AE 또는 CSE로 전달한다. 또한, M2M 장치의 중계 클라이언트 모듈은 퍼블리쉬 패킷에 대한 정상 수신 여부를 지시하는 퍼블리쉬 확인 패킷을 중계 서버로 전송할 수 있다.
이상의 동작을 통해서 중계 서버는 M2M 장치와 타 M2M 장치가 공인 IP 네트워크를 통해서 데이터를 송수신하는 동작을 중계하여 원활하게 통신이 수행되도록 제어할 수 있다. 전술한 바와 같이, 중계 서버는 인프라 노드 또는 미들 노드에 포함되어 구성될 수도 있고, 독립적으로 구성되어 인프라 노드 또는 미들 노드와 통신을 수행할 수도 있다.
한편, 도 7 및 도 8에서의 각 동작은 필요에 따라 각 단계가 분리되거나, 그 순서가 변경될 수도 있으며, 전술한 설명에서의 일부가 단계로 추가될 수도 있다.
이하에서는, 전술한 본 개시에 따른 보다 세부적인 다양한 실시예 및 절차를 도면을 참조하여 상세하게 설명한다.
도 9는 일 실시예에 따른 중계 서버가 M2M 장치와 통합되어 구성된 구조를 예시적으로 도시한 도면이고, 도 10은 일 실시예에 따른 중계 서버가 독립적으로 구성된 구조를 예시적으로 도시한 도면이다.
도 9를 참조하면, 중계 서버는 미들 노드 또는 인프라 노드에 포함되어 구성될 수 있다. 이 경우, ADN 또는 ASN의 M2M 장치는 중계 클라이언트 모듈을 통해서 중계 서버와 패킷을 주고 받을 수 있다. 유사하게 미들 노드도 중계 클라이언트 모듈을 통해서 미들 노드 또는 인프라 노드의 중계 서버와 패킷을 송수신할 수 있다.
도 10을 참조하면, 중계 서버는 M2M 시스템의 노드와는 독립적으로 구성될 수도 있다. 이 경우에 중계 서버는 ASN, ADN과 같은 노드와 미들 노드 및 인프라 노드 중 적어도 하나와 중계 클라이언트 모듈을 통해서 패킷을 송수신할 수 있다.
또는, 중계 서버는 독립적으로 구성되며, 인프라 노드도 중계 서버를 포함하여 구성될 수도 있다. 이 경우, 미들 노드, ASN, ADN 등의 노드와 중계 서버는 중계 클라이언트 프로토콜을 통해서 패킷을 송수신하고, 인프라 노드와는 중계 서버 간의 패킷 교환을 통해서 통신을 수행할 수 있다.
이와 같이, 중계 서버는 M2M 시스템과 공존하여 또는 독립적으로 구성되어 전술한 패킷 교환 동작을 수행할 수 있다.
이하에서는 필요에 따라 M2M 장치를 AE 또는 발신자 설명하고, 타 M2M 장치를 CSE 또는 수신자로 설명할 수 있다.
도 11은 일 실시예에 따른 연결 패킷을 이용하여 중계 서버와 연결을 설정하는 절차를 설명하기 위한 도면이다.
도 11을 참조하면, AE(1100)는 중계 서버(1150)로 접속하기 위하여 중계 클라이언트 모듈(1110)로 초기 접속을 수행한다(S1101). 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 연결 패킷을 전송한다(S1102).
동일하게 CSE(1190)도 연결 설정을 위해서 중계 클라이언트 모듈(1180)로 초기 접속을 수행하고(S1103), 중계 클라이언트 모듈(1180)은 중계 서버(1150)로 연결 패킷을 전송한다(S1104).
이 때, AE(1100), CSE(1190)와 중계 클라이언트 모듈(1110, 1180)은 중계 프로토콜 도메인이 아닌 M2M 프로토콜을 사용할 수 있고, 중계 클라이언트 모듈(1110, 1180)과 중계 서버(1150)는 중계 프로토콜 도메인을 사용할 수 있다. 예를 들어, M2M 프로토콜에 따른 M2M 메시지는 요청 메시지와 응답 메시지 등이 있을 수 있고, M2M 메시지의 표현 방법은 Extensible Markup Language(XML), JavaScript Object Notation(JSON) 및 Concise Binary Object Representation(CBOR) 중 적어도 하나가 사용될 수 있다. 따라서, 중계 클라이언트 모듈(1110, 1180)은 M2M 메시지를 중계 프로토콜로 변환할 수 있다. 예를 들어, 가입 패킷의 Topic Name은 ‘oneM2M/req/+/SP-relative-AE-ID’ 또는 'oneM2M/resp/SP-relative-AE-ID/+’로 설정될 수 있다. 유사하게, 가입 패킷의 Topic Filter는 ‘/oneM2M/req/+/SP-relative-AE-ID’ 또는 '/oneM2M/resp/SP-relative-AE-ID/+’로 설정될 수 있다.
이후, AE(1100)측의 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 가입 패킷을 전송하고(S1105), CSE(1190)측의 중계 클라이언트 모듈(1180)도 중계 서버(1150)로 가입 패킷을 전송한다(S1106).
가입 패킷은 M2M 시스템을 지시하는 정보, 요청 메시지에 관련된 AE 식별정보, 응답 메시지에 관련된 AE 식별정보를 포함할 수 있다. 유사하게 CSE(1190) 측의 가입 패킷은 M2M 시스템을 지시하는 정보, 요청 메시지에 관련된 CSE 식별정보, 응답 메시지에 관련된 CSE 식별정보를 포함할 수 있다.
이와 같은 절차를 통해서 AE(1100) 및 CSE(1190)는 중계 서버(1150)와 연결 설정을 수행할 수 있다.
도 12는 다른 실시예에 따른 연결 패킷을 이용하여 중계 서버와 연결을 설정하는 절차를 설명하기 위한 도면이다.
도 12를 참조하면, 중계 서버(1150)는 연결 설정 과정에서의 패킷에 대한 확인 패킷(ACK)을 전송할 수 있다. 예를 들어, AE(1100)는 중계 서버(1150)로 접속하기 위하여 중계 클라이언트 모듈(1110)로 초기 접속을 수행한다(S1210). 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 연결 패킷을 전송한다(S1220).
중계 서버(1150)는 연결 패킷에 대한 정상 수신 여부를 지시하는 정보를 포함하는 연결 확인 패킷(CONNACK)을 중계 클라이언트 모듈(1110)로 전송할 수 있다(S1230).
동일하게 CSE(1190)도 연결 설정을 위해서 중계 클라이언트 모듈(1180)로 초기 접속을 수행하고(S1240), 중계 클라이언트 모듈(1180)은 중계 서버(1150)로 연결 패킷을 전송한다(S1250). 중계 서버(1150)는 연결 패킷에 대한 정상 수신 여부를 지시하는 정보를 포함하는 연결 확인 패킷(CONNACK)을 중계 클라이언트 모듈(1180)로 전송할 수 있다(S1260).
이 때, AE(1100), CSE(1190)와 중계 클라이언트 모듈(1110, 1180)은 중계 프로토콜 도메인이 아닌 M2M 프로토콜을 사용할 수 있고, 중계 클라이언트 모듈(1110, 1180)과 중계 서버(1150)는 중계 프로토콜 도메인을 사용할 수 있다. 예를 들어, M2M 프로토콜에 따른 M2M 메시지는 요청 메시지와 응답 메시지 등이 있을 수 있고, M2M 메시지의 표현 방법은 Extensible Markup Language(XML), JavaScript Object Notation(JSON) 및 Concise Binary Object Representation(CBOR) 중 적어도 하나가 사용될 수 있다. 따라서, 중계 클라이언트 모듈(1110, 1180)은 M2M 메시지를 중계 프로토콜로 변환할 수 있다. 예를 들어, 가입 패킷의 Topic Name은 ‘oneM2M/req/+/SP-relative-AE-ID’ 또는 'oneM2M/resp/SP-relative-AE-ID/+’로 설정될 수 있다. 유사하게, 가입 패킷의 Topic Filter는 ‘/oneM2M/req/+/SP-relative-AE-ID’ 또는 '/oneM2M/resp/SP-relative-AE-ID/+’로 설정될 수 있다.
이후, AE(1100)측의 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 가입 패킷을 전송하고(S1270), CSE(1190)측의 중계 클라이언트 모듈(1180)도 중계 서버(1150)로 가입 패킷을 전송한다(S1280). 전술한 바와 같이, 가입 패킷은 M2M 시스템을 지시하는 정보, 요청 메시지에 관련된 AE 식별정보, 응답 메시지에 관련된 AE 식별정보를 포함할 수 있다. 유사하게 CSE(1190) 측의 가입 패킷은 M2M 시스템을 지시하는 정보, 요청 메시지에 관련된 CSE 식별정보, 응답 메시지에 관련된 CSE 식별정보를 포함할 수 있다.
또한, 중계 서버(1150)는 연결 패킷에 대한 정상 수신 여부를 지시하는 정보를 포함하는 가입 확인 패킷(SUBACK)을 AE(1100)측의 중계 클라이언트 모듈(1110)로 전송할 수 있다(S1290). 동일하게, 중계 서버(1150)는 가입 패킷에 대한 정상 수신 여부를 지시하는 정보를 포함하는 가입 확인 패킷(SUBACK)을 CSE(1180) 측의 중계 클라이언트 모듈(1180)로 전송할 수 있다(S1295).
이와 같은 절차를 통해서 AE(1100) 및 CSE(1190)는 중계 서버(1150)와 연결 설정을 수행할 수 있다.
연결 설정이 완료되면, M2M 장치는 퍼블리쉬 패킷을 이용하여 중계 서버와 통신을 수행할 수 있다.
도 13은 일 실시예에 따른 퍼블리쉬 패킷을 이용하여 메시지를 전달하는 절차를 설명하기 위한 도면이다.
도 13을 참조하면, 연결 설정이 완료된 후에 AE(1100)는 요청 메시지를 M2M 메시지 형식으로 중계 클라이언트 모듈(1110)로 전달한다(S1310). 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 퍼블리쉬 패킷을 전송한다(S1320). 이를 위해서, 중계 클라이언트 모듈(1110)은 요청 메시지를 퍼블리쉬 패킷 포맷에 따라 페이로드에 포함하여 전송할 수 있다.
퍼블리쉬 패킷은 고정 헤더에 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더에 토픽 네임 필드 및 패킷 식별 필드를 포함하여 구성될 수 있다. 일 예로, 퍼블리쉬 패킷의 Topic Name은 ‘oneM2M/req/SP-relative-AE-ID/SP-relative-CSE-ID’로 설정될 수 있다.
중계 서버(1150)는 수신된 퍼블리쉬 패킷을 요청 메시지의 수신측 중계 클라이언트 모듈(1180)로 전송한다(S1330). 중계 클라이언트 모듈(1180)은 퍼블리쉬 패킷의 페이로드에 포함되는 요청 메시지를 M2M 메시지로 변환하여 CSE(1190)로 전달한다(S1340).
이러한 프로토콜 변환 및 중계 과정을 통해서 AE(1100)는 CSE(1190)로 요청 메시지를 전달할 수 있고, 동일한 방식으로 응답 메시지가 CSE(1190)에서 AE(1100)로 전달될 수 있다.
예를 들어, CSE(1190)는 응답 메시지를 M2M 메시지 형식으로 중계 클라이언트 모듈(1180)로 전달한다(S1350). 중계 클라이언트 모듈(1180)은 중계 서버(1150)로 퍼블리쉬 패킷을 전송한다(S1360). 이를 위해서, 중계 클라이언트 모듈(1180)은 응답 메시지를 퍼블리쉬 패킷 포맷에 따라 페이로드에 포함하여 전송할 수 있다.
퍼블리쉬 패킷은 고정 헤더에 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더에 토픽 네임 필드 및 패킷 식별 필드를 포함하여 구성될 수 있다. 일 예로, 퍼블리쉬 패킷의 Topic Name은 ‘oneM2M/resp/SP-relative-AE-ID/SP-relative-CSE-ID’로 설정될 수 있다.
중계 서버(1150)는 수신된 퍼블리쉬 패킷을 응답 메시지의 수신측 중계 클라이언트 모듈(1110)로 전송한다(S1370). 중계 클라이언트 모듈(1110)은 퍼블리쉬 패킷의 페이로드에 포함되는 응답 메시지를 M2M 메시지로 변환하여 AE(1100)로 전달한다(S1380). 중계 클라이언트 모듈(1110)은 수신된 퍼블리쉬 패킷의 페이로드에 포함되는 응답 메시지를 M2M 메시지로 변환하여 AE(1100)로 전달함으로써, AE(1100)와 CSE(1190)는 요청 메시지와 응답 메시지를 송수신할 수 있다.
도 14는 다른 실시예에 따른 퍼블리쉬 패킷을 이용하여 메시지를 전달하는 절차를 설명하기 위한 도면이다. 도 14에서는 요청 메시지 발신자를 Originator로 기재하여 설명하고, 요청 메시지 수신자를 Receiver로 기재하여 설명한다. 이는 위에서 설명한 AE 또는 CSE 또는 M2M 시스템의 노드가 될 수 있다.
도 14를 참조하면, 연결 설정이 완료된 후에 Originator(1400)는 요청 메시지를 M2M 메시지 형식으로 중계 클라이언트 모듈(1110)로 전달한다(S1400). 중계 클라이언트 모듈(1110)은 중계 서버(1150)로 퍼블리쉬 패킷을 전송한다(S1405). 이를 위해서, 중계 클라이언트 모듈(1110)은 요청 메시지를 퍼블리쉬 패킷 포맷에 따라 페이로드에 포함하여 전송할 수 있다.
퍼블리쉬 패킷은 고정 헤더에 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더에 토픽 네임 필드 및 패킷 식별 필드를 포함하여 구성될 수 있다. 일 예로, 퍼블리쉬 패킷의 Topic Name은 ‘/oneM2M/req/Originator-ID/Receiver-ID’로 설정될 수 있다.
중계 서버(1150)는 수신된 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함하는 퍼블리쉬 확인(Publish ACK, PUBACK) 패킷을 중계 클라이언트 모듈(1110)로 전송한다(S1410). 예를 들어, 중계 서버(1150)는 요청 메시지를 포함하는 퍼블리쉬 패킷이 정상 수신 되었거나, 해당 퍼블리쉬 패킷을 수신자로 처리가 가능한 경우에 정상 수신을 지시하는 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 클라이언트 모듈(1110)로 전송한다.
이후, 중계 서버(1150)는 수신된 퍼블리쉬 패킷을 요청 메시지의 수신측 중계 클라이언트 모듈(1180)로 전송한다(S1415). 중계 클라이언트 모듈(1180)은 퍼블리쉬 패킷의 페이로드에 포함되는 요청 메시지를 M2M 메시지로 변환하여 Receiver(1490)로 전달한다(S1425). 다만, 수신측 중계 클라이언트 모듈(1180)은 요청 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버(1150)로부터 수신하고, 정상 수신 여부를 지시하는 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 서버(1150)로 전송할 수 있다(S1420). S1420 단계는 S1425 단계 이전에 수행될 수도 있고, 이후에 수행될 수도 있다.
이러한 프로토콜 변환 및 중계 과정을 통해서 Originator(1400)는 Receiver(1490)로 요청 메시지를 전달할 수 있고, 동일한 방식으로 응답 메시지가 Receiver(1490)에서 Originator(1400)로 전달될 수 있다.
예를 들어, Receiver(1490)는 응답 메시지를 M2M 메시지 형식으로 중계 클라이언트 모듈(1180)로 전달한다(S1430). 중계 클라이언트 모듈(1180)은 중계 서버(1150)로 응답 메시지를 포함하는 퍼블리쉬 패킷을 전송한다(S1435). 이를 위해서, 중계 클라이언트 모듈(1180)은 응답 메시지를 퍼블리쉬 패킷 포맷에 따라 페이로드에 포함하여 전송할 수 있다.
퍼블리쉬 패킷은 고정 헤더에 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더에 토픽 네임 필드 및 패킷 식별 필드를 포함하여 구성될 수 있다. 일 예로, 응답 메시지를 포함하는 퍼블리쉬 패킷의 Topic Name은‘/oneM2M/resp/Originator-ID/Receiver-ID’로 설정될 수 있다.
중계 서버(1150)는 응답 메시지를 포함하는 퍼블리쉬 패킷을 수신하면, 이에 대한 정상 수신 여부를 지시하는 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 클라이언트 모듈(1180)로 전송할 수 있다(S1440).
응답 메시지를 포함하는 퍼블리쉬 패킷이 정상 수신되고, Originator(1400)로 정상 중계가 가능하여 퍼블리쉬 확인 패킷을 전송한 경우에, 중계 서버(1150)는 수신된 퍼블리쉬 패킷을 응답 메시지의 수신측 중계 클라이언트 모듈(1110)로 전송한다(S1445). 수신측 중계 클라이언트 모듈(1110)은 응답 메시지를 포함하는 퍼블리쉬 패킷이 수신되면, 이에 대한 정상 수신 또는 정상 처리 가능 여부를 지시하는 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 서버(1150)로 전송할 수 있다.
중계 클라이언트 모듈(1110)은 퍼블리쉬 패킷의 페이로드에 포함되는 응답 메시지를 M2M 메시지로 변환하여 Originator(1400)로 전달한다(S1455). 중계 클라이언트 모듈(1110)은 수신된 퍼블리쉬 패킷의 페이로드에 포함되는 응답 메시지를 M2M 메시지로 변환하여 Originator(1400)로 전달함으로써, Originator(1400)와 Receiver(1490)는 요청 메시지와 응답 메시지를 송수신할 수 있다.
한편, 일대일 통신이 아닌 일대다 통신의 효율적으로 처리하기 위하여, 위에서 예시적으로 설명한 퍼블리쉬 패킷의 Topic Name은 응용 서비스 또는 그룹 등을 처리하기 위하여 아래의 예시와 같이 설정될 수도 있다.
- Application을 공유하기 위한 Topic Name: /oneM2M/resource/AE/App-ID
- Group을 공유하기 위한 Topic Name: /oneM2M/resource/group/groupName
이 외에도 토픽 네임은 다양한 형태로 설정될 수 있으며, 이는 미리 각 구성 개체 설정될 수 있다.
이하에서는, 전술한 패킷들의 구성과 각 헤더 및 페이로드의 구성을 보다 상세하게 도면을 참조하여 설명한다. 각 도면의 패킷의 포맷 및 구조는 예시적으로 도시한 것으로 해당 도면에 한정되는 것은 아니다.
도 15는 일 실시예에 따른 연결 패킷 포맷과 고정 헤더의 구조를 도시한 도면이다.
도 15를 참조하면, 연결 패킷은 2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성될 수 있다. 즉, 연결 패킷 포맷은 고정 헤더, 가변 헤더 및 페이로드로 설정될 수 있으며, 고정 헤더는 2바이트의 정보를 포함하고, 가변 헤더와 페이로드의 길이는 가변적으로 설정될 수 있다.
예를 들어, 고정 헤더는 고정 헤더는 예약(Reserver) 필드와 패킷 타입 정보를 포함하는 필드 및 잔여 길이 필드로 구성될 수 있다. 예를 들어, 예약 필드은 0 값으로 설정되고, 패킷 타입 정보를 포함하는 필드는 해당 패킷이 연결(CONNECT) 패킷임을 나타내기 위한 특정 값으로 설정될 수 있다. 해당 특정 값은 미리 설정될 수 있다. 한편, 잔여 길이 필드는 가변 헤더와 페이로드에 따라 그 값이 가변적으로 구성될 수 있다. 예를 들어, 잔여 길이 필드의 값은 “0” 또는 “1”의 값으로 설정도리 수 있으며, 페이로드의 존재 여부, 페이 로드 길이 또는 가변 헤더의 길이나 존재 여부에 따라 0 또는 1의 값이 미리 설정된 규칙에 의해서 결정될 수 있다. 이 외에도, 연결 패킷 포맷의 헤더 및 각 필드의 길이는 설정에 따라 달라질 수 있다.
도 16은 일 실시예에 따른 연결 패킷 가변 헤더의 구조를 도시한 도면이다.
도 16을 참조하면, 연결 패킷의 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함할 수 있다. 예를 들어, 프로토콜 이름 필드는 해당 패킷이 사용하는 중계 프로토콜을 지시하는 정보를 포함할 수 있다. 구체적으로, 프로토콜 이름 필드는 해당 패킷이 MQTT 프로토콜을 사용하는 패킷임을 지시하는 정보를 포함할 수 있다.
또한, 프로토콜 레벨 필드는 해당 프로토콜의 버전을 지시하는 정보를 포함할 수 있으며, 1600과 같이 프로토콜 레벨의 값이 4인 경우에 MQTT 버전 3.1.1을 지시할 수 있다.
한편, 연결 플래그 필드는 사용자 이름 플래그, 패스워드 플래그, Will Retain, Will QoS, Will Flag, Clean session, Reserved 등의 세부 플래그를 포함할 수 있다. 일 예로, Clean Session 필드는 세션의 리셋 여부를 지시하는 정보를 포함할 수 있습니다. 예를 들어, Clean Session이 0으로 설정되면 서버는 현재 세션의 상태를 기반으로 클라이언트 모듈과의 통신을 재개할 수 있다. 다른 예로, Will Flag는 연결 오류에 대한 정보를 포함할 수 있습니다. 예를 들어, 서버가 입출력 오류 및 네트워크 오류 상황인지, 클라이언트 모듈과 유지 시간 내에 통신을 수행하지 못하였는지, 프로토콜 오류인지 등에 대한 정보를 포함할 수 있다. 또 다른 예로, Will QoS는 Will 메시지를 개시할 때 사용할 QoS 수준을 지정하는 정보를 포함한다. 또 다른 예로, Will Retaion은 해당 패킷을 유지할지 말지를 지시하는 정보를 포함할 수 있다. 또 다른 예로, 패스워드 플래그는 해당 페이로드에 패스워드의 존재 여부에 대한 정보를 포함할 수 있다. 이와 같이, 연결 플래그 필드는 연결 패킷에 대한 다양한 설정 정보를 포함할 수 있다. 즉 1610과 같이 연결 패킷의 값이 설정되는 경우에 Will Flag 값이 1로 설정됨을 나타낼 수 있다.
한편, 가변 헤더의 연결 유지 필드는 클라이언트 모듈이 전송하는 두 개의 연속적인 제어 패킷 사이에서 경과할 수 있는 최대 시간 간격에 대한 정보를 나타내며, 초 단위로 설정될 수 있다.
또한, 필요에 따라 헤더 및 각 영역의 길이는 설정에 따라 달라질 수 있다.
도 17은 일 실시예에 따른 연결 패킷 페이로드의 구조를 도시한 도면이다.
도 17을 참조하면, 페이로드는 클라이언트 모듈 식별자 정보를 포함할 수 있다. 또한, 필요에 따라 사용자 이름과 패스워드를 포함할 수 있다. 클라이언트 모듈 식별자 정보는 해당 중계 서버에서 클라이언트 모듈을 식별하기 위한 식별정보를 포함하고, 설정된 경우에 해당 사용자에 대한 이름 정보와 패스워드 등을 선택적으로 포함할 수 있다.
이 경우에도 각 영역 및 페이로드 길이는 가변될 수 있다.
이상에서 살펴본 바와 같이, 연결 패킷은 다양한 정보를 포함하여 구성될 수 있다. 이하, 연결 패킷에 대한 응답으로의 연결 확인 패킷의 포맷과 각 필드에 대해서 설명한다.
도 18은 일 실시예에 따른 연결 확인 패킷 포맷과 각 헤더의 구조를 도시한 도면이다.
도 18을 참조하면, 연결 확인 패킷은 2 바이트의 고정 헤더와 가변 헤더 및 페이로드로 구성될 수 있다. 예를 들어, 고정 헤더는 예약 필드(ex, 0000으로 설정)와 패킷 타입 필드 및 잔여 길이 필드로 구성될 수 있다. 이는 전술한 연결 패킷과 유사하게 설정될 수 있다.
가변 헤더도 예약 필드(ex, 0으로 설정)와 잔여 길이 필드 및 연결 반환 코드 정보 필드로 구성될 수 있다. 이를 통해서, 클라이언트 모듈은 중계 서버로 요청한 연결 패킷에 대한 처리 결과를 연결 반환 코드 필드의 값을 통해서 확인할 수 있다.
또한, 가변 헤더는 SP(Session Present Flag)와 예약 및 연결 응답 코드 필드를 포함할 수 있다. 한편, 페이로드는 생략될 수 있다.
도 19는 일 실시예에 따른 가입(subscribe) 패킷 포맷과 고정 헤더, 가변 헤더 및 페이로드의 구조를 도시한 도면이다.
도 19를 참조하면, 가입(SUBSCRIBE) 패킷은 고정 헤더와 가변 헤더 및 페이로드로 구성되는 포맷으로 설정된다. 고정 헤더는 2바이트로 설정될 수 있으며, 가변 헤더 및 페이로드는 그 길이가 가변적으로 설정될 수 있다.
연결 패킷과 동일하게 고정 헤더는 예약 필드와 패킷 타입 정보 필드 및 잔여 길이 필드로 구성될 수 있으며, 1900과 같이 각 필드에 포함되는 값이 설정될 수 있다. 한편, 가변 헤더는 패킷 식별정보를 포함할 수 있다.
또한, 페이로드는 길이 필드, 토픽 필터 필드 및 QoS 필드로 구성하며, 토픽필터와 토픽 필터에 해당하는 QoS는 쌍으로 여러 개가 포함될 수 있다.
도 20은 일 실시예에 따른 가입(subscribe) 확인 패킷 포맷과 고정 헤더, 가변 헤더 및 페이로드의 구조를 도시한 도면이다.
도 20을 참조하면, 가입 패킷에 대한 확인 정보를 포함하는 가입 확인 패킷은 고정 헤더와 가변 헤더 및 페이로드로 구성된다.
가입 패킷과 동일하게 고정 헤더는 예약 필드과 패킷 타입 정보 필드 및 잔여 길이 필드로 구성될 수 있으며, 각 필드에는 2000의 예와 같이 정보가 포함될 수 있다. 한편, 가변 헤더는 패킷 식별정보를 포함할 수 있다.
또한, 페이로드는 응답 코드의 리스트 정보를 포함할 수 있다. 이를 통해서, 가입 패킷에 대한 중계 서버의 처리 결과를 응답 코드 별로 설정된 정보를 통해서 중계 클라이언트 모듈은 획득할 수 있다.
이하에서는, 요청 메시지 및 응답 메시지를 중계하기 위한 퍼블리쉬 패킷과 그에 대한 퍼블리쉬 확인 패킷의 구조를 설명한다.
도 21은 일 실시예에 따른 퍼블리쉬 패킷 포맷과 고정 헤더, 가변 헤더 구조를 도시한 도면이다.
도 21을 참조하면, 퍼블리쉬 패킷은 고정 헤더와 가변 헤더 및 페이로드로 구성된다. 예를 들어, 고정 헤더는 RETAIN, QoS 레벨, 중복 전송 플래그(DUG flag), 패킷 타입 정보 및 잔여 길이 필드로 구성될 수 있다.
일 예로, 고정 헤더는 2 바이트로 구성될 수 있으며, 각 비트 별로 할당된 정보를 운반할 수 있다. 예를 들어, QoS 레벨 필드는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함한다. 또한, 중복 전송 플래그 필드는 해당 패킷이 중복 전송인지를 나타내는 정보를 포함한다. 또한, 패킷 타입 필드는 해당 패킷이 퍼블리쉬 패킷임을 지시하는 정보를 포함한다.
다른 예로, 가변 헤더는 토픽 네임과 패킷 식별정보를 포함할 수 있다. 토픽 네임은 전술한 바와 같이 요청 및 응답 메시지에 따라 달라질 수 있으며, 발신자 정보 및 수신자 정보를 포함할 수 있다. 예를 들어, 요청 메시지의 경우에 ‘/oneM2M/req/Originator-ID/Receiver-ID’로 설정되며, 응답 메시지의 경우에 ‘/oneM2M/resp/Originator-ID/Receiver-ID’로 설정될 수 있다. 패킷 식별정보는 해당 패킷을 식별하기 위해서 미리 설정된 인덱스 정보를 포함할 수 있다. 또한, 패킷 식별정보는 QoS 레벨이 1 또는 2인 퍼블리쉬 패킷에만 존재할 수 있다.
한편, 퍼블리쉬 패킷의 페이로드는 M2M 시스템에서 정의된 요청 메시지 또는 응답 메시지가 포함될 수 있다. 예를 들어, 페이로드에 포함되는 요청 메시지는 해당 요청 메시지의 요청 종류를 지시하는 정보, 발신자 식별정보, 수신자 식별정보 및 요청 식별정보를 포함할 수 있다. 페이로드에 응답 메시지가 포함되는 경우에 응답 메시지는 요청 식별정보 및 응답 결과 코드 정보를 포함할 수 있다.
도 22는 일 실시예에 다른 퍼블리쉬 확인 패킷 포맷과 고정 헤더, 가변 헤더 구조를 도시한 도면이다.
도 22를 참조하면, 퍼블리쉬 확인 패킷(PUBACK 패킷)은 고정 헤더와 가변 헤더 및 페이로드 영역 중 적어도 하나를 포함하여 구성될 수 있다.
연결 패킷, 가입 패킷 등과 동일하게 고정 헤더는 예약 영역과 패킷 타입 정보 영역 및 잔여 길이 영역으로 구성하며, 각 영역에 포함되는 값은 도 22와 같이 포함될 수 있다. 한편, 가변 헤더는 패킷 식별정보를 포함할 수 있다. 예를 들어, 패킷 식별정보를 통해서 해당 퍼블리쉬 확인 패킷이 어떤 퍼블리쉬 패킷에 대한 응답인지를 나타낼 수 있다. 또한, 퍼블리쉬 확인 패킷의 페이로드는 생략이 가능하다.
이상에서 설명한 각 패킷의 구조 및 필드는 일 실시예를 설명한 것으로, 설정에 의해서 변경되거나 일부 필드가 생략 또는 추가될 수도 있다.
또한, 본 실시예들에 따르면 두 개의 M2M 장치 중 한 쪽이 방화벽을 통하여 통신을 하는 경우 인터넷 프토토콜을 이용하여 두 개의 기기 중 어느 쪽에서도 통신을 시작할 수 있다. 또한, 두 개의 기기가 모두 방화벽을 통하여 공인 IP 네트워크를 통하여 통신을 하는 경우에도 인터넷 프로토콜을 이용하여 두 개의 기기 중 어느 쪽에서도 통신을 시작할 수 있다. 또한, 중계 프로토콜을 이용하여 요청 메시지 및 응답 메시지를 교환이 가능하며, 동일한 Application을 다수의 디바이스에서 사용이 가능하다. 또한, 중계 프로토콜을 이용하여 집단적인 처리 기능 수행이 가능하다. 따라서, 본 실시예에 따르면 네트워크 전체의 트래픽의 증가를 방지하면서 발신자가 요청한 동작이 정확하게 수행되었는지를 확인할 수 있다.
이하에서는 도 1 내지 도 22를 참조하여 설명한 본 실시예를 모두 실시할 수 있는 M2M 장치의 구성 및 중계 서버의 구성을 도면을 참조하여 다시 한 번 설명한다.
도 23은 일 실시예에 따른 M2M 장치의 구조를 도시한 도면이다.
도 23을 참조하면, 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 M2M 장치(2300)는, 중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 연결 설정을 위한 연결 패킷에 대한 응답 정보를 수신하여 중계 서버와의 연결을 설정하는 제어부(2310)와 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 중계 서버로 전송하는 송신부(2320) 및 요청 메시지에 대해서 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 중계 서버로부터 수신하는 수신부(2330)를 포함할 수 있다.
또한, 송신부(2320)는 중계 서버와 연결을 설정하기 위한 연결 패킷을 중계 서버로 전송하고, 수신부(2330)는 중계 서버로부터 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 수신할 수 있다.
한편, 연결 확인 패킷을 M2M 장치가 수신하는 경우, 송신부(2320)는 중계 서버로 가입 패킷을 전송하고, 수신부(2330)는 이에 대한 가입 확인 패킷을 수신할 수 있다. 가입 패킷은 중계 서버에서 해당 M2M 장치의 AE 또는 CSE를 식별하기 위한 식별정보를 포함할 수 있다. 제어부(2310)는 가입 확인 패킷을 수신하여 연결 설정을 수행할 수도 있다.
한편, 중계 서버와 중계 클라이언트 모듈 간의 연결 패킷은 아래와 같은 포맷으로 구성될 수 있다. 예를 들어, 연결 패킷은 2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성될 수 있다. 또한, 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고, 페이로드 영역은 클라이언트 모듈 식별자 정보를 포함할 수 있다.
한편, 연결 설정 절차는 M2M 장치와 통신을 수행하기 위한 타 M2M 장치도 동일한 방식으로 수행할 수 있다. 예를 들어, 타 M2M 장치도 중계 서버와 연결 패킷 및 연결 확인 패킷 송수신 절차를 통해서 연결을 설정할 수 있다. 또는, 타 M2M 장치는 중계 서버와 연결 패킷 및 연결 확인 패킷 송수신 절차를 진행하고, 가입 패킷 및 가입 확인 패킷 송수신 절차를 통해서 연결을 설정할 수 있다.
퍼블리쉬 패킷은 사물 통신 메시지임을 지시하는 정보, 메시지 타입을 지시하는 정보(요청 또는 응답), 발신자의 식별정보 및 수신자의 식별정보를 포함할 수 있다.
한편, 퍼블리쉬 패킷은 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며, 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함할 수 있다. 페이로드 영역에는 요청 메시지가 포함될 수 있으며, 요청 메시지에 요청 식별정보가 포함될 수 있다. 요청 식별정보는 추후 응답 메시지에 포함되어 응답 메시지가 어느 요청 메시지에 대한 응답인지를 식별할 수 있는 정보를 나타낸다.
필요에 따라, 수신부(2330)는 퍼블리쉬 패킷에 대한 응답 정보를 포함하는 퍼블리쉬 확인 패킷을 중계 서버로부터 수신할 수도 있다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다.
또한, 송신부(2320)는 응답 메시지를 포함하는 퍼블리쉬 패킷에 대한 확인 정보를 퍼블리쉬 확인 패킷에 포함하여 중계 서버로 전송한다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다. 또한, 전술한 바와 같이, 응답 메시지는 퍼블리쉬 패킷의 페이로드에 포함될 수 있으며, 요청 식별정보 및 응답 상태 코드 정보를 포함할 수 있다. 요청 식별정보는 요청 메시지와 동일한 값으로 설정되어, 해당 응답 메시지가 어느 요청 메시지에 대한 응답 결과를 포함하는지를 지시할 수 있다. 응답 상태 코드는 해당 요청 메시지에서 요구하는 절차의 처리 결과에 대한 코드 값을 포함한다.
이 외에도, 제어부(2310)는 본 실시예에 따른 중계 서버를 이용하여 요청 메시지를 전송하고, 응답 메시지를 수신하는 데에 따른 전반적인 M2M 장치(2300)의 동작을 제어한다.
또한, 송신부(2320) 및 수신부(2330)는 중계 서버, 타 M2M 장치, 중계 클라이언트 모듈 중 적어도 하나와 본 실시예를 수행하는 데에 필요한 메시지, 신호 및 데이터를 송수신하는 데에 사용된다.
도 24는 일 실시예에 따른 중계 서버의 구조를 도시한 도면이다.
도 24를 참조하면, 공인 IP(Internet Protocol) 네트워크를 통해서 M2M 장치 간의 통신을 중계하는 중계 서버(2400)는, M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하여, M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 제어부(2410)와 M2M 장치의 중계 클라이언트 모듈로부터 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 수신부(2430) 및 요청 메시지를 포함하는 퍼블리쉬 패킷을 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 송신부(2420)를 포함할 수 있다.
수신부(2430)는 타 M2M 장치의 중계 클라이언트 모듈로부터 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 더 수신하고, 송신부(2420)는 응답 메시지를 포함하는 퍼블리쉬 패킷을 M2M 장치의 중계 클라이언트 모듈로 더 전송할 수 있다.
수신부(2430)는 중계 서버를 통해서 통신을 수행하고자 하는 M2M 장치들로부터 연결 패킷을 수신할 수 있다. 연결 패킷은 각각의 M2M 장치에 구성될 수 있는 중계 클라이언트 모듈로부터 수신될 수 있다. 또한, 송신부(2420)는 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 각 M2M 장치로 전송할 수 있다.
또는, 수신부(2430)는 연결 패킷 수신, 연결 확인 패킷 전송 후에 각 M2M 장치로부터 가입 패킷을 수신하고, 송신부(2420)는 가입 패킷에 대한 가입 확인 패킷을 각 M2M 장치로 전송하여 연결 설정을 수행할 수도 있다. 예를 들어, 가입 패킷은 연결 설정을 요청하는 M2M 장치에 대한 식별정보를 포함할 수 있다. 또는, 가입 패킷은 연결 설정을 요청하는 M2M 장치의 요청 메시지 전송과 관련된 식별정보 및 응답 메시지 수신과 관련된 식별정보에 대한 정보를 포함할 수 있다. 물론, 해당 M2M 장치가 M2M 네트워크를 사용하는 사물 통신 장치 패킷임을 지시하는 정보도 포함될 수 있다.
한편, 중계 서버(2400)는 M2M 시스템을 구성하는 노드인 미들 노드 및 인프라 노드와는 독립적으로 구성될 수 있다. 이 경우에 미들 노드 및 인프라 노드는 중계 클라이언트 모듈을 이용하여 독립적으로 구성된 중계 서버와 통신을 수행할 수 있다.
또는, 중계 서버(2400)는 M2M 시스템을 구성하는 노드인 미들 노드 또는 인프라 노드에 구성될 수도 있다. 이 경우에도 중계 서버와 미들 노드 또는 인프라 노드에 구성되는 각 개체와 통신을 수행하기 위한 중계 클라이언트 모듈은 각 노드에 같이 구성될 수 있다.
한편, 퍼블리쉬 패킷은 사물 통신 메시지임을 지시하는 정보, 메시지 타입을 지시하는 정보(요청 또는 응답), 발신자의 식별정보 및 수신자의 식별정보를 포함할 수 있다. 또는, 퍼블리쉬 패킷은 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며, 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고, 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함할 수 있다.
필요에 따라, 송신부(2420)는 퍼블리쉬 패킷에 대한 응답 정보를 포함하는 퍼블리쉬 확인 패킷을 M2M 장치로 전송할 수도 있다. 퍼블리쉬 확인 패킷은 퍼블리쉬 패킷의 정상 수신 여부에 대한 정보를 포함할 수 있다.
또한, 제어부(2410)는 퍼블리쉬 패킷이 수신되면, 해당 퍼블리쉬 패킷에서 지시하는 대상 타 M2M 장치에 대한 식별정보를 확인하고, 송신부(2420)는 연결 설정된 타 M2M 장치의 중계 클라이언트 모듈로 요청 메시지를 포함하는 퍼블리쉬 패킷을 전송할 수 있다. 즉, 제어부(2410)는 중계 클라이언트 모듈로부터 퍼블리쉬 패킷이 수신되면, 토픽 네임을 참조하여 해당 패킷을 수신자 측의 중계 클라이언트 모듈로 전송한다. 수신부(2430)는 타 M2M 장치로부터 요청 메시지를 포함하는 퍼블리쉬 패킷에 대한 수신 확인을 지시하는 퍼블리쉬 확인 패킷을 수신할 수 있다. 또한, 송신부(2420)는 퍼블리쉬 패킷에 대한 퍼블리쉬 확인 패킷을 타 M2M 장치로 전송할 수 있다. 또한, 수신부(2430)는 M2M 장치로부터 퍼블리쉬 확인 패킷을 수신할 수 있다.
이 외에도, 제어부(2410)는 본 실시예에 따른 중계 서버를 이용하여 요청 메시지를 전송하고, 응답 메시지를 수신하는 데에 따른 전반적인 중계 서버(2400)의 동작을 제어한다.
또한, 송신부(2420) 및 수신부(2430)는 타 중계 서버, M2M 장치, 타 M2M 장치, 중계 클라이언트 모듈 중 적어도 하나와 본 실시예를 수행하는 데에 필요한 메시지, 신호 및 데이터를 송수신하는 데에 사용된다.
전술한 실시예에서 언급한 표준내용 또는 표준문서들은 명세서의 설명을 간략하게 하기 위해 생략한 것으로 본 명세서의 일부를 구성한다. 따라서, 위 표준내용 및 표준문서들의 일부의 내용을 본 명세서에 추가하거나 청구범위에 기재하는 것은 본 발명의 범위에 해당하는 것으로 해석되어야 한다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (20)

  1. M2M(Machine to Machine communication) 장치가 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 방법에 있어서,
    중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하는 단계;
    상기 연결 패킷에 대하여, 상기 연결 설정을 위한 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 수신하는 단계;
    상기 연결 확인 패킷에 대하여, 상기 중계 서버로 가입 패킷을 전송하는 단계;
    상기 가입 패킷에 대하여, 가입 확인 패킷을 수신하여 상기 중계 서버와의 연결을 설정하는 단계;
    상기 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 상기 중계 서버로 전송하는 단계; 및
    상기 요청 메시지에 대해서 상기 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 상기 중계 서버로부터 수신하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 중계 서버는,
    미들 노드 또는 인프라 노드에 구성되는 것을 특징으로 하는 방법.
  3. 제 1 항에 있어서,
    상기 중계 서버는,
    미들 노드 및 인프라 노드와는 독립적으로 구성되며, 상기 미들 노드 또는 상기 인프라 노드에 구성되는 중계 클라이언트 모듈과 통신을 수행하는 것을 특징으로 하는 방법.
  4. 제 1 항에 있어서,
    상기 타 M2M 장치는,
    상기 중계 서버와 연결 패킷 송수신 절차를 수행하여 연결 설정을 완료한 후에 상기 요청 메시지를 포함하는 퍼블리쉬 패킷을 상기 중계 서버로부터 수신하는 것을 특징으로 하는 방법.
  5. 제 1 항에 있어서,
    상기 연결 패킷은,
    2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고,
    상기 페이로드 영역은 상기 클라이언트 모듈 식별자 정보를 포함하는 것을 특징으로 하는 방법.
  6. 제 1 항에 있어서,
    상기 퍼블리쉬 패킷은,
    고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고,
    상기 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함하는 것을 특징으로 하는 방법.
  7. 중계 서버가 공인 IP(Internet Protocol) 네트워크를 통해서 M2M(Machine to Machine communication) 장치 간의 통신을 중계하는 방법에 있어서,
    M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하는 단계;
    상기 M2M 장치 및 타 M2M 장치로부터 가입 패킷을 수신하여, 상기 M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 단계;
    상기 M2M 장치의 중계 클라이언트 모듈로부터 상기 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계;
    상기 요청 메시지를 포함하는 퍼블리쉬 패킷을 상기 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계;
    상기 타 M2M 장치의 중계 클라이언트 모듈로부터 상기 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 단계; 및
    상기 응답 메시지를 포함하는 퍼블리쉬 패킷을 상기 M2M 장치의 중계 클라이언트 모듈로 전송하는 단계를 포함하는 방법.
  8. 제 7 항에 있어서,
    상기 중계 서버는,
    미들 노드 또는 인프라 노드에 구성되는 것을 특징으로 하는 방법.
  9. 제 7 항에 있어서,
    상기 연결 패킷은,
    2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고,
    상기 페이로드 영역은 상기 클라이언트 모듈 식별자 정보를 포함하는 것을 특징으로 하는 방법.
  10. 제 7 항에 있어서,
    상기 퍼블리쉬 패킷은,
    고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고,
    상기 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함하는 것을 특징으로 하는 방법.
  11. 공인 IP(Internet Protocol) 네트워크를 통해서 타 M2M 장치와 통신을 수행하는 M2M(Machine to Machine communication) 장치에 있어서,
    중계 클라이언트 모듈을 통해서 중계 서버로의 연결 설정을 위한 연결 패킷을 전송하고, 상기 연결 설정을 위한 연결 패킷에 대한 응답 정보를 포함하는 연결 확인 패킷을 수신하고, 상기 중계 서버로 가입 패킷을 전송하고, 가입 확인 패킷을 수신하여 상기 중계 서버와의 연결을 설정하는 제어부;
    상기 중계 서버와의 연결이 설정되면, 타 M2M 장치로 전송하기 위한 요청 메시지를 퍼블리쉬 패킷에 포함하여 상기 중계 서버로 전송하는 송신부; 및
    상기 요청 메시지에 대해서 상기 타 M2M 장치가 생성한 응답 메시지를 포함하는 퍼블리쉬 패킷을 상기 중계 서버로부터 수신하는 수신부를 포함하는 M2M 장치.
  12. 제 11 항에 있어서,
    상기 중계 서버는,
    미들 노드 또는 인프라 노드에 구성되는 것을 특징으로 하는 M2M 장치.
  13. 제 11 항에 있어서,
    상기 중계 서버는,
    미들 노드 및 인프라 노드와는 독립적으로 구성되며, 상기 미들 노드 또는 상기 인프라 노드에 구성되는 중계 클라이언트 모듈과 통신을 수행하는 것을 특징으로 하는 M2M 장치.
  14. 제 11 항에 있어서,
    상기 타 M2M 장치는,
    상기 중계 서버와 연결 패킷 송수신 절차를 수행하여 연결 설정을 완료한 후에 상기 요청 메시지를 포함하는 퍼블리쉬 패킷을 상기 중계 서버로부터 수신하는 것을 특징으로 하는 M2M 장치.
  15. 제 11 항에 있어서,
    상기 연결 패킷은,
    2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고,
    상기 페이로드 영역은 상기 클라이언트 모듈 식별자 정보를 포함하는 것을 특징으로 하는 M2M 장치.
  16. 제 11 항에 있어서,
    상기 퍼블리쉬 패킷은,
    고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고,
    상기 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함하는 것을 특징으로 하는 M2M 장치.
  17. 공인 IP(Internet Protocol) 네트워크를 통해서 M2M(Machine to Machine communication) 장치 간의 통신을 중계하는 중계 서버에 있어서,
    M2M 장치 및 타 M2M 장치 각각의 중계 클라이언트 모듈로부터 연결 설정을 위한 연결 패킷을 수신하고, 상기 M2M 장치 및 타 M2M 장치로부터 가입 패킷을 수신하여, 상기 M2M 장치 및 타 M2M 장치 각각과의 연결을 설정하는 제어부;
    상기 M2M 장치의 중계 클라이언트 모듈로부터 상기 타 M2M 장치로 전송하기 위한 요청 메시지를 포함하는 퍼블리쉬 패킷을 수신하는 수신부; 및
    상기 요청 메시지를 포함하는 퍼블리쉬 패킷을 상기 타 M2M 장치의 중계 클라이언트 모듈로 전송하는 송신부를 포함하되,
    상기 수신부는, 상기 타 M2M 장치의 중계 클라이언트 모듈로부터 상기 요청 메시지에 대한 응답 메시지를 포함하는 퍼블리쉬 패킷을 더 수신하고,
    상기 송신부는, 상기 응답 메시지를 포함하는 퍼블리쉬 패킷을 상기 M2M 장치의 중계 클라이언트 모듈로 더 전송하는 중계 서버.
  18. 제 17 항에 있어서,
    상기 중계 서버는,
    미들 노드 또는 인프라 노드에 구성되는 것을 특징으로 하는 중계 서버.
  19. 제 17 항에 있어서,
    상기 연결 패킷은,
    2 바이트의 고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 가변 헤더는 프로토콜 이름 필드, 프로토콜 레벨 필드, 연결 플래그 필드 및 연결 유지(Keep Alive) 필드를 포함하고,
    상기 페이로드 영역은 상기 클라이언트 모듈 식별자 정보를 포함하는 것을 특징으로 하는 중계 서버.
  20. 제 17 항에 있어서,
    상기 퍼블리쉬 패킷은,
    고정 헤더, 가변 헤더 및 페이로드 영역으로 구성되며,
    상기 고정 헤더는 패킷 또는 중계 프로토콜의 QoS 레벨에 대한 정보를 포함하는 QoS 레벨 필드, 중복전송 플래그 필드 및 패킷 타입 필드를 포함하고,
    상기 가변 헤더는 토픽 네임 필드 및 패킷 식별 필드를 포함하는 것을 특징으로 하는 중계 서버.
KR1020180042814A 2017-04-27 2018-04-12 공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치 KR102092100B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/KR2018/004373 WO2018199523A1 (ko) 2017-04-27 2018-04-16 공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20170054667 2017-04-27
KR1020170054667 2017-04-27
KR1020170064401 2017-05-24
KR20170064401 2017-05-24

Publications (2)

Publication Number Publication Date
KR20180120576A KR20180120576A (ko) 2018-11-06
KR102092100B1 true KR102092100B1 (ko) 2020-03-24

Family

ID=64329571

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180042814A KR102092100B1 (ko) 2017-04-27 2018-04-12 공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR102092100B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102292351B1 (ko) * 2020-04-06 2021-08-20 김도경 RS-485 통신 모듈을 이용한 IoT 기기 제어 및 감지 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101466210B1 (ko) * 2013-09-27 2014-11-27 에스케이 텔레콤주식회사 M2m 단말기로 장문 메시지를 전달하는 방법 및 장치
WO2016123778A1 (zh) * 2015-02-05 2016-08-11 华为技术有限公司 M2m数据处理方法、设备及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2537323B1 (en) * 2010-02-15 2016-08-24 Telefonaktiebolaget LM Ericsson (publ) Machine-to-machine device triggering using session initiation protocol uniform resourse identifier
US20140201321A1 (en) * 2011-06-29 2014-07-17 Andrew Paul Donaghey Systems, methods, and/or apparatus for enabling communication between devices using different communication protocols
KR20160036690A (ko) * 2014-09-25 2016-04-05 가온미디어 주식회사 다중 M2M/IoT 디바이스들과 연계된 M2M/IoT 디바이스를 취급하기 위한 멀티 링크 메카니즘

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101466210B1 (ko) * 2013-09-27 2014-11-27 에스케이 텔레콤주식회사 M2m 단말기로 장문 메시지를 전달하는 방법 및 장치
WO2016123778A1 (zh) * 2015-02-05 2016-08-11 华为技术有限公司 M2m数据处理方法、设备及系统

Also Published As

Publication number Publication date
KR20180120576A (ko) 2018-11-06

Similar Documents

Publication Publication Date Title
EP3965370A1 (en) Routing rule configuration method and communication apparatus
KR101837871B1 (ko) 종단간 m2m 서비스 계층 세션
KR102182167B1 (ko) M2m 서비스 설정 변경 방법 및 이를 위한 장치
US20140226664A1 (en) Method, apparatus, and system for implementing private network traversal
EP1913743B1 (en) Group management method and system in interworking system of imps system and simple im system
WO2019157968A1 (zh) 一种通信方法、装置及系统
KR20150063906A (ko) M2m 환경에서 사용 가능한 장치를 검색하는 방법 및 장치
US9673953B2 (en) Messaging network with a control data channel
CN107667550A (zh) 无线通信系统中通过轮询信道来处理请求的方法及其设备
TW200935848A (en) Selectively loading security enforcement points with security association information
KR102051839B1 (ko) M2m 시스템에서 메시지를 처리하는 방법 및 그 장치
KR102092100B1 (ko) 공인 ip 네트워크를 통해서 사물통신을 처리하는 방법 및 그 장치
US11290860B2 (en) Method for processing request message in M2M system and device therefor
KR20150067037A (ko) M2m 시스템에서 구독의 기준정보 최적화 방법 및 장치
KR20190002340A (ko) M2m 시스템에서 요청 메시지를 처리하는 방법 및 그 장치
KR20150014345A (ko) 요청 메시지의 신뢰성을 확보하는 방법 및 장치
KR102465844B1 (ko) M2m 시스템에서 통지 실패시 통지 메시지를 처리하는 방법 및 장치
KR20190004233A (ko) M2m 시스템에서 메시지를 전송하는 방법 및 그 장치
KR102077582B1 (ko) M2m 시스템에서 요청 메시지를 처리하는 방법 및 그 장치
KR20150066401A (ko) M2m 환경에서의 데이터 적용기술
KR20180107752A (ko) M2m 시스템에서 요청 메시지를 처리하는 방법 및 그 장치
KR20190104843A (ko) 인터넷 접속이 단절된 사물통신 단말과 사물통신 서버의 통신 방법
KR20150066474A (ko) 데이터 전송을 위한 타겟 리소스 주소 확보 방법 및 이를 위한 장치
KR20170053130A (ko) 보안 개체에서 접근을 제어하는 방법 및 그 장치
KR20150066240A (ko) 알림 메시지 전달의 동기화를 위한 중간 노드

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant