KR102709540B1 - Sdn 기반 메시지 전송 시스템 및 방법 - Google Patents
Sdn 기반 메시지 전송 시스템 및 방법 Download PDFInfo
- Publication number
- KR102709540B1 KR102709540B1 KR1020220123911A KR20220123911A KR102709540B1 KR 102709540 B1 KR102709540 B1 KR 102709540B1 KR 1020220123911 A KR1020220123911 A KR 1020220123911A KR 20220123911 A KR20220123911 A KR 20220123911A KR 102709540 B1 KR102709540 B1 KR 102709540B1
- Authority
- KR
- South Korea
- Prior art keywords
- broker
- message
- sdn
- mqtt
- client
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title description 16
- 230000005540 biological transmission Effects 0.000 claims abstract description 38
- 239000000284 extract Substances 0.000 claims description 3
- 230000006870 function Effects 0.000 description 8
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4675—Dynamic sharing of VLAN information amongst network nodes
- H04L12/4679—Arrangements for the registration or de-registration of VLAN attribute values, e.g. VLAN identifiers, port VLAN membership
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4675—Dynamic sharing of VLAN information amongst network nodes
- H04L12/4683—Dynamic sharing of VLAN information amongst network nodes characterized by the protocol used
- H04L12/4687—MVRP [multiple VLAN registration protocol]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 제1 클라이언트, 제2 클라이언트, 제1 브로커, 제2 브로커, SDN 스위치, 및 SDN 컨트롤러를 포함하는 SDN 기반 메시지 전송 시스템으로, 제1 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제1 클라이언트, 상기 제1 MQTT 토픽이 준비(Ready) 상태인 경우, 제1 멀티캐스트 MAC 주소 및 제1 VLAN ID를 포함하는 제1 메시지를 멀티캐스트 방식으로 상기 SDN 스위치에 전송하는 제1 브로커, 제2 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제2클라이언트, 상기 제2 MQTT 토픽이 리스너(Listener) 상태인 경우, 멀티캐스트 메시지인 제2 메시지를 상기 제2 클라이언트에 전송하는 제2 브로커 및 상기 제1 브로커, 제2 브로커, 제1 클라이언트, 제2 클라이언트, SDN 스위치 간 메시지 전송을 제어하는SDN 컨트롤러를 포함하는 것을 특징으로 한다.
Description
본 발명은 SDN(Software-Defined Networking) 기반 메시지 전송 시스템 및 방법에 관한 것으로, 보다 상세하게는, SDN 상에서 MQTT(Message Queuing Telemetry Transport)의 멀티캐스트(Multicast)를 지원할 수 있고, 패킷들의 지연 상한선을 보장할 수 있는 시스템 및 방법에 관한 것이다.
MQTT는 IoT(Internet of Thing) 등을 주요 대상으로 제정된 프로토콜이다. MQTT는 Publish/Subscribe 구조에 기반하고 있으며, 라이트 웨이트(lightweight)를 특성으로 제시하는 만큼 배터리, 컴퓨팅 파워 등 자원이 제한된 장비에 적합할 수 있다. MQTT는 클라이언트(Client), 즉 일반 장치와 서버의 역할을 수행하는 브로커(Broker)를 포함하고 있다. 각 클라이언트는 브로커와 TCP 통신을 개시할 수 있고, 구독을 원하는 토픽에 대해 SUBSCRIBE 메시지를 브로커에게 전송할 수 있다.
또한, 특정 토픽에 대해 정보를 전송하고 싶은 클라이언트는 해당 토픽에 대해 PUBLISH 메시지를 브로커에게 전송할 수 있다. 브로커는 이러한 PUBLISH 메시지를 수신하면, 해당 토픽에 대해 SUBSCRIBE 메시지를 전송하였던 클라이언트들에게 PUBLISH 메시지를 각각의 클라이언트 측에 대한 TCP 연결(Connection)을 통해 전송할 수 있다.
한편, IEEE 802.1Q 표준은 이더넷 네트워크에서 VLAN을 지원하고, QoS 기능을 제공하는 방법에 대해 정의하고 있다. 나아가 VLAN 및 멀티캐스트 기능을 위해, MVRP (Multiple VLAN Registration Protocol), MMRP (Multiple MAC Registration Protocol)을 정의하고 있고, QoS 기능을 제공하는 스트림 형성을 위한 MSRP (Multiple Stream Registration Protocol)를 정의하고 있다.
종래 네트워크 시스템에서 브로커는 각 디바이스(Device)와 1:1 TCP 연결(connection)을 사용하므로, Publish 메시지를 중계할 때, 각 Device 별로 패킷을 생성해서 보내야 한다. 병목 구간이 존재하는 경우, Publish 메시지를 수신하여야 하는 장치들은 전송 순서에 따라 각기 다른 지연속도(Latency)를 겪는 문제가 존재할 수 있다. 즉, MQTT는 브로커가 Publish 메시지를 수신하는 경우, 해당 토픽의 Subscriber들 각각에게 Publish 메시지를 생성하고, 전송하는 방식을 취한다. 이는 Subscriber의 개수에 비례해 네트워크 트래픽이 증가함을 의미하며, Publish 메시지를 전송하는 순서에 따라 Subscriber들이 겪는, 최초 Publish 발생 시간과 Publish 메시지 수신 시간 간의 차이가 다르게 나타날 수 있다는 문제가 있다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은 브로커와 브로커간 멀티캐스트 PUBLISH를 지원할 수 있는 SDN 기반 메시지 전송 시스템 및 방법을 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 제1 클라이언트, 제2 클라이언트, 제1 브로커, 제2 브로커, SDN 스위치, 및 SDN 컨트롤러를 포함하는 SDN 기반 메시지 전송 시스템으로, 제1 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제1 클라이언트, 상기 제1 MQTT 토픽이 준비(Ready) 상태인 경우, 제1 멀티캐스트 MAC 주소 및 제1 VLAN ID를 포함하는 제1 메시지를 멀티캐스트 방식으로 상기 SDN 스위치에 전송하는 제1 브로커, 제2 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제2클라이언트, 상기 제2 MQTT 토픽이 리스너(Listener) 상태인 경우, 멀티캐스트 메시지인 제2 메시지를 상기 제2 클라이언트에 전송하는 제2 브로커 및 상기 제1 브로커, 제2 브로커, 제1 클라이언트, 제2 클라이언트, SDN 스위치 간 메시지 전송을 제어하는SDN 컨트롤러를 포함하는 것을 특징으로 한다.
또한, 제1 브로커는, 상기 제1 메시지에 포함된 제1 MQTT 토픽이 존재하지 않는 경우, 상기 제1 메시지에 기초하여, 제1 등록 메시지(Registration message)를 상기 SDN 컨트롤러로 전송하는 것을 특징으로 한다.
또한, 상기 제1 등록 메시지는 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값 정보를 포함하는 것을 특징으로 한다.
또한, 상기 SDN 컨트롤러는, 상기 제1 등록 메시지를 수신하는 경우, 상기 제1 등록 메시지에서 상기 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값 정보를 추출하고, 상기 추출된 정보를 제1 등록 테이블(Registered Table)에 등록한 후, 상기 제1 등록 메시지에 대한 ACK 메시지를 상기 제1 브로커로 전송하는 것을 특징으로 한다.
또한, 상기 SDN 컨트롤러는, 상기 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값을 포함하는 알림(Notification) 메시지를 상기 제2 브로커에게 전송하는 것을 특징으로 한다.
또한, 상기 제2 브로커는, 상기 알림 메시지를 수신하는 경우, 제2 멀티캐스트 MAC 주소 및 제2 VLAN ID를 제2 등록 테이블에 등록한 후, 상기 제2 멀티캐스트 MAC 주소 및 제2 VLAN ID정보가 포함된 제2 등록 메시지를 상기 SDN 컨트롤러에 전송하는 것을 특징으로 한다.
또한, 제2 메시지는 리스너(Listener) 리스트 정보를 더 포함하고, 상기 SDN 컨트롤러는, 상기 제2 등록 메시지를 수신하는 경우, 상기 제2 메시지에 포함된 상기 제2 MQTT 토픽 및 리스너(Listener) 리스트를 확인하고, 제3 브로커를 추가하는 것을 특징으로 한다.
또한, 상기 SDN 컨트롤러는, 상기 제3 브로커가 추가되는 경우, SDM 스위치들 간 흐름 규칙(Flow Rule) 및 QoS를 설정하고, 상기 제1 브로커에게 준비(Ready) 메시지를 전송하는 것을 특징으로 한다.
본 발명에 따른 SDN 기반 메시지 전송 시스템 및 방법은 멀티캐스트를 지원함으로써 네트워크의 트래픽이 낭비되는 것을 방지할 수 있다. 즉, Publish 메시지의 전달에 멀티캐스트를 지원함으로써 Subscriber의 개수에 관계없이 하나의 Publish 메시지만 발생하도록 하여 네트워크 트래픽이 낭비되는 것을 방지하고, 따라서 Subscriber 간의 지연 값 평균 및 분산도를 낮출 수 있다.
또한, SDN 상에서 QoS 동작이 수행될 수 있어 지연의 상한선을 보장할 수 있다. 즉, 토픽 별로 F티캐스트 MAC 주소와 VLAN ID를 할당하여, 멀티캐스트 스트림을 형성한 후, 스트림이 필요로 하는 대역폭, 지연 등을 보장하기 위한 QoS 기능을 SDN 스위치 상에 설정함으로써 지연의 상한선이 보장되도록 할 수 있다.
다만, 본 발명의 실시 예들에 따른 SDN 기반 메시지 전송 시스템 및 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 설명한다.
도 1은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)을 도시한 구성도이다.
도 2는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제1 실시예를 도시한 것이다.
도 3은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제2 실시예를 도시한 것이다.
도 4는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제3 실시예를 도시한 것이다.
도 5는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제4 실시예를 도시한 것이다.
도 6은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제5 실시예를 도시한 것이다.
도 7은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제6 실시예를 도시한 것이다.
도 8은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제7 실시예를 도시한 것이다.
도 9는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제8 실시예를 도시한 것이다.
도 1은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)을 도시한 구성도이다.
도 2는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제1 실시예를 도시한 것이다.
도 3은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제2 실시예를 도시한 것이다.
도 4는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제3 실시예를 도시한 것이다.
도 5는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제4 실시예를 도시한 것이다.
도 6은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제5 실시예를 도시한 것이다.
도 7은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제6 실시예를 도시한 것이다.
도 8은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제7 실시예를 도시한 것이다.
도 9는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제8 실시예를 도시한 것이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)을 도시한 구성도이다.
도 1을 참조하면, 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)은 클라이언트, 브로커(Broker), SDN 스위치(Switch) 및 SDN 컨트롤러(Controller)를 포함할 수 있다. MQTT 시스템은 브로커가 퍼블리시(Publish) 메시지(또는 발행 메시지)를 수신하는 경우, 해당 토픽의 수신자(Subscriber)들 각각에게 퍼블리시 메시지를 생성하고, 전송할 수 있다. 수신자(Subscriber)의 개수에 비례하여 네트워크 트래픽이 증가함을 의미할 수 있다. 여기서, 퍼블리시(Publish) 메시지를 전송하는 순서에 따라 수신자(Subscriber)들이 겪는, 최초의 퍼블리시(Publish) 발생 시간과 퍼블리시(Publish) 메시지 수신 시간 간의 차이가 다르게 발생할 수 있다. MQTT 클라이언트(Client)들은 기존 MQTT 프로토콜에서 정의된대로, 브로커(Broker)와 TCP(Transmission Control Protocol)로 연결되고, 퍼블리시/가입(Publish/Subscribe) 메시지를 교환할 수 있다. 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)은 브로커(Broker) - SDN - 브로커(Broker) 간에서 적용될 수 있다.
MQTT 브로커(Broker)는 자신이 퍼블리시(Publish) 메시지를 SDN 측으로 전송하는 경우, 터커 브로커(Talker Broker)로 동작할 수 있다. 반면, MQTT 브로커(Broker)가 SDN 으로부터 메시지를 수신하는 경우, 리스너 브로커(Listener Broker)로 동작할 수 있다. 한편, 브로커(Broker)는 터커 브로커(Talker Broker)와 리스너 브로커(Listener Broker) 두 가지 기능을 동시에 수행할 수도 있다.
브로커(Broker)는 제1 테이블인 터커 테이블(Talker Table)과 제2 테이블인 리스너 테이블(Listener Table)을 관리할 수 있다. 터커 테이블(Talker Table)은 자신의 엔트리로써 (MQTT 토픽, Multicast MAC 주소, VLAN ID, State) 쌍을 가질 수 있다. 즉, 터커 테이블(Talker Table)은 (제1 MQTT 토픽, 제1 멀티캐스트 MAC 주소(Multicast MAC(Media Access Control Address) 주소), 제1 VLAN ID 및 제1 상태 정보(State))를 포함할 수 있다. 일 실시예로서 터커 테이블(Talker Table)은 하기 표 1과 같을 수 있다.
(표 1)
리스너 테이블(Listener Table)은 엔트리로써 (MQTT 토픽, Multicast MAC 주소, VLAN ID, Listener List) 쌍을 가질 수 있다. 즉, 리스너 테이블(Listener Table)은 제2 MQTT 토픽, 제2 멀티캐스트 MAC 주소, 제2 VLAN ID 및 리스너(Listener) 리스트를 포함할 수 있다. 일 실시예로서 리스너 테이블(Listener Table)은 하기 표 2와 같을 수 있다.
(표 2)
도 2는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제1 실시예를 도시한 것이다.
도 2를 참조하면, MQTT 브로커(Broker)는 MQTT 클라이언트(Client)로부터 퍼블리시(Publish) 메시지를 수신할 수 있다. MQTT 브로커(Broker)가 퍼블리시 메시지를 수신하게 되는 경우, 해당하는 퍼블리시(Publish) 메시지의 토픽에 대해 터커(Talker) 엔트리가 존재하는지 여부를 확인할 수 있다. MQTT 브로커(Broker)는 터커(Talker) 엔트리가 존재하고 엔트리의 상태(State)가 준비(Ready) 상태인 경우, 해당 멀키캐스트(Multicast) MAC 주소 및 VLAN ID를 사용하여 퍼블리시(Publish) 메시지를 멀티캐스트 방식으로 SDN 스위치에 전송할 수 있다.
도 3은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제2 실시예를 도시한 것이다.
도 3을 참조하면, MQTT 브로커(Broker)는 메시지에 포함된 MQTT 토픽에 대한 터커(Talker) 엔트리가 존재하지 않는 경우, 메시지에 기초하여, 등록 메시지(Registration message)를 SDN 컨트롤러로 전송할 수 있다. 즉, MQTT 브로커는 해당하는 퍼블리시(Publish) 메시지의 토픽에 대해 터커(Talker) 엔트리가 존재하지 않는 경우, 퍼블리시(Publish) 메시지를 기반으로 SDN 컨트롤러(예를 들어, SDN 컨트롤러 애플리케이션)에게 터커 등록(Talker Registration) 메시지를 전송할 수 있다. 터커 등록(Talker Registration) 메시지는 등록하려는 MQTT 토픽, 요구되는 대역폭과 지연 값 등을 포함할 수 있다. 이 경우, MQTT 브로커(Broker)는 터커 브로커(Talker Broker)로 정의될 수 있다.
도 4는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제3 실시예를 도시한 것이다.
도 4를 참조하면, SDN 컨트롤러는 터커 등록(Talker Registration) 메시지를 수신하는 경우, 해당 메시지로부터 MQTT 토픽, 요구되는 대역폭 및 지연 값을 추출할 수 있다. 그리고 SDN 컨트롤러는 해당하는 정보를 등록 터커 테이블(Registered Talker Table)에 엔트리로써 등록할 수 있다. 등록이 완료되면, SDN 컨트롤러는 메시지를 전송하였던 터커 브로커(Talker Broker)에게 터커 등록 (Talker Registration) ACK 메시지를 전송할 수 있다. 그 후, 터커 브로커(Talker Broker)를 제외한 다른 브로커(Broker)들에게, 멀티캐스트(Multicast) MAC, VLAN ID 및 터커 브로커(Talker Broker)로부터 해당 브로커(Broker)까지의 경로에 대한 정보, 예를 들어, (지연, 대역폭 요구 사항 만족 여부 등)을 포함한 알림(Notification) 메시지를 전송할 수 있다.
도 5는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제4 실시예를 도시한 것이다.
도 5를 참조하면, MQTT 브로커(Broker)는 MQTT 클라이언트(Client)로부터 가입(Subscribe) 메시지를 수신할 수 있다. 메시지에 포함된 MQTT 토픽에 대한 리스너 엔트리의 존재 여부에 상관없이, 메시지에 대한 Subscribe ACK 메시지를 제2 클라이언트에 전송한다. 그 후, MQTT 브로커(Broker)는 해당 가입(Subscribe) 메시지의 토픽에 대해 리스너(Listener) 엔트리가 존재하는지 여부를 확인한다. 리스너(Listener) 엔트리가 존재하는 경우, MQTT 브로커(Broker)는 해당 엔트리의 리스너(Listener)를 업데이트한다. 이 경우, MQTT 브로커(Broker)는 리스너 브로커(Listener Broker)로 정의될 수 있다. 존재하지 않는 경우, 멀티캐스트 MAC, VLAN ID 필드는 공백으로 하는 엔트리를 생성한 후 클라이언트를 리스너 리스트에 추가한다.
도 6은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제5 실시예를 도시한 것이다.
도 6을 참조하면, 도 5와 같은 상황에서 리스너 브로커(Listener Broker)가 알림(Notification) 메시지를 수신하는 경우, QoS 정보가 정해진 기준을 충족하는 경우, 멀티캐스트(Multicast) MAC, VLAN ID를 자신의 인터페이스에 등록하고 SDN 컨트롤러에게 해당 토픽에 대해 리스너 등록(Listener Registration) 메시지를 전송할 수 있다. 또한, 해당 토픽에 대한 리스너 엔트리의 멀티캐스트 MAC, VLAN ID를 업데이트한다.
도 7은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제6 실시예를 도시한 것이다.
도 7을 참조하면, SDN 컨트롤러는 리스너 등록(Listener Registration) 메시지를 수신하는 경우, 리스너 등록(Listener Registration) 메시지의 MQTT 토픽에 대한 등록 리스너 브로커 테이블(Registered Listener Broker Table) 엔트리를 조회할 수 있다. 해당 엔트리는 (MQTT 토픽, 리스너 브로커 리스트(Listener Broker List))의 형태로 존재할 수 있다. 만약 엔트리가 존재하지 않는다면, SDN 컨트롤러는 생성 후 리스너 브로커 리스트에 등록(Registration)을 요청하였던 리스너 브로커(Listener Broker)를 추가할 수 있다. 만약 엔트리가 이미 존재하는 경우, SDN 컨트롤러는 단순히 해당 엔트리에 리스너 브로커(Listener Broker) 정보를 추가할 수 있다.
도 8은 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제7 실시예를 도시한 것이다.
도 8을 참조하면, SDN 컨트롤러(Controller)는 해당 토픽에 대해 리스너 브로커(Listener Broker)가 추가되고, 터커 브로커(Talker Broker)로부터 리스너 브로커(Listener Broker)까지의 경로가 존재한다면, 터커 브로커(Talker Broker)로부터 리스너 브로커(Listener Broker)까지 요구되는 대역폭, 지연을 만족시킬 수 있는지 여부를 반복적으로 확인하고, 소정의 요건이 충족된다면 이들을 연결하는 경로 상의 SDN 스위치들에 흐름 규칙(Flow Rule) 및 QoS 기능을 설정할 수 있다. SDN 컨트롤러는 SDN 스위치들에 흐름 규칙(Flow Rule) 및 QoS 기능을 설정한 후, 터커 브로커(Talker Broker)에게 리스너 선언(Listener Declaration, (Ready)) 메시지를 전송할 수 있다. 이후, 터커 브로커(Talker Broker)는 퍼블리시(Publish) 메시지를 수신하는 경우, 앞서 상술한 방식으로 멀티캐스트 동작을 수행할 수 있다.
도 9는 본 발명에 따른 SDN 기반 메시지 전송 시스템(1000)의 제8 실시예를 도시한 것이다.
도 9를 참조하면, MQTT 클라이언트(Client)가 미가입(Unsubscribe) 메시지를 리스너 브로커(Listener Broker)에게 전송하는 경우, 리스너 브로커(Listener Broker)는 해당 토픽에 대해 리스너(Listener) 엔트리가 적합하게 존재하는지 여부를 확인할 수 있다. 해당 토픽에 대해 리스너(Listener) 엔트리가 존재한다면, 리스너 브로커(Listener Broker)는 리스너(Listener)를 제거할 수 있다. 한편, 리스너(Listener)가 비어있게 되는 경우, 엔트리에 저장되어 있는 멀티캐스트(Multicast) MAC 주소, VLAN ID를 자신의 인터페이스로부터 등록 해제할 수 있다. 이후 SDN 컨트롤러 에게 리스너 등록해제(Listener De-registration) 메시지를 전송할 수 있다.
SDN 컨트롤러가 리스너 등록해제(Listener De-registration) 메시지를 수신하는 경우, SDN 컨트롤러는 해당 리스너 브로커(Listener Broker) 까지의 흐름 규칙(Flow rule) 및 QoS 설정을 해제할 수 있고, 해당 토픽의 엔트리에 존재하는 등록 리스너 브로커(Registered Listener Broker)를 제거할 수 있다.
SDN 컨트롤러는 등록 리스너 브로커(Registered Listener Broker)를 제거한 후, 리스너 브로커(Listener Broker)에게 리스너 등록해제(Listener De-registration) ACK를 전송할 수 있다. 이후, SDN 컨트롤러는 만약 리스너 브로커(Listener Broker)가 비어있게 되는 경우 엔트리 자체를 삭제할 수 있고, 터커 브로커(Talker Broker)에게 리스너 선언(Listener Declaration, (No Listener)) 메시지를 전송할 수 있다. 터커 브로커(Talker Broker)는 SDN 컨트롤러로부터 리스너 선언(Listener Declaration, (No Listener)) 메시지를 수신하는 경우, 상태(State)를 "리스너 없음(No Listener)" 상태로 변경할 수 있다.
본 발명의 실시예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
1000: SDN 기반 메시지 전송 시스템
Claims (8)
- 제1 클라이언트, 제2 클라이언트, 제1 브로커, 제2 브로커, SDN 스위치, 및 SDN 컨트롤러를 포함하여 상기 제 1 브로커와 상기 제 2 브로커 간의 멀티캐스트 퍼블리시(Publish)를 지원하는 SDN 기반 메시지 전송 시스템으로,
제1 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제1 클라이언트;
상기 제1 MQTT 토픽이 준비(Ready) 상태인 경우, 제1 멀티캐스트 MAC 주소 및 제1 VLAN ID를 포함하는 제1 메시지를 멀티캐스트 방식으로 상기 SDN 스위치에 전송하는 제1 브로커;
제2 MQTT 토픽을 포함하는 표준 MQTT 메시지를 송수신하는 제2클라이언트;
상기 제2 MQTT 토픽이 리스너(Listener) 상태인 경우, 멀티캐스트 메시지인 제2 메시지를 상기 제2 클라이언트에 전송하는 제2 브로커; 및
상기 제1 브로커, 제2 브로커, 제1 클라이언트, 제2 클라이언트, SDN 스위치 간 메시지 전송을 제어하는 SDN 컨트롤러를 포함하고,
상기 제1 브로커는,
상기 제1 메시지에 포함된 제1 MQTT 토픽에 터커(Talker) 엔트리가 존재하지 않는 경우, 상기 제1 메시지에 기초하여, 제1 등록 메시지(Registration message)를 상기 SDN 컨트롤러로 전송하고,
상기 제1 등록 메시지는 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값 정보를 포함하고,
상기 SDN 컨트롤러는,
상기 제1 등록 메시지를 수신하는 경우, 상기 제1 등록 메시지에서 상기 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값 정보를 추출하고,
상기 등록하려는 MQTT 토픽, 요구되는 대역폭 및 지연 값을 포함하는 알림(Notification) 메시지를 상기 제2 브로커에게 전송하며,
상기 제2 브로커는,
상기 알림 메시지를 수신하는 경우, 제2 멀티캐스트 MAC 주소 및 제2 VLAN ID를 제2 등록 테이블에 등록한 후, 상기 제2 멀티캐스트 MAC 주소 및 제2 VLAN ID정보가 포함된 제2 등록 메시지를 상기 SDN 컨트롤러에 전송하는 것을 특징으로 하는, SDN 기반 메시지 전송 시스템. - 삭제
- 삭제
- 청구항 1에 있어서,
상기 SDN 컨트롤러는,
상기 추출된 정보를 제1 등록 테이블(Registered Table)에 등록한 후, 상기 제1 등록 메시지에 대한 ACK 메시지를 상기 제1 브로커로 전송하는 것을 특징으로 하는, SDN 기반 메시지 전송 시스템 - 삭제
- 삭제
- 청구항 1에 있어서,
상기 제2 메시지는 리스너(Listener) 리스트 정보를 더 포함하고,
상기 SDN 컨트롤러는,
상기 제2 등록 메시지를 수신하는 경우,
상기 제2 메시지에 포함된 상기 제2 MQTT 토픽 및 리스너 리스트를 확인하고, 제3 브로커를 추가하는 것을 특징으로 하는, SDN 기반 메시지 전송 시스템. - 청구항 7에 있어서,
상기 SDN 컨트롤러는,
상기 제3 브로커가 추가되는 경우,
SDM 스위치들 간 흐름 규칙(Flow Rule) 및 QoS를 설정하고, 상기 제1 브로커에게 준비(Ready) 메시지를 전송하는 것을 특징으로 하는, SDN 기반 메시지 전송 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220123911A KR102709540B1 (ko) | 2022-09-29 | 2022-09-29 | Sdn 기반 메시지 전송 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220123911A KR102709540B1 (ko) | 2022-09-29 | 2022-09-29 | Sdn 기반 메시지 전송 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20240044647A KR20240044647A (ko) | 2024-04-05 |
KR102709540B1 true KR102709540B1 (ko) | 2024-09-25 |
Family
ID=90714353
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220123911A Active KR102709540B1 (ko) | 2022-09-29 | 2022-09-29 | Sdn 기반 메시지 전송 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102709540B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180115616A1 (en) * | 2016-10-21 | 2018-04-26 | infiswift Inc. | Method for bridging publish/subscribe brokers for guaranteed low-latency delivery |
KR102092015B1 (ko) * | 2018-11-06 | 2020-03-23 | 아토리서치(주) | 소프트웨어 정의 네트워크에서 네트워크 장비를 인식하는 방법, 장치 및 컴퓨터 프로그램 |
-
2022
- 2022-09-29 KR KR1020220123911A patent/KR102709540B1/ko active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180115616A1 (en) * | 2016-10-21 | 2018-04-26 | infiswift Inc. | Method for bridging publish/subscribe brokers for guaranteed low-latency delivery |
KR102092015B1 (ko) * | 2018-11-06 | 2020-03-23 | 아토리서치(주) | 소프트웨어 정의 네트워크에서 네트워크 장비를 인식하는 방법, 장치 및 컴퓨터 프로그램 |
Also Published As
Publication number | Publication date |
---|---|
KR20240044647A (ko) | 2024-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826830B2 (en) | Congestion processing method, host, and system | |
US10237153B2 (en) | Packet retransmission method and apparatus | |
US11616733B2 (en) | Method for controlling network congestion, access device, and computer readable storage medium | |
US11477130B2 (en) | Transmission control method and apparatus | |
CN102546800B (zh) | 一种网关握手、通信方法、网关及Web通信系统 | |
US8447871B1 (en) | Simplified method for processing multiple connections from the same client | |
CN101741742B (zh) | 报文处理方法、接入设备和通信系统 | |
EP3142306B1 (en) | Openflow communication method, system, controller, and service gateway | |
EP3588906B1 (en) | Multi-path management with http/2 | |
EP3313031B1 (en) | Sdn-based arp realization method and apparatus | |
US10050867B2 (en) | Methods and systems for transmitting broadcast data | |
WO2017114231A1 (zh) | 一种报文发送方法、tcp代理以及tcp客户端 | |
CN101247353A (zh) | 流老化方法及网络设备 | |
US11252099B2 (en) | Data stream sending method and system, and device | |
HK1258090A1 (zh) | 用於傳輸廣播數據的方法和系統 | |
CN118301078A (zh) | 流速控制方法和装置 | |
CN110875887A (zh) | 一种基于mqtt协议的通信交互方法及通信交互系统 | |
CN108809549A (zh) | 一种传输数据的方法及设备 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
KR102709540B1 (ko) | Sdn 기반 메시지 전송 시스템 및 방법 | |
KR100377852B1 (ko) | 부하 균형 기능을 갖는 메시지 전송 시스템 및 그 방법 | |
EP4238249B1 (en) | Lwm2m server device, lwm2m client device, and methods thereof | |
CN113452754A (zh) | 一种基于CoAP协议的配电物联网网络通信系统 | |
KR102168177B1 (ko) | 네트워크 장치 및 이를 이용한 패킷 처리 방법 | |
CN113438218A (zh) | 基于some/ip协议的通信方法及装置、存储介质、终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application | ||
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20240905 |
|
PG1601 | Publication of registration |