KR101466712B1 - HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법 - Google Patents

HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법 Download PDF

Info

Publication number
KR101466712B1
KR101466712B1 KR1020130022817A KR20130022817A KR101466712B1 KR 101466712 B1 KR101466712 B1 KR 101466712B1 KR 1020130022817 A KR1020130022817 A KR 1020130022817A KR 20130022817 A KR20130022817 A KR 20130022817A KR 101466712 B1 KR101466712 B1 KR 101466712B1
Authority
KR
South Korea
Prior art keywords
message
coap
http
transmitting
wait time
Prior art date
Application number
KR1020130022817A
Other languages
English (en)
Other versions
KR20140108923A (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 KR1020130022817A priority Critical patent/KR101466712B1/ko
Publication of KR20140108923A publication Critical patent/KR20140108923A/ko
Application granted granted Critical
Publication of KR101466712B1 publication Critical patent/KR101466712B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/08Protocols for interworking; Protocol conversion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법이 개시된다. 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시 장치는, HTTP 장치와 연결되어 상기 HTTP 장치로부터 HTTP 메시지를 수신하고, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는 HTTP 메시지 송수신부; 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 프로토콜 변환부; 및 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하되, 설정된 CoAP 메시지 응답 대기시간 동안 상기 CoAP 장치로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우, 상기 CoAP 메시지를 재전송하는 CoAP 메시지 송수신부를 포함한다.

Description

HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법{HTTP-CoAP PROXY APPARATUS AND METHOD FOR MANAGING TIMEOUT THEREOF}
본 발명은 HTTP(Hyper Text Transfer Protocol)와 CoAP(Constrained Application Protocol) 간의 메시지 중계 기술과 관련된다.
CoAP(Constrained Application Protocol)이란 소형 센서, 스위치, 밸브 등의 매우 단순한 전자 장치들이 인터넷 상에서 상호 커뮤니케이션할 수 있도록 하기 위하여 제안된 프로토콜이다. CoAP을 이용할 경우 인터넷을 통하여 다양한 종류의 장치들을 직접 제어하고 관리할 수 있는 장점이 있어, 사물인터넷(Web of Thing) 등의 핵심 프로토콜로 그 개발이 빠르게 진행되고 있다.
CoAP은 인터넷에서 사용되는 일반적인 프로토콜인 HTTP와의 호환이 쉽도록 디자인되었으나, HTTP와는 별개의 프로토콜이므로 CoAP을 지원하는 저전력 네트워크와 HTTP를 기존 인터넷 망 간의 통신을 위해서는 HTTP 메시지와 CoAP 메시지 간의 프로토콜 변환을 위한 장치, 즉 HTTP-CoAP 프록시가 필요하다. HTTP-CoAP 프록시는 HTTP를 지원하는 장치로부터 HTTP 메시지를 수신하고, 이를 CoAP 메시지로 변환하여 CoAP 장치로 전송한다. 또한, HTTP-CoAP 프록시는 CoAP을 지원하는 장치로부터 CoAP 메시지를 수신하고, 이를 HTTP 메시지로 변환하여 HTTP 장치로 전송한다.
한편, CoAP는 일반적인 인터넷 망 보다 불안정한 저전력 네트워크를 대상으로 한 프로토콜이므로, CoAP 메시지의 전송이 실패한 것으로 판단되는 경우 이를 재전송하기 위한 절차들을 포함하고 있다. 그러나 HTTP는 이와 같은 CoAP 메시지에 대응하는 재전송 절차가 규정되어 있지 않으므로, HTTP-CoAP 프록시를 통하여 HTTP 장치가 CoAP 장치로 메시지를 전송할 경우 HTTP 장치 측의 대기 시간이 불필요하게 길어지거나, 또는 불필요한 메시지의 재전송이 발생하는 등의 문제가 있었다.
미국공개특허 제2012-0151028호 (2014. 06. 14)
본 발명의 실시예들은 HTTP-CoAP 프록시를 이용한 HTTP 장치와 CoAP 장치 간의 메시지 송수신에 있어, HTTP 표준을 위배하지 않으면서 CoAP 메시지 재전송에 효과적으로 대처하기 위한 수단을 제공하기 위한 것이다.
본 발명의 일 실시예에 따른 HTTP-CoAP 프록시 장치는, HTTP 장치와 연결되어 상기 HTTP 장치로부터 HTTP 메시지를 수신하고, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는 HTTP 메시지 송수신부, 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 프로토콜 변환부, 및 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하되, 설정된 CoAP 메시지 응답 대기시간 동안 상기 CoAP 장치로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우, 상기 CoAP 메시지를 재전송하는 CoAP 메시지 송수신부를 포함한다.
본 발명의 일 실시예에 따른 HTTP-CoAP 프록시 장치에서 수행되는 대기시간 관리 방법은, HTTP 메시지 송수신부에서 HTTP 장치로부터 HTTP 메시지를 수신하는 단계, 프로토콜 변환부에서, 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 단계, CoAP 메시지 송수신부에서, 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하는 단계, 상기 CoAP 메시지 송수신부에서, 설정된 CoAP 메시지 응답 대기시간 동안 상기 CoAP 장치로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우, 상기 CoAP 메시지를 재전송하는 단계, 및 상기 HTTP 메시지 송수신부에서, 상기 HTTP 장치로 상기 CoAP 메시지 재전송에 따른 대기시간 연장 요청 메시지를 송신하는 단계를 포함한다.
본 발명의 일 실시예에 따른 HTTP-CoAP 프록시 장치에서 수행되는 대기시간 관리 방법은, HTTP 메시지 송수신부에서, HTTP 장치로부터 HTTP 메시지를 수신하는 단계, 프로토콜 변환부에서, 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 단계, CoAP 메시지 송수신부에서, 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하는 단계, 및 HTTP 메시지 송수신부에서, 상기 CoAP 메시지 송수신부에서의 상기 CoAP 메시지에 대한 응답 대기 중 상기 HTTP 장치로부터 HTTP 메시지가 재전송되는 경우, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는 단계를 포함한다.
본 발명의 실시예들에 따를 경우, HTTP-CoAP 프록시가 CoAP 장치로 CoAP 메시지를 재전송할 경우 이와 동시에 HTTP 패킷을 이용해 CoAP 메시지의 재전송 여부 및 시간 간격을 HTTP 장치로 통지하므로, HTTP 장치에서는 CoAP 메시지 재전송 간격에 맞추어 메시지 타임아웃을 적절히 연장할 수 있게 된다. 따라서 본 발명의 실시예들에 다를 경우 HTTP 표준을 위배하지 않으면서도 CoAP 메시지 재전송에 효과적으로 대처할 수 있는 장점이 있다.
도 1은 본 발명의 일 실시예에 다른 커뮤니케이션 시스템(100)을 설명하기 위한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)의 상세 구성을 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)의 메시지 송수신 과정을 설명하기 위한 순서도이다.
도 4는 일반적인 HTTP-CoAP 프록시 장치에서의 CoAP 메시지 재전송 처리 과정(400)을 설명하기 위한 도면이다.
도 5 및 도 6은 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)에서의 CoAP 메시지 재전송 처리 과정(500, 600)을 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 HTTP-CoAP 프록시(106)에서의 CoAP 메시지 재전송 처리 과정(700)을 설명하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 일 실시예에 다른 커뮤니케이션 시스템(100)을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 커뮤니케이션 시스템(100)은 HTTP 장치(102), CoAP 장치(104) 및 HTTP-CoAP 프록시(106)를 포함한다.
본 발명의 실시예에서, HTTP 장치(102)는 HTTP(Hyper Text Transfer Protocol)에 따라 메시지를 송수신하는 장치이며, CoAP 장치(104)는 CoAP(Constrained Application Protocol)에 따라 메시지를 송수신하는 장치를 각각 의미한다. 이러한 HTTP 장치(102) 및 CoAP 장치(104)는 네트워크상에서 각각 HTTP 및 CoAP을 이용하여 데이터 통신을 수행할 수 있는 디바이스들을 포괄적으로 포함할 수 있으며, 특정한 종류의 디바이스에 한정되는 것은 아니다.
HTTP-CoAP 프록시(106)는 HTTP 장치(102) 및 CoAP 장치(104) 간의 데이터 통신을 중계하기 위한 네트워크 내 장치이다. 구체적으로, HTTP-CoAP 프록시(106)는 HTTP 장치(102)로부터 HTTP 메시지를 수신할 경우 이를 CoAP으로 변환하여 CoAP 장치(104)로 송신한다. 또한, HTTP-CoAP 프록시(106)는 CoAP 장치(104)로부터 CoAP 메시지를 수신할 경우 이를 HTTP로 변환하여 HTTP 장치(102)로 송신한다. 즉, HTTP-CoAP 프록시(106)는 HTTP 장치(102) 및 CoAP 장치(104) 사이에서 송수신되는 메시지를 각각의 프로토콜에 맞게 변환하여 줌으로써 HTTP 장치(102) 및 CoAP 장치(104) 간에 원활한 통신이 이루어질 수 있도록 한다.
도 2는 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)의 상세 구성을 나타낸 도면이다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)는 HTTP 메시지 송수신부(200), CoAP 메시지 송수신부(202) 및 프로토콜 변환부(204)를 포함한다.
HTTP 메시지 송수신부(200)는 HTTP 장치(102)와 연결되며, HTTP 장치(102)로부터 HTTP 메시지를 수신하거나, 또는 후술할 프로토콜 변환부(204)에서 변환된 HTTP 메시지를 HTTP 장치(102)로 송신한다.
CoAP 메시지 송수신부(200)는 CoAP 장치(104)와 연결되며, CoAP 장치(104)로부터 CoAP 메시지를 수신하거나, 또는 프로토콜 변환부(204)에서 변환된 CoAP 메시지를 CoAP 장치(104)로 송신한다.
프로토콜 변환부(204)는 수신된 메시지의 프로토콜을 변환한다. 구체적으로, 프로토콜 변환부(204)는 HTTP 메시지 송수신부(200)에서 수신한 HTTP 메시지를 CoAP 메시지로 변환하여 이를 CoAP 메시지 송수신부(202)로 전달한다. 또한, 프로토콜 변환부(204)는 CoAP 메시지 송수신부(202)에서 수신한 CoAP 메시지를 HTTP 메시지로 변환하여 이를 HTTP 메시지 송수신부(200)로 전달한다.
이와 같은 HTTP-CoAP 프록시(106)에서의 메시지 변환 과정을 좀 더 상세히 설명하면 다음과 같다. 먼저, HTTP 장치(102)로부터 HTTP 메시지 송수신부(200)로 전송되는 HTTP 메시지의 헤더는 다음과 같은 형태를 가질 수 있다.
POST / HTTP/1.1
host: <proxy_host>
CoAP: coap://<addr>/foo
상기 예에서, 'POST'는 해당 HTTP 메시지가 POST 형식으로 전송되었음을 나타내며, '/'는 해당 메시지의 요청 경로를 나타낸다. 또한, host 필드는 해당 메시지의 목적지 주소를 나타낸다. 상기 예에서 <proxy_host>는 HTTP-CoAP 프록시(106)의 주소를 나타내므로 상기 HTTP 메시지의 목적지는 HTTP-CoAP 프록시(106)이다. 즉, 상기 예에서 HTTP 장치(102)는 method가 POST인 HTTP 요청을 <proxy_host>의 / 경로로 요청한 것이 된다.
또한, 상기 HTTP 메시지에는 HTTP-CoAP 프록시(106)의 주소 외에 실제로 메시지를 전송하려는 CoAP 장치(104)의 주소를 포함하여야 한다. 이를 위하여, 본 발명의 실시예에서는 HTTP Request의 헤더 필드 중 'CoAP' 필드를 이용해 실제 CoAP 서버의 URI를 전송하도록 구성된다. 즉, 상기 예에서 <addr>는 CoAP 장치(104)의 주소를, '/foo'는 CoAP 장치(104) 내에서의 접근 경로를 각각 나타낸다.
HTTP-CoAP 프록시(106)의 프로토콜 변환부(206)는 상기 HTTP 메시지를 수신한 후, 메시지 내의 CoAP 헤더 필드의 주소(coap://<addr>/foo)에 대한 컨퍼머블(Confirmable) CoAP 메세지를 생성한다. 상기 변환된 CoAP 메시지는 예를 들어 다음과 같이 구성될 수 있다.
CON
POST /foo
Uri-host: <addr>
상기 예에서, 'CON'은 해당 메시지가 Confirmable CoAP 메시지임을, 'POST /foo'는 해당 메시지가 POST 형식으로 /foo 경로로 전송됨을 각각 나타낸다. <addr>은 CoAP 장치(104)의 네트워크 주소이다.
Confirmable CoAP 메시지란, 수신측에서 해당 메시지에 대한 응답을 반드시 전송하여야 하는 CoAP 메시지를 의미한다. HTTP 장치(102)는 CoAP 장치(104)에 대한 메시지 전송 결과를 응답으로 받아야 하므로, CoAP 메세지는 반드시 응답을 요구하는 CoAP 메세지(Confirmable)이어야 한다. 즉, HTTP-CoAP 프록시(106)는 HTTP 장치(102)에게 메시지 전송 결과를 응답해 주기 위해, Confirmable CoAP 메세지를 생성하여 CoAP 장치(104)로 전송하게 된다.
프로토콜 변환부(204)에서의 프로토콜 변환이 완료되면, CoAP 메시지 송수신부(202)는 변환된 CoAP 메시지를 CoAP 장치(104)로 전송한다. 만약, 상기 CoAP 메시지가 전송 중 유실되어 CoAP 장치(104)로부터 응답을 받지 못한 경우, HTTP-CoAP 프록시(106)는 미리 정해진 ACK_TIMEOUT 이후 다시 같은 메시지를 CoAP 서버로 재전송한다. 또한, 이 경우 HTTP-CoAP 프록시(106)는 다음과 같은 헤더를 포함하는 HTTP 응답(response)을 HTTP 장치(102)로 전송한다.
1xx Pending HTTP/1.1
Wait: 1000
상기 메시지에서 1xx는 HTTP 표준을 따르는 100~199 사이의 상태 코드(Status Code) 중 하나를 의미한다. 1xx는 해당 패킷이 망 제어 목적으로 추가 사용된 패킷이며, HTTP 장치(102)가 원래 받기를 원했던 패킷은 아직 오지 않았음을 의미한다. 즉, HTTP 장치(102)는 1xx 상태 코드를 가진 응답이 수신될 경우에도 기 송신된 메시지에 대한 응답을 여전히 대기하게 된다.
본 발명의 실시예에서는 이와 같은 1xx 상태 코드를 이용하여 HTTP 장치(102)로 응답 대기시간 연장 메시지를 송신할 수 있다. 다만, 본 발명은 이에 한정되는 것은 아니며, 상기와 같은 HTTP 표준에 의한 상태 코드 이외에 새로 상태 코드를 정의하여 이용할 수도 있다. 상태 코드와 관련된 상세한 사항은 본 기술분야에서 잘 알려져 있으므로 여기서는 상세한 설명을 생략한다.
다음으로, Wait는 본 발명에서 새로 정의한 HTTP 헤더(Header)이고, 뒤에 이어지는 숫자 1000은 HTTP 장치(102)가 원래 받으려고 했던 응답이 도달할 때까지 HTTP 장치(102)가 기다려야 할 시간을 밀리세컨드(millisecond) 단위로 표기한 것이다. Wait 헤더의 목적은 대기 시간을 HTTP 장치에 알려주는 것이고, 해당 목적을 달성하기 위해서 사용되는 헤더는 여러가지 방법으로 구현이 가능하다. 예를 들어 Wait라는 용어를 다른 용어로 쓸 수도 있고, 밀리세컨드 단위의 숫자 대신에 다른 것을 내용으로 담을 수도 있다.
만약 HTTP 장치(102)가 상기와 같은 대기 시간 연장 메시지를 수신하지 못하거나, 수신된 연장된 대기 시간 경과 뒤에도 HTTP-CoAP 프록시(106)로부터 기 송신된 HTTP 메시지에 대한 응답을 받지 못한 경우, HTTP 장치(102)는 기 송신된 HTTP 메시지를 재전송하게 된다. 본 발명에서, HTTP 장치(102)에서 기 송신된 HTTP 메시지에 대한 응답 대기 중에 HTTP 메시지를 재전송하는 경우는 다음의 두가지 경우이다
1) HTTP 응답 대기 시간이 지나치게 짧게 설정되어 CoAP 장치(104)로부터의 정상적인 응답이 오기 전에 대기시간이 종료되는 경우
2) HTTP-CoAP 프록시(106)에서 HTTP 장치(102)로 전송하는 대기 시간 연장 메시지가 HTTP 장치(102)에 도달하지 못하고 유실된 경우
이하에서는, 상기와 같은 구성을 가지는 HTTP-CoAP 프록시(106)에서의 메시지 송수신 과정을 순서도를 통하여 설명한다.
도 3은 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)의 메시지 송수신 과정을 설명하기 위한 순서도이다.
먼저, HTTP 장치(102)로부터 HTTP 메시지가 수신되면(302), HTTP-CoAP 프록시(106)는 수신된 HTTP 메시지를 CoAP 메시지로 변환하고(304), 변환된 메시지를 CoAP 장치(104)로 송신한다(306). 전술한 바와 같이, HTTP 장치(102)는 CoAP 장치(104)에 대한 메시지 전송 결과를 응답으로 받아야 하므로, HTTP-CoAP 프록시(106)에서 변환되는 CoAP 메세지는 반드시 응답을 요구하는 CoAP 메세지(Confirmable CoAP 메시지)이어야 한다.
이후 CoAP 장치(104)로부터 상기 Confirmable CoAP 메시지에 대한 전송 응답이 수신되면(308), HTTP-CoAP 프록시(106)는 이를 다시 HTTP 형식으로 변환하고(310), 변환된 메시지를 HTTP 장치(102)로 전송한다(312).
도 4는 일반적인 HTTP-CoAP 프록시 장치에서의 CoAP 메시지 전송 중 CoAP 메시지 유실 등으로 인하여 CoAP 메시지를 재전송하기 위한 과정(400)을 설명하기 위한 도면이다.
먼저, HTTP 장치(102)로부터 HTTP 메시지가 수신되면(402), HTTP-CoAP 프록시(106)의 프로토콜 변환부(204)는 수신된 HTTP 메시지를 CoAP 메시지로 변환한다(404). 그러면 CoAP 메시지 송수신부(202)는 변환된 메시지를 CoAP 장치(104)로 송신한다(406).
상기 CoAP 메시지 송신과 함께, CoAP 메시지 송수신부(202)는 송신된 메시지에 대한 응답 대기시간(CoAP 메시지 응답 대기시간; ACK_TIMEOUT)을 설정한다. 도시된 실시예에서, ACK_TIMEOUT(n)은 CoAP 메시지 송수신부(202)에서 n 만큼의 응답 대기시간을 설정한다는 것을 의미한다.
만약, 송신된 CoAP 메시지 또는 해당 메시지에 대한 응답 메시지 등이 네트워크상에서 유실되어 상기 설정된 응답 대기시간 내에 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않은 경우(408), CoAP 메시지 송수신부(202)는 상기 응답 대기시간 경과 후 CoAP 메시지를 재전송한다(410).
한편, 이 경우 최초 HTTP 메시지를 전송한 HTTP 장치(102)는 HTTP-CoAP 프록시(106)에서 상기 CoAP 메시지를 재전송한 사실을 알지 못하므로, HTTP 장치(102)에서 설정된 HTTP 메시지 응답 대기시간(HTTP Timeout)이 경과한 이후(412), HTTP 메시지를 HTTP-CoAP 프록시(106)로 재전송한다(414). 즉, 이 경우 불필요하게 HTTP 메시지가 중복 전송되는 문제가 발생하게 된다.
도 5 및 도 6은 상기 문제를 해결하기 위한 본 발명의 일 실시예에 따른 HTTP-CoAP 프록시(106)에서의 CoAP 메시지 재전송 처리 과정(500, 600)을 설명하기 위한 도면으로서, 도 5는 CoAP 메시지의 전송에 실패한 경우를, 도 6은 성공한 경우를 각각 나타낸다.
먼저 도 5의 과정을 설명한다. HTTP 장치(102)로부터 HTTP 메시지가 수신되면(502), HTTP-CoAP 프록시(106)의 프로토콜 변환부(204)는 수신된 HTTP 메시지를 CoAP 메시지로 변환한다(504). 이후 CoAP 메시지 송수신부(202)는 변환된 메시지를 CoAP 장치(104)로 송신하는 동시에 CoAP 메시지 응답 대기시간(ACK_TIMEOUT(n))을 설정한다(506).
이후, 만약 상기 설정된 CoAP 메시지 응답 대기시간 동안 CoAP 장치(104)로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우(508), CoAP 메시지 송수신부(202)는 상기 CoAP 메시지의 응답 대기시간을 재설정하고, 상기 CoAP 메시지를 재전송한다(510). 이때 상기 CoAP 메시지 응답 대기시간은 이전 응답 대기시간의 2배로 설정될 수 있다(ACK_TIMEOUT(2n)).
또한, 상기 CoAP 메시지가 재전송되는 경우, HTTP 메시지 송수신부(200)는 HTTP 장치(102)로 상기 CoAP 메시지 재전송에 따른 대기시간 연장 요청 메시지를 송신한다(512). 즉, 본 발명의 실시예에서 CoAP 메시지 재전송 시 마다, HTTP 장치(102)의 응답 대기시간을 함께 연장하여 줌으로써 HTTP 장치(102)가 불필요하게 HTTP 메시지를 재전송하는 것을 방지하도록 구성된다.
한편, 상기 HTTP 메시지의 추가 대기시간은 상기 510 단계에서 재설정된 CoAP 메시지 응답 대기시간과 동일하게 설정될 수 있다. 예를 들어, 상기 CoAP 메시지 응답 대기시간이 n에서 2n으로 연장된 경우, 상기 HTTP 메시지의 추가 대기시간 또한 2n으로 설정될 수 있다. 즉 상기 512 단계에서, 상기 HTTP 메시지 송수신부(200)는 상기 추가 대기시간 정보를 포함하는 대기시간 연장 요청 메시지를 HTTP 장치(102)로 전송할 수 있으며, HTTP 장치(102)는 이를 수신한 뒤 자신이 송신한 HTTP 메시지에 대한 응답 대기시간을 수신된 추가 대기시간만큼 연장하게 된다(514). 즉, 상기 514 단계에서 HTTP 메시지에 대한 응답 대기시간은 2n만큼 연장된다.
이후, 연장된 ACK_TIMEOUT(2n) 경과 시에도 CoAP 메시지에 대한 응답이 수신되지 않는 경우(516), CoAP 메시지 송수신부(202)는 ACK_TIMEOUT을 다시 2배(4n)로 재연장하고, CoAP 메시지를 재전송한다(518). 또한 이 경우 HTTP 메시지 송수신부(200)는 HTTP 장치(102)로 재연장된 추가 대기시간에 따른 대기시간 연장 요청 메시지를 HTTP 장치(102)로 전송하고(520), 이를 수신한 HTTP 장치(102)는 자신의 HTTP 메시지 응답 대기시간을 4n만큼 재연장한다(522). 이와 같은 과정은 기 설정된 횟수만큼 반복하여 수행될 수 있다(524 내지 532).
만약 상기 과정 수행 이후에도 CoAP 메시지에 대한 응답이 수신되지 않는 경우, HTTP-CoAP 프록시(106)는 최종적으로 해당 메시지에 대한 송신이 불가능한 것으로 판단하고 HTTP 장치에 전송 실패를 통지한다(534).
다음으로, 도 6의 과정을 설명한다. HTTP 장치(102)로부터 HTTP 메시지가 수신되면(602), HTTP-CoAP 프록시(106)의 프로토콜 변환부(204)는 수신된 HTTP 메시지를 CoAP 메시지로 변환한다(604). 이후 CoAP 메시지 송수신부(202)는 변환된 메시지를 CoAP 장치(104)로 송신하는 동시에 CoAP 메시지 응답 대기시간(ACK_TIMEOUT(n))을 설정한다(606).
이후, 만약 상기 설정된 CoAP 메시지 응답 대기시간 동안 CoAP 장치(104)로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우(608), CoAP 메시지 송수신부(202)는 상기 CoAP 메시지의 응답 대기시간을 재설정하고, 상기 CoAP 메시지를 재전송한다(610). 전술한 바와 같이, 이때 상기 CoAP 메시지 응답 대기시간은 이전 응답 대기시간의 2배로 설정될 수 있다(ACK_TIMEOUT(2n)).
또한, 상기 CoAP 메시지가 재전송되는 경우, HTTP 메시지 송수신부(200)는 HTTP 장치(102)로 상기 CoAP 메시지 재전송에 따른 대기시간 연장 요청 메시지를 송신한다(612). 이때, 상기 대기시간 연장 요청 메시지의 연장된 대기시간은 상기 상기 610 단계에서 재설정된 CoAP 메시지 응답 대기시간과 동일하게 설정될 수 있다(즉, 본 단계에서는 2n으로 설정). 상기 대기시간 연장 요청 메시지를 수신한 HTTP 장치(102)는 상기 메시지에 설정된 시간(2n) 만큼 HTTP 메시지의 대기시간을 설정하게 된다(614).
이후, 만약 상기 연장된 응답 대기시간 내에 CoAP 장치(104)로부터 CoAP 메시지에 대한 응답이 수신되는 경우(616), 프로토콜 변환부(204)는 수신되는 응답을 HTTP 형식으로 변환하고(618), 이를 HTTP 장치(102)로 전송한다(620).
이와 같이, 본 발명의 실시예에 따를 경우, CoAP 메시지 응답 대기시간이 연장될 경우 그에 맞추어 HTTP 장치(102)의 HTTP 메시지 응답 대기시간을 함께 연장하여 줌으로써 HTTP 장치(102)에서의 불필요한 메시지 재전송을 방지할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 HTTP-CoAP 프록시(106)에서의 CoAP 메시지 재전송 처리 과정(700)을 설명하기 위한 도면으로서, CoAP 메시지의 응답 대기 중 HTTP 메시지가 재전송된 경우의 처리 방법을 설명하기 위한 것이다.
먼저, HTTP 장치(102)로부터 HTTP 메시지가 수신되면(702), HTTP-CoAP 프록시(106)의 프로토콜 변환부(204)는 수신된 HTTP 메시지를 CoAP 메시지로 변환하고(704)한다. 이후, CoAP 메시지 송수신부(202)는 변환된 메시지를 CoAP 장치(104)로 송신하는 동시에 CoAP 메시지 응답 대기시간(ACK_TIMEOUT(n))을 설정한다(706).
이후, 만약 상기 설정된 CoAP 메시지 응답 대기시간 동안 CoAP 장치(104)로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우(708), CoAP 메시지 송수신부(202)는 상기 CoAP 메시지의 응답 대기시간을 재설정하고, 상기 CoAP 메시지를 재전송한다(610). 전술한 바와 같이, 이때 상기 CoAP 메시지 응답 대기시간은 이전 응답 대기시간의 2배로 설정될 수 있다(ACK_TIMEOUT(2n)).
한편, HTTP 장치(102)는 상기 CoAP 메시지 응답 대기시간과는 별개로 자신이 설정한 HTTP 메시지 응답 대기시간이 경과한 경우(712), HTTP-CoAP 프록시(106)로 HTTP 메시지를 재전송한다(714).
CoAP 메시지의 응답 대기 중 HTTP 장치(102)로부터 HTTP 메시지가 재전송되는 경우(714), HTTP-CoAP 프록시(106)의 HTTP 메시지 송수신부(200)는 HTTP 장치(102)로 대기시간 연장 요청 메시지를 송신한다(716). 즉, 본 실시예의 경우 CoAP 메시지 응답 대기시간 재설정시 마다 HTTP 메시지 응답 대기시간의 연장을 요청하는 것이 아니라, HTTP 장치(102)로부터 HTTP 메시지가 재전송될 경우 HTTP 메시지 응답 대기시간의 연장을 요청한다는 점이 앞선 실시예와 상이하다.
이때, 상기 대기시간 연장 요청 메시지는 기 전송된 HTTP 메시지에 대한 추가 대기시간 정보를 포함하며, 상기 추가 대기시간은 다음과 같이 정해질 수 있다.
추가 대기시간 = CoAP 메시지 응답 대기시간 - CoAP 메시지 송신 후 경과시간
즉, 상기 추가 대기시간은 CoAP 메시지 송수신부(202)에서 설정된 상기 CoAP 메시지의 응답 대기시간에서, 상기 CoAP 메시지 송신 후 경과시간을 뺀 시간으로 설정될 수 있다. 이와 같이 구성될 경우, HTTP 장치(102)에서의 HTTP 메시지 응답 대기시간은 HTTP-CoAP 프록시(106)에서의 남은 CoAP 메시지 응답 대기시간과 동일하게 연장되며, 이에 따라 HTTP-CoAP 프록시(106)에서 CoAP 메시지의 응답을 대기하는 동안 HTTP 장치(102)에서 불필요하게 HTTP 메시지를 재전송하는 것을 방지할 수 있다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야에서 통상의 지식을 가진 자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: HTTP-CoAP 메시지 송수신 시스템
102: HTTP 장치
104: CoAP 장치
106: HTTP-CoAP 프록시
200: HTTP 메시지 송수신부
202: CoAP 메시지 송수신부
204: 프로토콜 변환부

Claims (16)

  1. HTTP 장치와 연결되어 상기 HTTP 장치로부터 HTTP 메시지를 수신하고, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는 HTTP 메시지 송수신부;
    수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 프로토콜 변환부; 및
    변환된 상기 CoAP 메시지를 CoAP 장치로 송신하되, 설정된 CoAP 메시지 응답 대기시간 동안 상기 CoAP 장치로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우, 상기 CoAP 메시지를 재전송하는 CoAP 메시지 송수신부를 포함하는 HTTP-CoAP 프록시 장치.
  2. 청구항 1에 있어서,
    상기 HTTP 메시지 송수신부는, 상기 CoAP 메시지 송수신부에서 상기 CoAP 메시지를 재전송할 경우, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는, HTTP-CoAP 프록시 장치.
  3. 청구항 2에 있어서,
    상기 대기시간 연장 요청 메시지는, 상기 HTTP 메시지에 대한 추가 대기시간 정보를 포함하는, HTTP-CoAP 프록시 장치.
  4. 청구항 3에 있어서,
    CoAP 메시지 송수신부는, 상기 CoAP 메시지 재전송시 상기 CoAP 메시지 응답 대기시간을 재설정하며,
    상기 HTTP 메시지 송수신부는, 재설정된 상기 CoAP 메시지 응답 대기시간에 따라 상기 추가 대기시간을 설정하는, HTTP-CoAP 프록시 장치.
  5. 청구항 4에 있어서,
    상기 추가 대기시간은 재설정된 상기 CoAP 메시지 응답 대기시간과 동일하게 설정되는, HTTP-CoAP 프록시 장치.
  6. 청구항 1에 있어서,
    상기 HTTP 메시지 송수신부는, 상기 CoAP 메시지 송수신부에서의 상기 CoAP 메시지에 대한 응답 대기 중 상기 HTTP 장치로부터 HTTP 메시지가 재전송되는 경우, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는, HTTP-CoAP 프록시 장치.
  7. 청구항 6에 있어서,
    상기 대기시간 연장 요청 메시지는, 상기 HTTP 메시지에 대한 추가 대기시간 정보를 포함하는, HTTP-CoAP 프록시 장치.
  8. 청구항 7에 있어서,
    상기 추가 대기시간은 상기 CoAP 메시지 송수신부에서 설정된 상기 CoAP 메시지의 응답 대기시간에서 상기 CoAP 메시지 송신 후 경과시간을 뺀 시간인, HTTP-CoAP 프록시 장치.
  9. HTTP-CoAP 프록시 장치에서 수행되는 대기시간 관리 방법으로서,
    HTTP 메시지 송수신부에서 HTTP 장치로부터 HTTP 메시지를 수신하는 단계;
    프로토콜 변환부에서, 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 단계;
    CoAP 메시지 송수신부에서, 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하는 단계;
    상기 CoAP 메시지 송수신부에서, 설정된 CoAP 메시지 응답 대기시간 동안 상기 CoAP 장치로부터 상기 CoAP 메시지에 대한 응답 메시지가 수신되지 않는 경우, 상기 CoAP 메시지를 재전송하는 단계; 및
    상기 HTTP 메시지 송수신부에서, 상기 HTTP 장치로 상기 CoAP 메시지 재전송에 따른 대기시간 연장 요청 메시지를 송신하는 단계를 포함하는, 대기시간 관리 방법.
  10. 청구항 9에 있어서,
    상기 대기시간 연장 요청 메시지는, 상기 HTTP 메시지에 대한 추가 대기시간 정보를 포함하는, 대기시간 관리 방법.
  11. 청구항 10에 있어서,
    상기 CoAP 메시지를 재전송하는 단계는, 상기 CoAP 메시지의 응답 대기시간을 재설정하는 단계를 더 포함하며,
    상기 대기시간 연장 요청 메시지를 송신하는 단계는, 재설정된 상기 CoAP 메시지 응답 대기시간에 따라 상기 추가 대기시간을 설정하는, 대기시간 관리 방법.
  12. 청구항 11에 있어서,
    상기 추가 대기시간은 재설정된 상기 CoAP 메시지 응답 대기시간과 동일하게 설정되는, 대기시간 관리 방법.
  13. HTTP-CoAP 프록시 장치에서 수행되는 대기시간 관리 방법으로서,
    HTTP 메시지 송수신부에서, HTTP 장치로부터 HTTP 메시지를 수신하는 단계;
    프로토콜 변환부에서, 수신된 상기 HTTP 메시지를 CoAP 메시지로 변환하는 단계;
    CoAP 메시지 송수신부에서, 변환된 상기 CoAP 메시지를 CoAP 장치로 송신하는 단계; 및
    HTTP 메시지 송수신부에서, 상기 CoAP 메시지 송수신부에서의 상기 CoAP 메시지에 대한 응답 대기 중 상기 HTTP 장치로부터 HTTP 메시지가 재전송되는 경우, 상기 HTTP 장치로 대기시간 연장 요청 메시지를 송신하는 단계를 포함하는, 대기시간 관리 방법.
  14. 청구항 13에 있어서,
    상기 대기시간 연장 요청 메시지는, 상기 HTTP 메시지에 대한 추가 대기시간 정보를 포함하는, 대기시간 관리 방법.
  15. 청구항 14에 있어서,
    상기 추가 대기시간은 상기 CoAP 메시지 송수신부에서 설정된 상기 CoAP 메시지의 응답 대기시간에서 상기 CoAP 메시지 송신 후 경과시간을 뺀 시간인, 대기시간 관리 방법.
  16. 청구항 9 내지 청구항 15 중 어느 한 항에 기재된 방법을 컴퓨터상에서 수행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020130022817A 2013-03-04 2013-03-04 HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법 KR101466712B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130022817A KR101466712B1 (ko) 2013-03-04 2013-03-04 HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130022817A KR101466712B1 (ko) 2013-03-04 2013-03-04 HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법

Publications (2)

Publication Number Publication Date
KR20140108923A KR20140108923A (ko) 2014-09-15
KR101466712B1 true KR101466712B1 (ko) 2014-12-10

Family

ID=51755770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130022817A KR101466712B1 (ko) 2013-03-04 2013-03-04 HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법

Country Status (1)

Country Link
KR (1) KR101466712B1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623389B1 (ko) 2015-01-07 2016-06-07 경북대학교 산학협력단 CoAP 기반 IEEE 11073 시스템 및 이동성 관리 방법
CN104917828B (zh) * 2015-05-28 2018-04-27 重庆邮电大学 一种基于节点休眠和路由维护的CoAP协议代理缓存方法
KR101659361B1 (ko) * 2016-03-14 2016-09-23 지투파워 (주) 데이터 보정을 이용한 IoT 기반의 원격 자동제어 시스템
KR101662507B1 (ko) * 2016-03-14 2016-10-14 주식회사 베스텍 데이터 변환을 이용한 IoT 기반의 원격 자동제어 시스템
KR102043678B1 (ko) * 2017-10-31 2019-11-12 주식회사 디케이아이테크놀로지 코앱기반의 파이어 리소스를 사용하는 개인의료장치 정보모델 시스템
CN109687995B (zh) * 2018-12-04 2021-07-20 重庆邮电大学 一种适用于资源受限型工业现场设备的基于CoAP的OPC UA报文传输方法
CN112910909B (zh) * 2021-02-08 2022-05-17 北京交通大学 基于CoAP协议与HTTP协议转换的数据包处理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271110A1 (en) * 2010-04-30 2011-11-03 Telcordia Technologies Inc. Key management device, system and method having a rekey mechanism

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110271110A1 (en) * 2010-04-30 2011-11-03 Telcordia Technologies Inc. Key management device, system and method having a rekey mechanism

Also Published As

Publication number Publication date
KR20140108923A (ko) 2014-09-15

Similar Documents

Publication Publication Date Title
KR101466712B1 (ko) HTTP-CoAP 프록시 장치 및 상기 장치에서의 대기시간 관리 방법
US7475153B2 (en) Method for enabling communication between nodes
US7966380B2 (en) Method, system, and program for forwarding messages between nodes
US9154544B2 (en) Device and method for supporting internet-based sensor data transmission
KR20100104149A (ko) 전송계층 성능 향상을 위한 전송계층 제어장치 및 전송속도와 신뢰성을 동시에 보장할 수 있는 패킷 송신 방법
JP6745821B2 (ja) ハイパーテキスト・トランスファ・プロトコル要求の再送方法及びデバイス並びにクライアント端末
US20140082180A1 (en) Information processor apparatus, information processing method, and recording medium
JP2006178961A (ja) 要求−応答トランスポートプロトコルによる高信頼一方向メッセージング
US20150163168A1 (en) Seamless push system and method for same
Liri et al. Robustness of iot application protocols to network impairments
JP2017520996A (ja) トランスペアレント性能拡張プロキシを動作させるための方法およびコンピュータ・プログラム、ならびにトランスペアレント性能拡張プロキシ
CN108173851B (zh) 一种用于空间信息网络的高效多媒体传输方法
KR20120063454A (ko) 장치 관리 클라이언트에 의한 비세션 보고 방법 및 장치
CN108886713A (zh) 一种数据传输方法、数据接收设备及数据发送设备
EP3038032A1 (en) Service message transmitting method and device
CN110771117B (zh) 一种采用面向id的网络的会话层通信
JP6576099B2 (ja) 通信装置、通信装置の制御方法、プログラム、および、通信システム
WO2013152614A1 (zh) 一种基于应用层数据的网络接入系统和方法
US20120005352A1 (en) Information processing apparatus, program, and method
KR20160052422A (ko) 네트워크에서 플로우 컨트롤 방법
JP2010074595A (ja) マルチキャスト通信におけるパケット再送制御方法及び装置
WO2017067224A1 (zh) 一种报文处理方法及装置
Ko et al. Internet Small Computer System Interface (iSCSI) Extensions for Remote Direct Memory Access (RDMA)
JP2016019198A (ja) 通信装置、通信装置の制御方法、プログラム
KR101588952B1 (ko) 오버레이 네트워크에서의 데이터 전송 시스템 및 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 5