KR102231481B1 - 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치 - Google Patents

효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치 Download PDF

Info

Publication number
KR102231481B1
KR102231481B1 KR1020190163453A KR20190163453A KR102231481B1 KR 102231481 B1 KR102231481 B1 KR 102231481B1 KR 1020190163453 A KR1020190163453 A KR 1020190163453A KR 20190163453 A KR20190163453 A KR 20190163453A KR 102231481 B1 KR102231481 B1 KR 102231481B1
Authority
KR
South Korea
Prior art keywords
message
sub
rtps
processing unit
lost
Prior art date
Application number
KR1020190163453A
Other languages
English (en)
Other versions
KR102231481B9 (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 KR1020190163453A priority Critical patent/KR102231481B1/ko
Application granted granted Critical
Publication of KR102231481B1 publication Critical patent/KR102231481B1/ko
Publication of KR102231481B9 publication Critical patent/KR102231481B9/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Communication Control (AREA)

Abstract

본 발명의 실시 예에 따른 DDS(Data Distribution Service) 미들웨어 장치는, 사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 메시지 처리부; 및 상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리부를 포함하고, 상기 이벤트 처리부는, 일정 시간 이내에 발생되는 메시지의 유실 감지 발생에 따라, 이에 대응한 재전송 메시지의 전송여부를 결정하기 위한 복수의 상태 정보간 천이를 수행하는 상태 정보 관리부를 포함한다.

Description

효율적 메시지 유실 감지 및 재전송을 처리하는 DDS 미들웨어 장치{A MIDDLEWARE APPARATUS OF DATA DISTRIBUTION SERVICES FOR PROVIDING A EFFICIENT MESSAGE LOSS DETECTION AND RETRANSMISSION PROCESSING}
본 발명은 데이터 분산 서비스의 미들웨어 장치에 관한 것이다. 보다 구체적으로, 본 발명은 효율적 메시지 유실 감지 및 재전송을 처리하는 DDS 미들웨어 장치에 관한 것이다.
DDS(Data Distribution Service)는 OMG(Object Management Group)표준 통신 미들웨어를 정의하며, 데이터 중심의 발간-구독(Publish-Subscribe) 통신 방식을 어플리케이션에 제공하는 통신 미들웨어를 개시하고 있다.
특히, DDS 미들웨어는 디바이스의 자유로운 참여/탈퇴가 가능한 환경에서 발간/구독(Publish/Subscribe) 통신기법을 이용하여 효율적인 데이터 분배를 제공한다.
이러한 DDS의 특징은 다수의 디바이스들이 동적으로 연동되어 하나의 네트워크 도메인을 형성하고 데이터를 교환하는 경우가 빈번한 유비쿼터스 환경에 적합하다는 것이다. DDS는 발간/구독 기능, QoS 제어 기능, DDS 참여 노드 의 주소를 알아내는 디스커버리 기능 등 다양한 기능이 포함되며, 각 미들웨어는 이러한 처리를 위한 프로세서 및 메모리 등의 컴퓨팅 자원을 구비하고 있다.
다만, 컴퓨팅 자원은 제한적이기 때문에 이를 효율적으로 운용하려면 RTPS 및 OMG 표준에 의해 정의되는 DDS 미들웨어의 비효율적인 측면을 개선할 필요성이 있다.
예를 들어, DDS 미들웨어는 RTPS 표준에 따라 데이터를 RTPS Submessage 형태로 재표현해 네트워크로 메시지를 송신한다. 하지만 송신하는 메시지의 크기가 하나의 패킷이 포함할 수 있는 메시지의 최대 크기인 MTU(Maximum Transmission Unit)보다 작을 경우, 패킷 사용의 효율성이 저하되며, 이는 처리량의 저하로 이어진다.
또한, DDS 미들웨어는 22종에 달하는 다수의 QoS를 지원하기 위해 고도로 복잡한 통신 처리 로직을 내부적으로 수행한다. DDS 미들웨어는 통신 처리 로직을 단순화하기 위해 실행 중 복수의 스레드를 생성 후 스레드 단위로 태스크(Task)를 분배한다. 하지만 통신 태스크 처리 과정에서 발생하는 스레드 간 통신은 지연시간의 증가를 야기하여 통신의 실시간성을 저하시킨다.
그리고, DDS의 표준 와이어 프로토콜인 RTPS는 TCP(Transmission Control Protocol)와 달리 흐름제어(Flow Control)에 관여하지 않는다. 따라서 칩의 네트워크 출력 속도가 인접 네트워크의 입력 속도보다 빠른 경우, 대역폭 초과분에 대해 모두 손실이 일어난다.
한편, DDS의 표준 와이어 프로토콜인 RTPS는 다양한 DDS 구현 간의 상호운용성을 보장하기 위한 기본적인 메커니즘만을 다루고 있다. 이에 따른 문제로 높은 처리량과 낮은 지연시간을 만족시키기 어렵고, 실제 네트워크 망에 맞춰 트래픽을 제어할 방법이 명시되어 있지 않으며, 특히 저품질의 네트워크에서는 신뢰성 있는 통신(Reliable Communication) 방식의 성능이 크게 감소한다.
또한, DDS의 표준 와이어 프로토콜인 RTPS는 신뢰성 있는 통신(Reliable Communication)의재전송 기능을 실현하기 위한 Submessage를 정의한다. 이 중, 유실된 메시지에 대한 정보를 담아 메시지 송신 측으로 재전송을 요청하는 메시지는 ACKNACK Submessage인데, 해당 Submessage는 유실된 메시지를 최대 256개만 표현할 수 있어, 256개를 넘어서는 유실이 발생한 경우, 여러 회에 걸쳐서 ACKANCK Sugmessage가 오가야 하며, 이로 인해 실시간성의 저하가 발생한다.
본 발명은 상기한 문제점들을 해결하고자 안출된 것으로, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 미들웨어 장치 및 그 동작 방법을 제공하는 데 그 목적이 있다.
또한, 본 발명은 네트워크를 통해 송수신되는 메시지의 유실을 효과적으로 감지 및 대응하며, 이를 위한 표준 재전송 메시지의 확장 방법을 제안함으로써, 실시간성의 보장 및 성능 향상을 가져올 수 있는 효율적 메시지 유실 감지 및 재전송을 처리하는 DDS 미들웨어 장치 및 그 동작 방법을 제공하는 데 그 목적이 있다.
상기한 바와 같은 과제를 해결하기 위한 본 발명의 실시 예에 따른 DDS(Data Distribution Service) 미들웨어 장치는, 사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 메시지 처리부; 및 상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리부를 포함하고, 상기 이벤트 처리부는, 일정 시간 이내에 발생되는 메시지의 유실 감지 발생에 따라, 이에 대응한 재전송 메시지의 전송여부를 결정하기 위한 복수의 상태 정보간 천이를 수행하는 상태 정보 관리부를 포함한다.
상기한 바와 같은 과제를 해결하기 위한 DDS(Data Distribution Service) 미들웨어 장치의 동작 방법은, 사용자 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 단계; 및 상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 단계를 포함하고, 상기 이벤트 처리부는, 일정 시간 이내에 발생되는 메시지의 유실 감지 발생에 따라, 이에 대응한 재전송 메시지의 전송여부를 결정하기 위한 복수의 상태 정보간 천이를 수행하는 상태 정보 관리부를 포함한다.
본 발명의 실시 예에 따르면, DDS 미들웨어 장치 및 그 동작 방법에 따라, 실시간 메시지 배칭 처리를 통해 지연 한도 내에서의 최대 메시지 처리량을 달성시킬 수 있다.
또한, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법은, 조건부 입출력 처리 패스스루 활성화를 처리하여 이벤트 오버헤드를 최소화하고, 이에 따른 지연시간의 최소화를 달성할 수 있다.
그리고, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법에 따라, 송신 대역폭을 제어하여 트래픽 흐름제어에 의한 대역폭 초과분 유실을 방지하고, 신뢰성있는 데이터 송수신 프로세스를 구현할 수 있다.
또한, 본 발명의 실시 예에 따르면, 네트워크를 통해 송수신되는 메시지의 유실을 효과적으로 감지 및 대응하며, 이를 위한 표준 재전송 메시지의 확장 방법을 제안함으로써, 실시간성의 보장 및 성능 향상을 가져올 수 있는 DDS 미들웨어 장치 및 그 동작 방법을 제공할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 DDS 미들웨어 장치 및 그 동작 방법은, 메시지의 크기 제한으로 인한 처리량 저하와 통신의 실시간성 저하를 극복하고, 트래픽 흐름제어에 의한 트래픽 유실과 손실을 방지하며, 이를 통해 낮은 지연시간을 구현하고 실시간 처리를 효과적으로 가능하게 하는 DDS 미들웨어 장치 및 그 동작 방법을 제공할 수 있다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 2는 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.
도 3은 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 4는 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 5는 본 발명의 실시 예에 따른 직렬화부 처리에 따른 패킷 처리부의 동작을 설명하기 위한 흐름도이다.
도 6은 본 발명의 실시 예에 따른 입출력 패스스루 활성화부의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시 예에 따른 트래픽 제어부의 동작을 설명하기 위한 흐름도이다.
도 8은 트래픽 제어부의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
도 9는 본 발명의 실시 예에 따른 메시지 재전송 처리 프로세스를 설명하기 위한 도면이다.
도 10은 본 발명의 실시 예에 따른 재전송 메시지의 확장 포맷을 나타낸다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시 예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다.
또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 예를 들어, 본 명세서의 블럭도는 본 발명의 원리를 구체화하는 예시적인 회로의 개념적인 관점을 나타내는 것으로 이해되어야 한다. 이와 유사하게, 모든 흐름도, 상태 변환도, 의사 코드 등은 컴퓨터가 판독 가능한 매체에 실질적으로 나타낼 수 있고 컴퓨터 또는 프로세서가 명백히 도시되었는지 여부를 불문하고 컴퓨터 또는 프로세서에 의해 수행되는 다양한 프로세스를 나타내는 것으로 이해되어야 한다.
프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다.
또한 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 명확한 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비 휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지관용의 다른 하드웨어도 포함될 수 있다.
본 명세서의 청구범위에서, 상세한 설명에 기재된 기능을 수행하기 위한 수단으로 표현된 구성요소는 예를 들어 상기 기능을 수행하는 회로 소자의 조합 또는 펌웨어/마이크로 코드 등을 포함하는 모든 형식의 소프트웨어를 포함하는 기능을 수행하는 모든 방법을 포함하는 것으로 의도되었으며, 상기 기능을 수행하도록 상기 소프트웨어를 실행하기 위한 적절한 회로와 결합된다. 이러한 청구범위에 의해 정의되는 본 발명은 다양하게 열거된 수단에 의해 제공되는 기능들이 결합되고 청구항이 요구하는 방식과 결합되기 때문에 상기 기능을 제공할 수 있는 어떠한 수단도 본 명세서로부터 파악되는 것과 균등한 것으로 이해되어야 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 실시 예에 따른 전체 시스템을 개략적으로 도시한 개념도이다.
도 1을 참조하면, 본 발명의 실시 예에 따른 DDS 미들웨어 장치(100)는, 패킷 처리부(110), 이벤트 처리부(120) 및 메시지 처리부(130)를 포함하며, 패킷 처리부(110)는 통신 인터페이스부(140)를 통해 외부 네트워크와 연결될 수 있고, 메시지 처리부(130)는 사용자 장치(200)로부터 입력되는 메시지를 발간 처리하거나, 네트워크로부터 수신되는 메시지를 구독 처리하여 사용자 장치(200)로 전달할 수 있다.
보다 구체적으로, 본 발명의 실시 예에 따른 미들웨어 장치(100)는, 표준화된 DDS(Dara Distribution Service) 규격에 따른 DCPS(Data Centric Publish Subscribe) 프로토콜과 RTPS(RealTime Publish Subscribe) 프로토콜을 이용한 통신 기능을 제공할 수 있다. DCPS는 표준화된 사용자 API 및 모델링을 규격하고 있으며, RTPS는 DDS 벤더간 상호운용이 가능한 통신 규약을 규격화하고 있다.
메시지 처리부(130)는, DDS의 DCPS API를 사용해 사용자 장치(200)과의 인터페이싱을 담당하며, 사용자 장치(200)의 요청에 따라 메시지 발간/구독 요청을 수신하여, RTPS 규격에 따른 발간 메시지의 송신 처리와, 구독 메시지의 수신 처리를 수행한다.
그리고, 이벤트 처리부(120)는 메시지 처리부(130)의 메시지 발간 또는 구독 처리에 필요한 전송 이벤트 프로세스 및 재전송 이벤트 프로세스를 처리할 수 있다.
한편, 패킷 처리부(110)는 통신 인터페이스부(140)와 연결될 수 있으며, 메시지를 RTPS 패킷으로 패킷화하여 통신 인터페이스부(140)로 전송하거나, RTPS 패킷으로부터 메시지를 복원하여 이벤트 처리부(120)로 전달하는 처리를 수행할 수 있다.
이와 같은, 본 발명의 실시 예에서, 사용자 장치(200)에서 작성된 메시지 정보는 메시지 처리부(130)로 전달될 수 있으며, 전달된 메시지는 이벤트 처리부(120)를 통해 발간 처리되어 패킷 처리부(110)를 통해 패킷화되어 통신 인터페이스부(140)를 통해 외부 네트워크로 전송될 수 있다.
여기서, 외부 네트워크는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN), 부가가치 통신망(Value Added Network; VAN), 개인 근거리 무선통신(Personal Area Network; PAN), 이동 통신망(mobile radiocommunication network) 또는 위성 통신망 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다. 다만, DDS 표준을 지원하기 위하여, 상기 외부 네트워크는 근거리 통신망 형태의 유/무선 네트워크로 구현되는 것이 바람직할 수 있다.
그리고, 메시지 처리부(130)는 사용자 장치(200)로부터 DDS 구독 메시지 수신이 요청되면, 이벤트 처리부(120)를 통한 구독 메시지 처리를 통해 패킷 처리부(110)에서 통신 인터페이스부(140)로부터 수신되는 패킷이 구독 메시지로 역변환 처리되도록 한다. 그리고 역변환된 구독 메시지는 이벤트 처리부(120)를 통해 메시지 처리부(130)로 전달되어 사용자 장치(200)로 출력될 수 있다.
특히, 본 발명의 실시 예에 따른 패킷 처리부(110)는, DDS 제품 간 상호 운용성 보장을 위해, 통신 인터페이스부(140)를 통해 송수신되는 RTPS 표준 메시지를 UDP와 같은 통신 프로토콜 패킷으로 변환하는 처리를 수행할 수 있으며, 이러한 변환 프로세스는 발간 요청 받은 메시지를 RTPS 표준에 따른 형태로 직렬화하는 직렬화 프로세스를 포함할 수 있다.
그리고, 본 발명의 실시 예에 따른 패킷 처리부(110)는, 직렬화 프로세스에 있어서, 실시간 배칭(BATCHING) 프로세스를 통해 대역폭의 낭비를 해소하고, 실시간성을 보장할 수 있다.
보다 구체적으로, 예를 들어 RTPS에서는 기본적으로 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화되도록 구성되어 있다. 따라서 사용자 장치(200)에서 100개의 메시지를 발간 요청하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신될 수 있다.
그러나, 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.
이에 따라, 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장하기 위하여, 본 발명의 실시 예에 따른 패킷 처리부(110)는, RTPS 서브 메시지에 패킷의 허용 가능한 최대 바이트 한도까지 복수의 메시지를 배칭(BATCHING) 처리할 수 있는 직렬화 프로세스를 처리할 수 있으며, 이를 위한 하나 이상의 메시지 버퍼를 포함할 수 있다.
또한, 본 발명의 실시 예에 따른 패킷 처리부(110)는 이벤트 처리부(120)에서 처리되는 각 이벤트의 시작과 종료 처리를 수행함에 있어서, 스레드간 통신으로 발생하는 지연과 상태 전환으로 발생되는 지연 시간을 최소화하기 위하여, 단일 스레드로 메시지의 발간 또는 구독 프로세르를 처리하도록 하는 입출력 패스스루 경로를 활성화할 수 있으며, 이러한 입출력 패스스루 활성화 여부는 메시지의 지연 시간에 따라 동적으로 가변 처리됨으로써, 환경 적응적으로 지연 시간의 최소화를 달성할 수 있다.
그리고, 본 발명의 실시 예에 따른 패킷 처리부(110)는, 트래픽 제어시의 유실이 일어나지 않도록 하는 최대 대역폭을 설정할 수 있으며, 이는 패킷 전송 파라미터에 따른 지연 시간 연산을 통해 송신 대기 처리를 수행하도록 함으로써 조절될 수 있다.
이러한 본 발명의 실시 예에 대하여 이하의 도면들을 참조하여 보다 구체적으로 후술하도록 한다.
도 2는 본 발명의 실시 예에 따른 패킷 처리부의 구체적인 구성 및 이에 따른 시스템 동작을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(110)는, 입출력 패스스루 활성화부(111), 직렬화부(113), 트래픽 제어부(115) 및 송수신부(117)를 포함한다.
먼저, 패킷 처리부(110)는 RTPS의 전송 계층 프로토콜로 UDP를 사용할 수 있으며, 미들웨어를 통해 생성되는 미들웨어 내부 데이터, 사용자 데이터를 RTPS 메시지로 캡슐화 처리할 수 있다. RTPS는 UDP를 전송 계층으로 사용하므로 RTPS 메시지는 다시 UDP 데이터그램으로 캡슐화될 수 있다.
직렬화부(113)는 이러한 RTPS 메시지를 UDP 데이터그램으로 캡슐화하기 위한 RTPS 메시지의 직렬화 처리를 수행할 수 있다.
도 3은 본 발명의 실시 예에 따른 RTPS 메시지의 직렬화 예시도이며, 도 4는 본 발명의 실시 예와 종래 기술의 직렬화 비교도이다.
도 3을 참조하면, RTPS 메시지는 구체적으로, RTPS 헤더와 하나 이상의 RTPS 서브메시지 데이터로 구성될 수 있으며, RTPS 헤더는 임의 값(Magic Value), 프로토콜 버전(Protocol Version), 벤더 식별자(Vendor ID) 및 메시지를 발간하는 발간자 식별정보(GUID-Globally Unique Identifier)를 포함할 수 있다. DDS는 물리적으로는 통신 인터페이스부(140)를 통한 IP Address 및 UDP Port를 사용하여 통신을 수행하지만, 논리적으로는 GUID Prefix로 상대방을 식별할 수 있게 정의된다.
그리고, RTPS 서브메시지 데이터는 서브메시지 헤더 정보 및 서브메시지 바디 정보를 포함할 수 있다. 서브메시지 헤더 정보는 서브메시지의 종류 정보와 크기 정보를 포함할 수 있다. 서브메시지 바디 정보에는 메시지가 표현하고자 하는 실제 데이터가 포함될 수 있다.
서브 메시지의 종류 정보는, DATA, DATA_FRAG, GAP, ACKNACK, HEARTBEAT, HEARTBEAT_FRAG, PAD, INFO_SRC, INFO_DST, INFO_TS 또는 INFO_REPLY 와 같이 분류될 수 있으며, 각각 서브메시지 바디에 포함된 실제 데이터의 속성을 나타낼 수 있다.
그리고, 도 4(A)를 참조하면, 기본적으로 종래 기술에서 1개의 사용자 메시지는 1개의 RTPS 메시지로 직렬화된다. 따라서 사용자가 100개의 메시지를 발간하는 경우, 100개의 RTPS 메시지가 생성되어 네트워크로 송신된다. 네트워크 장치 특성 상, 단기간 내에 생성된 다수의 패킷으로 인해 발생하는 잦은 I/O는 성능의 저하를 야기한다. 또한, 사용자 데이터를 네트워크 패킷으로 변환할 때, Ethernet, IP, UDP, RTPS등 각 프로토콜들의 메타데이터와 헤더를 표현하기 위한 공간이 메시지에 추가되기 때문에, 메시지의 수가 많을수록 메타데이터와 헤더에 소요되는 대역폭의 낭비가 발생한다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는, RTPS 메시지를 구성하는 RTPS 서브 메시지상에, 패킷에 허용되는 최대 바이트 한도까지 배칭(Batching) 처리를 수행할 수 있다. 따라서 사용자 메시지가 충분히 작을 경우, 복수의 사용자 메시지를 1개의 RTPS 메시지로 직렬화 처리할 수 있다.
이를 위해, 직렬화부(113)는 메시지 배칭을 위한 별도의 메시지 버퍼(미도시)를 포함할 수 있다. 메시지를 배칭하기 위해서는 충분한 메시지가 메시지 버퍼에 쌓여 있어야 한다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는 충분한 메시지가 메시지 버퍼에 쌓이도록 하기 위해, 사용자 장치(200)에서 메시지 발간 요청을 네트워크 전송 속도보다 빠르게 요청한 경우, 즉시 전송이 불가능한 메시지로 판별하여 메시지 버퍼에 누적되도록 처리할 수 있다. 그리고, 직렬화부(113)는 상기 사용자장치(200)에서 수신된 메시지 발간 요청을 강제 지연 처리함으로써, 메시지가 메시지 버퍼에 쌓일 시간을 확보하도록 할 수 있다.
특히, DDS 표준에서는 QoS 파라미터로서 지연 할당(LATENCY_BUDGET) 파라미터를 정의하고 있다. 지연 할당 파라미터는, 발간측 사용자 장치(200)에 적용될 수 있으며, 단지 데이터 통신의 긴급도를 표현하는 수치로 정의는 되어 있으나, 실제 의미는 구현자가 임의로 부여할 수 있는 측면이 존재한다. 따라서, 본 발명의 실시 예에 따른 직렬화부(113)는 지연 할당(LATENCY_BUDGET) 파라미터를 RTPS 메시지를 배치하기 위한 메시지 송신 최대 지연 시간으로 재정의할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는 지연 할당 파라미터에 기초한 메시지 송신 최대 지연 시간 동안, 사용자 장치(200)로부터 수신된 메시지 발간 요청을 강제 지연 처리하고 요청된 발간 메시지를 메시지 버퍼에 누적하며, 지연 시간이 경과되면 누적된 메시지들을 배칭 처리하여 직렬화된 1개의 RTPS 병합 메시지로 구성하며, 구성된 RTPS 병합 메시지를 송수신부(117)를 통해 통신 패킷으로 변환하여 통신 인터페이스부(140)로 출력할 수 있다.
이러한 RTPS 병합 메시지는, DDS에서 정의된 RTPS 표준 규격을 그대로 따르므로 상호 운용성에 영향을 미치지 않으며, 수신 측에서는 RTPS 병합 메시지에 포함된 메시지들의 시작점부터 종료점까지의 직렬화된 데이터를 각각 취득할 수 있으므로, 실시간 배칭 전송 및 수신 처리가 가능하게 된다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)는 앞서 서술한 잦은 I/O로 인한 성능 저하, 프로토콜의 메타데이터와 헤더 표현에 소요되는 대역폭의 낭비를 해소함과 동시에 실시간성을 보장할 수 있다.
도 5는 이러한 본 발명의 실시 예에 따른 직렬화부(113)의 처리에 따른 패킷 처리부(110)의 동작을 설명하기 위한 흐름도이다.
도 5를 참조하면, 본 발명의 실시 예에 따른 직렬화부(113)는 이벤트 처리부(120)의 이벤트가 발생되어 전달되면(S101), 메시지 발간 이벤트인지 판단한다(S103).
메시지 발간 이벤트인 경우, 직렬화부(113)는 발간 메시지에 동일한 GUID를 갖는 시퀀스를 부여하고, 메시지 버퍼에 삽입 처리한다(S109).
예를 들어, 발간 메시지에 할당된 시퀀스는 1, 2, 3 과 같은 일련번호일 수 있으며, 메시지 버퍼에 삽입되는 모든 메시지들은 동일한 발간자 식별자(GUID)에 매칭될 수 있다.
그리고, 직렬화부(113)는 메시지 버퍼가 가득 찼는지 판단하고(S111), 가득 찬 경우 버퍼링된 메시지의 배칭 처리를 수행한다(S113). 만약 가득 차지 않은 경우에는 일정 지연 할당 주기 시간까지 발간 이벤트 발생을 대기 처리할 수 있다.
여기서, 직렬화부(113)는 버퍼링된 메시지 배칭 처리를 위해, 동일 발간자 식별자(GUID)에 매칭된 하나의 RTPS 메시지에 일련번호 시퀀스가 할당된 복수의 서브메시지들을 포함시키는 처리를 수행할 수 있다.
그리고, 직렬화부(113)는 배칭된 메시지를 송수신부(117)로 전달하며, 송수신부(117)에서는 패킷화 처리하여 통신 인터페이스부(140)를 통해 외부 네트워크로 전송한다(S115).
한편, 본 발명의 실시 예에 따르면 전술한 바와 같이 지연 할당(LATENCY_BUDGET) QoS 파라미터가 설정될 수 있다.
이에 따라, S103 단계에서 발생된 이벤트가 메시지 발간 이벤트가 아닌 것으로 확인되는 경우, 직렬화부(113)는 지연 할당 주기 이벤트로 판별하며, 메시지 버퍼에 지연 할당 시간 이상으로 대기된 메시지가 존재하는지 확인한다(S105).
만약 지연 할당 시간으로 대기된 메시지가 존재하는 경우, 직렬화부(113)는 현재까지 버퍼링된 메시지의 배칭 처리(S113) 및 전송 처리(S115)를 수행한다.
그러나, 아직 지연 할당 이상 대기된 메시지가 존재하지 않으면 직렬화부(113)는 지연 할당에 따른 주기적 이벤트를 재예약 처리하여(S107), 지연 할당 시간 이상으로 초과 지연되는 데이터는 없도록 처리할 수 있다.
이에 따라, 본 발명의 실시 예에 따른 직렬화부(113)의 배칭 처리는 실시간성을 보장할 수 있으며 특히 지연 할당(LATENCY_BUDGET) QoS 파라미터 설정을 통하여, 특정 파라미터에 의해 보장된 지연 한도 내에서의 최대 메시지 처리량을 확보할 수 있게 된다.
한편, 다시 도 2를 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(110)는 입출력 패스스루 활성화부(111)를 포함한다.
본 발명의 실시 예에 따른 미들웨어 장치(100)는, 복잡한 DDS의 기능들을 구현하는 복잡도를 낮추기 위해 복수의 처리부로 구분될 수 있으며, 각 처리부는 다른 처리부와 흐름 연계를 위한 일부 로직을 제외하면, 대부분의 로직이 다른 처리부와 독립적으로 구동될 수 있다. 따라서, 본 발명의 실시 예에 따른 미들웨어 장치(100)는 각각의 처리부에 자체적인 프로세서가 포함될 수 있고, 각 프로세서는 각각의 프로세스 스레드를 처리함으로써 동시에 여러 작업이 수행되도록 하여 대량의 메시지 발간/구독 요청에 대응할 수 있다.
그러나, 한 처리부에서 다음 처리부로 처리 흐름이 변경될 때 지연시간이 발생한다. 이는 이벤트 전달 시작 및 종료 시점에서 발생하는 다음 처리부와의 스레드 간 통신으로 발생하는 지연과, 그리고 다음 처리부의 스레드가 대기 상태였을 경우 해당 스레드가 다시 시작되기까지의 지연으로 인해 발생될 수 있다.
이러한 지연 발생을 최소화하기 위하여, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 단일 처리부의 스레드 구동을 통해, 각 처리부간 이벤트 전달 시작 또는 종료 스레드 생성 없이, 곧바로 작업을 처리하여 불필요한 지연시간이 발생하는 것을 최소화 할 수 있으며, 이러한 입출력 패스스루 기능의 활성화 여부를 판단하여 ON 또는 OFF 처리할 수 있다.
예를 들어, 입출력 패스스루를 활성화 한 경우, 한 처리부의 스레드를 사용하여 메시지의 최종 처리까지 진행하므로 병렬 처리는 불가능하게 되며, 그 결과 다량의 메시지 처리 성능을 감소할 수 있다. 따라서, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 따라서 처리량과 지연시간을 모두 최적화하기 위해 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.
도 6은 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)의 동작을 예시적으로 설명하기 위한 흐름도이다.
도 6을 참조하면, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 처리량과 지연시간을 모두 최적화하기 위해 RTPS 패킷 송수신 시간 기록의 시각차 평균 시간과, RTPS 패킷 1개의 송수신 처리 시간을 비교하여, 입출력 패스스루 활성화 여부를 동적으로 가변시킬 수 있다.
보다 구체적으로, 먼저 입출력 패스스루 활성화부(111)는 RTPS 패킷의 송수신 시간 정보를 누적 기록한다(S201).
그리고, 입출력 패스스루 활성화부(111)는 시간 기록이 32회 이상 측정되었는지 판단한다(S203).
여기서, 시간 기록의 측정 회수는 네트워크 환경에 따라 상이할 수 있다.
그리고, 입출력 패스스루 활성화부(111)는 측정된 RTPS 패킷의 각 패킷 간 시각차 평균 값이, 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인지 판단한다(S205).
만약 시각차 평균이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간 이내인 경우, 입출력 패스스루로 처리되는 현재 패킷의 개수가 대량인 것으로 판단될 수 있으며, 이에 따라 대랑 메시지 처리에 효율적인 병렬 프로세스를 적용하기 위해 입출력 패스스루 활성화부(111)는 입출력 패스스루 기능을 비활성화 처리할 수 있다(S207).
반면, 시각차 평균 값이 사전 설정된 RTPS 패킷 1개의 송수신 처리 시간을 초과하는 경우에는 직렬 메시지 처리가 지연 시간을 최소화할 수 있으므로, 입출력 패스스루 활성화부(111)는 입출력 패스스루 기능을 활성화한다(S209).
이와 같이, 본 발명의 실시 예에 따른 입출력 패스스루 활성화부(111)는, 지연 시간을 메시지의 실시간 전송 상황 따라 최소화할 수 있으며, 특히 대량의 메시지 처리 시에는 메시지를 각 처리부가 병렬로 처리하는 것이 지연시간을 최소화 할 수 있으므로, 입출력 패스스루를 비활성하고, 소량의 메시지 처리 시에는 이벤트 전달 시작/종료의 오버헤드가 크게 작용하는 것이 예상되므로, 입출력 패스스루를 활성화하여 지연시간을 최소화할 수 있는 것이다.
한편, 다시 도 2를 설명하면, 본 발명의 실시 예에 따른 패킷 처리부(110)는 입출력 트래픽 제어부(115)를 포함할 수 있다.
송수신부(117)는, 직렬화부(113)에서 처리된 데이터를 패킷화하여 외부 네트워크로 패킷을 송신할 수 있다. 다만, 통신 인터페이스부(140)의 네트워크 인터페이스의 대역폭이 실제 네트워크의 대역폭보다 클 경우, 실제 네트워크의 대역폭 초과분에 해당하는 패킷은 모두 유실되는 문제점이 발생될 수 있다.
유실된 패킷을 복구하기 위해 송수신부(117)는 재전송 처리를 시작할 수 있다. 그러나 재전송 처리 역시 네트워크로 패킷을 송신하는 행위이기 때문에, 재전송 과정에서 대역폭 초과분이 발생한 만큼 일부 재전송 패킷 또한 유실될 수 있으며, 일부 유실된 재전송 패킷을 다시 재전송해야 하는 악순환이 통신 성능의 저하를 야기한다.
이에 따라, 본 발명의 실시 예에 따른 트래픽 제어부(115)는 직렬화부(113) 및 송수신부(117) 사이를 연결할 수 있으며, 송신 시간 지연을 통해 송신 대역폭이 일정하게 제어될 수 있도록 하여, 대역폭 초과분에 따른 패킷 유실을 방지할 수 있다. 이러한 최대 대역폭 허용량은 실제 네트워크 환경에 따라 달라질 수 있으며 사용자 설정에 따라 사전 결정될 수 있다.
도 7은 본 발명의 실시 예에 따른 트래픽 제어부(115)의 동작을 설명하기 위한 흐름도이다.
도 7을 참조하면, 본 발명의 실시 예에 따른 트래픽 제어부(115)는 직렬화부(113)로부터 직렬화된 메시지 데이터가 전달되면(S310), 현재 시간이 사전 설정된 대역폭에 따른 지연 시간 이내인지 판단한다(S303).
그리고, 트래픽 제어부(115)는 허용량 이내인 경우에는 송수신부(117)로 메시지를 전달하며(S305), 허용량을 초과하는 경우 일정 시간 동안 전송 지연을 처리하며(S307), 지연된 메시지는 전송 지연 시간 이후 송수신부(117)로 전달될 수 있다.
보다 구체적으로, 본 발명의 실시 예에 따른 트래픽 제어부(115)는 상기 S303 단계에서, 하기의 수학식 1을 이용하여, 현재 시점이 사전 설정된 대역폭에 따른 지연 시간 이내인지 여부를 판단할 수 있다.
Figure 112019127355872-pat00001
이와 같은 수학식 1은, n개의 패킷을 송신하였을 때, 패킷 전송이 가능한 시간 T_open을 연산하는 프로세스를 나타내고 있으며, 트래픽 제어부(115)는 패킷 전송이 가능한 시간 이내인지 여부에 따라 메시지 전송의 지연여부 및 지연 시간을 결정할 수 있다.
보다 구체적으로, T_open은 패킷 전송이 가능한 시간을 나타내며, T_current가 T_open보다 이전일 경우, 패킷 전송은 지연될 수 있다.
T_current는 현재 시간을 나타낼 수 있으며, UNIX Epoch Timestamp를 나노초 해상도로 표현한 값이 예시될 수 있다. 예를 들어 2019년 10월 1일 16시 30분에 대응하는 T_current는 1,569,915,000,000,000,000 값을 가질 수 있다.
그리고, B는 미들웨어 장치(100)가 사용하는 네트워크 인터페이스의 최대 대역폭 값을 bps(bit per second)로 나타내는 값일 수 있다. 최대 대역폭 값은 트래픽 제어부(115)가 통신 인터페이스부(140)로부터 식별하여 감지하거나, 별도로 사용자에 의해 지정될 수도 있다.
그리고, 10^9 / B 는 비트슬라이스를 나타내는 것으로, 네트워크 장치의 대역폭이 1비트를 보내는데 걸리는 나노초를 의미할 수 있다.
그리고, L_i는 i번째 패킷의 크기를 나타낼 수 있으며, 패킷 크기 Li는 바이트 단위이므로, 패킷 크기의 단위를 비트로 통합하기 위해 패킷 크기에 8을 곱한 값이 누적 합산되도록 정의될 수 있다.
이와 같이 제안된 수학식 1을 참조하면, 트래픽 제어부(115)는, 사전 설정된 최대 대역폭 내에서 패킷 전송이 발생하여, Tx 트래픽이 발생하였을 때, 나노 초 단위로 구분된 비트슬라이스가 얼마나 사용되는지를 연산하여, 패킷 전송이 가능한 시간 T_open을 연산할 수 있다.
예를 들어, 트래픽 제어부(115)는 현재 측정한 T_current가 마지막으로 계산한 T_open보다 작다면 T_open - T_current 값 만큼의 지연 시간 동안 전송을 지연처리할 수 있는 것이다.
도 8은 트래픽 제어부(115)의 지연 시간 산출을 위한 연산 프로세스를 보다 구체적으로 도시한 흐름도이다.
도 8을 참조하면, 본 발명의 실시 예에 따른 트래픽 제어부(115)는 초기 T_open은 0으로 입력하고, T_current를 현재 값으로 갱신한다(S401).
그리고, 트래픽 제어부(115)는 T_current가 T_open 보다 큰지 판단한다(S403).
만약 T_current가 T_open 보다 작은 경우, 트래픽 제어부(115)는 T_open - T_current 값의 차이가 1ms 이하인지 판단한다(S405).
만약 T_open - T_current 값의 차이가 1ms 보다 큰 경우, 트래픽 제어부(115)는 T_open이 T_current보다 작은지 판단한다(S407).
T_open이 T_current보다 작지 않으면, 트래픽 제어부(115)는 전송 대기를 처리하고, T_current로 T_open 값을 갱신한다(S409).
한편, S403 단계에서 T_current가 T_open보다 큰 경우, 트래픽 제어부(115)는 T_current - T_open 값의 차이가 1ms 이하인지 판단한다(S411).
만약 상기 S407 단계에서 T_open이 T_current보다 작거나, T_current - T_open 값의 차이가 1ms 이하가 아닌 경우에는 T_current를 다시 갱신하며(S413), T_open을 다시 갱신한다(S415).
이와 같은 처리에 따라, 송신 대기가 너무 자주 일어나지 않도록 T_open 값 및 T_current 값이 조절될 수 있다. 특히, 현재 시간이 가장 마지막으로 패킷을 송신한 시간으로부터 1 밀리초 이상 경과한 경우는 송신대기 처리 흐름이 발생하지 않도록 T_open 값은 T_current 값으로 갱신 처리될 수 있다.
한편, 다시 도 2를 참조하면, 본 발명의 실시 예에 따른 패킷 처리부(110)는 송수신부(117)를 포함하며, 송수신부(117)는 직렬화부(113) 및 트래픽 제어부(115)를 통해 수신된 발간 메시지를 패킷화하여 통신 인터페이스부(140)를 통해 외부 네트워크로 전송하거나, 외부의 패킷을 수신하여 직렬화부(113)로 전달하여 역직렬화된 구독 메시지가 메시지 처리부(130)를 통해 사용자 장치(200)로 전달되도록 처리할 수 있다.
이와 같은 구성을 통해, 본 발명의 실시 예에 따른 미들웨어 장치(100)는, 실시간성을 유지할 수 있는 메시지 배칭 처리와 입출력 처리 패스스루 프로세스 및 트래픽 제어 처리를 제공할 수 있다.
도 9는 본 발명의 실시 예에 따른 메시지 재전송 처리 프로세스를 설명하기 위한 도면이다.
RTPS는 데이터 전송, 재전송 규약을 구체적으로 정의한다. 재전송 규약은 사용자가 지정한 의존성(Reliability) QoS 설정에 따라 다르게 동작하며, 미들웨어 장치(100)는 최선 의존성(BestEffort Reliability)인 경우 DATA 서브 메시지를 사용하여 전송만 처리하고, 신뢰 의존성(Reliable Reliability) QoS인 경우 하트비트(HEARTBEAT) 메시지, 애크낵(ACKNACK) 메시지, DATA 서브메시지를 사용하여 전송/재전송 처리 모두를 수행할 수 있다.
여기서, 사용자의 데이터를 표현하는 DATA 서브메시지는 식별자인 시퀀스 일련번호가 할당되며, 미들웨어 장치(100)는 시퀀스 일련번호 값을 재전송 해야 할 메시지 식별과, 메시지 정렬에 사용할 수 있다.
이와 같이 메시지 재전송은 발간/구독측의 RTPS 서브 메시지의 통신으로 이루어진다.
발간측은 DATA 서브메시지 HEARTBEAT 서브메시지를 구독측에 RTPS 메시지로 전송할 수 있다. 구독측은 DATA 서브메시지 및 HEARTBEAT 서브메시지를 수신한 후, 현재 구독에 성공한 데이터의 목록을 ACKNACK 서브메시지로 표현해 발간측에 전송한다. 발간측은 ACKNACK 서브메시지를 수신 후, 자신이 보낸 메시지가 일부 유실되었을 경우 유실된 DATA 서브메시지를 구독측에 재전송하고, HEARTBEAT 서브메시지를 구독측에 다시 전송한다.
그러나, 네트워크를 통해 메시지가 전달되는 과정에서 유실은 필연적으로 발생하게 된다. 본 발명의 실시 예에 따른 이벤트 처리부(120)는, 유실 상태 정보를 사전 설정된 조건부로 검출하여, 효과적으로 감지 및 대응함으로써 유실 발생에 대한 효율적인 대응 처리를 통해 지연시간을 단축시키고, 네트워크 처리 성능을 향상시킬 수 있다.
이에 대하여 도 9를 참조하여 본 발명의 실시 예에 따른 이벤트 처리부(120)의 재전송 처리 프로세스를 설명하면, 먼저 이벤트 처리부(120)는 현재 유실 상태 정보를 일반 상태, 제1 대기 상태, 최종 대기 상태 및 응답 없음 상태의 4가지 상태 정보로 구분할 수 있다. 이를 위해, 이벤트 처리부(120)는 유실 상태 정보 관리부(미도시)를 더 포함할 수 있다.
만약, 일반 상태에서 유실 발생이 감지된 경우, 상태 정보 관리부는 현재 유실 상태 정보를 제1 대기 상태로 천이시킬 수 있다.
그리고, 제1 대기 상태에서 첫 유실 메시지가 수신된 경우, 상태 정보 관리부는 현재 유실 상태 정보를 최종 대기 상태로 천이시킬 수 있다.
이후, 상태 정보 관리부는 최종 대기 상태에서 마지막 유실 메시지가 수신된 경우, 상태 정보 관리부는 현재 유실 상태 정보를 응답 없음 상태로 천이시킬 수 있으며, 응?㈍坪? 상태로 천이되면 상태 정보 관리부는 응답없음 상태를 다시 일반 상태로 천이시켜 이후의 유실 발생을 대비할 수 있다.
특히, 상태 정보 관리부는, 일정 시간 이내에 발생되는 메시지의 유실 감지 발생에 따라, 이에 대응한 재전송 메시지의 전송여부를 결정하기 위한 복수의 상태 정보간 천이를 수행할 수 있다.
이러한 상태 천이를 보다 구체적으로 설명하면, 먼저 일반 상태에서 데이터 수신 도중, 메시지 유실이 발생될 수 있다.
본 발명의 실시 예에 따른 메시지 유실은 사전 설정된 3가지 검출 조건에 따라 결정될 수 있다.
첫 번째는 DATA 서브 메시지의 유실 검출 조건으로서, 이벤트 처리부(120)는 마지막으로 수신한 HEARTBEAT에 표현된 시퀀스와, 실제 수신한 메시지의 시퀀스가 일치하지 않을 경우 DATA 서브 메시지의 메시지 유실을 감지할 수 있다. 이러한 DATA 서브 메시지의 유실이 발생된 경우, 구독측 장치는 유실된 메시지의 목록을 ACKACK 서브 메시지로 표현해 발간측 장치에 전송 대응할 수 있다.
두 번째는 HEARTBEAT 서브 메시지의 유실 검출 조건으로서, 이러한 유실은 구독측 장치에서는 감지할 수 없다. 따라서, 본 발명의 실시 예에 따른 이벤트 처리부(120)는 발간측에 구비될 수 있으며, DATA 서브메시지가 일정 횟수 이상 전송되었을 시, HEARTBEAT 서브메시지가 전송되도록 제어할 수 있다. 이에 따라, 이벤트 처리부(120)는 일부 HEARTBEAT 서브 메시지가 유실되어도 전체적인 통신에 큰 악영향이 가지 않도록 대응할 수 있다. 또한, 이벤트 처리부(120)는 일정 시간마다 HEARTBEAT 서브메시지를 전송하도록 하여 데이터 전송 중 생성한 HEARTBEAT 서브메시지가 모두 유실된 최악의 상황에도 대응토록 할 수 있다.
한편, 세 번째는 ACKNACK 서브 메시지의 유실 검출 조건으로서, ACKNACK 서브 메시지가 유실되면 발간측에서 DATA 서브메시지도 HEARTBEAT 서브메시지도 전송하지 않게 된다. 따라서 본 발명의 실시 예에 따른 이벤트 처리부(120)는 구독측에 구비된 경우, ACKNACK 서브 메시지를 전송한 이후 특정한 시간 이상 발간측의 응답이 없을 때, ACKNACK 서브 메시지의 유실을 검출하고, 상기 ACKNACK 서브 메시지를 재전송함으로써 유실 상태에 대응할 수 있다.
이와 같은 메시지 유실이 발생되면, 이벤트 처리부(120)는 유실 발생에 대응하는 전술한 대응 처리를 수행하고, 상태 정보 관리부는 현재 상태 정보를 제1 대기 상태로 천이시킨다.
제1 대기 상태에서 최초 메시지를 수신하면, 상태 정보 관리부는 현재 상태를 제2 대기 상태로 천이시키며, 추정 RTT 값의 평균과 편차를 업데이트한다.
그리고, 마지막 유실 메시지를 수신하면 상태 정보 관리부는 현재 상태를 NONACK 상태로 천이하며, 일반적인 통신 흐름 상태로 전환한다.
여기서, 재전송 처리 성능을 극대화하기 위해, 발간측과 구독측 사이의 RTT(Round Trip Time)을 정밀하게 실시간으로 추정하여, 재전송 메시지를 적합한 시간 안에 양측이 공유하도록 하여야 한다.
이에 따라, 본 발명의 실시 예에 따른 이벤트 처리부(120)의 상태 정보 관리부는, 제1 대기 상태에서 첫 메시지를 수신하기까지의 시간(dt)을 사용해, 하기 수학식 2와 같이 RTT를 추정할 수 있다.
Figure 112019127355872-pat00002
여기서, 상기 RTT_avg는 추정 RTT의 평균 값을 나타내며, RTT_dev는 추정 RTT의 편차를 나타낸다. 그리고, sens는 추정값 변화 민감도 상수로서, 본 발명의 실시 예에 서는 0.02가 바람직할 수 있다. dt는 제1 대기 상태에서 첫 메시지를 수신하기까지 걸린 시간을 나타낸다.
또한, 본 발명의 실시 예에 따른 이벤트 처리부(120)의 상태 정보 관리부는, 추정된 RTT 동안 발간측이 응답하지 않을 경우, 구독측이 하기의 수학식 3에 따라, 대기 시간의 최대값인 TOT(Time Out Timer)를 결정하여 응답 없음으로의 상태 천이를 수행하도록 할 수 있다.
Figure 112019127355872-pat00003
한편, 도 10은 본 발명의 실시 예에 따른 재전송 메시지의 확장 포맷을 나타낸다.
일반적으로 RTPS 프로토콜에서 메시지의 수신/유실 상태를 표현하는데 사용되는 ACKNACK Submessage는 효율적으로 정보를 표현하기 위해 비트맵을 사용한다. 비트맵의 구성 요소는 base, numbits, bitset이며, 각각 비트맵이 표현할 첫 번째 메시지 번호, 비트맵이 표현할 메시지의 수, 메시지의 수신/유실 상태를 표현(비트가 0인 경우 유실되지 않은 메시지를, 1인 경우 유실된 메시지를 의미한다)한다.
RTPS 프로토콜 표준에서는 비트맵이 표현할 메시지의 수를 최대 256개로 한정한다. 따라서 유실된 메시지가 256개를 초과한 경우 비트맵 하나로 모든 유실 상태를 표현할 수 없으므로, ACKNACK Submessage가 구독측에 여러 번에 걸쳐 전송되어야 하므로, 발간측과 구독측 사이의 네트워크 RTT(Round-Trip-Time)에 비례해 메시지 처리량이 저하된다.
그러나, ACKNACK Submessage로 표현하는 최대 비트의 수를 RTPS 표준에서 정의한 256개를 초과해 표현하도록 확장하면 다량의 유실이 발생했을 때 이를 표현하는데 필요한 ACKNACK Submessage의 수가 줄어든다. 결과적으로 신뢰성 있는 통신의 성능 또한 크게 향상되면서, RTPS 표준과도 호환성을 잃지 않는다. 이에 따라, 본 발명의 실시 예에 따른 미들웨어 장치(100)에서 재전송되는 ACKNACK 서브메시지는 256개를 초과할 수 있으며, 유실 메시지의 개수에 따라 그 크기가 가변적으로 확장 형성될 수 있도록 설정됨으로써, RTPS 표준과도 호환성을 잃지 않으면서도 기존 표준 대비 메시지 처리량을 높일 수 있다.
RTPS 프로토콜 표준과의 호환성을 잃지 않는 원리는 다음과 같다.
- UDP 패킷은 최대 65507 바이트를 표현할 수 있으므로, 비트맵을 확장하여 크기가 증대되어도 무방하다.
- Submessage Length는 부호 없는 2바이트 정수이다. 따라서 최대값은 65535이며, 비트맵을 확장하여 크기가 증대되어도 무방하다.
- numbits는 부호 없는 4바이트 정수이다. 따라서 최대값은 4,294,967,295이며, 256이 넘는 값을 넣어도 무방하다.
- bitset은 (numbits + 31) / 32 만큼 계속해서 확장되는 형태이다. 따라서 비트맵으로 표현한 비트맵이 256개를 넘어서도 무방하다.
이에 따라 본 발명의 실시 예에 따른 재전송 메시지는 표준과의 호환성을 유지하면서 ACKNACK Submessage로 표현하는 최대 비트의 수는 256개를 초과할 수 있도록 확장 형성될 수 있다.
MaxBitmapCount = ( MTU - Header Size) / 4
= ( MTU - 92) / 4
MTU = 1500 <= N < 65536
Header Size = IP Header Size(20) +
UDP Header Size(8) +
RTPS Header Size(20) +
RTPS INFO_DST Submessage Size(16) +
RTPS ACKNACK Submessage Size(28, When numbits is zero)
= 92
이에 따라, 실제 네트워크에서 자주 사용되는 MTU(Maximum Transmission Unit)인 1500과, 65535의 경우를 위의 연산과정에 대입하면 각각 352개, 16351개의 비트맵을 한 패킷에서 표현할 수 있음을 확인할 수 있다.
표준에서 정의한 최대 비트맵 수는 8개이므로(numbits 256 → 8 bitset), 표준 대비 각각 44배, 2043배의 정보를 표현할 수 있음을 확인할 수 있다.
상술한 본 발명의 다양한 실시 예들에 따른 방법은 프로그램으로 구현되어 다양한 비일시적 판독 가능 매체(non-transitory computer readable medium)에 저장된 상태로 각 서버 또는 기기들에 제공될 수 있다. 이에 따라, 사용자 단말(100)은 서버 또는 기기에 접속하여, 상기 프로그램을 다운로드할 수 있다.
비일시적 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.

Claims (7)

  1. 발간측 장치 또는 구독측 장치에 설치되는 DDS(Data Distribution Service) 미들웨어 장치에 있어서,
    상기 발간측 장치 또는 상기 구독측 장치로부터 수신되는 메시지 요청을 이벤트 처리부로 전달하는 메시지 처리부; 및
    상기 이벤트 처리부로부터 수신되는 메시지를 직렬화 처리하여 통신 인터페이스부를 통해 네트워크로 전송하는 패킷 처리부를 포함하고,
    상기 이벤트 처리부는,
    일정 시간 이내에 발생되는 메시지의 유실 감지 발생에 따라, 이에 대응한 재전송 메시지의 전송여부를 결정하는 상태 정보 관리부를 포함하며,
    상기 상태 정보 관리부는,
    상기 미들웨어 장치가 상기 구독측 장치에 설치되고, 상기 구독측 장치에서 일반 상태에서의 RTPS(Real Time Publish Subscribe) 표준 규격의 DATA 서브 메시지의 유실 발생이 감지된 경우, 현재 유실 상태 정보를 제1 대기 상태로 천이시키고, 상기 구독측 장치에서 감지된 복수의 유실 DATA 서브 메시지의 목록을 ACKACK 서브 메시지로 표현한 상기 재전송 메시지를 추정 RTT 시간 안에 상기 발간측 장치로 전송되도록 공유하며,
    상기 제1 대기 상태에서 상기 발간측 장치로부터 상기 유실 메시지의 목록 중 첫 유실 메시지가 상기 구독측 장치로 수신된 경우, 상기 현재 유실 상태 정보를 제2 대기 상태로 천이시키고, 상기 제1 대기 상태에서 상기 첫 유실 메시지가 수신될 때까지의 시간을 이용하여 상기 추정 RTT 시간을 갱신하여 상기 제2 대기 상태에서의 메시지 대기 시간의 최대값을 결정하며,
    상기 갱신된 추정 RTT 시간이 경과하거나, 상기 제2 대기 상태에서 상기 발간측 장치로부터 상기 유실 메시지의 목록 중 마지막 유실 메시지가 상기 구독측 장치로 수신된 경우, 상태 정보 관리부는 상기 현재 유실 상태 정보를 NONACK 상태로 천이시켜, 상기 일반 상태로 전환시키고,상기 ACKNACK 서브 메시지로 표현된 상기 재전송 메시지는,
    상기 RTPS 표준 호환은 유지하면서, 상기 유실 DATA 서브 메시지의 목록에 포함된 유실 메시지의 개수에 따라 그 크기가 가변적으로 확장되도록, 비트맵 영역의 최대 비트 수가 확장 형성되는
    DDS 미들웨어 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 상태 정보 관리부는,
    상기 발간측 장치로부터 수신한 RTPS(Real Time Publish Subscribe) 규격의 하트비트(HEARTBEAT) 서브 메시지의 시퀀스와, 실제 수신한 메시지의 시퀀스가 일치하지 않을 경우 상기 RTPS 규격의 DATA 서브 메시지의 메시지 유실을 감지하고, 일치하지 않는 서브 메시지의 목록을 상기 유실 메시지의 목록을 포함하는 ACKACK 서브 메시지로 표현한 재전송 메시지로 구성하여 상기 발간측 장치로 전송하는DDS 미들웨어 장치.
  4. 제1항에 있어서,
    상기 상태 정보 관리부는,
    상기 미들웨어 장치가 상기 발간측 장치에 설치되고, 상기 발간측 장치에서 RTPS 규격의 DATA 서브메시지가 일정 횟수 이상 상기 구독측 장치로 전송된 경우, 상기 RTPS 규격의 HEARTBEAT 서브 메시지의 유실을 대비한 상기 하트비트(HEARTBEAT) 서브메시지를 상기 구독측 장치로 전송하는
    DDS 미들웨어 장치.
  5. 제1항에 있어서,
    상기 상태 정보 관리부는,상기 미들웨어 장치가 상기 구독측 장치에 설치되고, 특정 메시지에 대응하는 RTPS 규격의 ACKNACK 서브 메시지를 상기 발간측 장치로 전송한 이후 특정한 시간 이상 상기 발간측 장치의 응답이 없는 경우, 상기 ACKNACK 서브 메시지 자체의 유실을 검출하고, 유실된 상기 ACKNACK 서브 메시지 자체를 상기 발간측 장치로 다시 전송하는
    DDS 미들웨어 장치.
  6. 삭제
  7. 삭제
KR1020190163453A 2019-12-10 2019-12-10 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치 KR102231481B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190163453A KR102231481B1 (ko) 2019-12-10 2019-12-10 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190163453A KR102231481B1 (ko) 2019-12-10 2019-12-10 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치

Publications (2)

Publication Number Publication Date
KR102231481B1 true KR102231481B1 (ko) 2021-03-23
KR102231481B9 KR102231481B9 (ko) 2021-03-23

Family

ID=75223729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190163453A KR102231481B1 (ko) 2019-12-10 2019-12-10 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치

Country Status (1)

Country Link
KR (1) KR102231481B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101602100B1 (ko) * 2015-02-03 2016-03-10 충남대학교산학협력단 사물 인터넷에서 dds 기반의 이질적인 사물 메시지 통합 방법
US20180131463A1 (en) * 2015-01-16 2018-05-10 Real-Time Innovations, Inc. Auto-Tuning Reliability Protocol In Pub-Sub RTPS Systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180131463A1 (en) * 2015-01-16 2018-05-10 Real-Time Innovations, Inc. Auto-Tuning Reliability Protocol In Pub-Sub RTPS Systems
KR101602100B1 (ko) * 2015-02-03 2016-03-10 충남대학교산학협력단 사물 인터넷에서 dds 기반의 이질적인 사물 메시지 통합 방법

Also Published As

Publication number Publication date
KR102231481B9 (ko) 2021-03-23

Similar Documents

Publication Publication Date Title
US20120054362A1 (en) Mechanism for autotuning mass data transfer from a sender to a receiver over parallel connections
US10015104B2 (en) Processing received data
JP5893762B2 (ja) クライアント装置上でパケット送信をスケジュールするためのシステム及び方法
US10355997B2 (en) System and method for improving TCP performance in virtualized environments
US20140164641A1 (en) Congestion control for data center traffic
CN112631788B (zh) 数据传输方法及数据传输服务器
KR20220027714A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 시스템
JP2007013449A (ja) シェーパー制御方法、データ通信システム、ネットワークインタフェース装置及びネットワーク中継装置
KR101540494B1 (ko) 네트워크 메시지 관리 디바이스 및 그 방법들
KR102231481B1 (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치
KR102211005B1 (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치
KR20210073005A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작 방법
KR20210073034A (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 시스템
KR20210073037A (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치의 동작 방법
KR20210073046A (ko) 기록매체
KR20210073039A (ko) 효율적 메시지 유실 감지 및 재전송을 처리하는 dds 미들웨어 장치의 동작 을 위한 프로그램
KR20210073031A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 장치의 동작을 위한 프로그램
KR20210073029A (ko) 기록매체
KR20210073004A (ko) 효율적 메시지 처리를 제공하는 dds 미들웨어 시스템
EP1744495B1 (en) Round trip time estimation
KR20220027711A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 시스템
KR20220027706A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치의 동작 방법
KR20220027708A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치의 동작 방법
KR20220027705A (ko) 지능적 토픽 압축을 처리하는 dds 라우팅 서비스 장치
KR20220027707A (ko) 토픽 기반 우선순위 데이터 제어를 처리하는 dds 라우팅 서비스 장치

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]