KR102138467B1 - 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 - Google Patents
통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 Download PDFInfo
- Publication number
- KR102138467B1 KR102138467B1 KR1020190056181A KR20190056181A KR102138467B1 KR 102138467 B1 KR102138467 B1 KR 102138467B1 KR 1020190056181 A KR1020190056181 A KR 1020190056181A KR 20190056181 A KR20190056181 A KR 20190056181A KR 102138467 B1 KR102138467 B1 KR 102138467B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- packet
- identifier
- receiving
- location
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/72—Routing based on the source address
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템이 개시된다. 일 실시예에 따른 메시지 전송 방법은, 송신 장치로부터 제1 패킷을 수신하는 단계와, 상기 제1 패킷에 포함된 메시지의 목적지 식별자에 대응하는 수신 장치의 메시지 수신 가능 여부를 획득하는 단계와, 상기 메시지 수신 가능 여부에 따라 상기 메시지를 저장(queuing)하는 단계를 포함하고, 상기 제1 패킷의 출발지 위치자 및 목적지 위치자는 상기 송신 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자이다.
Description
아래 실시예들은 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템에 관한 것이다.
국제해사기구(International Maritime Organization)의 e-Navigation은 차세대 해상항법체계이다. e-Navigation은 해양 안전 및 항만 운영 효율화를 위해 해사 환경에서 해도 전송, 날씨 정보 전송, 조위 정보 전송 등과 같은 다양한 서비스가 제공되는 시스템이다. e-Navigation을 사용하는 서비스 제공자와 서비스 사용자인 선박의 단말은 메시지 교환을 통해 서비스를 제공 및 이용할 수 있다.
서비스 제공자와 선박의 단말은 해상 무선 데이터 통신 기반 시설로 초고속 해상 무선 통신망(Long Term Evolution-Maritime; LTE-M) 및 극초단파 데이터 교환 시스템(Very high frequency Data Exchange System; VDES) 등을 이용할 수 있다.
서비스 사용자인 선박의 단말은 LTE-M 및 VDES 등의 여러 통신 수단을 사용할 수 있기 때문에 언제든지 통신 품질이 더 좋은 다른 통신 수단으로 변경하여 통신할 수 있다.
하지만, 선박 단말이 기지국과 연결되는(associate) 방식으로 NAT(Network Address Translation) 등을 사용할 경우, 선박 단말에 메시지를 중계 전송해주는 장치는 위치자 기반의 메시지 전송 방식에서 선박 단말의 위치자로 직접 메시지를 전송할 수 없는 경우가 발생할 수 있다.
또한 선박이 해역 이동 중에 선박 단말이 해상 무선 데이터 통신 기반 시설을 사용할 수 없어 통신이 단절되는 현상이 발생하는 경우에도 위치자 기반의 메시지 전송 방식으로는 선박 단말에 메시지를 전송할 수 없는 경우가 발생할 수 있다.
실시예들은 수신 장치가 메시지를 수신할 수 없는 상황에서 메시지를 저장(queuing)하고, 폴링(polling) 요청에 따라 메시지를 전송함으로써, 수신 장치가 메시지를 직접 수신할 수 없는 상황에서도 추후에 누락 없이 메시지를 전송할 수 있는 기술을 제공할 수 있다.
일 실시예에 따른 메시지 전송 방법은, 송신 장치로부터 제1 패킷을 수신하는 단계와, 상기 제1 패킷에 포함된 메시지의 목적지 식별자에 대응하는 수신 장치의 메시지 수신 가능 여부를 획득하는 단계와, 상기 메시지 수신 가능 여부에 따라 상기 메시지를 저장(queuing)하는 단계를 포함하고, 상기 제1 패킷의 출발지 위치자 및 목적지 위치자는 상기 송신 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자이다.
상기 획득하는 단계는, 상기 메시지에서 상기 메시지의 목적지 식별자를 추출하는 단계와, 상기 메시지의 목적지 식별자에 기초하여 상기 수신 장치의 메시지 수신 가능 여부를 관리 장치에 요청하는 단계와, 상기 관리 장치로부터 상기 수신 장치의 메시지 수신 가능 여부를 수신하는 단계를 포함할 수 있다.
상기 요청하는 단계는, 상기 메시지의 목적지 식별자가 포함된 상기 수신 장치의 메시지 수신 가능 여부에 대한 요청 메시지를 생성하는 단계와, 상기 요청 메시지가 포함된 제2 패킷을 생성하는 단계와, 상기 제2 패킷을 상기 관리 장치에 전송하는 단계를 포함하고, 상기 제2 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 관리 장치에 대응하는 위치자일 수 있다.
상기 메시지 수신 가능 여부를 수신하는 단계는, 상기 수신 장치의 메시지 수신 가능 여부가 포함된 응답 메시지를 포함하는 제3 패킷을 수신하는 단계를 포함하고, 상기 제3 패킷의 출발지 위치자 및 목적지 위치자는 상기 관리 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자일 수 있다.
상기 저장하는 단계는, 상기 메시지를 상기 송신 장치의 식별자와 상기 수신 장치의 식별자에 할당된 메시지 큐에 저장하는 단계를 포함할 수 있다.
상기 저장하는 단계는, 상기 수신 장치가 상기 메시지를 수신할 수 없는 경우 상기 메시지를 저장하는 단계와, 상기 수신 장치가 상기 메시지를 수신할 수 있는 경우 상기 메시지를 포함하는 제4 패킷을 전송하는 단계를 포함하고, 상기 제4 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 수신 장치에 대응하는 위치자일 수 있다.
상기 방법은, 상기 수신 장치로부터 폴링(polling) 요청 메시지가 포함된 패킷을 수신하는 단계와, 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 기초하여 상기 수신 장치로 전송될 메시지를 검색하는 단계를 더 포함할 수 있다.
상기 방법은, 상기 수신 장치로 전송될 메시지를 포함하는 제5 패킷을 생성하는 단계와, 상기 제5 패킷을 상기 수신 장치로 전송하는 단계를 더 포함하고, 상기 제5 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 목적지 식별자에 대응하는 위치자일 수 있다.
상기 검색하는 단계는, 상기 수신 장치로 전송될 메시지를 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 검색하는 단계를 포함할 수 있다.
상기 폴링 요청 메시지가 포함된 패킷을 수신하는 단계는, 상기 수신 장치의 인증서를 포함하는 폴링 요청 메시지가 포함된 패킷을 수신하는 단계를 포함할 수 있다.
상기 제5 패킷을 생성하는 단계는, 상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일한지 여부 및 상기 인증서의 유효 여부를 검증하는 단계와, 상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일하고 상기 인증서가 유효한 경우, 상기 저장된 메시지를 포함하는 제5 패킷을 생성하는 단계를 포함할 수 있다.
상기 제5 패킷을 생성하는 단계는, 상기 수신 장치로 전송될 메시지를 암호화하는 단계와, 상기 암호화된 메시지를 포함하는 제5 패킷을 생성하는 단계를 포함할 수 있다.
상기 암호화하는 단계는, 상기 메시지를 공개키 암호화 방식 또는 대칭키 암호화 방식으로 암호화하는 단계를 포함할 수 있다.
일 실시예에 따른 메시지 전송 장치는, 메시지 전송을 위한 인스트럭션들을 저장하는 메모리와, 상기 인스트럭션들을 실행하기 위한 프로세서를 포함하고, 상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는, 송신 장치로부터 제1 패킷을 수신하고, 상기 제1 패킷에 포함된 메시지의 목적지 식별자에 대응하는 수신 장치의 메시지 수신 가능 여부를 획득하고, 상기 메시지 수신 가능 여부에 따라 상기 메시지를 저장(queuing)하고, 상기 제1 패킷의 출발지 위치자 및 목적지 위치자는 상기 송신 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자이다.
상기 프로세서는, 상기 메시지에서 상기 메시지의 목적지 식별자를 추출하고, 상기 메시지의 목적지 식별자에 기초하여 상기 수신 장치의 메시지 수신 가능 여부를 관리 장치에 요청하고, 상기 관리 장치로부터 상기 수신 장치의 메시지 수신 가능 여부를 수신할 수 있다.
상기 프로세서는, 상기 메시지의 목적지 식별자가 포함된 상기 수신 장치의 메시지 수신 가능 여부에 대한 요청 메시지를 생성하고, 상기 요청 메시지가 포함된 제2 패킷을 생성하고, 상기 제2 패킷을 상기 관리 장치에 전송하고, 상기 제2 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 관리 장치에 대응하는 위치자일 수 있다.
상기 프로세서는, 상기 수신 장치의 메시지 수신 가능 여부가 포함된 응답 메시지를 포함하는 제3 패킷을 수신하고, 상기 제3 패킷의 출발지 위치자 및 목적지 위치자는 상기 관리 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자일 수 있다.
상기 프로세서는, 상기 메시지를 상기 송신 장치의 식별자와 상기 수신 장치의 식별자에 할당된 메시지 큐에 저장할 수 있다.
상기 프로세서는, 상기 수신 장치가 상기 메시지를 수신할 수 없는 경우 상기 메시지를 저장하고, 상기 수신 장치가 상기 메시지를 수신할 수 있는 경우 상기 메시지를 포함하는 제4 패킷을 전송하고, 상기 제4 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 수신 장치에 대응하는 위치자일 수 있다.
상기 프로세서는, 상기 수신 장치로부터 폴링(polling) 요청 메시지가 포함된 패킷을 수신하고, 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 기초하여 상기 수신 장치로 전송될 메시지를 검색할 수 있다.
상기 프로세서는, 상기 수신 장치로 전송될 메시지를 포함하는 제5 패킷을 생성하고, 상기 제5 패킷을 상기 수신 장치로 전송하고, 상기 제5 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 목적지 식별자에 대응하는 위치자일 수 있다.
상기 프로세서는, 상기 수신 장치로 전송될 메시지를 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 검색할 수 있다.
상기 프로세서는, 상기 수신 장치의 인증서를 포함하는 폴링 요청 메시지가 포함된 패킷을 수신할 수 있다.
상기 프로세서는, 상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일한지 여부 및 상기 인증서의 유효 여부를 검증하고, 상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일하고 상기 인증서가 유효한 경우 상기 저장된 메시지를 포함하는 제5 패킷을 생성할 수 있다.
상기 프로세서는, 상기 수신 장치로 전송될 메시지를 암호화하고, 상기 암호화된 메시지를 포함하는 제5 패킷을 생성할 수 있다.
상기 프로세서는, 상기 메시지를 공개키 암호화 방식 또는 대칭키 암호화 방식으로 암호화할 수 있다.
도 1은 일 실시예에 따른 메시지 전송 시스템을 나타낸 도면이다.
도 2는 도 1에 도시된 메시지 전송 장치를 개략적으로 나타낸 도면이다.
도 3은 도 2에 도시된 메시지 큐 모듈 및 메시지 큐 데이터베이스를 개략적으로 나타낸 도면이다.
도 4는 제공자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 5는 메시지 전송 장치에서 모니터링 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 6은 사용자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 7은 메시지 전송 장치에서 사용자 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 8은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 일 예를 설명하기 위한 도면이다.
도 9는 메시지 전송 시스템에서 메시지 및 패킷 흐름의 다른 예를 설명하기 위한 도면이다.
도 10은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 또 다른 예를 설명하기 위한 도면이다.
도 2는 도 1에 도시된 메시지 전송 장치를 개략적으로 나타낸 도면이다.
도 3은 도 2에 도시된 메시지 큐 모듈 및 메시지 큐 데이터베이스를 개략적으로 나타낸 도면이다.
도 4는 제공자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 5는 메시지 전송 장치에서 모니터링 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 6은 사용자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 7은 메시지 전송 장치에서 사용자 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
도 8은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 일 예를 설명하기 위한 도면이다.
도 9는 메시지 전송 시스템에서 메시지 및 패킷 흐름의 다른 예를 설명하기 위한 도면이다.
도 10은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 또 다른 예를 설명하기 위한 도면이다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
제1 또는 제2등의 용어를 다양한 구성요소들을 설명하는데 사용될 수 있지만, 구성요소들은 용어들에 의해서 한정되어서는 안 된다. 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만, 예를 들어 실시예의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
본 명세서에서의 모듈(module)은 본 명세서에서 설명되는 각 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 특정 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예를 들어 프로세서 또는 마이크로 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
도 1은 일 실시예에 따른 메시지 전송 시스템을 나타낸 도면이다.
메시지 전송 시스템(10)은 제공자 장치(100), 메시지 전송 장치(200), 모니터링 장치(300), 및 사용자 장치(400)를 포함한다.
메시지 전송 시스템(10)은 메시지를 전송하려는 장치가 메시지를 수신할 수 없는 상황에서 메시지를 저장(queuring)하고, 폴링(polling) 요청에 따라 메시지를 전송함으로써, 메시지를 전송하려는 장치가 메시지를 직접 수신할 수 없는 상황에서도 추후에 누락 없이 메시지를 전송할 수 있다.
예를 들어, 메시지 전송 시스템(10)은 해사 환경에 구현될 수 있다. 메시지 전송 시스템(10)이 해사 환경에 구현될 경우, 선박 단말이 통신 수단을 변경하거나 선박 단말의 통신이 단절된 경우 등 선박 단말에 직접적인 메시지 전송이 불가한 경우에도 선박 단말로 향하는 메시지를 추후 누락 없이 전송할 수 있다. 제공자 장치(100)는 해사 서비스 제공자이고, 사용자 장치(400)는 선박 단말이고, 메시지 전송 장치(200)는 해사 서비스 제공자와 선박 단말 사이에 메시지를 전송하기 위한 서버 장치이고, 모니터링 장치(300)는 해사의 자원(예를 들어, 등록된 해사 서비스 제공자, 선박 단말, 서버 장치 등)을 관리하는 해사 네임 시스템일 수 있다.
메시지 전송 시스템(10)에서 전송되는 메시지에는 메시지의 출발지 식별자와 목적지 식별자가 메시지의 메시지 헤더(header)에 포함되고, 메시지의 내용은 메시지 페이로드(payload)에 포함될 수 있다.
장치(100, 200, 300, 또는 400)는 고유한 식별자를 가질 수 있다. 예를 들어, 메시지 전송 시스템(10)이 해사 환경에 구현되는 경우, 고유한 식별자로는 해사 자원 및 해사 이해당사자들을 유일하게 식별할 수 있는 MRN(Maritime Resource Name)이 사용될 수 있다.
MRN은 IALA(International Association of marine aids to navigation and Lighthouse Authorities)에서 정의하였고, IETF(Internet Engineering Task Force) 표준화 기구에서 정의한 Uniform Resource Name의 형식을 따를 수 있다.
장치(100, 200, 300, 및 400)는 서로 유선 및/또는 무선으로 연결되어 통신을 수행할 수 있다.
장치(100 또는 400)가 전송하는 메시지의 메시지 헤더에는 출발지 식별자와 목적지 식별자가 기입될 수 있다. 출발지 식별자는 메시지를 송신하는 장치의 고유 식별자일 수 있다. 목적지 식별자는 메시지를 수신하는 장치의 고유 식별자일 수 있다.
메시지를 송신하는 장치는 메시지를 중계하는 장치가 아닌 메시지를 전달하고자 하는 장치에 메시지를 생성하여 전송하는 장치를 의미하고, 메시지를 수신하는 장치는 메시지를 송신하는 장치가 메시지를 전달하고자 하는 장치일 수 있다. 예를 들어, 메시지를 송신하는 장치는 전달하고자 하는 메시지가 생성되는 메시지의 출발지 장치이고, 메시지를 수신하는 장치는 메시지가 최종 전달되는 메시지의 목적지 장치일 수 있다.
설명의 편의를 위해 메시지를 송신하는 장치가 제공자 장치(100)인 경우 메시지를 수신하는 장치는 사용자 장치(400)이고, 메시지를 송신하는 장치가 사용자 장치(400)인 경우 메시지를 수신하는 장치는 제공자 장치(100)인 것으로 가정한다.
장치(100, 200, 300, 또는 400)는 메시지가 인터넷 상에서 라우팅(routing)될 수 있도록 메시지를 패킷으로 분할할 수 있다. 장치(100, 200, 300, 또는 400)는 패킷을 전송할 수 있다.
장치(100, 200, 300, 또는 400)는 일련의 패킷들이 라우팅되어 수신되면, 패킷들의 패킷 헤더를 확인하여 메시지 출발지에서 송신한 메시지를 복원할 수 있다.
장치(100 또는 400)는 메시지 헤더에 식별자를 기입한 메시지를 메시지 전송 장치(200)에 송신할 수 있다. 메시지는 메시지 헤더 및 메시지 페이로드를 포함할 수 있다. 메시지 헤더에 기입되는 식별자는 출발지 식별자 및/또는 목적지 식별자를 포함할 수 있다. 출발지 식별자는 메시지를 송신하는 장치의 고유한 식별자를 의미할 수 있다. 목적지 식별자는 메시지를 송신하는 장치가 메시지를 최종적으로 전송하려는 목적 장치의 고유한 식별자일 수 있다.
장치(100 또는 400)는 메시지 헤더에 식별자를 기입하고 암호화한 메시지를 메시지 전송 장치(200)에 송신할 수 있다.
장치(100 또는 400)는 메시지를 패킷으로 분할할 수 있다. 장치(100 또는 400)는 패킷을 송신할 수 있다. 장치(100 또는 400)는 암호화된 메시지를 패킷으로 분할할 수 있다. 장치(100 또는 400)는 패킷을 송신할 수 있다.
예를 들어, 패킷은 패킷 헤더 및 패킷 페이로드를 포함할 수 있다. 패킷 헤더는 위치자를 포함할 수 있다. 위치자는 출발지 위치자 및/또는 목적지 위치자를 포함할 수 있다. 출발지 위치자는 메시지를 송신하는 장치의 네트워크 위치를 나타낼 수 있다. 목적지 위치자는 메시지를 수신하는 장치의 네트워크 위치를 나타낼 수 있다.
장치(100 또는 400)는 메시지 전송 장치(200)로부터 패킷을 수신할 수 있다. 장치(100 또는 400)는 패킷으로부터 장치(100 또는 400)가 송신한 메시지를 복원할 수 있다. 장치(100 또는 400)는 패킷으로부터 장치(100 또는 400))가 송신한 암호화된 메시지를 복원할 수 있다. 장치(100 또는 400)는 암호화된 메시지를 복호화할 수 있다.
메시지 전송 장치(200)는 장치(100 또는 400)가 메시지를 수신할 수 없는 경우 장치(100 또는 400)로 전달되어야 할 메시지를 저장(queuing)하고, 장치(100 또는 400)의 폴링(polling) 요청에 응답하여 메시지를 전송할 수 있다.
메시지 전송 장치(200)는 장치(100 또는 400)가 메시지를 수신할 수 없는 경우가 있더라도 장치(100 또는 400)로 전달되어야 할 메시지를 추후 장치(100 또는 400)가 메시지를 수신할 수 있게 되었을 때 누락 없이 메시지를 전송할 수 있다.
메시지 전송 장치(200)는 장치(100 및 400) 간에 통신 보안을 위하여 메시지를 암호화 및 복호화할 수 있다. 예를 들어, 메시지 전송 장치(200)는 메시지 암호화 및 복호화에 RSA(Rivest Shamir Adleman) 등의 공개키 암호화 방식 또는 AES(Advanced Encryption Standard) 등의 대칭키 암호화 방식을 사용할 수 있다. 메시지 전송 장치(200)가 메시지를 암호화함으로써, 제3자가 메시지를 감청하더라도 메시지의 출발지 식별자와 목적지 식별자, 그리고 메시지 페이로드가 노출되지 않을 수 있다.
모니터링 장치(300)는 장치(100 및 400)의 메시지 수신 가능 여부 및 장치(100, 200, 및 400)의 식별자에 대응하는 위치자를 주기적으로 획득 및 저장할 수 있다. 모니터링 장치(300)는 장치(100 또는 400)의 메시지 수신 가능 여부 및 장치(100, 200, 및 400)의 식별자에 대응하는 위치자를 전송할 수 있다.
모니터링 장치(300)는 도 1에 도시된 장치(100, 200, 및 400)뿐만 아니라 연결된 모든 자원 및/또는 장치의 고유한 식별자와 위치자, 지리 좌표를 각각 매핑(mapping)하고, 매핑된 데이터를 데이터베이스에 저장 및 관리할 수 있다.
예를 들어, 모니터링 장치(300)는 식별자에 매핑되는 위치자 및 메시지 수신 가능 여부를 LTE-M 기지국, VDES 기지국 등을 통해서 최신 정보를 수집하고 저장할 수 있다. 모니터링 장치(300)는 식별자에 매핑되는 지리 좌표를 선박 자동 식별 시스템(Automatic Identification System; AIS)과 해상교통관제서비스(Vessel Traffic Service System; VTS) 등을 통해 최신 정보를 수집하고 저장할 수 있다.
예를 들어, 사용자 장치(400)가 선박의 단말로 구현될 경우, 선박의 단말은 해상에서 다양한 통신 시스템을 활용할 수 있으며, 선박의 단말이 통신 수단을 변경할 경우, 선박 단말에 직접 메시지를 전송할 수 없는 경우가 발생할 수 있다. 또한, 선박 단말이 통신 단절 등을 이유로 메시지를 수신할 수 없는 경우도 발생할 수 있다. 이때, 모니터링 장치(300)는 선박 단말의 메시지 수신 가능 여부를 주기적으로 획득 및 저장하고, 선박 단말의 메시지 수신 가능 여부를 메시지 전송 장치(200)로 전송할 수 있다.
모니터링 장치(300)는 메시지 전송 장치(200)로부터 메시지의 목적지 식별자가 포함된 장치(100 또는 400)의 메시지 수신 가능 여부에 대한 요청 메시지를 수신할 수 있다. 모니터링 장치(300)는 요청 메시지가 포함된 패킷을 수신할 수 있다.
모니터링 장치(300)는 요청 메시지에 응답하여 메시지 전송 장치(200)가 요청하는 식별자에 대응하는 장치의 메시지 수신 가능 여부 및 현재 위치자를 메시지 전송 장치(200)로 전송할 수 있다.
사용자 장치(400)는 메시지 수신이 불가능했던 경우가 있더라도, 메시지 전송 장치(200)로 메시지 폴링 요청을 함으로써 메시지 수신이 불가했던 시간동안 수신하지 못한 메시지를 누락 없이 수신할 수 있다.
사용자 장치(400)는 이종(different kind) 통신 수단을 자유롭게 변경하며 사용할 수 있다. 사용자 장치(400)는 여러 이종 통신 수단을 사용할 수 있으므로, 통신 수단 중에 품질이 더 좋은 다른 통신 수단으로 언제든지 변경할 수 있다.
예를 들어, 사용자 장치(400)가 선박의 단말로 구현되는 경우, 선박의 단말은 LTE-M 및 VDES, 등의 여러 통신 수단을 사용할 수 있기 때문에 언제든지 통신 품질이 더 좋은 다른 통신 수단으로 변경하며 통신을 수행할 수 있다.
사용자 장치(400)가 NAT(Network Address Translation)과 같은 방법을 사용하여 인터넷에 연결하는 경우나 사용자 장치(400)가 어떠한 통신 수단도 사용할 수 없는 경우, 위치자 기반의 메시지 전송 방식으로는 사용자 장치(400)로 직접 메시지를 전송할 수 없게 된다. 하지만, 사용자 장치(400)가 통신 수단을 변경하거나, NAT 사용 등이 원인이거나 또는 통신 수단을 사용할 수 없는 상황이더라도, 모니터링 장치(300)에 사용자 장치(400)의 메시지 수신 가능 여부가 저장되어 관리되고, 추후 사용자 장치(400)가 메시지 수신이 가능한 경우 사용자 장치(400)가 메시지 전송 장치(200)로 메시지 폴링 요청을 함으로써, 사용자 장치(400)는 자신에게 전송되는 메시지를 누락 없이 수신할 수 있다.
사용자 장치(400)는 PKI(Public Key Infrastructure) 등과 같은 인증 방식으로 폴링 요청 메시지에 인증서를 포함하여 메시지 전송 장치(200)에 인증할 수 있다.
도 2는 도 1에 도시된 메시지 전송 장치를 개략적으로 나타낸 도면이고, 도 3은 도 2에 도시된 메시지 큐 모듈 및 메시지 큐 데이터베이스를 개략적으로 나타낸 도면이다.
메시지 전송 장치(200)는 통신 모듈(210), 프로세서(230), 및 메모리(250)를 포함한다.
메시지 전송 장치(200)는 통신 모듈(210)을 통해 네트워크에 연결되고, 제공자 장치(100), 모니터링 장치(300), 및 사용자 장치(400)와 유선 및/또는 무선 통신을 수행할 수 있다.
통신 모듈(210)은 제공자 장치(100), 모니터링 장치(300), 및 사용자 장치(400)와 유선 및/또는 무선으로 메시지 및/또는 패킷 통신을 수행할 수 있다. 통신 모듈(210)은 프로세서(230)로부터 메시지 및/또는 패킷을 수신할 수 있다.
프로세서(230)는 통신 모듈(210)이 수신한 데이터 및 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(230)는 메모리(250)에 저장된 데이터를 처리할 수 있다. 프로세서(230)는 메모리(250)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(230)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.
프로세서(230)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.
예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.
프로세서(230)는 메시지 전송 장치(200)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다. 예를 들어, 프로세서(230)는 메모리(250)에 저장된 메시지 전송 프로그램(255)을 실행할 수 있다.
메시지 전송 프로그램(255)이 프로세서(230)를 통해 실행될 때, 프로세서(230)는 메시지 전송을 위한 동작을 수행할 수 있다.
프로세서(230)는 장치(100 또는 400)로부터 제1 패킷을 수신할 수 있다. 예를 들어, 제1 패킷의 출발지 위치자 및 목적지 위치자는 장치(100 또는 400)에 대응하는 위치자 및 메시지 전송 장치(200)에 대응하는 위치자일 수 있다.
프로세서(230)는 제1 패킷에 포함된 메시지의 목적지 식별자에 대응하는 장치(100 또는 400)의 메시지 수신 가능 여부를 획득할 수 있다.
프로세서(230)는 메시지에서 메시지의 목적지 식별자를 추출할 수 있다. 예를 들어, 메시지의 목적지 식별자는 장치(100 또는 400)의 식별자일 수 있다.
프로세서(230)는 메시지의 목적지 식별자에 기초하여 장치(100 또는 400)의 메시지 수신 가능 여부를 모니터링 장치(300)에 요청할 수 있다.
프로세서(230)는 메시지의 목적지 식별자가 포함된 장치(100 또는 400)의 메시지 수신 가능 여부에 대한 요청 메시지를 생성할 수 있다. 프로세서(230)는 요청 메시지가 포함된 제2 패킷을 생성할 수 있다. 프로세서(230)는 제2 패킷을 모니터링 장치(300)에 전송할 수 있다. 제2 패킷의 출발지 위치자 및 목적지 위치자는 메시지 전송 장치(200)에 대응하는 위치자 및 모니터링 장치(300)에 대응하는 위치자일 수 있다.
프로세서(230)는 모니터링 장치(300)로부터 장치(100 또는 400)의 메시지 수신 가능 여부를 수신할 수 있다. 프로세서(230)는 장치(100 또는 400)의 메시지 수신 가능 여부가 포함된 응답 메시지를 포함하는 제3 패킷을 수신할 수 있다. 제3 패킷의 출발지 위치자 및 목적지 위치자는 모니터링 장치(300)에 대응하는 위치자 및 메시지 전송 장치(300)에 대응하는 위치자일 수 있다.
프로세서(230)는 장치(100 또는 400)의 메시지 수신 가능 여부에 따라 메시지를 저장(queuing)할 수 있다. 프로세서(230)는 장치(100 또는 400)가 메시지를 수신할 수 없는 경우 메시지를 저장할 수 있다. 예를 들어, 프로세서(230)는 메시지를 저장하기 위해 메시지를 메모리(250)로 전송할 수 있다.
프로세서(230)는 메시지를 장치(100 또는 400)의 식별자와 장치(100 또는 400)의 식별자에 할당된 메시지 큐에 저장할 수 있다. 예를 들어, 제공자 장치(100)가 메시지 전송 장치(200)를 통해 사용자 장치(400)로 보낸 메시지는 제공자 장치(100)의 식별자 및 사용자 장치(400)의 식별자에 할당된 메시지 큐에 저장할 수 있다.
프로세서(230)는 메시지 큐 모듈(235)을 포함할 수 있다. 도 3을 참조하면, 메시지 큐 모듈(235)은 제공자 장치(100)의 식별자 및 사용자 장치(400)의 식별자에 할당된 메시지 큐에 메시지를 저장할 수 있다.
예를 들어, 메시지 큐 모듈(235)은 제공자 장치(100)가 복수개로 1 부터 m까지 있다고 가정하고, 사용자 장치(400)가 복수개로 1 부터 n까지 있다고 가정하면, 복수의 제공자 장치(100)의 식별자 및 복수의 사용자 장치(400)의 식별자 별로 각각 메시지 큐 1(Q-1) 부터 메시지 큐 m*n(Q-m*n)까지의 메시지 큐에 메시지를 저장할 수 있다. 이하 m*n을 x라고 한다.
예를 들어, 메시지 큐(Q-1 내지 Q-x)는 제공자 장치(100)의 식별자와 사용자 장치(400)의 식별자로 구성된 '제공자 장치의 식별자::사용자 장치 식별자' 메시지 큐 이름을 가질 수 있고, 메시지 저장 데이터베이스를 가지며 이 데이터베이스에 메시지들(메시지 1 내지 메시지 n)을 저장할 수 있다. 즉, 제공자 장치 4가 사용자 장치 7로 메시지를 전송하였는데 사용자 장치 7이 메시지를 수신할 수 없는 상황이었던 경우, 메시지 전송 장치(200)는 '제공자 장치 4의 식별자::사용자 장치 7의 식별자' 메시지 큐에 메시지를 저장할 수 있다.
도 2를 참조하면, 프로세서(230)는 장치(100 또는 400)가 메시지를 수신할 수 있는 경우 메시지를 포함하는 제4 패킷을 전송할 수 있다. 제4 패킷의 출발지 위치자 및 목적지 위치자는 메시지 전송 장치(200)에 대응하는 위치자 및 상기 장치(100 또는 400)에 대응하는 위치자일 수 있다.
프로세서(230)는 장치(100 또는 400)로부터 폴링(polling) 요청 메시지가 포함된 패킷을 수신할 수 있다.
프로세서(230)는 장치(100 또는 400)의 인증서를 포함하는 폴링 요청 메시지가 포함된 패킷을 수신할 수 있다. 프로세서(230)는 인증서에 포함된 식별자와 폴링 요청 메시지에 포함된 출발지 식별자가 동일한지 여부 및 인증서의 유효 여부를 검증할 수 있다.
예를 들어, 프로세서(230)는, 장치(100 또는 400)의 인증서에 포함된 인증서 발급 기관(Certificate Authority)의 서버로 OCSP(Online Certificate Status Protocol) 등의 방법으로 인증서의 유효 여부를 요청할 수 있다.
프로세서(230)는 인증서 발급 기관의 서버로부터 인증서의 유효 여부를 수신할 수 있다.
장치(100 또는 400)의 인증서는 폴링 요청 메시지가 실제로 장치(100 또는 400)로부터 전송된 것인지 검증하기 위한 것일 수 있다. 즉, 장치(100 또는 400)가 메시지를 수신할 수 없는 동안에 다른 장치(미도시)가 단순히 폴링 요청 메시지를 메시지 장치(200)에 송신함으로써 장치(100 또는 400)로 전달되어야 하는 메시지를 가로챌 수 있기 때문에 실제로 장치(100 또는 400)로부터 폴링 요청 메시지가 송신된 것인지 장치(100 또는 400)의 인증서로 검증하는 단계를 거칠 수 있다.
프로세서(230)는 장치(100 또는 400)의 식별자 및 폴링 요청 메시지에 포함된 식별자에 기초하여 장치(100 또는 400)로 전송될 메시지를 검색할 수 있다. 프로세서(230)는 인증서에 포함된 식별자와 폴링 요청 메시지에 포함된 출발지 식별자가 동일하고 인증서가 유효한 경우, 장치(100 또는 400)의 식별자 및 폴링 요청 메시지에 포함된 식별자에 기초하여 장치(100 또는 400)로 전송될 메시지를 검색할 수 있다.
프로세서(230)는 장치(100 또는 400)로 전송될 메시지를 장치(100 또는 400)의 식별자 및 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 검색할 수 있다.
프로세서(230)는 장치(100 또는 400)의 식별자 및 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 폴링 요청 메시지에 포함된 식별자에게 전송될 메시지를 추출할 수 있다. 예를 들어, 프로세서(230)는 제공자 장치(100)의 식별자::사용자 장치(400) 식별자' 메시지 큐에서 사용자 장치(400)에게 전송될 메시지를 추출할 수 있다.
프로세서(230)는 장치(100 또는 400)로 전송될 메시지를 암호화할 수 있다. 프로세서(230)는 메시지를 RSA 등의 공개키 암호화 방식 또는 AES 등의 대칭키 암호화 방식으로 암호화할 수 있다.
프로세서(230)는 장치(100 또는 400)로 전송될 메시지를 포함하는 제5 패킷을 생성할 수 있다. 프로세서(230)는 암호화된 전송될 메시지를 포함하는 제5 패킷을 생성할 수 있다.
제5 패킷의 출발지 위치자 및 목적지 위치자는 메시지 전송 장치(200)에 대응하는 위치자 및 목적지 식별자에 대응하는 위치자일 수 있다. 예를 들어, 제5 패킷의 출발지 위치자는 메시지 전송 장치(200)의 위치자일 수 있다. 제5 패킷의 목적지 위치자는 장치(100 또는 400)의 위치자일 수 있다.
프로세서(230)는 제5 패킷을 장치(100 또는 400)로 전송할 수 있다.
메모리(250)는 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리(250)는 메시지 전송 장치(200)의 적어도 하나의 다른 구성요소에 관계된 명령 및/또는 데이터를 저장할 수 있다.
메모리(250)는 소프트웨어(software) 및/또는 프로그램(program) 등을 저장할 수 있다. 예를 들어, 메모리(250)는 메시지 전송 프로그램(255)을 저장할 수 있다.
메모리(250)는 메시지를 수신할 수 있다. 메모리(250)는 메시지를 저장할 수 있다.
메모리(250)는 메시지 큐 데이터베이스(259)를 포함할 수 있다. 메모리(250)는 메시지를 메시지 큐 데이터베이스(259)의 장치(100 또는 400)의 식별자와 장치(100 또는 400)의 식별자에 할당된 메시지 큐에 저장할 수 있다.
메시지 큐 데이터베이스(259)는 메시지 큐 모듈(235)과 동일한 동작을 수행할 수 있다.
도 4는 제공자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타내고, 도 5는 메시지 전송 장치에서 모니터링 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
메시지 전송 시스템(10)은 식별자를 기반으로 목적하는 장치에 메시지를 전송하기 위해 메시지 헤더에 출발지 식별자와 목적지 식별자를 정의할 수 있다. 일반적인 IP 네트워크에서는 패킷 헤더의 목적지 위치자가 패킷 종단점의 IP 주소일 수 있다. 하지만, 메시지 전송 장치(200)에 전송되는 메시지의 목적지 위치자는 메시지 전송 장치(200)의 위치자(IP 주소)이며, 메시지 헤더에 기입한 목적지 식별자가 실제 메시지가 전송되는 종단점이 될 수 있다.
메시지(M4)는 제공자 장치(100)에서 생성될 수 있다. 메시지(M4)는 메시지 헤더 및 메시지 페이로드를 포함할 수 있다. 메시지(M4)의 메시지 헤더는 출발지 식별자 필드에 출발지 식별자 및 목적지 식별자 필드에 목적지 식별자가 기입될 수 있다.
예를 들어, 메시지(M4)의 출발지 식별자는 제공자 장치(100)의 식별자일 수 있다. 메시지(M4)의 목적지 식별자는 사용자 장치(400)의 식별자일 수 있다. 메시지 페이로드에는 메시지 내용이 담길 수 있다.
메시지(M4)는 제공자 장치(100)에 의해 패킷(P4)으로 분할되어 메시지 전송 장치(200)로 송신될 수 있다.
패킷(P4)은 패킷 헤더 "G 패킷 페이로드를 포함할 수 있다. 패킷(P4)의 패킷 헤더에는 위치자가 포함될 수 있다. 패킷(P4)의 패킷 헤더에는 출발지 위치자 필드에 제공자 장치(100)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입될 수 있다.
패킷(P4)은 메시지 전송 장치(200)에 전송되어 메시지(M4)로 복원될 수 있다.
메시지(M5-1)는 메시지 전송 장치(200)에서 생성될 수 있다. 메시지(M5-1)는 메시지 페이로드를 포함할 수 있다. 메시지(M5-1)는 메시지 전송 장치(200)가 메시지(M4)에서 추출한 목적지 식별자가 포함되어 생성될 수 있다.
패킷(P5-1)은 메시지 전송 장치(200)가 메시지(M5-1)를 분할하여 생성될 수 있다. 패킷(P5-1)은 패킷 헤더 "G 패킷 페이로드를 포함할 수 있다. 패킷(P5-1)의 패킷 헤더에는 위치자가 포함될 수 있다. 패킷(P5-1)에는 메시지 전송 장치(200)에 의해 출발지 위치자 필드에 메시지 전송 장치(200)의 위치자 및 목적지 위치자 필드에 모니터링 장치(300)의 위치자가 기입될 수 있다.
패킷(P5-1)은 모니터링 장치(300)에 전송되어 메시지(M5-1)로 복원될 수 있다.
메시지(M5-2)는 모니터링 장치(300)에서 생성될 수 있다. 메시지(M5-2)는 메시지 페이로드를 포함할 수 있다. 메시지(M5-2)의 메시지 페이로드에는 사용자 장치(400)의 메시지 수신 가능 여부 및/또는 사용자 장치(400)의 위치자가 포함될 수 있다.
패킷(P5-2)은 모니터링 장치(300)가 메시지(M5-2)를 분할하여 생성될 수 있다. 패킷(P5-2)은 패킷 헤더 "G 패킷 페이로드를 포함할 수 있다. 패킷(P5-2)의 패킷 헤더에는 위치자가 포함될 수 있다. 패킷(P5-2)에는 모니터링 장치(300)에 의해 출발지 위치자 필드에 모니터링 장치(300)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입될 수 있다.
패킷(P5-2)은 메시지 전송 장치(200)에 전송되어 메시지(M5-2)로 복원될 수 있다.
메시지 전송 시스템(10)에서 정의되는 메시지 및 패킷의 일 예는 도 6 및 도 7에서 이어서 살펴보기로 한다.
도 6은 사용자 장치에서 메시지 전송 장치로 전송되는 메시지 및 패킷의 일 예를 나타내고, 도 7은 메시지 전송 장치에서 사용자 장치로 전송되는 메시지 및 패킷의 일 예를 나타낸다.
메시지(M6)는 사용자 장치(400)에서 생성될 수 있다. 메시지(M6)는 메시지 헤더 및 메시지 페이로드를 포함할 수 있다. 메시지(M6)는 메시지 헤더에 출발지 식별자 필드 및 목적지 식별자 필드를 포함할 수 있다. 메시지(M6)의 메시지 헤더에는 출발지 식별자 필드에 출발지 식별자 및 목적지 식별자 필드에 목적지 식별자가 기입될 수 있다.
예를 들어, 메시지(M6)의 출발지 식별자 필드에는 사용자 장치(400)의 식별자, 목적지 식별자 필드에는 메시지 전송 장치(200)의 식별자 및 메시지 페이로드에는 제공자 장치(100)의 식별자가 기입될 수 있다. 메시지(M6)의 메시지 페이로드에 제공자 장치의 식별자가 기입되는 것은 메시지 전송 장치(200)에서 '제공자 장치(100)의 식별자::사용자 장치(400)의 식별자' 메시지 큐의 검색을 위한 것일 수 있다.
패킷(P6)은 사용자 장치(400)가 메시지(M6)를 분할하여 생성될 수 있다. 패킷(P6)은 패킷 헤더 및 패킷 페이로드를 포함할 수 있다. 패킷(P6)의 패킷 헤더에는 출발지 위치자 필드에 출발지 위치자 및 목적지 위치자 필드에 목적지 위치자가 기입될 수 있다.
예를 들어, 패킷(P6)은 출발지 위치자 필드에 사용자 장치(400)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입될 수 있다.
메시지(M6c)는 메시지(M6)에 사용자 장치(400)의 인증서를 더 포함할 수 있다. 패킷(P6c)은 사용자 장치(400)가 메시지(M6c)를 분할하여 생성될 수 있다. 메시지(M6c) 및 패킷(P6c)에 관하여 메시지(M6) 및 패킷(P6)과 중복되는 설명은 생략하도록 한다.
메시지(M7)는 메시지 전송 장치(200)에 의해 생성될 수 있다. 메시지(M7)는 메시지 페이로드를 포함할 수 있다. 메시지(M7)의 메시지 페이로드에는 제공자 장치(100)로부터 전송된 메시지의 내용이 포함될 수 있다.
패킷(P7)은 메시지 전송 장치(200)가 메시지(M7)를 분할하여 생성할 수 있다. 패킷(P7)은 패킷 헤더 및 패킷 페이로드를 포함할 수 있다. 패킷(P7)의 패킷 헤더에는 출발지 위치자 필드에 출발지 위치자 및 목적지 위치자 필드에 목적지 위치자가 기입될 수 있다.
예를 들어, 패킷(P7)의 패킷 헤더에는 출발지 위치자 필드에 메시지 전송 장치(200)의 위치자 및 목적지 위치자 필드에 사용자 장치(400)의 위치자가 기입될 수 있다.
도 8은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 일 예를 설명하기 위한 도면이다.
모니터링 장치(300)는 사용자 장치(400)의 위치자 및 메시지 수신 가능 여부를 지속적으로 획득할 수 있다(4000). 사용자 장치(400)의 위치자(예를 들어, IP 주소 등) 및 메시지 수신 가능 여부는 언제든지 변경될 수 있으나, 모니터링 장치(300)가 사용자 장치(400)의 현재 위치자(예를 들어, IP 주소 등) 및 메시지 수신 가능 여부를 지속적으로 모니터링 하고 있으므로, 메시지 전송 장치(200)는 사용자 장치(400)의 현재 통신 가능한 위치자(예를 들어, IP 주소 등) 및 메시지 수신 가능 여부에 대해서 최신 상태를 유지할 수 있다.
제공자 장치(100)는 메시지 헤더에 출발지 식별자 및 목적지 식별자가 포함된 메시지(M4)를 생성할 수 있다. 예를 들어, 제공자 장치(100)는 출발지 식별자 필드에 제공자 장치(100)의 식별자를 기입할 수 있다. 제공자 장치(100)는 도착지 식별자 필드에 사용자 장치(400)의 식별자를 기입할 수 있다.
제공자 장치(100)는 메시지(M4)를 패킷 헤더에 출발지 위치자 및 목적지 위치자를 포함하는 패킷(P4)으로 분할할 수 있다. 제공자 장치(100)는 패킷(P4)의 출발지 위치자를 제공자 장치(100)의 위치자로 기입할 수 있다. 제공자 장치(100)는 패킷(P4)의 목적지 위치자를 메시지 전송 장치(200)의 위치자로 기입할 수 있다. 제공자 장치(100)는 패킷(P4)을 메시지 전송 장치(200)로 전송할 수 있다(4310).
메시지 전송 장치(200)는 패킷(P4)을 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P4)을 메시지(M4)로 복원할 수 있다. 메시지 전송 장치(200)는 메시지(M4)에 포함된 목적지 식별자인 사용자 장치(400)의 식별자를 추출할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)의 식별자 및 사용자 장치(400)의 메시지 수신 가능 여부에 대한 요청이 포함된 메시지(M5-1)를 생성할 수 있다. 메시지 전송 장치(200)는 메시지(M5-1)를 출발지 위치자 필드에 메시지 전송 장치(200)의 위치자 및 목적지 위치자 필드에 모니터링 장치(300)의 위치자가 기입된 패킷(P5-1)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P5-1)을 모니터링 장치(300)로 송신할 수 있다(4330).
모니터링 장치(300)는 패킷(P5-1)을 수신할 수 있다. 모니터링 장치(300)는 패킷(P5-1)을 메시지(M5-1)로 복원할 수 있다.
모니터링 장치(300)는 사용자 장치(400)의 식별자에 대응하는 사용자 장치(400)의 위치자 및/또는 사용자 장치(400)의 메시지 수신 가능 여부가 포함된 메시지(M5-2)를 생성할 수 있다.
모니터링 장치(300)는 메시지(M5-2)를 출발지 위치자 필드에 모니터링 장치(300)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입된 패킷(P5-2)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P5-2)을 메시지 전송 장치(200)로 송신할 수 있다(4350).
메시지 전송 장치(200)는 패킷(P5-2)를 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P5-2)을 메시지(M5-2)로 복원할 수 있다. 메시지 전송 장치(200)는 메시지(M5-2)에서 사용자 장치(400)의 위치자 및/또는 사용자 장치(400)의 메시지 수신 가능 여부를 추출할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)가 메시지를 수신할 수 없을 경우 메시지를 메시지 큐에 저장할 수 있다.
사용자 장치(400)는 출발지 식별자 필드에 사용자 장치(400)의 식별자, 목적지 식별자 필드에 메시지 전송 장치(200)의 식별자 및 메시지 페이로드에 제공자 장치(100)의 식별자가 포함된 폴링 요청 메시지(M6)를 생성할 수 있다.
사용자 장치(400)는 폴링 요청 메시지(M6)를 출발지 위치자 필드에 사용자 장치(400)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입된 패킷(P6)으로 분할할 수 있다. 사용자 장치(400)는 패킷(P6)을 메시지 전송 장치(200)로 송신할 수 있다(4370).
메시지 전송 장치(200)는 패킷(P6)을 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P6)을 폴링 요청 메시지(M6)로 복원할 수 있다.
메시지 전송 장치(200)는 폴링 요청 메시지(M6)의 메시지 페이로드에 담긴 제공자 장치(100)의 식별자를 추출할 수 있다. 메시지 전송 장치(200)는 폴링 요청 메시지(M6)의 메시지 헤더의 출발지 식별자를 추출할 수 있다.
예를 들어, 메시지 전송 장치(200)는 사용자 장치(400)의 식별자 및 제공자 장치(100)의 식별자에 기초하여 사용자 장치(400)로 전송될 메시지를 검색할 수 있다. 메시지 전송 장치(200)는 '제공자 장치(100)의 식별자::사용자 장치(400)의 식별자' 메시지 큐를 검색할 수 있다.
메시지 전송 장치(200)는 '제공자 장치(100)의 식별자::사용자 장치(400)의 식별자' 메시지 큐에 메시지가 저장되어 있다면 사용자 장치(400)에게 전송될 메시지를 추출할 수 있다.
메시지 전송 장치(200)는 전송될 메시지를 포함하는 메시지(M7)를 생성할 수 있다. 메시지 전송 장치(200)는 메시지(M7)를 출발지 위치자 필드에 메시지 전송 장치(200)의 위치자 및 목적지 위치자 필드에 사용자 장치(400)의 위치자가 기입된 패킷(P7)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P7)을 송신할 수 있다(4390).
사용자 장치(400)는 패킷(P7)을 수신할 수 있다. 사용자 장치(400)는 패킷(P7)을 메시지(M7)로 복원할 수 있다.
도 9는 메시지 전송 시스템에서 메시지 및 패킷 흐름의 다른 예를 설명하기 위한 도면이다.
도 9에 도시된 장치(100, 200, 300, 및 400)는 도 8에서 설명한 장치(100, 200, 300 및 400)의 동작과 동일한 동작을 수행할 수 있다. 따라서, 도 9에서는 장치(100, 200, 300, 및 400)의 동작 중에서 도 8의 내용과 중복되는 내용은 그 설명을 생략한다.
사용자 장치(400)는 출발지 식별자 필드에 사용자 장치(400)의 식별자, 목적지 식별자 필드에 메시지 전송 장치(200)의 식별자 및 메시지 페이로드에 제공자 장치(100)의 식별자가 및 사용자 장치(400)의 인증서가 포함된 폴링 요청 메시지(M6c)를 생성할 수 있다.
사용자 장치(400)는 메시지(M6c)를 출발지 위치자 필드에 사용자 장치(400)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입된 패킷(P6c)으로 분할할 수 있다. 사용자 장치(400)는 패킷(P6c)을 메시지 전송 장치(200)로 송신할 수 있다(4370c).
메시지 전송 장치(200)는 패킷(P6c)을 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P6c)을 메시지(M6c)로 복원할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)의 인증서에 포함된 식별자와 출발지 식별자 필드에 포함된 식별자가 동일한지 여부 및 인증서의 유효 여부를 검증할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)의 인증서에 포함된 식별자와 출발지 식별자 필드에 포함된 식별자가 동일하고 인증서가 유효한 경우, 메시지(M6c)에 포함된 사용자 장치(400)의 식별자 및 제공자 장치(100)의 식별자에 기초하여 사용자 장치(400)로 전송될 메시지를 검색할 수 있다.
도 10은 메시지 전송 시스템에서 메시지 및 패킷 흐름의 또 다른 예를 설명하기 위한 도면이다.
도 10에 도시된 장치(100, 200, 300, 및 400)는 도 8에서 설명한 장치(100, 200, 300 및 400)의 동작과 동일한 동작을 수행할 수 있다. 따라서, 도 10에서는 장치(100, 200, 300, 및 400)의 동작 중에서 도 8의 내용과 중복되는 내용은 그 설명을 생략한다.
제공자 장치(100)는 메시지 헤더에 출발지 식별자 및 목적지 식별자가 포함된 암호화된 메시지(M4e)를 생성할 수 있다. 제공자 장치(100)는 메시지(M4e)를 패킷 헤더에 출발지 위치자 및 목적지 위치자를 포함하는 패킷(P4e)으로 분할할 수 있다. 제공자 장치(100)는 패킷(P4e)을 메시지 전송 장치(200)로 전송할 수 있다(4310e).
메시지 전송 장치(200)는 패킷(P4e)을 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P4e)을 메시지(M4e)로 복원할 수 있다. 메시지 전송 장치(200)는 메시지(M4e)를 메시지(M4)로 복호화할 수 있다. 메시지 전송 장치(200)는 메시지(M4)에 포함된 목적지 식별자인 사용자 장치(400)의 식별자를 추출할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)의 식별자 및 사용자 장치(400)의 메시지 수신 가능 여부에 대한 요청이 포함된 암호화된 메시지(M5-1e)를 생성할 수 있다. 메시지 전송 장치(200)는 메시지(M5-1e)를 출발지 위치자 필드에 메시지 전송 장치(200)의 위치자 및 목적지 위치자 필드에 모니터링 장치(300)의 위치자가 기입된 패킷(P5-1e)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P5-1e)을 모니터링 장치(300)로 송신할 수 있다(4330e).
모니터링 장치(300)는 패킷(P5-1e)을 수신할 수 있다. 모니터링 장치(300)는 패킷(P5-1e)을 메시지(M5-1e)로 복원할 수 있다. 모니터링 장치(300)는 메시지(M5-1e)를 메시지(M5-1)로 복호화할 수 있다.
모니터링 장치(300)는 사용자 장치(400)의 식별자에 대응하는 사용자 장치(400)의 위치자 및/또는 사용자 장치(400)의 메시지 수신 가능 여부가 포함된 암호화된 메시지(M5-2e)를 생성할 수 있다. 모니터링 장치(300)는 메시지(M5-2e)를 출발지 위치자 필드에 모니터링 장치(300)의 위치자 및 목적지 위치자 필드에 메시지 전송 장치(200)의 위치자가 기입된 패킷(P5-2e)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P5-2e)을 메시지 전송 장치(200)로 송신할 수 있다(4350e).
메시지 전송 장치(200)는 패킷(P5-2e)를 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P5-2e)을 메시지(M5-2e)로 복원할 수 있다. 메시지 전송 장치(200)는 메시지(M5-2e)를 메시지(M5-2)로 복호화할 수 있다.
사용자 장치(400)는 암호화된 폴링 요청 메시지(M6e)를 생성할 수 있다.
사용자 장치(400)는 메시지(M6e)를 패킷(P6e)으로 분할할 수 있다. 사용자 장치(400)는 패킷(P6e)을 메시지 전송 장치(200)로 송신할 수 있다(4370e).
메시지 전송 장치(200)는 패킷(P6e)을 수신할 수 있다. 메시지 전송 장치(200)는 패킷(P6e)을 메시지(M6e)로 복원할 수 있다. 메시지 전송 장치(200)는 메시지(M6e)를 메시지(M6)으로 복호화할 수 있다.
메시지 전송 장치(200)는 사용자 장치(400)로 전송될 암호화된 메시지(M7e)를 생성할 수 있다. 메시지 전송 장치(200)는 메시지(M7e)를 패킷(P7e)으로 분할할 수 있다. 메시지 전송 장치(200)는 패킷(P7e)을 송신할 수 있다(4390).
사용자 장치(400)는 패킷(P7e)을 수신할 수 있다. 사용자 장치(400)는 패킷(P7e)을 메시지(M7e)로 복원할 수 있다. 사용자 장치(400)는 메시지(M7e)를 메시지(M7)로 복호화할 수 있다.
장치(100, 200, 300, 및 400)는 RSA 공개키 암호화 방식 등과 같은 공개키 방식 또는 AES 대칭키 암호화 방식 등과 같은 대칭키 암호화 방식으로 암호화 및 복호화할 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.
Claims (26)
- 송신 장치로부터 메시지가 분할되어 송신되는 제1 패킷을 수신하는 단계;
상기 제1 패킷에 의해 복원되는 상기 메시지에 포함된 목적지 식별자에 대응하는 수신 장치의 메시지 수신 가능 여부를 획득하는 단계; 및
상기 메시지 수신 가능 여부에 따라 상기 메시지를 저장(queuing)하는 단계
를 포함하고,
상기 제1 패킷의 출발지 위치자 및 목적지 위치자는 상기 송신 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자이고,
상기 메시지의 출발지 식별자 및 목적지 식별자는 상기 송신 장치에 대응하는 식별자 및 상기 수신 장치에 대응하는 식별자인
메시지 전송 방법.
- 제1항에 있어서,
상기 획득하는 단계는,
상기 메시지에서 상기 메시지의 목적지 식별자를 추출하는 단계;
상기 메시지의 목적지 식별자에 기초하여 상기 수신 장치의 메시지 수신 가능 여부를 관리 장치에 요청하는 단계; 및
상기 관리 장치로부터 상기 수신 장치의 메시지 수신 가능 여부를 수신하는 단계
를 포함하는 메시지 전송 방법.
- 제2항에 있어서,
상기 요청하는 단계는,
상기 메시지의 목적지 식별자가 포함된 상기 수신 장치의 메시지 수신 가능 여부에 대한 요청 메시지를 생성하는 단계;
상기 요청 메시지를 분할하여 포함하는 제2 패킷을 생성하는 단계; 및
상기 제2 패킷을 상기 관리 장치에 전송하는 단계
를 포함하고,
상기 제2 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 관리 장치에 대응하는 위치자인 메시지 전송 방법.
- 제2항에 있어서,
상기 메시지 수신 가능 여부를 수신하는 단계는,
상기 수신 장치의 메시지 수신 가능 여부가 포함된 응답 메시지를 분할하여 포함하는 제3 패킷을 수신하는 단계
를 포함하고,
상기 제3 패킷의 출발지 위치자 및 목적지 위치자는 상기 관리 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자인 메시지 전송 방법.
- 제1항에 있어서,
상기 저장하는 단계는,
상기 메시지를 상기 송신 장치의 식별자와 상기 수신 장치의 식별자에 할당된 메시지 큐에 저장하는 단계
를 포함하는 메시지 전송 방법.
- 제1항에 있어서,
상기 저장하는 단계는,
상기 수신 장치가 상기 메시지를 수신할 수 없는 경우 상기 메시지를 저장하는 단계; 및
상기 수신 장치가 상기 메시지를 수신할 수 있는 경우 상기 메시지를 분할하여 포함하는 제4 패킷을 전송하는 단계
를 포함하고,
상기 제4 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 수신 장치에 대응하는 위치자인 메시지 전송 방법.
- 제1항에 있어서,
상기 수신 장치로부터 폴링(polling) 요청 메시지가 분할되어 송신되는 제5 패킷을 수신하는 단계; 및
상기 제5 패킷에 의해 복원되는 상기 폴링 요청 메시지에 포함된 상기 수신 장치의 식별자 및 상기 송신 장치의 식별자에 기초하여 상기 수신 장치로 전송될 메시지를 검색하는 단계
를 더 포함하고,
상기 제5 패킷의 출발지 위치자 및 목적지 위치자는 상기 수신 장치에 대응하는 위치자 및 상기 제5 패킷을 수신하는 장치에 대응하는 위치자이고,
상기 폴링 요청 메시지의 출발지 식별자 및 목적지 식별자는 상기 수신 장치에 대응하는 식별자 및 상기 제5 패킷을 수신하는 장치에 대응하는 식별자이고,
상기 폴링 요청 메시지의 메시지 페이로드는 상기 송신 장치에 대응하는 식별자를 포함하는
메시지 전송 방법.
- 제7항에 있어서,
상기 수신 장치로 전송될 메시지를 분할하여 포함하는 제6 패킷을 생성하는 단계; 및
상기 제6 패킷을 상기 수신 장치로 전송하는 단계
를 더 포함하고,
상기 제6 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 목적지 식별자에 대응하는 위치자인 메시지 전송 방법.
- 제7항에 있어서,
상기 검색하는 단계는,
상기 수신 장치로 전송될 메시지를 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 검색하는 단계
를 포함하는 메시지 전송 방법.
- 제8항에 있어서,
상기 폴링 요청 메시지가 분할되어 송신되는 제5 패킷을 수신하는 단계는,
상기 수신 장치의 인증서를 포함하는 폴링 요청 메시지가 분할되어 송신되는 패킷을 수신하는 단계
를 포함하는 메시지 전송 방법.
- 제10항에 있어서,
상기 제6 패킷을 생성하는 단계는,
상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일한지 여부 및 상기 인증서의 유효 여부를 검증하는 단계; 및
상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일하고 상기 인증서가 유효한 경우, 상기 저장된 메시지를 분할하여 포함하는 제6 패킷을 생성하는 단계
를 포함하는 메시지 전송 방법.
- 제8항에 있어서,
상기 제6 패킷을 생성하는 단계는,
상기 수신 장치로 전송될 메시지를 암호화하는 단계; 및
상기 암호화된 메시지를 분할하여 포함하는 제6 패킷을 생성하는 단계;
를 포함하는 메시지 전송 방법.
- 제12항에 있어서,
상기 암호화하는 단계는,
상기 메시지를 공개키 암호화 방식 또는 대칭키 암호화 방식으로 암호화하는 단계
를 포함하는 메시지 전송 방법.
- 메시지 전송을 위한 인스트럭션들을 저장하는 메모리; 및
상기 인스트럭션들을 실행하기 위한 프로세서
를 포함하고,
상기 인스트럭션들이 상기 프로세서에 의해 실행될 때, 상기 프로세서는,
송신 장치로부터 메시지가 분할되어 송신되는 제1 패킷을 수신하고, 상기 제1 패킷에 의해 복원되는 상기 메시지에 포함된 목적지 식별자에 대응하는 수신 장치의 메시지 수신 가능 여부를 획득하고, 상기 메시지 수신 가능 여부에 따라 상기 메시지를 저장(queuing)하고,
상기 제1 패킷의 출발지 위치자 및 목적지 위치자는 상기 송신 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자이고,
상기 메시지의 출발지 식별자 및 목적지 식별자는 상기 송신 장치에 대응하는 식별자 및 상기 수신 장치에 대응하는 식별자인
메시지 전송 장치.
- 제14항에 있어서,
상기 프로세서는,
상기 메시지에서 상기 메시지의 목적지 식별자를 추출하고, 상기 메시지의 목적지 식별자에 기초하여 상기 수신 장치의 메시지 수신 가능 여부를 관리 장치에 요청하고, 상기 관리 장치로부터 상기 수신 장치의 메시지 수신 가능 여부를 수신하는
메시지 전송 장치.
- 제15항에 있어서,
상기 프로세서는,
상기 메시지의 목적지 식별자가 포함된 상기 수신 장치의 메시지 수신 가능 여부에 대한 요청 메시지를 생성하고, 상기 요청 메시지를 분할하여 포함하는 제2 패킷을 생성하고, 상기 제2 패킷을 상기 관리 장치에 전송하고,
상기 제2 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 관리 장치에 대응하는 위치자인
메시지 전송 장치.
- 제15항에 있어서,
상기 프로세서는,
상기 수신 장치의 메시지 수신 가능 여부가 포함된 응답 메시지를 분할하여 포함하는 제3 패킷을 수신하고,
상기 제3 패킷의 출발지 위치자 및 목적지 위치자는 상기 관리 장치에 대응하는 위치자 및 상기 제1 패킷을 수신하는 장치에 대응하는 위치자인
메시지 전송 장치.
- 제14항에 있어서,
상기 프로세서는,
상기 메시지를 상기 송신 장치의 식별자와 상기 수신 장치의 식별자에 할당된 메시지 큐에 저장하는
메시지 전송 장치.
- 제14항에 있어서,
상기 프로세서는,
상기 수신 장치가 상기 메시지를 수신할 수 없는 경우 상기 메시지를 저장하고, 상기 수신 장치가 상기 메시지를 수신할 수 있는 경우 상기 메시지를 분할하여 포함하는 제4 패킷을 전송하고,
상기 제4 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 수신 장치에 대응하는 위치자인
메시지 전송 장치.
- 제14항에 있어서,
상기 프로세서는,
상기 수신 장치로부터 폴링(polling) 요청 메시지가 분할되어 송신되는 제5 패킷을 수신하고, 상기 제5 패킷에 의해 복원되는 상기 폴링 요청 메시지에 포함된 상기 수신 장치의 식별자 및 상기 송신 장치의 식별자에 기초하여 상기 수신 장치로 전송될 메시지를 검색하고,
상기 제5 패킷의 출발지 위치자 및 목적지 위치자는 상기 수신 장치에 대응하는 위치자 및 상기 제5 패킷을 수신하는 장치에 대응하는 위치자이고,
상기 폴링 요청 메시지의 출발지 식별자 및 목적지 식별자는 상기 수신 장치에 대응하는 식별자 및 상기 제5 패킷을 수신하는 장치에 대응하는 식별자이고,
상기 폴링 요청 메시지의 메시지 페이로드는 상기 송신 장치에 대응하는 식별자를 포함하는
메시지 전송 장치.
- 제20항에 있어서,
상기 프로세서는,
상기 수신 장치로 전송될 메시지를 분할하여 포함하는 제6 패킷을 생성하고, 상기 제6 패킷을 상기 수신 장치로 전송하고,
상기 제6 패킷의 출발지 위치자 및 목적지 위치자는 상기 제1 패킷을 수신하는 장치에 대응하는 위치자 및 상기 목적지 식별자에 대응하는 위치자인
메시지 전송 장치.
- 제20항에 있어서,
상기 프로세서는,
상기 수신 장치로 전송될 메시지를 상기 수신 장치의 식별자 및 상기 폴링 요청 메시지에 포함된 식별자에 할당된 메시지 큐에서 검색하는
메시지 전송 장치.
- 제20항에 있어서,
상기 프로세서는,
상기 수신 장치의 인증서를 포함하는 폴링 요청 메시지가 분할되어 송신되는 패킷을 수신하는
메시지 전송 장치.
- 제23항에 있어서,
상기 프로세서는,
상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일한지 여부 및 상기 인증서의 유효 여부를 검증하고, 상기 인증서에 포함된 식별자와 상기 폴링 요청 메시지에 포함된 출발지 식별자가 동일하고 상기 인증서가 유효한 경우, 상기 저장된 메시지를 분할하여 포함하는 제6 패킷을 생성하는
메시지 전송 장치.
- 제21항에 있어서,
상기 프로세서는,
상기 수신 장치로 전송될 메시지를 암호화하고, 상기 암호화된 메시지를 분할하여 포함하는 제6 패킷을 생성하는
메시지 전송 장치.
- 제25항에 있어서,
상기 프로세서는,
상기 메시지를 공개키 암호화 방식 또는 대칭키 암호화 방식으로 암호화하는
메시지 전송 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190056181A KR102138467B1 (ko) | 2019-05-14 | 2019-05-14 | 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190056181A KR102138467B1 (ko) | 2019-05-14 | 2019-05-14 | 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102138467B1 true KR102138467B1 (ko) | 2020-07-28 |
Family
ID=71831586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190056181A KR102138467B1 (ko) | 2019-05-14 | 2019-05-14 | 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102138467B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060101155A (ko) * | 2005-03-17 | 2006-09-22 | 후지쯔 가부시끼가이샤 | 정보 처리 장치, 정보 처리 장치에 있어서의 데이터 제어방법 |
KR20070023842A (ko) * | 2005-08-25 | 2007-03-02 | 주식회사 팬택앤큐리텔 | 수신측 단말기의 상태를 고려하여 멀티미디어 메시지를전송하는 이동통신 단말기 및 그 방법 |
KR101326360B1 (ko) * | 2012-06-22 | 2013-11-11 | 가톨릭대학교 산학협력단 | Dns 서버 간의 보안 통신 방법 및 이를 위한 관할 dns 서버, 그리고 보안 통신 시스템 |
KR101495535B1 (ko) * | 2007-06-22 | 2015-02-25 | 삼성전자주식회사 | 컨텐츠 디바이스의 폐기 여부를 확인하여 데이터를전송하는 전송 방법과 시스템, 데이터 서버 |
-
2019
- 2019-05-14 KR KR1020190056181A patent/KR102138467B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060101155A (ko) * | 2005-03-17 | 2006-09-22 | 후지쯔 가부시끼가이샤 | 정보 처리 장치, 정보 처리 장치에 있어서의 데이터 제어방법 |
KR20070023842A (ko) * | 2005-08-25 | 2007-03-02 | 주식회사 팬택앤큐리텔 | 수신측 단말기의 상태를 고려하여 멀티미디어 메시지를전송하는 이동통신 단말기 및 그 방법 |
KR101495535B1 (ko) * | 2007-06-22 | 2015-02-25 | 삼성전자주식회사 | 컨텐츠 디바이스의 폐기 여부를 확인하여 데이터를전송하는 전송 방법과 시스템, 데이터 서버 |
KR101326360B1 (ko) * | 2012-06-22 | 2013-11-11 | 가톨릭대학교 산학협력단 | Dns 서버 간의 보안 통신 방법 및 이를 위한 관할 dns 서버, 그리고 보안 통신 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | A practical and compatible cryptographic solution to ADS-B security | |
AU2018322689B2 (en) | Terminal identity protection method in a communication system | |
US8195817B2 (en) | Authentication of the geographic location of wireless communication devices | |
CN102365841B (zh) | 推送通知服务 | |
CN107105403B (zh) | 位置辅助数据的一般广播 | |
US20200162434A1 (en) | Secure and encrypted heartbeat protocol | |
US10219106B1 (en) | Secure BLE broadcast system for location based service | |
CN108667601B (zh) | 一种传输数据的方法、装置和设备 | |
JP6783587B2 (ja) | 軽量でサイバーセキュリティの高い双方向航空機地上間データ通信システム(acars)伝送 | |
US20200389322A1 (en) | Security for group communication | |
KR20160140651A (ko) | 비콘 메시지의 송신 | |
EP2856789B1 (en) | Method for tracking a mobile device onto a remote displaying unit via a mobile switching center and a head-end | |
WO2021126554A1 (en) | Privacy-preserving delivery of activation codes for pseudonym certificates | |
KR20160050766A (ko) | 메시지 통신 장치 및 방법 | |
CN116723511B (zh) | 车联网中实现隐私保护的位置管理方法、系统及车联网 | |
KR102138467B1 (ko) | 통신 단절 상황에서의 식별자 기반 메시지 전송 방법 및 시스템 | |
KR101648641B1 (ko) | 프라이버시 보호 클라우드 기반 컴퓨팅 플랫폼 시스템 및 그의 위치 기반 서비스 제공 방법 | |
CN112425117B (zh) | 化名信任状的配置方法和装置 | |
KR102174097B1 (ko) | 식별자 기반 메시지 전송 방법 및 시스템 | |
Yang et al. | An efficient broadcast authentication scheme with batch verification for ADS-B messages | |
KR102176429B1 (ko) | 식별자 및 위치 영역 기반 메시지 전송 방법 및 시스템 | |
US8462769B2 (en) | System and method for managing created location contexts in a location server | |
CN114915942A (zh) | 通信密钥配置方法及装置 | |
Park et al. | A privacy-preserving location assurance protocol for location-aware services in VANETs | |
Kong et al. | A secure location management scheme in an LEO-satellite network with dual-mobility |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |