KR102209718B1 - 데이터 송수신 방법, 및 이를 위한 장치 - Google Patents

데이터 송수신 방법, 및 이를 위한 장치 Download PDF

Info

Publication number
KR102209718B1
KR102209718B1 KR1020150163562A KR20150163562A KR102209718B1 KR 102209718 B1 KR102209718 B1 KR 102209718B1 KR 1020150163562 A KR1020150163562 A KR 1020150163562A KR 20150163562 A KR20150163562 A KR 20150163562A KR 102209718 B1 KR102209718 B1 KR 102209718B1
Authority
KR
South Korea
Prior art keywords
terminal device
data
group
session key
class
Prior art date
Application number
KR1020150163562A
Other languages
English (en)
Other versions
KR20170059319A (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 KR1020150163562A priority Critical patent/KR102209718B1/ko
Publication of KR20170059319A publication Critical patent/KR20170059319A/ko
Application granted granted Critical
Publication of KR102209718B1 publication Critical patent/KR102209718B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W60/00Affiliation to network, e.g. registration; Terminating affiliation with the network, e.g. de-registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/18Service support devices; Network management devices
    • H04W88/182Network node acting on behalf of an other network entity, e.g. proxy

Abstract

본 발명은 데이터 전송 및 수신 방법에 관한 것으로서, 더욱 상세하게는 단말장치가 서비스 서버로 가입 요청 메시지를 전송하면, 이를 수신한 서비스 서버가 상기 가입 요청 메시지를 전송한 단말장치가 속하는 그룹을 확인하여, 상기 그룹에 매핑되는 세션 키를 단말장치로 전송하고, 상기 세션 키를 기반으로 암호화한 데이터를 브로드캐스팅하여, 상기 브로드캐스팅된 데이터를 수신한 단말장치 중 상기 그룹에 속한, 즉, 상기 그룹에 매핑되는 세션 키를 저장하고 있는 단말장치가 상기 세션 키를 기반으로 데이터를 복호화함으로써, 효율적으로 무선 패킷을 전송할 수 있다.
특히, 동일한 데이터를 수신한 동일한 그룹에 속한 IoT 단말장치가 상기 암호화된 데이터를 수신한 후, 서비스 서버로 ACK 신호를 전송하지 않음으로써, 무선 자원의 효율적인 관리가 가능하다.

Description

데이터 송수신 방법, 및 이를 위한 장치{Method and Apparatus for Transmitting and Receiving of Data}
본 발명은 데이터 전송 및 수신 방법에 관한 것으로서, 더욱 상세하게는 협대역(Narrowband) 통신 기술이 적용된 IoT(Internet of Things, 사물인터넷)시스템에 있어서, 무선 자원의 점유를 최소화하면서 동일한 데이터를 다수의 IoT 단말로 전송하여 무선 패킷 전송을 효율적으로 하기 위한 데이터 전송 방법, 이를 위한 장치에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
IoT(Internet of the Things) 서비스의 보편적 보급을 위해서는 다양한 센서와 제어 장비의 소량 데이터를 원거리에서 신뢰성 및 보안성을 확보하여 송수신할 수 있어야 하지만, 현재까지의 IoT에 적용되는 디바이스들의 인터페이스가 규격화되어 있지 않아 범용성이 낮은 상황이다.
이러한 문제점을 해결하기 위해 최근 LPWA(Low Power Wide Area) 네트워크 기술이 주목 받고 있다. LPWA 통신 기술은 저속 전송이 용인되고, 광역 커버리지를 필요로 하는 롱 배터리 라이프(Long Battery Life)를 지원하는 소량 데이터 전송에 특화된 IoT 기반 네트워크 기술을 통칭하는 용어로, 이러한 LPWA 네트워크 기술의 대표적인 예가 LoRa 기술이다.
LoRa(Long Range Sub-Ghz Module)는 900MHz대 주파수를 사용하는 저전력 원거리 통신 프로토콜로, 많은 리피터 및 AP가 필요 없어 인프라 구축 비용이 감소되며, 셀룰러 네트워크에 비해 임베디드 애플리케이션을 위한 보다 높은 확장 가능성과 비용 효율성을 제공할 수 있는 통신 프로토콜을 의미한다.
이러한 LoRa 기술이 적용된 IoT 시스템은 LoRa 디바이스, 네트워크 서버 및 어플리케이션 서버 등으로 구현될 수 있다. 이때 IoT 서비스에 적용되는 LoRa 디바이스는 배터리 소모를 최소화하기 위해 상향링크 위주의 데이터 전송을 수행하며, 일정 주기 단위 등으로 하향링크 데이터를 수신하거나, 하향링크 데이터 수신이 없을 경우, 네트워크 연결을 차단하여 배터리 소모를 최소화하게 된다.
하지만 상술한 바와 같은 배터리 소모 절감 방안에도 불구하고, 기존의 LoRa 디바이스에서의 하향링크 데이터 수신 방법은 Unicast 또는 Multicast 방식을 사용하였기 때문에, ACK(Acknowledge)를 다시 전송해야 했고, 이에 각각의 LoRa 디바이스가 하향링크 데이터를 수신하기 위한 무선자원과 ACK를 전송하기 위한 무선자원을 각자 점유하고 있어야 했다.
이에 따라, IoT 단말장치의 개수가 굉장히 많은 경우라면, 무선 자원 할당에 혼잡이 발생하여 정상적인 하향링크 데이터 전송이 불가능해질 가능성이 있었으며, IoT네트워크에서 이용되는 단말장치는 센서 수준의 단말장치이므로, 앞으로 이러한 단말장치의 개수는 급격하게 증가할 것으로 예상되어 이러한 IoT 네트워크 환경에서의 효율적이 데이터 전송 방법이 추가적으로 필요한 실정이다.
한국공개특허 제10-2015-0035971호 (명칭: 사물인터넷에서 스마트 디바이스 또는 스마트 센서와 네트워크 게이트웨이 사이의 안전한 데이터 전달을 위한 통신 프로토콜, 2015.04.07)
상술한 문제점을 해결하기 위하여 본 발명은 동일한 데이터를 다수의 IoT 단말로 보내야 하는 상황에서, 동일한 데이터를 수신할 IoT 단말장치들을 하나의 그룹으로 설정하고, 상기 동일한 그룹에 설정된 하나 이상의 단말장치에 전송할 데이터를 브로드캐스팅(Broadcasting)하는 효율적인 무선 패킷 전송 방법 및 이에 대한 장치를 제공하고자 한다.
또한, 본 발명은 브로드캐스팅 방식을 통해 데이터를 수신한 단말장치가 데이터가 정상적으로 수신되었다는 신호인 ACK 신호를 다시 서비스 서버에 전송하지 않음으로써, ACK 신호를 전송하기 위한 무선 자원의 할당이 필요하지 않아, 무선 자원 할당의 혼잡을 줄일 수 있는 무선 패킷 전송 방법 및 이에 대한 장치를 제공하고자 한다.
그러나, 이러한 본 발명의 목적은 상기의 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 명확하게 이해될 수 있을 것이다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 데이터 송수신 방법은 하나 이상의 단말장치로 통신 네트워크 서비스를 제공하는 서비스 서버에서의 데이터 전송 방법에 있어서, 상기 서비스 서버가 상기 단말장치로부터 가입 요청(Join Request) 메시지를 수신하는 단계; 상기 가입 요청 메시지를 전송한 단말장치가 속하는 그룹(Group)을 확인하는 단계; 상기 단말장치가 속하는 그룹과 매핑되는 세션 키(Session Key)를 상기 단말장치로 전송하는 단계; 상기 단말장치가 속하는 그룹에 전송할 데이터를 상기 세션 키를 기반으로 암호화하는 단계; 및 상기 암호화된 데이터를 브로드캐스팅(Broadcasting)하는 단계;를 포함할 수 있다.
이 때, 상기 확인하는 단계 이전에 상기 하나 이상의 단말장치 각각이 속하는 그룹을 설정하는 단계; 및 상기 그룹에 매핑되는 세션 키를 설정하는 단계;를 더 포함할 수 있고, 상기 단말장치가 속하는 그룹에 전송할 데이터를 브로드캐스팅하기 위한 클래스 타입으로 변경하는 단계;를 더 포함할 수 있으며, 상기 변경하는 단계는 상기 클래스 타입으로 변경하기 위한 클래스 변경 요청 메시지를 상기 단말장치로 전송하는 단계; 및 상기 단말장치로부터 클래스 타입을 포함하는 클래스 안내 메시지를 수신하는 단계;를 포함할 수 있다.
또한, 상기 전송하는 단계는 상기 세션 키를 가입 승인(Join Accept) 메시지와 함께 전송할 수 있고, 상기 세션 키는 맥(MAC) 전용 데이터를 암복호화하는 Network Session Key 및 메시지 데이터를 암복호화하는 Application Session Key 중 적어도 하나를 포함할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 본 발명의 실시 예에 따른 데이터 송수신 방법은 통신 네트워크 서비스를 제공하는 서비스 서버의 제어에 따라 동작하는 단말장치에서의 데이터 송수신 방법에 있어서, 상기 단말장치가 상기 서비스 서버에 가입 요청메시지를 전송하는 단계; 상기 단말장치가 속하는 그룹에 대응하는 세션 키를 상기 서비스 서버로부터 수신하는 단계; 상기 서비스 서버가 브로드캐스팅한 데이터를 수신하는 단계; 및 상기 수신한 세션 키를 기반으로 상기 수신한 데이터를 복호화하는 단계;를 포함할 수 있다.
이 때, 상기 서비스 서버가 브로드캐스팅하는 데이터를 수신하기 위한 클래스 타입으로 변경하는 단계;를 더 포함할 수 있다.
한편, 상술한 데이터 전송 방법 및 데이터 송수신 방법은 상술한 바와 같은 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체로 제공될 수 있고, 상술한 바와 같은 방법을 실행시키도록 구현되어 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램으로 제공될 수도 있다.
상술한 바와 같은 목적을 달성하기 위한 하나 이상의 단말장치로) 통신 네트워크 서비스를 제공하는 서비스 서버는 상기 단말장치, 상기 단말장치가 속하는 그룹, 상기 그룹에 매핑되는 세션 키를 매칭시켜 저장하는 그룹관리부; 및 상기 단말장치로부터 가입 요청 메시지가 수신되면, 상기 메시지를 전송한 단말장치가 속하는 그룹을 확인하여, 상기 그룹과 매핑되는 세션 키를 상기 단말장치로 전송하고, 상기 단말장치가 속하는 그룹에 전송할 데이터를 상기 세션 키를 기반으로 암호화하여 브로드캐스팅하도록 제어하는 제어 처리부;를 포함할 수 있다.
이 때, 상기 제어 처리부는 상기 단말장치가 속하는 그룹에 전송할 데이터를 브로드캐스팅하기 위한 클래스 타입으로 변경할 수 있다.
상술한 바와 같은 목적을 달성하기 위한 통신 네트워크 서비스를 제공하는 서비스 서버의 제어에 따라 동작하는 단말장치는 상기 서비스 서버에 가입 요청 메시지를 전송하면, 상기 서비스 서버로부터 상기 단말장치가 속하는 그룹에 대응하는 세션 키를 수신하고, 상기 서비스 서버가 브로드캐스팅한 데이터를 수신하면, 상기 수신한 데이터를 상기 수신한 세션 키를 기반으로 상기 수신한 데이터를 복호화하는 메시지 처리부;를 포함할 수 있다.
이 때, 상기 서비스 서버의 제어에 따라서, 데이터 전송 타입을 정의하는 클래스 타입을 설정하되, 상기 클래스 타입은 그룹별로 데이터를 브로드캐스팅하는 클래스 타입을 포함하는 클래스 설정부;를 더 포함하고, 상기 메시지 처리부는 상기 클래스 설정부에 의해 그룹별로 데이터를 브로드캐스팅하는 클래스 타입으로 설정된 경우, 수신한 데이터를 상기 수신한 세션 키를 기반으로 상기 수신한 데이터를 복호화하는 것을 특징으로 할 수 있다.
본 발명에 따르면, 단말장치가 서비스 서버로 가입 요청 메시지를 전송하면, 이를 수신한 서비스 서버가 상기 가입 요청 메시지를 전송한 단말장치가 속하는 그룹을 확인하여, 상기 그룹에 매핑되는 세션 키를 단말장치로 전송하고, 상기 세션 키를 기반으로 암호화한 데이터를 브로드캐스팅하여, 상기 브로드캐스팅된 데이터를 수신한 단말장치 중 상기 그룹에 속한, 즉, 상기 그룹에 매핑되는 세션 키를 저장하고 있는 단말장치가 상기 세션 키를 기반으로 데이터를 복호화함으로써, 효율적으로 무선 패킷을 전송할 수 있다.
특히, 동일한 데이터를 수신한 동일한 그룹에 속한 IoT 단말장치가 상기 암호화된 데이터를 수신한 후, 서비스 서버로 ACK 신호를 전송하지 않음으로써, 무선 자원의 효율적인 관리가 가능하다.
아울러, 상술한 효과 이외의 다양한 효과들이 후술될 본 발명의 실시 예에 따른 상세한 설명에서 직접적 또는 암시적으로 개시될 수 있다.
도1은 본 발명의 실시 예에 따른 데이터 전송 시스템의 주요 구성을 나타낸 도면이다.
도2는 본 발명의 실시 예에 따른 추가되는 데이터 전송을 위한 클래스 타입을 설명하기 위한 도면이다.
도3은 본 발명에 따른 단말장치의 주요 구성을 도시한 블록도이다.
도4는 본 발명에 따른 서비스 서버에 포함된 네트워크 서버의 주요 구성을 도시한 블록도이다.
도5는 일반적인 실시 예에 따른 하나 이상의 단말장치에 동일한 데이터를 전송하는 방법을 설명하기 위한 데이터 흐름도이다.
도6 내지 도8은 본 발명의 실시 예에 따른 데이터 전송 방법을 설명하기 위한 데이터 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
아울러, 본 발명의 범위 내의 실시 예들은 컴퓨터 실행가능 명령어 또는 컴퓨터 판독가능 매체에 저장된 데이터 구조를 가지거나 전달하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는, 범용 또는 특수 목적의 컴퓨터 시스템에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 예로서, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EPROM, CD-ROM 또는 기타 광 디스크 저장장치, 자기 디스크 저장장치 또는 기타 자기 저장장치, 또는 컴퓨터 실행가능 명령어, 컴퓨터 판독가능 명령어 또는 데이터 구조의 형태로 된 소정의 프로그램 코드 수단을 저장하거나 전달하는 데에 이용될 수 있고, 범용 또는 특수 목적 컴퓨터 시스템에 의해 액세스 될 수 있는 임의의 기타 매체와 같은 물리적 저장 매체를 포함할 수 있지만, 이에 한정되지 않는다.
이하의 설명 및 특허 청구 범위에서, "네트워크" 또는 "통신망"은 컴퓨터 시스템들 및/또는 모듈들 간의 전자 데이터를 전송할 수 있게 하는 하나 이상의 데이터 링크로서 정의된다. 정보가 네트워크 또는 다른 (유선, 무선, 또는 유선 또는 무선의 조합인) 통신 접속을 통하여 컴퓨터 시스템에 전송되거나 제공될 때, 이 접속은 컴퓨터-판독가능매체로서 이해될 수 있다. 컴퓨터 판독가능 명령어는, 예를 들면, 범용 컴퓨터 시스템 또는 특수 목적 컴퓨터 시스템이 특정 기능 또는 기능의 그룹을 수행하도록 하는 명령어 및 데이터를 포함한다. 컴퓨터 실행가능 명령어는, 예를 들면, 어셈블리어, 또는 심지어는 소스코드와 같은 이진, 중간 포맷 명령어일 수 있다.
아울러, 본 발명은 퍼스널 컴퓨터, 랩탑 컴퓨터, 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램 가능한 가전제품(programmable consumer electronics), 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 모바일 전화, PDA, 페이저(pager) 등을 포함하는 다양한 유형의 컴퓨터 시스템 구성을 가지는 네트워크 컴퓨팅 환경에서 실시될 수 있다.
본 발명은 또한 네트워크를 통해 유선 데이터 링크, 무선 데이터 링크, 또는 유선 및 무선 데이터 링크의 조합으로 링크된 로컬 및 원격 컴퓨터 시스템 모두가 태스크를 수행하는 분산형 시스템 환경에서 실행될 수 있다. 분산형 시스템 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치될 수 있다.
아울러, 본 발명에 따른 실시 예는 협대역(Narrowband) 시스템이라면 어디에든 적용가능 하며, 구체적으로 LoRa 기술에 적용될 수 있다.
따라서, 앞으로 서술할 본 발명에 따른 명세서에는 LoRa 기술을 기반으로 설명을 한다. 다만, 이러한 실시 예가 LoRa 기술에 한정되는 것은 아니며, LTN, Weightless, RPMA 등의 협대역 통신 네트워크 시스템이 적용가능한 곳이라면 어느 곳에나 적용이 가능하다.
또한, 본 발명의 실시 예에 따른 데이터 전송 방식은 설명의 편의상 “Class D” 타입으로 정의한다.
이는 본 발명의 기준이 되는 LoRa 기술에 정의된 데이터 전송 타입인 “Class A/B/C” 타입과 구별하기 위함이다.
다만, 본 발명의 실시 예에 따른 데이터 전송 방식이 반드시 “Class D” 타입으로 호칭되어야 할 필요는 없고, 다양한 방식으로 명명하여 호칭하는 것이 가능하다.
상기 각 데이터 전송 방법에 따른 데이터 전송의 클래스 타입에 대한 설명은 후술하도록 한다.
그러면 이제, 도면을 참조하여 본 발명의 실시 예에 따른 데이터 전송 방법을 실행하기 위한 데이터 전송 시스템의 주요 구성에 대해 설명하도록 한다.
도1을 참조하면, 본 발명에 따른 데이터 전송 시스템은 하나 이상의 단말장치(100), 하나 이상의 게이트웨이(200), 서비스 서버(500)를 포함하여 구성될 수 있다.
또한, 상기 서비스 서버(500)는 네트워크 서버(300)와 어플리케이션 서버(400)로 구성될 수 있다.
네트워크 서버(300)와 어플리케이션 서버(400)는 그 기능이 각각 분리되어 2개의 서버로서 구현될 수도 있지만, 하나의 서버로 합쳐져서 구현될 수도 있다.
한편, 서비스 서버(500)가 네트워크 서버(300)와 어플리케이션 서버(400)로 구분되어 구현되는 경우, 본 발명에 따른 실시 예는 네트워크 서버(300)를 중심으로 구현된다.
앞으로 본 발명의 실시 예에 따른 데이터 전송 방법의 설명에서는 서비스 서버(500)를 네트워크 서버(300)와 어플리케이션 서버(400)로 구분하여 설명하도록 하겠다.
하지만, 이러한 경우에도 설명되는 본 발명의 실시 예에 따른 데이터 전송 방법에서 네트워크 서버(300)와 어플리케이션 서버(400)가 합쳐진 서비스 서버(500)에서 동작할 수 있음을 명심하여야 한다.
먼저, 단말장치(100)는 본 발명의 LoRa 기술이 적용된 LoRa 디바이스를 의미하는 것으로, 사물 통신이 가능한 다양한 사물 기기가 이에 해당될 수 있다. 예를 들어 각종 센서, 제어 장치, 휴대폰, 냉장고, 청소기, 세탁기, 공장 기기, 자동 판매기 등 다양한 사물(things)이 본 발명의 단말장치(100)로 동작 가능하다.
이러한 단말장치(100)는 LoRa 타입별로 데이터 전송 동작이 달라질 수 있다. 예를 들어, 단말장치(100)의 하향링크 데이터 패킷 수신 여부에 따라 클래스가 구분될 수 있는데, 이에 대하여 도2를 참조하여 설명하도록 한다.
도2를 살펴보면, 단말장치(100)에서 데이터 전송을 위한 MAC 레이어(10)를 통하여 구분된 클래스를 변경하여 데이터를 전송할 수 있는데, 이러한 클래스를 변경하여 데이터를 전송하기 위한 도2와 같은 MAC 레이어(10)가 가지고 있는 정보는 단말장치(100)뿐만 아니라, 게이트웨이(200), 서비스 서버(500)가 공유하고 있을 수 있다.
우선, 클래스 A(11)는 단말장치(100)가 상향링크 데이터 패킷 전송 후 정해진 시간(예컨대, 1초) 간격으로 정해진 횟수만큼 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 B(13)는 단말장치(100)가 정해진 주기(예컨대, 128초)마다 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미하며, 클래스 C(15)는 항상 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입을 의미한다.
그리고 클래스 D(17)는 본 발명의 실시 예에 따라 추가되는 클래스 타입으로서, 특정 그룹(Group)에 속하는 IoT 단말장치들이 동시에 동일한 데이터를 수신하는 경우, 동일한 데이터를 브로드캐스팅(Broadcasting)하여 상기 특정 그룹에 속하는 IoT 단말 장치들이 동시에 브로드캐스팅한 데이터 패킷을 수신할 수 있는 클래스 타입을 의미한다.
단말장치(100)는 최초 설정 시 클래스 타입이 지정될 수 있으며, 서비스 동작 중에 클래스 타입이 변경될 수 있다. 다시 말해 본 발명의 단말장치(100)는 클래스 B로 설정되어 정해진 주기에 따라 하향링크 데이터 패킷을 수신하는 상태이더라도, 서비스 서버(500)의 요청에 따라 클래스 D로 변경하여 서비스 서버(500)가 게이트웨이(200)를 통해 브로드캐스팅한 데이터 패킷을 수신하도록 설정을 변경할 수 있다.
특히, 본 발명의 실시 예에 따른 단말장치(100)는 네트워크 서버(300)로 가입 요청(Join Request) 메시지를 전송하면, 네트워크 서버(300)로부터 가입 승인(Join Accept) 메시지와 함께, 가입요청 메시지를 전송한 단말장치(100)가 속하는 그룹(Group)의 세션 키(Session Key)를 수신하게 된다.
상기 수신하는 세션 키에는 네트워크 세션 키(Network Session Key)와 어플리케이션 세션 키(Application Session Key)가 있으며, 네트워크 세션 키는 맥(MAC) 전용 데이터, 즉, 클래스 타입 변경 요청 및 이에 대응하는 응답 메시지 등 네트워크 서버(300)와 단말장치(100) 간의 요청, 응답 등의 시그널링(Signaling) 신호를 암복호화 하기 위한 세션 키이며, 어플리케이션 세션 키는 단말장치(100)가 어플리케이션 서버(400) 혹은 네트워크 서버(300)로부터 수신하는 구체적인 어플리케이션 데이터 메시지를 암복호화 하기 위한 세션 키를 의미할 수 있다.
그 이후, 단말장치(100)는 클래스 변경 요청을 네트워크 서버(300)로부터 수신하고, 클래스를 변경할지 여부를 판단하여, 클래스 D로 변경할 수 있다.
클래스 D로 변경하기 위한 클래스 변경 요청의 수신은 네트워크 서버(300)로부터 가입 승인 메시지 및 세션 키 중 적어도 하나와 함께 수신할 수 있다.
즉, 단말장치(100)는 가입 승인 메시지와 세션 키를 수신한 후, 클래스 변경 요청 메시지를 수신할 수 있지만, 가입 승인 메시지 및 세션 키와 함께 클래스 변경 요청 메시지를 수신할 수도 있고, 가입 승인 메시지 및 세션 키 중 어느 하나와 함께 클래스 변경 요청 메시지를 수신할 수도 있다.
그리고 네트워크 서버(300)가 게이트웨이(200)를 통해 브로드캐스팅한 신호를 수신하여, 기 수신한 세션 키를 이용하여 데이터를 복호화할 수 있다.
또한, 여기서 단말장치(100)는 네트워크 서버(300)로 상기 데이터를 정상적으로 수신하였다는 신호인 ACK 신호를 전송하지 않는다.
이는, 무선자원의 효율적 할당을 위함이다.
게이트웨이(200)는 단말장치(100)에 연결되며 단말장치(100)로부터 전달되는 정보를 네트워크 서버(300)로 전달하고, 네트워크서버(300)로부터 전달되는 정보를 단말장치(100)로 전달하는 역할을 수행한다. 특히 본 발명의 게이트웨이(200)는 LoRa 기술이 적용된 기지국이 될 수 있으며, 동시 송신이 가능한 확산 스펙트럼 CDMA(Code Division Multiple Access) 방식으로 패킷을 송수신할 수 있다.
또한, 본 발명의 게이트웨이(200)는 복수 개의 단말장치(100)와 연결될 수 있는데, 할당되거나 일정 반경 내 위치하는 단말장치(100)로부터 전달되는 정보를 네트워크 서버(300)로 전송하며, 이때 자신의 식별번호를 포함하여 전송할 수 있다. 이를 통해 네트워크 서버(300)는 단말장치(100)가 연결된 게이트웨이(200)를 확인할 수 있으며, 어플리케이션 서버(500)로부터 전달되는 데이터 패킷을 해당 게이트웨이(200)로 정확하게 전달하는 과정을 수행하게 된다.
또한, 본 발명의 실시 예에 따른 게이트 웨이(200)는 단말장치(100)와 네트워크 서버(300)의 클래스 타입이 클래스 D로 변경된 경우, 네트워크 서버(300)로부터 전달받은 데이터를 브로드캐스팅하여 게이트웨이(200)에 할당되거나 일정 반경 내에 위치하는 단말장치(100) 모두가 상기 전달받은 데이터를 수신할 수 있도록 할 수 있다.
네트워크 서버(300)는 단말장치(100)를 인증하고, 패킷의 송수신을 지원하는 교환기 역할을 하는 노드를 의미한다. 보다 구체적으로 설명하면 네트워크 서버(300)는 단말장치(100)와 어플리케이션 서버(400) 간의 가입 절차를 중계할 수 있다. 즉, 단말장치(100)로부터 어플리케이션 서버(400)에 연결하기 위한 가입 요청 메시지가 전달되면 상기 가입 요청 메시지에 포함된 어플리케이션 식별 정보를 이용하여 어플리케이션 서버(400)를 확인하고, 확인된 어플리케이션 서버(400)로 가입 요청메시지를 전달한다. 그리고 어플리케이션 서버(400)로부터 가입 요청메시지에 대한 확인 메시지가 전달되면 네트워크 아이디 및 단말장치 주소 정보를 확인하여 이를 어플리케이션 서버(400)로 전달하여, 어플리케이션 서버(400)에서의 암호화를 위한 세션 키 생성 과정을 지원할 수 있다.
이러한 과정을 거쳐 가입 절차가 완료되면, 이후의 네트워크 서버(300)는 단말장치(100) 및 어플리케이션 서버(500) 간의 송수신되는 데이터 패킷에 대한 무결성 검증을 수행할 수 있으며, 이때 상기 세션 키를 이용하여 무결성 검증을 수행할 수 있게 된다.
특히, 본 발명의 실시 예에 따른 네트워크 서버(300)는 하나 이상의 단말장치(100)가 속하는, 즉, 복수의 단말장치(100)에서 각 단말장치(100)가 속하는 그룹을 네트워크 서버(300)에 사전에 설정할 수 있고, 이 때, 각 그룹에 매핑되는 세션 키를 설정할 수 있다.
상기 세션 키는 그룹별로 달리 설정될 수 있으며, 동일한 그룹에 속하는 복수의 단말장치(100)에 전송할 데이터를 상기 세션 키를 기반으로 암복호화 할 수 있으며, 앞서 설명한 것과 같이 상기 세션 키는 네트워크 세션 키와 어플리케이션 세션 키로 구분될 수 있다.
각 단말장치(100)에 따른 그룹 설정과, 각 그룹에 따른 세션 키의 설정을 마치고 난 후, 단말장치(100)로부터 가입 요청 메시지를 수신하면, 상기 가입 요청 메시지를 전송한 단말장치(100)가 속하는 그룹을 설정된 정보로부터 확인하여, 해당 그룹에 매핑되는 네트워크 세션 키와 어플리케이션 세션 키를 가입 승인 메시지와 함께 단말장치(100) 전송할 수 있다.
그리고 해당 그룹에 속하는 복수의 단말장치(100)에 동일한 데이터를 브로드캐스팅 하기 위한 클래스 타입인 “클래스 D”로 단말장치(100)와 게이트웨이(200), 네트워크 서버(300)를 변경하고 게이트웨이(200) 당 하나의 데이터를 전송할 수 있다.
이 때, 네트워크 서버(300)는 단말장치(100)와 게이트웨이(200)의 클래스 타입을 “클래스 D”로 변경하기 위한 클래스 변경 요청 메시지를 전송하게 되는데, 이러한 클래스 변경 요청 메시지는 가입 승인 메시지 및 세션 키 중 적어도 하나와 함께 전송할 수 있고, 가입 승인 메시지 및 세션 키를 전송한 후, 필요에 따라 전송할 수도 있다.
이 때, 전송하는 데이터는 각 그룹에 매핑되는 세션 키를 기반으로 암호화하여 전송될 수 있다.
어플리케이션 서버(400)는 네트워크 서버(300)와 연결되며, 네트워크 서버(300)로부터 전달되는 단말장치(100)가 전송한 각종 정보를 이용하여 어플리케이션 별로 고유 서비스를 관리, 제어하는 역할을 수행할 수 있다. 이러한 어플리케이션 서버(400)는 복수 개 존재할 수 있으며, 온도 조절, 방사선 관리, 생활폐기물 관리, 선적관리, 주차관리, 대기오염관리, 화재관리, 수질오염 관리 등 다양한 어플리케이션 서비스를 제공할 수 있다. 즉, 본 발명의 어플리케이션 서버(400)는 단말장치(100)가 생성하는 각종 정보를 네트워크 서버(300)를 거쳐 수집하고, 이에 대응하는 제어 정보를 네트워크 서버(300)를 거쳐 단말장치(100)로 전송하게 된다.
본 발명의 실시 예에 따른 데이터 전송을 위한 IoT 시스템을 구성하는 각 장치에 탑재되는 프로세서는 본 발명에 따른 방법을 실행하기 위한 프로그램 명령을 처리할 수 있다. 일 구현 예에서, 이 프로세서는 싱글 쓰레드(Single-threaded) 프로세서일 수 있으며, 다른 구현 예에서 본 프로세서는 멀티 쓰레드(Multithreaded) 프로세서일 수 있다. 나아가 본 프로세서는 메모리 혹은 저장 장치 상에 저장된 명령을 처리하는 것이 가능하다.
이상으로 본 발명의 실시 예에 따른 데이터 전송 방법을 구현하기 위한 시스템에 대해서 살펴보았다.
이하, 본 발명의 실시 예에 따른 단말장치(100)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도3은 본 발명에 따른 단말장치(100)의 주요 구성을 도시한 블록도이다.
도3을 참조하면, 본 발명의 단말장치(100)는 저장모듈(110), 통신모듈(130), 센서모듈(150), 제어모듈(170)을 포함하여 구성될 수 있다.
저장모듈(110)은 데이터를 저장하기 위한 장치로, 주 기억 장치 및 보조 기억 장치를 포함하고, 단말 장치(100)의 기능 동작에 필요한 응용 프로그램을 저장한다. 이러한 저장 모듈(110)은 크게 프로그램 영역과 데이터 영역을 포함할 수 있다. 여기서, 단말 장치(100)는 사용자의 요청에 상응하여 각 기능을 활성화하는 경우, 제어 모듈(170)의 제어 하에 해당 응용 프로그램들을 실행하여 각 기능을 제공하게 된다.
통신모듈(130)은 게이트웨이(200)와 데이터를 송수신하기 위한 장치이다.
통신 모듈(130)은 송신되는 신호의 주파수를 상승 변환 및 증폭하는 RF 송신 수단과 수신되는 신호를 저잡음 증폭하고 주파수를 하강 변환하는 RF 수신 수단, 특정 통신 방식에 따른 통신 프로토콜을 처리하기 위한 데이터 처리 수단 등을 포함한다. 이러한 통신 모듈(130)는 무선통신 모듈(미도시) 및 유선통신 모듈(미도시) 중 적어도 하나를 포함할 수 있다. 그리고, 무선통신 모듈은 무선 통신 방법에 따라 데이터를 송수신하기 위한 구성이며, 단말 장치(100)가 무선 통신을 이용하는 경우, 무선망 통신 모듈, 무선랜 통신 모듈 및 무선팬 통신 모듈 중 어느 하나를 이용하여 데이터를 게이트웨이(200)와 송수신할 수 있다.
센서모듈(150)은 단말장치(100)에 탑재된 하나 이상의 센서로부터 상기 하나 이상의 센서가 측정한 센싱정보를 수집하기 위한 장치이며, 상기 센서모듈(150)은 하나 이상의 센서가 측정한 센싱 정보를 수집하여 제어모듈(390)로 전달할 수 있다.
또한, 제어모듈(170)은 메시지처리부(171), 클래스 설정부(173)을 포함하여 구성될 수 있다.
메시지 처리부(171)는 네트워크 서버(300)에 가입 요청 메시지를 전송하면, 단말장치(100)가 속하는 그룹에 대응하는 세션 키를 수신할 수 있다.
이 때, 세션 키는 가입 승인 메시지와 함께 수신할 수 있고, 클래스 변경 요청 메시지와 함께 수신할 수 있으며, 상기 가입 승인 메시지 및 클래스 변경 요청 메시지 모두와 함께 수신할 수도 있다.
그리고 네트워크 서버(300)가 게이트 웨이(200)를 통해 브로드캐스팅한 데이터를 수신하면, 상기 기 수신한 세션 키를 기반으로 데이터를 복호화 할 수 있다.
클래스 설정부(173)는 기 설정된 조건에 따라 클래스 타입 변경 여부를 결정할 수 있다.
특히, 본 발명에 따른 실시 예에 있어서, 클래스 설정부(173)는 네트워크 서버(300)가 브로드캐스팅하는 데이터를 수신하기 위한 클래스 타입, 즉, 클래스 D로의 변경 여부를 결정할 수 있다.
이상, 본 발명에 따른 단말장치(100)의 주요 구성 및 동작 방법에 대해 설명하였다.
이하, 본 발명의 실시 예에 따른 네트워크 서버(300)의 주요 구성 및 동작 방법에 대해 설명하도록 한다.
도4는 본 발명에 따른 네트워크 서버(300)의 주요 구성을 도시한 블록도이다.
도4를 참조하면, 네트워크 서버(300)는 네트워크 인터페이스 모듈(310), 저장모듈(320), 제어모듈(330), 사용자 인터페이스 모듈(340)을 포함하여 구성될 수 있다.
네트워크 인터페이스 모듈(310)은 어플리케이션 서버(400) 혹은 게이트웨이(200)로부터 데이터를 송수신하는 장치이다.
네트워크 서버(300)는 이러한 네트워크 인터페이스 모듈(310)을 통해서 원격지에 위치한 장치와 정보를 송수신할 수 있다.
네트워크 인터페이스(310)는, 예를 들면, 네트워크 인터페이스 카드 및 대응하는 네트워크 드라이버 인터페이스 사양(Network Driver Interface Specification: "NDIS") 스택과 같은 하나 이상의 소프트웨어 및/또는 하드웨어 모듈의 논리적 조합으로 나타낼 수 있다.
저장모듈(320)는 하나 이상의 단말장치(100) 각각과 각각의 단말장치(100)가 속하는 그룹, 각 그룹에 매핑되는 세션 키를 매칭시켜 그룹관리 DB(321) 형태로 저장할 수 있다.
제어 모듈(330)은 각 단말장치(100)가 속하는 그룹 및 각 그룹에 대응하는 세션 키를 설정하고, 단말장치(100)로부터 가입 요청 메시지가 수신되면, 상기 메시지를 전송한 단말장치(100)가 속하는 그룹을 확인하여, 상기 그룹과 매핑되는 세션 키를 단말장치(100)로 전송할 수 있다.
이 때, 세션 키는 가입 승인 메시지 및 클래스 변경 요청 메시지 중 적어도 하나와 함께 전송할 수 있고, 상기 세션 키는 앞서 설명한 바와 같이 네트워크 세션 키와 어플리케이션 세션 키로 구분될 수 있다.
그리고 제어 모듈(330)는 상기 단말장치(100)가 속하는 그룹에 전송할 데이터를 브로드캐스팅 하기 위한 클래스 타입인 클래스 D로 클래스 타입을 변경하고, 상기 그룹에 전송할 데이터를 해당 그룹에 매핑되는 세션 키를 기반으로 암호화하여 게이트웨이(200)를 통해 브로드캐스팅하도록 제어할 수 있다.
사용자 인터페이스 모듈(340)은 외부 소스로부터 데이터를 송수신하는 장치이다.
특히, 본 발명에서 사용자 또는 관리자는 사용자 인터페이스 모듈(340)을 통해 하나 이상의 단말장치(100) 각각이 속하는 그룹을 설정하고, 각 그룹에 매핑되는 세션 키를 설정할 수 있다.
또한, 사용자 인터페이스 모듈(340)은 모뎀(예를 들면, 표준 모뎀, 케이블 모뎀, 또는 디지털 가입자선(digital subscriber line: “DSL”) 모뎀)에 연결될 수 있으며, 이러한 모뎀을 통해 외부 소스로부터 데이터를 수신하고/거나 외부 소스로 데이터를 전송할 수 있다.
이러한 본 발명의 실시 예에 따른 단말장치(100) 및 네트워크 서버(300)는 하드웨어적으로는 통상적인 웹서버(Web Server) 또는 네트워크 서버와 동일한 구성을 하고 있다. 그러나, 소프트웨어적으로는 C, C++, Java, Visual Basic, Visual C 등과 같은 언어를 통하여 구현되는 프로그램 모듈(Module)을 포함한다.
한편, 본 발명의 각 장치에 탑재되는 메모리는 그 장치 내에서 정보를 저장한다. 일 구현예의 경우, 메모리는 컴퓨터로 판독 가능한 매체이다. 일 구현 예에서, 메모리는 휘발성 메모리 유닛 일 수 있으며, 다른 구현예의 경우, 메모리는 비휘발성 메모리 유닛 일 수도 있다. 일 구현예의 경우, 저장장치는 컴퓨터로 판독 가능한 매체이다. 다양한 서로 다른 구현 예에서, 저장장치는 예컨대 하드디스크 장치, 광학디스크 장치, 혹은 어떤 다른 대용량 저장장치를 포함할 수도 있다.
비록 본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
이상, 본 발명의 실시 예에 따른 네트워크 서버(300)의 주요 구성 및 동작 방법에 대해 설명하였다.
이하, 본 발명의 실시 예에 따른 데이터 전송 및 수신 방법에 대해 설명하도록 한다.
먼저, 본 발명의 실시 예에 따른 데이터 전송 및 수신 방법을 설명하기에 앞서, 본 발명의 실시 예에 따른 클래스 D 타입을 추가하기 전, 즉, 클래스 A/B/C 타입 중 어느 하나의 경우에 따른 데이터 전송 및 수신 방법에 대해 설명하도록 한다.
도5를 참조하면, 제1, 2, 3 단말장치(100a~100c)가 게이트웨이(200)를 통해 네트워크 서버(300)로 가입 요청 메시지를 전송하면, 네트워크 서버(300)는 각 가입 요청 메시지에 대응하여 가입 승인 메시지를 제1, 2, 3 단말장치(100a~100c)에 전송하여 가입 절차를 진행한다(S101~S112).
그 후, 네트워크 서버(300)는 데이터를 전송하기 위하여, Unicast 또는 Multicast 형태로 제1, 2, 3 단말장치(100a~100c) 각각에 게이트웨이를 통해 데이터를 전송하고 전송한 데이터가 정상적으로 수신되었다는 메시지인 ACK 메시지를 제1, 2, 3 단말장치(100a~100c)로부터 수신하게 된다(S113~S124).
이 경우, 제1, 2, 3 단말장치(100a~100c)에 전송하는 데이터가 동일한 데이터라고 할지라도 네트워크 서버(300)는 Unicast 또는 Multicast 형태로 제1, 2, 3단말장치(100a~100c) 각각에 데이터를 전송하여야 하고, 제1, 2, 3 단말장치(100a~100c) 각각이 네트워크 서버에 ACK 메시지를 전송하도록 하여, 무선 자원 할당에 혼잡이 발생하고, 따라서 효율적인 무선 패킷 전송이 어려웠다.
특히, ACK 메시지를 전송할 필요가 없는 경우에도 ACK 메시지를 네트워크 서버(300)에 전송하게 되어, 필요 이상의 무선 자원이 할당되는 문제점이 있었다.
따라서, 본 발명은 이러한 문제점을 해결하기 위한 것으로, 복수의 단말장치(100)에 동일한 데이터를 전송하여야 하는 경우, 특히, 복수의 단말장치(100)가 상기 데이터를 수신하고 ACK 메시지의 전송할 필요가 없는 경우, 브로드캐스팅 전송 방법을 통하여 복수의 단말장치(100)에 동일한 데이터를 효율적으로 전송할 수 있는 방안을 제기하고자 한다.
이에 대해 도6 내지 도8을 참조하여 설명하도록 한다.
도6 내지 도8은 본 발명의 실시 예에 따른 데이터 전송 및 수신 방법을 설명하기 위한 데이터 흐름도이다.
먼저, 도 6을 참조하면, 네트워크 서버(300)는 제1, 2 단말장치(100a,100b)를 제1 그룹으로 등록하고, 제1 그룹에 대응하는 세션 키를 설정할 수 있다(S201).
이 때, 세션 키는 네트워크 세션 키와 어플리케이션 세션 키로 구분될 수 있는데, 네트워크 세션 키는 맥(MAC) 전용 데이터, 즉, 클래스 타입 변경 요청 및 이에 대응하는 응답 메시지 등 네트워크 서버(300)와 단말장치(100) 간의 요청, 응답 등의 시그널링(Signaling) 신호를 암복호화 하기 위한 세션 키이며, 어플리케이션 세션 키는 단말장치(100)가 어플리케이션 서버(400) 혹은 네트워크 서버(300)로부터 수신하는 구체적인 어플리케이션 데이터 메시지를 암복호화 하기 위한 세션 키를 의미할 수 있다.
이후, 게이트웨이(200)를 통해 제1, 2단말장치(100a, 100b)로부터 가입 요청 메시지가 전송되면, 제1, 2단말장치(100a, 100b)가 제 1그룹인 것을 확인 하고, 제1, 2단말장치(100a, 100b)에 가입 승인 메시지와 함께 제1 그룹에 매핑되는 네트워크 세션 키와 어플리케이션 세션 키 중 적어도 하나의 세션 키를 전송하여 제1, 2 단말장치(100a, 100b)의 가입(Join) 절차를 진행할 수 있다(S202~S211).
한편, 제3 단말장치(100c)로부터 가입 요청 메시지가 게이트웨이(200)를 통해 전송되면, 네트워크 서버(300)는 제3 단말장치(100c)가 어느 그룹에도 속하지 않음을 확인하고, 어떠한 세션 키도 포함시키지 않고, 가입 승인 메시지를 전송하여 제3 단말장치(100c)의 가입 절차를 진행할 수 있다(S212~S216).
이 때, 만약, 제 3단말장치(100c)가 제2 그룹에 속해 있다면, 네트워크 서버(300)는 제3단말장치(100c)가 제2 그룹에 속해 있음을 확인하고, 제2 그룹에 매핑되는 세션 키를 가입 승인 메시지와 함께 전송할 수도 있을 것이다.
각 단말장치(100a~100c)에 대한 가입 절차가 진행된 이후, 제1 그룹에 속하는 제1, 2 단말장치(100a,100b)에 동일한 데이터를 전송하기 위한 클래스 타입인 클래스 D로 변경하게 되는데(S217), 클래스 D로의 클래스 타입 변경은 사용자 또는 관리자가 단말장치(100a~100c), 게이트웨이(200), 네트워크 서버(300)를 클래스 D 타입으로 변경 설정할 수도 있으나, 도 7과 같은 방법으로 클래스 타입을 변경할 수 있다.
도7을 보면, 네트워크 서버(300)와 어플리케이션 서버(400)를 포함하는 서비스 서버(500)가 클래스 D 타입으로의 변경 요청 메시지를 게이트웨이(200)를 통해서 각 단말장치(100)에 전송한다(S301~S303). 이 때, 네트워크 서버(300)에서 게이트웨이(200)로 전달되는 패킷은 캡슐화되어 전달될 수 있으며, 게이트웨이(200)는 상기 캡슐화된 패킷을 디캡슐화하여 단말장치(100)로 전송할 수 있게 된다.
한편, 상기 클래스 D 타입으로의 변경 요청 메시지는 가입 승인 메시지 및 세션 키 중 적어도 하나를 전송할 때, 함께 전송할 수 있으며, 가입 승인 메시지 및 세션 키 중 적어도 하나와 함께 클래스 D 타입으로의 변경 요청 메시지를 단말장치(100)가 수신한 경우에도 도7에서 S303 이후의 과정은 동일하게 진행될 수 있다.
이후, 단말장치(100)는 클래스 D 타입으로의 변경 여부를 판단할 수 있다(S304). 단말장치(100)는 4가지 클래스 타입 중 어느 하나의 클래스 타입으로 설정될 수 있는데, 본 발명의 실시 예에 따라 단말장치(100)의 현재 클래스가 클래스 A 내지 C를 의미할 경우, 상기 클래스 변경 요청 메시지에 따라 클래스 D로 변경할 수 있다(S304).
이때 기 설정된 변경 조건을 확인하여 클래스 D로 변경을 금지하는 조건이 설정되어 있으면, 클래스 변경을 수행하지 않는다.
참고로, 4가지 클래스 타입에는 A/B/C/D의 클래스 타입이 있을 수 있으며, 클래스 A는 단말장치(100)가 상향링크 데이터 패킷 전송 후 정해진 시간(예컨대, 1초) 간격으로 정해진 횟수만큼 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입이며, 클래스 B는 단말장치(100)가 정해진 주기(예컨대, 128초)로 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입이며, 클래스 C는 항상 하향링크 데이터 패킷을 수신할 수 있는 클래스 타입이다.
특히, 클래스 D는 본 발명의 실시 예에 따라 추가되는 클래스 타입으로서, 동일한 그룹에 동일한 데이터를 전송할 때, 브로드캐스팅 방식으로 데이터 패킷을 수신할 수 있는 클래스 타입이다.
이후에 단말장치(100)는 현재 클래스 타입을 포함하는 클래스 안내 메시지를 게이트웨이(200) 및 네트워크 서버(300)를 거쳐 어플리케이션 서버(400)로 전송할 수 있다. 즉, 상기 클래스 안내 메시지에 포함된 클래스 타입은 변경된 클래스 타입이 될 수 있으며 변경되지 않은 클래스 타입이 될 수도 있다(S305~S307).
가입 절차 진행 후, 단말장치(100)의 클래스 타입이 클래스 D로 설정된 이후의 데이터 전송 과정을 도8을 통해서 살펴보면, 네트워크 서버(300)는 그룹 1에 속하는 단말장치, 즉, 제1, 2단말장치(100a, 100b)에 전송할 데이터를 제1 그룹에 매핑되는 네트워크 세션 키와 어플리케이션 세션 키를 기반으로 암호화하고(S401), 데이터를 게이트웨이(200)로 전송할 수 있다(S402).
이 때, 브로드캐스팅을 통해 복수의 단말장치(100)에 동일한 데이터를 전송할 것인바, 게이트웨이(200) 당 하나의 데이터를 전송할 수 있다.
즉, 단말장치(100)의 수만큼 게이트웨이(200)에 데이터를 전송하는 것이 아닌, 데이터를 수신할 그룹의 수만큼 데이터를 전송할 수 있다.
상기 데이터를 수신한 게이트웨이(200)는 게이트웨이(200)에 할당된 단말장치(100) 또는 게이트웨이(200)에 할당된 일정 지역에 상기 수신한 데이터를 브로드캐스팅할 수 있다(S403).
도8에서 상기 게이트웨이(200)에 할당된 단말장치(100)가 제1 내지 제3 단말장치(100a~100c)이거나 게이트웨이(200)에 할당된 지역에 위치한 단말장치(100)가 제1 내지 제3 단말장치(100a~100c)인 경우, 제1 내지 제3 단말장치(100a~100c)가 상기 브로드캐스팅한 데이터를 수신하게 된다.
그리고 제1, 2 단말장치(100a~100b)는 제1 그룹에 속하여 가입 절차에서 수신한 제1 그룹에 대응하는 네트워크 세션 키와 어플리케이션 세션 키를 기반으로 수신한 데이터를 복호화할 수 있다(S404~S405).
제 3단말장치(100c)는 제1 그룹이 아니어서, 가입 절차에서 제 1그룹에 해당하는 네트워크 세션 키와 어플리케이션 세션 키를 받지 못하였으므로, 수신한 데이터를 복호화 할 수 없고, 따라서 상기 수신한 데이터의 내용을 알지 못하게 된다(S406).
또한, 본 발명의 실시 예에 따르면, 상기 데이터를 복호화 한 제1그룹에 속하는 제1,2 단말장치(100a~100b)는 상기 데이터를 정상적으로 수신하였다는 신호인 ACK 메시지를 네트워크 서버(300)로 전송하지 않는다.
이를 통하여 무선자원 할당의 효율화를 가져올 수 있다.
이상, 본 발명의 실시 예에 따른 데이터 전송 및 수신 방법에 대해 설명하였다.
상술한 바와 같은 본 발명의 데이터 전송 및 수신 방법은 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체의 형태로 제공될 수도 있다. 이때, 기록매체에 기록된 프로그램은 컴퓨터에서 읽히어 설치되고 실행됨으로써 전술한 기능들을 실행할 수 있다.
여기서, 컴퓨터가 기록매체에 기록된 프로그램을 읽어 들여 프로그램으로 구현된 기능들을 실행시키기 위하여, 전술한 프로그램은 컴퓨터의 프로세서(CPU)가 컴퓨터의 장치 인터페이스(Interface)를 통해 읽힐 수 있는 C, C++, JAVA, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다.
이러한 코드는 전술한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Function Code)를 포함할 수 있고, 전술한 기능들을 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수도 있다. 또한, 이러한 코드는 전술한 기능들을 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조 되어야 하는지에 대한 메모리 참조 관련 코드를 더 포함할 수 있다. 또한, 컴퓨터의 프로세서가 전술한 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 컴퓨터의 프로세서가 컴퓨터의 통신 모듈을 이용하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야만 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수도 있다.
이러한, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM)과 같은 반도체 메모리를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(Functional) 프로그램과 이와 관련된 코드 및 코드 세그먼트 등은, 기록매체를 읽어서 프로그램을 실행시키는 컴퓨터의 시스템 환경 등을 고려하여, 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론되거나 변경될 수도 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
본 발명은 데이터 전송 및 수신 방법에 관한 것으로서, 더욱 상세하게는 협대역(Narrowband) 통신 기술이 적용된 IoT(Internet of Things, 사물인터넷)시스템, 특히, LoRa(Long Range Sub-Ghz Module) 기술이 적용된 IoT 시스템에 있어서, 무선 자원의 점유를 최소화하면서 동일한 데이터를 다수의 IoT 단말로 전송하여 무선 패킷 전송을 효율적으로 하기 위한 데이터 전송 및 수신 방법, 이를 위한 장치에 관한 것이다.
본 발명에 따르면, 단말장치가 서비스 서버로 가입 요청 메시지를 전송하면, 이를 수신한 서비스 서버가 상기 가입 요청 메시지를 전송한 단말장치가 속하는 그룹을 확인하여, 상기 그룹에 매핑되는 세션 키를 단말장치로 전송하고, 상기 세션 키를 기반으로 암호화한 데이터를 브로드캐스팅하여, 상기 브로드캐스팅된 데이터를 수신한 단말장치 중 상기 그룹에 속한, 즉, 상기 그룹에 매핑되는 세션 키를 저장하고 있는 단말장치가 상기 세션 키를 기반으로 데이터를 복호화함으로써, 효율적으로 무선 패킷을 전송할 수 있다.
특히, 동일한 데이터를 수신한 동일한 그룹에 속한 IoT 단말장치가 상기 암호화된 데이터를 수신한 후, 서비스 서버로 ACK 신호를 전송하지 않음으로써, 무선 자원의 효율적인 관리가 가능하다.
따라서, 상기의 데이터 전송 및 수신 방법을 통해 IoT 서비스 산업 발전에 이바지 할 수 있고, 더불어, 본 발명은 시판 또는 영업의 가능성이 충분할 뿐만 아니라 현실적으로 명백하게 실시할 수 있는 정도이므로 산업상 이용가능성이 있다.
100: 단말장치 200: 게이트웨이 300: 네트워크 서버
400: 어플리케이션 서버 500: 서비스 서버

Claims (10)

  1. 하나 이상의 단말장치로 통신 네트워크 서비스를 제공하는 서비스 서버에서의 데이터 전송 방법에 있어서,
    상기 서비스 서버가 상기 단말장치로부터 가입 요청(Join Request) 메시지를 수신하는 단계;
    상기 가입 요청 메시지를 전송한 단말장치가 속하는 그룹(Group)을 확인하는 단계;
    상기 단말장치가 속하는 그룹과 매핑되는 세션 키(Session Key)를 상기 단말장치로 전송하는 단계;
    상기 단말장치의 데이터 전송 타입을 그룹 별로 데이터를 브로드캐스팅하기 위한 클래스 타입으로 변경하는 단계;
    상기 단말장치가 속하는 그룹에 전송할 데이터를 상기 세션 키를 기반으로 암호화하는 단계; 및
    상기 암호화된 데이터를 브로드캐스팅(Broadcasting)하는 단계;
    를 포함하는 데이터 송수신 방법.
  2. 제1항에 있어서, 상기 확인하는 단계 이전에
    상기 하나 이상의 단말장치 각각이 속하는 그룹을 설정하는 단계; 및
    상기 그룹에 매핑되는 세션 키를 설정하는 단계;
    를 더 포함하는 것을 특징으로 하는 데이터 송수신 방법.
  3. 제1항에 있어서,
    상기 변경하는 단계는
    상기 클래스 타입으로 변경하기 위한 클래스 변경 요청 메시지를 상기 단말장치로 전송하는 단계; 및
    상기 단말장치로부터 클래스 타입을 포함하는 클래스 안내 메시지를 수신하는 단계;
    를 포함하는 것을 특징으로 하는 데이터 송수신 방법.
  4. 제1항에 있어서, 상기 전송하는 단계는
    상기 세션 키를 가입 승인(Join Accept) 메시지 및 클래스 변경 요청 메시지 중 적어도 하나와 함께 전송하는 것을 특징으로 하는 데이터 송수신 방법.
  5. 제1항에 있어서, 상기 세션 키는
    맥(MAC) 전용 데이터를 암복호화하는 네트워크 세션 키(Network Session Key) 및 어플리케이션 데이터 메시지를 암복호화하는 어플리케이션 세션 키(Application Session Key) 중 적어도 하나를 포함하는 것을 특징으로 하는 데이터 송수신 방법.
  6. 통신 네트워크 서비스를 제공하는 서비스 서버의 제어에 따라 동작하는 단말장치에서의 데이터 송수신 방법에 있어서,
    상기 단말장치가 상기 서비스 서버에 가입 요청 메시지를 전송하는 단계;
    상기 단말장치가 속하는 그룹에 대응하는 세션 키를 상기 서비스 서버로부터 수신하는 단계;
    상기 서비스 서버가 상기 단말 장치의 데이터 전송 타입을 정의하는 클래스 타입을 브로드캐스팅하는 데이터를 수신하기 위한 클래스 타입으로 변경하는 단계;
    상기 서비스 서버가 브로드캐스팅한 데이터를 수신하는 단계; 및
    상기 수신한 세션 키를 기반으로 상기 수신한 데이터를 복호화하는 단계;
    를 포함하는 데이터 송수신 방법.
  7. 제1항 내지 제6항 중 어느 하나의 항에 기재된 방법을 실행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.
  8. 제1항 내지 제6항 중 어느 하나의 항에 기재된 방법을 실행시키도록 구현되어 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램.
  9. 하나 이상의 단말장치로 통신 네트워크 서비스를 제공하는 서비스 서버에 있어서,
    상기 단말장치, 상기 단말장치가 속하는 그룹, 상기 그룹에 매핑되는 세션 키를 매칭시켜 저장하는 저장모듈; 및
    상기 단말장치로부터 가입 요청 메시지가 수신되면, 상기 메시지를 전송한 단말장치가 속하는 그룹을 확인하여, 상기 그룹과 매핑되는 세션 키를 상기 단말장치로 전송하고, 상기 단말장치의 데이터 전송 타입을 그룹 별로 데이터를 브로드캐스팅하기 위한 클래스 타입으로 변경한 후, 상기 단말장치가 속하는 그룹에 전송할 데이터를 상기 세션 키를 기반으로 암호화하여 브로드캐스팅하도록 제어하는 제어 모듈;
    를 포함하는 서비스 서버.
  10. 통신 네트워크 서비스를 제공하는 서비스 서버의 제어에 따라 동작하는 단말장치에 있어서,
    상기 서비스 서버의 제어에 따라서, 데이터 전송 타입을 정의하는 클래스 타입을 설정하되, 상기 클래스 타입은 그룹별로 데이터를 브로드캐스팅하는 클래스 타입을 포함하는 클래스 설정부; 및
    상기 서비스 서버에 가입 요청 메시지를 전송하면, 상기 서비스 서버로부터 상기 단말장치가 속하는 그룹에 대응하는 세션 키를 수신하고, 상기 클래스 설정부에 의해 그룹별로 데이터를 브로드캐스팅하는 클래스 타입으로 설정된 이후, 상기 서비스 서버가 브로드캐스팅한 데이터를 수신하면, 상기 수신한 데이터를 상기 수신한 세션 키를 기반으로 상기 수신한 데이터를 복호화하는 메시지 처리부;
    를 포함하는 단말장치.
KR1020150163562A 2015-11-20 2015-11-20 데이터 송수신 방법, 및 이를 위한 장치 KR102209718B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150163562A KR102209718B1 (ko) 2015-11-20 2015-11-20 데이터 송수신 방법, 및 이를 위한 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150163562A KR102209718B1 (ko) 2015-11-20 2015-11-20 데이터 송수신 방법, 및 이를 위한 장치

Publications (2)

Publication Number Publication Date
KR20170059319A KR20170059319A (ko) 2017-05-30
KR102209718B1 true KR102209718B1 (ko) 2021-01-28

Family

ID=59053042

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150163562A KR102209718B1 (ko) 2015-11-20 2015-11-20 데이터 송수신 방법, 및 이를 위한 장치

Country Status (1)

Country Link
KR (1) KR102209718B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101926276B1 (ko) 2017-12-13 2018-12-06 전자부품연구원 LoRaWAN 기반 대규모 시설물 관리를 위한 사물인터넷 네트워크 관리방법 및 이를 적용한 사물인터넷 네트워크 서버 및 단말
KR102027255B1 (ko) * 2019-04-09 2019-10-01 (주)에어포인트 저전력 광역 통신 네트워크에서 게이트웨이 선택과 종단단말기의 식별자 및 세션키 분배 시스템 및 방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9450928B2 (en) * 2010-06-10 2016-09-20 Gemalto Sa Secure registration of group of clients using single registration procedure
KR101684076B1 (ko) 2015-03-18 2016-12-20 문종섭 사물인터넷에서 스마트 디바이스 또는 스마트 센서와 네트워크 게이트웨이 사이의 안전한 데이터 전달을 위한 통신 시스템

Also Published As

Publication number Publication date
KR20170059319A (ko) 2017-05-30

Similar Documents

Publication Publication Date Title
US20160278090A1 (en) Method and controller for controlling at least one load
RU2411672C2 (ru) Транспортировка трафика управления через ячеистую сеть с множеством сетевых сегментов
KR101742997B1 (ko) 데이터 송수신 방법 및 이를 위한 장치
CN109309650B (zh) 处理数据的方法、终端设备和网络设备
JP2012522452A (ja) 無線通信システムにおける制御情報送受信方法及び装置
KR20140135080A (ko) 무선 통신시스템에서의 UEs간 통신 방법
CN108809496B (zh) 一种信息处理方法以及设备
KR20200112559A (ko) 통신 방법 및 통신 디바이스
CN111434062A (zh) 用于蜂窝通信的改进的辅助重传技术
KR101767889B1 (ko) 단말 식별 방법 및 이를 위한 장치
JP2019525648A (ja) スケジューリング割当情報送信方法及びシステム並びに装置
KR102120770B1 (ko) 데이터 전송 및 수신 방법, 그리고 이를 위한 장치
KR102209718B1 (ko) 데이터 송수신 방법, 및 이를 위한 장치
KR101827926B1 (ko) 단말 장치와 서비스 서버 간의 연결 설정 방법 및 이를 위한 장치
JP5298051B2 (ja) 無線通信システムおよび無線通信システムにおける基地局の物理レイヤセルid割り当て方法
CN113517956A (zh) 一种清空缓存的方法及装置
US20110069832A1 (en) Wireless network probe system and method
KR102199443B1 (ko) 버퍼 크기 제어 방법 및 이를 위한 장치
KR102183958B1 (ko) 데이터 전송 제어 방법 및 이를 위한 장치
CN110278600B (zh) 一种终端与基站的通信、终端的入网方法和装置
Accettura et al. Addressing scalable, optimal, and secure communications over LoRa networks: Challenges and research directions
KR101867592B1 (ko) 기계간 통신에서의 송신 방법
JP6975823B2 (ja) サーバーモジュール内蔵のゲートウェイ装置及び通信システム
US20100067438A1 (en) Communication method and, terminal apparatus and base station apparatus using the method
CN109792459B (zh) 用于向至少一个设备发送数据的方法、数据发送控制服务器、存储服务器、处理服务器和系统

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