KR102074916B1 - Rpl 기반 분산 mqtt 브로커 구조 - Google Patents

Rpl 기반 분산 mqtt 브로커 구조 Download PDF

Info

Publication number
KR102074916B1
KR102074916B1 KR1020180090041A KR20180090041A KR102074916B1 KR 102074916 B1 KR102074916 B1 KR 102074916B1 KR 1020180090041 A KR1020180090041 A KR 1020180090041A KR 20180090041 A KR20180090041 A KR 20180090041A KR 102074916 B1 KR102074916 B1 KR 102074916B1
Authority
KR
South Korea
Prior art keywords
broker
mqtt
distributed
rpl
mqtt broker
Prior art date
Application number
KR1020180090041A
Other languages
English (en)
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 KR1020180090041A priority Critical patent/KR102074916B1/ko
Application granted granted Critical
Publication of KR102074916B1 publication Critical patent/KR102074916B1/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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services
    • H04L67/2809
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

RPL 기반 분산 MQTT 브로커 구조를 개시한다.
본 실시예는 단일 MQTT 브로커 구조에서는 브로커를 선택할 수 없으나 분산 MQTT 브로커를 배치하는 경우 위치나 전파환경에 따라 분산 MQTT 브로커를 선택하기 때문에 메시지 지연시간도 줄일 수 있으며, 위험 부담을 분산할 수 있도록 하는 RPL 기반 분산 MQTT 브로커 구조를 제공한다.

Description

RPL 기반 분산 MQTT 브로커 구조{Distributed MQTT Broker Architecture based on RPL}
본 실시예는 RPL 기반 분산 MQTT 브로커 구조에 관한 것이다.
이하에 기술되는 내용은 단순히 본 실시예와 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다.
IoT(Internet of Things)는 통신 가능한 각종 사물들을 인터넷으로 연결시키는 기술이다. 통신 가능한 사물로는 스마트폰, 가전제품, 웨어러블 장치, 센서 등의 다양한 종류의 임베디드 장치들이 있다. 최근 IoT는 다양한 산업분야에 적용되어 스마트 시티, 스마트 홈, 스마트 그리드, 스마트 팩토리 등과 같은 새로운 서비스에 활용되고 있다. IoT를 위해 다양한 통신 프로토콜이 개발되었으며 가까운 미래에 IoT 기기의 수가 기하급수적으로 늘어날 것으로 기대된다. IoT 기기를 인터넷과 연결하기 위해서는 반드시 IP(Internet Protocol) 주소가 필요하다. 하지만, 종래의 IPv4 주소체계로는 기하급수적으로 늘어난 IoT 기기들에 주소를 할당하는 것이 어려워 대부분의 IoT 프로토콜들은 IPv6 주소체계를 이용하고 있다.
MQTT(Message Queuing Telemetry Transport)는 TCP/IP(Transmission Control Protocol/Internet Protocol) 기반의 경량 메시징 프로토콜로 센서와 같이 기능이 제한된 IoT 장치에 활용 가능한 기술이다. MQTT는 서버 역할을 하는 브로커를 통해 발행(Publish)/구독(Subscribe) 기반으로 토픽 기반의 메시지를 주고받는다. 토픽을 브로커에 발행하기 위한 발행자(Publisher)는 주로 저전력 센서들을 활용한다.
발행자는 지정된 하나의 MQTT 브로커에 이벤트 발생시 또는 주기적으로 토픽을 발행한다. 구독자(Subscriber)는 MQTT 브로커에 발행된 토픽을 구독한다. 단일 MQTT 브로커는 모든 토픽 정보가 하나의 MQTT 브로커에 집중되기 때문에 위험부담이 크다. MQTT 브로커의 연결이 끊어지는 경우 모든 발행자와 구독자 간의 발행과 구독이 불가능해진다. MQTT 브로커의 디스커넥트(Disconnect)는 서비스 품질의 저하를 야기할 수 있다. 악의적 사용자에 의해 MQTT IoT, MQTT, RPL, WSN, 6LowPAN브로커 보안 시스템이 해킹되면 토픽 삭제 또는 임의 변경이 쉽게 일어날 수 있다.
또한, 하나의 MQTT 브로커에 트래픽이 집중되게 되면 발행과 구독의 지연시간이 늘어나 서비스 품질이 떨어질 수 있다. 이러한 문제를 해결하기 위해 다수의 MQTT를 활용하여 정보를 분산시키는 방법과 MQTT 브로커 브릿지를 이용하여 브로커 간 메시지를 교환하고 백업하는 방법이 활용되고 있다. 하지만, 전술한 기술들로는 기존 문제를 모두 해결하기는 어렵다는 문제가 있다.
본 실시예는 단일 MQTT 브로커 구조에서는 브로커를 선택할 수 없으나 분산 MQTT 브로커를 배치하는 경우 위치나 전파환경에 따라 분산 MQTT 브로커를 선택하기 때문에 메시지 지연시간도 줄일 수 있으며, 위험 부담을 분산할 수 있도록 하는 RPL 기반 분산 MQTT 브로커 구조를 제공하는 데 목적이 있다.
본 실시예의 일 측면에 의하면, RPL(IPv6 Routing Protocol for LLN(Low-Power and Lossy Networks)) 기반으로 MQTT 브로커(Message Queuing Telemetry Transport Broker)로 토픽(Topic)을 발행(Publish)하거나 상기 MQTT 브로커로부터 발행된 토픽을 구독(Subscribe)하는 RPL 디바이스; 상기 RPL 디바이스로부터 토픽을 구독하거나 상기 RPL 디바이스로 토픽을 발행하는 단일 MQTT 브로커; 상기 단일 MQTT 브로커와 별도로 상기 RPL 디바이스로부터 토픽을 구독하거나 상기 RPL 디바이스로 토픽을 발행하는 분산 MQTT 브로커; 및 상기 단일 MQTT 브로커 및 상기 분산 MQTT 브로커 중 어느 하나와 상기 RPL 디바이스 간에 MQTT 패킷을 중계할 때, 상기 MQTT 패킷 내에 할당된 특정 비트값을 근거로 상기 단일 MQTT 브로커와 상기 분산 MQTT 브로커 중 어느 하나를 결정하는 보더 라우터(Border Router)를 포함하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 구조를 제공한다.
이상에서 설명한 바와 같이 본 실시예에 의하면, 단일 MQTT 브로커 구조에서는 브로커를 선택할 수 없으나 분산 MQTT 브로커를 배치하는 경우 위치나 전파환경에 따라 분산 MQTT 브로커를 선택하기 때문에 메시지 지연시간도 줄일 수 있으며, 위험 부담을 분산할 수 있는 효과가 있다.
본 실시예에 의하면, 발행자나 구독자가 이동하는 개체일 때 유용한 기술로 다양한 응용 가능하며, 단일 MQTT 브로커에서 발생하는 취약점을 해결할 수 있을 뿐만 아니라, 새로운 응용 모델에도 적용할 수 있는 효과가 있다.
도 1은 본 실시예에 따른 RPL 기반 분산 MQTT 브로커 구조를 나타낸 도면이다.
도 2는 본 실시예에 따른 RPL 패킷 포맷을 나타낸 도면이다.
도 3은 본 실시예에 따른 RPL 기반 분산 MQTT 브로커 구조의 동작을 설명하기 위한 도면이다.
도 4는 본 실시예에 따른 RPL 기반 분산 MQTT 브로커 선택 방법을 설명하기 위한 순서도이다.
이하, 본 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 실시예에 따른 RPL 기반 분산 MQTT 브로커 구조를 나타낸 도면이다.
본 실시예에서는 단일 MQTT 브로커에서 발생하는 문제를 해결하기 위해 분산 MQTT 브로커 구조를 제공한다.
분산 MQTT 브로커 구조에서는 발행자(Publisher)와 구독자(Subscriber) 간의 위치나 환경에 따라 MQTT 브로커에 토픽을 발행/구독한다. 분산 MQTT 브로커 구조는 RPL(IPv6 Routing Protocol for Low-power and Lossy networks) 기반으로 구현된다. RPL은 IPv6 기반 라우팅 프로토콜로 센서와 같은 경량 IoT 기기들을 주로 이용한다.
RPL은 트리 구조로 네트워크를 구성한다. 트리의 루트는 6LoWPAN Border Router(6LBR)로 자식 노드들로부터 정보를 수집하여 인프라 네트워크로 전달하는 게이트웨이 역할을 한다.
본 실시예에 따른 분산 MQTT 브로커 구조를 지원하기 위해 보더 라우터(120a,120b)마다 활용 가능한 MQTT 브로커의 IP 주소를 기 저장한다.
보더 라우터(120a,120b)와 연결된 자식 노드인 RPL 디바이스(110)는 보더 라우터(120a,120b)가 기 저장하고 있는 MQTT 브로커의 IP주소나 자신이 저장하고 있는 MQTT 브로커의 IP 주소 중 위치나 환경에 따라 선택할 수 있는 환경을 제공한다.
분산 MQTT 브로커 구조로 동작하기 위해 RPL 프로토콜의 DAO(Destination Advertisement Object) 패킷의 8비트 리저브(Reserved) 영역 중 1bit에 분산 브로커를 선택할 수 있는 비트값을 할당한다.
DAO 패킷 내의 리저브 영역에 분산 브로커를 선택할 수 있는 비트값을 할당하는 방식은 표준을 기반으로 하기 때문에, 모든 RPL 프로토콜로 동작하는 장치들과 호환 가능하다.
본 실시예에 따른 RPL 기반 분산 MQTT 브로커 구조는 RPL 디바이스(110), 보더 라우터(120a,120b), 단일 MQTT 브로커(130a), 분산 MQTT 브로커(130b)를 포함한다. RPL 기반 분산 MQTT 브로커 구조에 포함된 구성요소는 반드시 이에 한정되는 것은 아니다.
RPL 디바이스(110)는 IoT 디바이스로서 RPL(IPv6 Routing Protocol for LLN(Low-Power and Lossy Networks)) 기반으로 MQTT 브로커(Message Queuing Telemetry Transport Broker)로 토픽(Topic)을 발행(Publish)하거나 MQTT 브로커로부터 발행된 토픽을 구독(Subscribe)한다.
RPL 디바이스(110)는 DIS(DODAG Informational Solicitation) 패킷을 보더 라우터로 전송한다. RPL 디바이스(110)는 보더 라우터로부터 DIS 패킷에 대응하는 DIO(DODAG Information Object) 패킷을 수신한다. RPL 디바이스(110)는 DIO 패킷을 이용하여 이웃 노드의 정보를 업데이트한다.
RPL 디바이스(110)는 보더 라우터(120a,120b)로부터 DIO 패킷을 수신한 후 보더 라우터(120a,120b)로 DAO(Destination Advertisement Object) 패킷을 전송한다. DAO 패킷은 8비트(bit)의 리저브(Reserved) 영역 중 1비트를 DBS 비트로 할당한다.
RPL 디바이스(110)는 보더 라우터(120a,120b)로부터 DAO 패킷에 대응하는 DAO-ACK 패킷을 수신한다. RPL 디바이스(110)는 DAO 패킷을 이용하여 루트 노드까지의 경로를 확보한다.
보더 라우터(120a,120b)가 단일 MQTT 브로커(130a)로부터 연결(Connect-Ack) 완료 신호를 수신하면, RPL 디바이스(110)는 보더 라우터(120a,120b)를 경유하여 단일 MQTT 브로커(130a)로 토픽을 발행하거나 단일 MQTT 브로커(130a)로부터 토픽을 구독한다.
보더 라우터(120a,120b)가 분산 MQTT 브로커(130b)로부터 연결(Connect-Ack) 완료 신호를 수신하면, RPL 디바이스(110)는 보더 라우터(120a,120b)를 경유하여 분산 MQTT 브로커(130b)로 토픽을 발행하거나 분산 MQTT 브로커(130b)로부터 토픽을 구독한다.
보더 라우터(Border Router)(120a,120b)는 단일 MQTT 브로커(130a) 및 분산 MQTT 브로커(130b) 중 어느 하나와 RPL 디바이스(110) 간에 MQTT 패킷을 중계할 때, MQTT 패킷 내에 할당된 특정 비트값을 근거로 단일 MQTT 브로커와 분산 MQTT 브로커 중 어느 하나를 결정한다.
보더 라우터(120a,120b)는 RPL 디바이스(110)로부터 수신된 DAO 패킷에 리저브(Reserved) 영역에 할당된 DBS(Distributed Broker Selection) 비트값을 기반으로 단일 MQTT 브로커 및 분산 MQTT 브로커 중 어느 하나를 결정한 후 해당 브로커로 연결하는 과정을 수행한다.
보더 라우터(120a,120b)는 DAO 패킷 내의 리저브 영역에 할당된 DBS 비트값이 0인 경우, RPL 단말기에서 기 설정한 단일 브로커 IP 주소에 대응하는 단일 MQTT 브로커(130a)로 연결(Connect)한다. 이후 보더 라우터(120a,120b)는 단일 MQTT 브로커(130a)로부터 연결(Connect-Ack) 완료 신호를 수신한다.
보더 라우터(120a,120b)는 DAO 패킷의 내의 리저브 영역에 할당된 DBS 비트값이 1인 경우, 보더 라우터(120a,120b) 내의 테이블 내에 기 저장된 분산 브로커 IP 주소를 불러온다. 보더 라우터(120a,120b)는 테이블에서 불러온 분산 브로커 IP 주소에 대응하는 분산 MQTT 브로커로 연결(Connect)한다. 이후 보더 라우터(120a,120b)는 분산 MQTT 브로커(130b)로부터 연결(Connect-Ack) 완료 신호를 수신한다.
보더 라우터(120a,120b)는 DBS 비트값이 1인 경우, 테이블 내에 기 저장된 분산 브로커 IP 주소를 불러오고, 분산 브로커 IP 주소에 대응하는 분산 MQTT 브로커(130b)로 연결(Connect)을 시도하였으나 환경 요인에 따라 분산 MQTT 브로커로 연결이 실패한 경우, RPL 디바이스(110)에서 기 설정한 단일 브로커 IP 주소에 대응하는 단일 MQTT 브로커(130a)로 연결(Connect)한 후 단일 MQTT 브로커(130a)로부터 연결(Connect-Ack) 완료 신호를 수신한다.
단일 MQTT 브로커(130a)는 RPL 디바이스(110)로부터 토픽을 구독하거나 RPL 디바이스로 토픽을 발행한다. 분산 MQTT 브로커(130b)는 단일 MQTT 브로커(130a)와 별도로 RPL 디바이스(110)로부터 토픽을 구독하거나 RPL 디바이스(110)로 토픽을 발행한다.
본 실시예에 따른 분산 MQTT 브로커 구조는 RPL 디바이스(110)들의 위치나 환경에 따라 가까운 거리에 있는 지역 MQTT 브로커로 토픽을 발행하거나 지역 MQTT 브로커로부터 토픽을 구독한다.
본 실시예에 따른 분산 MQTT 브로커 구조는 응용 모델에 따라 단일 MQTT 브로커 구조로 동작하거나 분산 MQTT 브로커 구조로 동작 가능하다. 분산 MQTT 브로커 구조는 RPL 기반으로 설계된다.
본 실시예에 따른 모든 RPL 디바이스(110)는 이동성을 갖는 개체로 가정한다. RPL 디바이스(110)는 위치마다 연결되는 보더 라우터(120a,120b)가 달라진다.
도 1에 도시된 바와 같이, RPL 디바이스(110)가 보더 라우터(120a,120b) 중 제1 보더 라우터(120a)로 연결된 상태에서 다른 장소로 이동하면, RPL 디바이스(110)가 제2 보더 라우터(120b)로 연결한다.
제1 보더 라우터(120a)는 복수의 MQTT 브로커 중 RPL 디바이스(110)에 기 설정된 단일 MQTT 브로커(130a)에 대한 단일 브로커 IP 주소를 저장하고 있기 때문에 RPL 디바이스(110)가 제1 보더 라우터(120a)와 연결된 경우에는 토픽을 분산 MQTT 브로커 중 단일 MQTT 브로커(130a)로 발행하거나 단일 MQTT 브로커(130a)로부터 토픽을 구독한다.
RPL 디바이스(110)가 다른 장소로 이동하여, 동일한 RPL 디바이스(110)가 제2 보더 라우터(120b)로 접속하는 경우, RPL 디바이스(110)는 제2 보더 라우터(120b) 내의 테이블에 기 저장된 복수의 MQTT 브로커 중 분산 MQTT 브로커(130b)에 대응하는 분산 브로커 IP 주소로 토픽을 발행하거나 분산 MQTT 브로커(130b)로부터 토픽을 구독한다.
전술한 동작방식을 기반으로 RPL 디바이스(110)는 위치나 환경에 따라 연결하는 MQTT 브로커를 선택하도록 하는 RPL 기반 분산 MQTT 브로커 구조를 제공하여 단일 MQTT 브로커 대비 위험부담을 줄일 수 있으며, 새로운 응용 기술에도 적용 가능하다.
본 실시예에 따른 분산형 MQTT 브로커 구조는 발행자(Publisher) 또는 구독자(Subscriber)가 이동하는 개체일 때 유용한 기술로서 다양한 분야에 응용이 가능하다.
예컨대, 전기차 충전소 관리를 위한 응용분야에서 MQTT를 활용하는 경우 전기차가 RPL 디바이스(110)로서 발행자(Publisher) 역할을 수행하여 충전설비가 구독자 (Subscriber)로서 역할을 수행한다.
전기차(발행자)는 충전설비(구독자)로 배터리 충전률 등과 같은 정보를 발행한다. 충전설비(구독자)는 전기차(발행자)가 발행한 토픽을 구독하여 전체 충전소의 사용현황과 예상 대기시간 등에 대한 정보를 수집할 수 있다.
전술한 응용분야는 단일 MQTT 브로커만을 이용하는 경우에는 구현할 수 없으나, 본 실시예에 따른 분산형 MQTT 브로커 구조는 단일 MQTT 브로커에서 발생하는 취약점을 해결 가능하며 새로운 응용 모델에도 다양하게 적용할 수 있다.
도 2는 본 실시예에 따른 RPL 패킷 포맷을 나타낸 도면이다.
RPL 기반으로 분산 MQTT 브로커 구조를 설계하기 위해 RPL 디바이스(110)가 자식 노드로서 6LBR(6LoWPAN Border Router)인 보더 라우터(120a,120b)들의 참여를 요청하는 DAO 패킷을 이용한다. DAO(Destination Advertisement Object) 패킷의 구조는 도 2에 도시된 바와 같다.
DAO 패킷을 이용하여 RPL 디바이스(110)가 분산 MQTT 브로커(130b)로 토픽을 발행하거나 분산 MQTT 브로커(130b)로부터 토픽을 구독할지의 여부를 결정하기 위해 DAO 패킷 내의 8비트의 리저브(Reserved) 영역 중 1비트를 분산 브로커 선택(DBS: Distributed Broker Selection) 비트로 이용한다.
DBS 비트값이 1인 경우, 보더 라우터(120a,120b)에 기 저장된 분산 MQTT 브로커(130b)로 토픽을 발행하거나 분산 MQTT 브로커(130b)로부터 토픽을 구독한다.
DBS 비트값이 0인 경우, RPL 디바이스(110) 내에 기 저장된 단일 MQTT 브로커(130a)로 토픽을 발행하거나 단일 MQTT 브로커(130a)로부터 토픽을 구독한다.
MQTT의 DAO 패킷의 리저브(reserved) 값은 0이기 때문에 본 실시예에 따른 분산 MQTT 브로커 구조가 구현되지 않은 RPL 디바이스(110)는 기존 방식대로 호환성 문제없이 단일 MQTT 브로커(130a)를 사용할 수 있다.
도 3은 본 실시예에 따른 RPL 기반 분산 MQTT 브로커 구조의 동작을 설명하기 위한 도면이다.
도 3에 도시된 바와 같이, RPL 기반 분산 MQTT 브로커 동작과정은 다음과 같다.
① RPL 디바이스(110)는 DIS(DODAG Informational Solicitation) 패킷을 이용하여 보더 라우터(120a,120b)로 DIO(DODAG Information Object) 패킷을 요청한다.
② RPL 디바이스(110)는 보더 라우터(120a,120b)로부터 주기적으로 DIO 패킷을 수신하여 이웃 노드의 정보를 업데이트한다.
③ RPL 디바이스(110)는 보더 라우터(120a,120b)로부터 DIO 패킷을 수신한 후 보더 라우터(120a,120b)로 DAO 패킷을 전송한다.
이웃 노드들을 탐색한 RPL 디바이스(110)는 DAO 패킷을 이용하여 루트 노드까지의 경로를 확보한다.
④ 보더 라우터(120a,120b)는 RPL 디바이스(110)로부터 DAO 패킷을 수신한다. 보더 라우터(120a,120b)는 RPL 디바이스(110)로부터 DAO 패킷을 정상적으로 수신하게 되면 DAO-ACK 패킷을 RPL 디바이스(110)로 전송한다.
보더 라우터(120a,120b)는 DAO 패킷의 리저브 영역에 할당된 DBS 비트값에 따라 이후 MQTT 메시지 수신했을 때 전달할 MQTT 브로커를 결정하다. 다시 말해, 보더 라우터(120a,120b)는 DAO 패킷에 리저브 영역에 할당된 DBS 비트값을 기반으로 단일 MQTT 브로커(130a) 또는 분산 MQTT 브로커(130b)와 연결하기 위한 연결 과정을 수행한다.
⑤ 보더 라우터(120a,120b)는 RPL 디바이스(110)로부터 수신한 DAO 패킷 내의 리저브 영역에 할당된 DBS 비트값이 0인 경우, 단일 MQTT 브로커로 연결하는 것으로 인지하여 보더 라우터(120a,120b) 내에 기 저장된 단일 MQTT 브로커(130a)로 연결(Connect)한다.
⑥ 단일 MQTT 브로커(130a)는 해당 보더 라우터(120a,120b)로 연결(Connect-Ack) 완료 신호를 전송한다.
⑤,⑥ 과정이 끝나면 RPL 디바이스(110)는 해당 보더 라우터(120a,120b)를 경유하여 단일 MQTT 브로커(130a)와 MQTT 발행 또는 구독 가능한 상태가 된다.
⑦ RPL 디바이스(110)는 해당 보더 라우터(120a,120b)를 경유하여 단일 MQTT 브로커(130a)로 토픽을 발행하거나 단일 MQTT 브로커(130a)로부터 토픽을 구독한다.
다시 말해, 보더 라우터(120a,120b)는 DAO 패킷의 DBS 값이 0인 경우에는 기존 MQTT 동작 방식과 동일하게 동작한다.
보더 라우터(120a,120b)는 만약, DAO 패킷의 내의 리저브 영역에 할당된 DBS 비트값이 1인 경우 DAO 패킷을 보낸 RPL 디바이스(110)의 IP 주소를 보더 라우터(120a,120b) 내의 테이블에 저장한다.
보더 라우터(120a,120b)는 MQTT 메시지를 수신할 때마다 테이블에 기 저장된 IP 주소와 MQTT 메시지의 소스 IP 주소를 비교하여 분산 MQTT 브로커로 전달할지의 여부를 판단한다.
⑧ 보더 라우터(120a,120b)는 RPL 디바이스(110)로부터 수신한 DAO 패킷 내의 리저브 영역에 할당된 DBS 비트값이 1인 경우, RPL 디바이스(110)의 IP 주소에 대응하는 분산 MQTT 브로커(분산 MQTT 브로커(130b))로 연결하는 것으로 인지하여 보더 라우터(120a,120b) 내에 RPL 디바이스(110)의 IP 주소에 대응하는 분산 MQTT 브로커(130b)로 연결(Connect)한다.
⑨ 분산 MQTT 브로커(130b)는 해당 보더 라우터(120a,120b)로 연결(Connect-Ack) 완료 신호를 전송한다.
⑧,⑨ 과정이 끝나면 RPL 디바이스(110)는 해당 보더 라우터(120a,120b)를 경유하여 분산 MQTT 브로커(130b)와 MQTT 발행 또는 구독 가능한 상태가 된다.
⑩ RPL 디바이스(110)는 해당 보더 라우터(120a,120b)를 이용하여 분산 MQTT 브로커(130b)로 토픽을 발행하거나 분산 MQTT 브로커(130b)로부터 토픽을 구독한다.
보더 라우터(120a,120b)는 DBS 비트값이 1인 경우 RPL 디바이스(110)의 IP 주소에 대응하는 분산 MQTT 브로커로 토픽을 발행하거나 단일 MQTT 브로커로부터 토픽을 구독한다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
110: RPL 디바이스 120a, 120b: 보더 라우터
130a, 130b: MQTT 브로커

Claims (8)

  1. RPL(IPv6 Routing Protocol for LLN(Low-Power and Lossy Networks)) 기반으로 MQTT 브로커(Message Queuing Telemetry Transport Broker)로 토픽(Topic)을 발행(Publish)하거나 상기 MQTT 브로커로부터 발행된 토픽을 구독(Subscribe)하는 RPL 디바이스;
    상기 RPL 디바이스로부터 토픽을 구독하거나 상기 RPL 디바이스로 토픽을 발행하는 단일 MQTT 브로커;
    상기 단일 MQTT 브로커와 별도로 상기 RPL 디바이스로부터 토픽을 구독하거나 상기 RPL 디바이스로 토픽을 발행하는 분산 MQTT 브로커; 및
    상기 단일 MQTT 브로커 및 상기 분산 MQTT 브로커 중 어느 하나와 상기 RPL 디바이스 간에 MQTT 패킷을 중계할 때, 상기 MQTT 패킷 내에 할당된 특정 비트값을 근거로 상기 단일 MQTT 브로커와 상기 분산 MQTT 브로커 중 어느 하나를 결정하는 보더 라우터(Border Router)
    를 포함하되, 상기 보더 라우터는 상기 RPL 디바이스로부터 수신된 DAO(Destination Advertisement Object) 패킷에 리저브(Reserved) 영역에 할당된 DBS(Distributed Broker Selection) 비트값을 기반으로 상기 단일 MQTT 브로커 및 상기 분산 MQTT 브로커 중 어느 하나를 결정한 후 해당 브로커로 연결하는 과정을 수행하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  2. 제 1 항에 있어서,
    상기 RPL 디바이스는 DIS(DODAG Informational Solicitation) 패킷을 상기 보더 라우터로 전송하고, 상기 보더 라우터로부터 상기 DIS 패킷에 대응하는 DIO(DODAG Information Object) 패킷을 수신하고, 상기 DIO 패킷을 이용하여 이웃 노드의 정보를 업데이트하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  3. 제 2 항에 있어서,
    상기 RPL 디바이스는,
    상기 보더 라우터로부터 상기 DIO 패킷을 수신한 후 상기 보더 라우터로 상기 DAO 패킷을 전송하고, 상기 보더 라우터로부터 상기 DAO 패킷에 대응하는 DAO-ACK 패킷을 수신하며, 상기 DAO 패킷을 이용하여 루트 노드까지의 경로를 확보하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  4. 삭제
  5. 제 3 항에 있어서,
    상기 보더 라우터는 상기 DAO 패킷 내의 상기 리저브 영역에 할당된 상기 DBS 비트값이 0인 경우, 상기 RPL 단말기에서 기 설정한 단일 브로커 IP 주소에 대응하는 상기 단일 MQTT 브로커로 연결(Connect)한 후 상기 단일 MQTT 브로커로부터 연결(Connect-Ack) 완료 신호를 수신하며,
    상기 RPL 디바이스는 상기 보더 라우터를 경유하여 상기 단일 MQTT 브로커로 토픽을 발행하거나 상기 단일 MQTT 브로커로부터 토픽을 구독하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  6. 제 3 항에 있어서,
    상기 보더 라우터는 상기 DAO 패킷의 내의 상기 리저브 영역에 할당된 상기 DBS 비트값이 1인 경우, 테이블 내에 기 저장된 분산 브로커 IP 주소를 불러오고, 상기 분산 브로커 IP 주소에 대응하는 상기 분산 MQTT 브로커로 연결(Connect)한 후 상기 분산 MQTT 브로커로부터 연결(Connect-Ack) 완료 신호를 수신하며,
    상기 RPL 디바이스는 상기 보더 라우터를 경유하여 상기 분산 MQTT 브로커로 토픽을 발행하거나 상기 분산 MQTT 브로커로부터 토픽을 구독하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  7. 제 3 항에 있어서,
    상기 보더 라우터는,
    상기 DBS 비트값이 1인 경우, 테이블 내에 기 저장된 분산 브로커 IP 주소를 불러오고, 상기 분산 브로커 IP 주소에 대응하는 상기 분산 MQTT 브로커로 연결(Connect)을 시도하였으나 환경 요인에 따라 상기 분산 MQTT 브로커로 연결이 실패한 경우, 상기 RPL 단말기에서 기 설정한 단일 브로커 IP 주소에 대응하는 상기 단일 MQTT 브로커로 연결(Connect)한 후 상기 단일 MQTT 브로커로부터 연결(Connect-Ack) 완료 신호를 수신하며,
    상기 RPL 디바이스는 상기 보더 라우터를 경유하여 상기 단일 MQTT 브로커로 토픽을 발행하거나 상기 단일 MQTT 브로커로부터 토픽을 구독하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
  8. 제 3 항에 있어서,
    상기 DAO 패킷은,
    8비트(bit)의 상기 리저브(Reserved) 영역 중 1비트를 상기 DBS 비트로 할당하는 것을 특징으로 하는 RPL 기반 분산 MQTT 브로커 시스템.
KR1020180090041A 2018-08-01 2018-08-01 Rpl 기반 분산 mqtt 브로커 구조 KR102074916B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180090041A KR102074916B1 (ko) 2018-08-01 2018-08-01 Rpl 기반 분산 mqtt 브로커 구조

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180090041A KR102074916B1 (ko) 2018-08-01 2018-08-01 Rpl 기반 분산 mqtt 브로커 구조

Publications (1)

Publication Number Publication Date
KR102074916B1 true KR102074916B1 (ko) 2020-02-07

Family

ID=69570144

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180090041A KR102074916B1 (ko) 2018-08-01 2018-08-01 Rpl 기반 분산 mqtt 브로커 구조

Country Status (1)

Country Link
KR (1) KR102074916B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102123314B1 (ko) * 2019-02-18 2020-06-17 금오공과대학교 산학협력단 단방향 데이터 전달기법을 적용한 mms 기반의 산업용 사물인터넷 플랫폼
CN113347074A (zh) * 2021-04-09 2021-09-03 成都中科创达软件有限公司 一种主题确定方法、相关方法、装置和系统
KR102348849B1 (ko) 2020-07-28 2022-01-11 서경대학교 산학협력단 오픈 소스 클라우드를 기반으로 하는 모드버스 응용 객체 저장 플랫폼 및 이를 이용한 통신 방법
KR102361484B1 (ko) 2020-11-12 2022-02-14 서경대학교 산학협력단 Amqp 기반 모드버스 게이트웨이 시스템 및 통신 방법
KR102362415B1 (ko) * 2020-10-22 2022-02-15 (주)나연테크 이동중인 수면케어용 IoT 단말기를 위한 로밍 시스템 및 방법
US11477303B1 (en) 2021-05-17 2022-10-18 Microsoft Technology Licensing, Llc Broker cell for distributed message system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol
KR20170125252A (ko) * 2016-05-04 2017-11-14 전자부품연구원 M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180065868A (ko) * 2016-12-07 2018-06-18 한국전자통신연구원 MQTT 기반의 IoT 게이트웨이를 이용한 SUN 센서 모니터링 방법 및 이를 위한 장치
KR20180071002A (ko) * 2016-12-19 2018-06-27 충남대학교산학협력단 Mqtt 어댑터 및 이를 이용한 토픽 처리 방법
KR20180073154A (ko) * 2016-12-22 2018-07-02 경희대학교 산학협력단 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016014516A1 (en) * 2014-07-21 2016-01-28 Convida Wireless, Llc Service layer interworking using mqtt protocol
KR20170125252A (ko) * 2016-05-04 2017-11-14 전자부품연구원 M2M/IoT 플랫폼에서 MQTT 프로토콜을 활용한 메시지 단편화 방법
KR20180031852A (ko) * 2016-09-19 2018-03-29 충남대학교산학협력단 Mqtt 프로토콜 연동을 위한 어댑터 및 그를 이용한 데이터 교환 시스템
KR20180065868A (ko) * 2016-12-07 2018-06-18 한국전자통신연구원 MQTT 기반의 IoT 게이트웨이를 이용한 SUN 센서 모니터링 방법 및 이를 위한 장치
KR20180071002A (ko) * 2016-12-19 2018-06-27 충남대학교산학협력단 Mqtt 어댑터 및 이를 이용한 토픽 처리 방법
KR20180073154A (ko) * 2016-12-22 2018-07-02 경희대학교 산학협력단 사물인터넷 환경에서 클라이언트 식별자를 이용하여 클라이언트 노드들을 논리적으로 그룹화하는 장치 및 방법

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102123314B1 (ko) * 2019-02-18 2020-06-17 금오공과대학교 산학협력단 단방향 데이터 전달기법을 적용한 mms 기반의 산업용 사물인터넷 플랫폼
KR102348849B1 (ko) 2020-07-28 2022-01-11 서경대학교 산학협력단 오픈 소스 클라우드를 기반으로 하는 모드버스 응용 객체 저장 플랫폼 및 이를 이용한 통신 방법
KR102362415B1 (ko) * 2020-10-22 2022-02-15 (주)나연테크 이동중인 수면케어용 IoT 단말기를 위한 로밍 시스템 및 방법
KR102361484B1 (ko) 2020-11-12 2022-02-14 서경대학교 산학협력단 Amqp 기반 모드버스 게이트웨이 시스템 및 통신 방법
CN113347074A (zh) * 2021-04-09 2021-09-03 成都中科创达软件有限公司 一种主题确定方法、相关方法、装置和系统
US11477303B1 (en) 2021-05-17 2022-10-18 Microsoft Technology Licensing, Llc Broker cell for distributed message system
US11792287B2 (en) 2021-05-17 2023-10-17 Microsoft Technology Licensing, Llc Broker cell for distributed message system

Similar Documents

Publication Publication Date Title
KR102074916B1 (ko) Rpl 기반 분산 mqtt 브로커 구조
US20220124147A1 (en) Application relocation method and apparatus
CN103339901B (zh) 内容导向网络环境中的终端和中间节点以及终端和中间节点的通信方法
CN101917707B (zh) 无线传感器网络的ip寻址方法及系统
CN113596191B (zh) 一种数据处理方法、网元设备以及可读存储介质
US9438555B2 (en) Communicating with a distribution system via an uplink access point
EP2388717B1 (en) Method of controlling mobile terminal, home hub, and visited hub in virtual group for content sharing
CN108476457A (zh) 在时隙化信道跳变网络中的分布式反应性资源和调度管理
WO2021168714A1 (zh) 一种发现应用的方法、装置及系统
EP3345341A1 (en) Direct replying actions in sdn switches
WO2021004444A1 (zh) 一种通信方法以及网元
CN102638396B (zh) 负载均衡方法和设备
Choi et al. Distributed CoAP handover using distributed mobility agents in Internet-of-Things networks
CN107231449B (zh) 一种arp请求转发方法、装置和wlan通信系统
CN102420731B (zh) 网络访问控制方法和系统
WO2021073312A1 (zh) 用于IPv6网络的路由通告方法、装置、存储介质和系统
JP2021510269A (ja) データ伝送方法及び装置、コンピュータ記憶媒体
CN101572729B (zh) 一种虚拟专用网节点信息的处理方法及相关设备、系统
US20150049669A1 (en) Method and system for management of the mobility of a mobile network
CN104836678A (zh) 基于网络选择及时间安排的消息传输方法及节点设备
Ahmadi Analysis towards mobile IPv4 and mobile IPv6 in computer networks
Gohar et al. Distributed mapping management of identifiers and locators in mobile‐oriented Internet environment
EP2568715B1 (en) Mobile node, care of address acquisition method and system thereof, and dhcp server
CN108023801B (zh) 异构网络的资源调度方法及系统
CN102143051A (zh) 虚拟路由冗余协议负载分担的方法和系统

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant