KR102231064B1 - NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법 - Google Patents

NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법 Download PDF

Info

Publication number
KR102231064B1
KR102231064B1 KR1020190144002A KR20190144002A KR102231064B1 KR 102231064 B1 KR102231064 B1 KR 102231064B1 KR 1020190144002 A KR1020190144002 A KR 1020190144002A KR 20190144002 A KR20190144002 A KR 20190144002A KR 102231064 B1 KR102231064 B1 KR 102231064B1
Authority
KR
South Korea
Prior art keywords
value
specific
server
keepalive
time
Prior art date
Application number
KR1020190144002A
Other languages
English (en)
Other versions
KR102231064B9 (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 KR1020190144002A priority Critical patent/KR102231064B1/ko
Priority to US17/609,918 priority patent/US11949746B2/en
Priority to PCT/KR2019/015931 priority patent/WO2021095957A1/ko
Application granted granted Critical
Publication of KR102231064B1 publication Critical patent/KR102231064B1/ko
Publication of KR102231064B9 publication Critical patent/KR102231064B9/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/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables
    • H04L61/2553Binding renewal aspects, e.g. using keep-alive messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2578NAT traversal without involvement of the NAT server
    • 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/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • 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/28Timers or timing mechanisms used in protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

IoT 기기 및 IoT 통신방법이 제공된다. 본 IoT 기기는, NAT을 통해 서버와 연결되고, 서비스 연결을 위한 제1 세션을 실행하고, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행할 수 있게 되어, IoT 기기의 킵얼라이브 값 전송을 최소화할 수 있게 되고 특정 킵얼라이브 값을 다른 IoT 기기들에 공유할 수 있게 되어, IoT 통신 장치의 킵얼라이브 값으로 인한 네트워크 부하를 최소화할 수 있게 된다.

Description

NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법 {IoT Device and IoT communication method to link with server through NAT}
본 발명은 IoT 기기 및 IoT 통신방법에 관한 것으로, 더욱 상세하게는, NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기 및 IoT 통신방법에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
NAT(Network Address Translation)은 IoT(Internet of Things) 기기와 서버를 서로 연결시켜주며, Public IP와 Private IP의 매핑 및 트래픽 라우팅을 처리하는 네트워크 장비를 나타낸다. (예: 공유기)
IoT 기기들은 서버로부터의 제어를 상시로 받기 위해 킵얼라이브(Keep Alive) 값을 지속적으로 전송하여 Public IP, Private IP 매핑 만료 시간을 계속 갱신한다.
하지만, NAT 장치마다 IP 주소 매핑 만료 시간이 모두 다르고, 표준화되어 있지 않기 때문에 이를 알 수 있는 방법도 없다. 또한, IoT 통신 환경에서 NAT 장치가 몇 개가 존재할 지 알 수가 없는 것이 일반적이다.
IoT 기기들은 매핑 만료 시간을 알 수 없으니 아주 짧은 주기로 킵얼라이브 값을 계속 서버에 전송하여 연결 상태를 유지하게 된다. 이로 인해, IoT 기기들이 모인 IoT 통신환경은 네트워크 부하, 기기 전원 부하, 서버 트래픽 부하 등의 문제가 발생되게 된다.
이러한 문제를 해결하기 위해, IoT 기기들이 킵얼라이브값을 최소한으로 전송할 수 있게 하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, NAT을 통해 서버와 연결되고, 서비스 연결을 위한 제1 세션을 실행하고, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 IoT 기기 및 IoT 통신방법을 제공함에 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기는, NAT을 통해 서버와 연결되는 통신부; 및 서비스 연결을 위한 제1 세션을 실행하고, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 제어부;를 포함한다.
그리고, 제어부는, 제2 세션에서 제1 시간값을 서버에 송신하도록 통신부를 제어하고, 제1 시간값에 대응되는 시간이 지난 후에 서버로부터 응답이 수신되는지 여부를 확인하며, 응답이 수신된 경우 제1 시간값을 단위시간만큼 증가시켜 증가된 제1 시간값을 서버에 재송신하는 과정을 반복하고, 응답이 수신되지 않은 경우 해당 제1 시간값에서 단위시간을 뺀 시간값을 제1 세션의 특정 킵얼라이브(Keep Alive) 값으로 설정하고 제2 세션을 종료함으로써, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브 값을 산출할 수도 있다.
또한, 제어부는, 접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 서버로 송신할 수도 있다.
그리고, 제어부는, 통신부가 새로운 네트워크에 접속된 경우, 서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있는지 여부를 확인하고, 특정 킵얼라이브 값이 저장되어 있는 경우 해당 특정 킵얼라이브 값으로 통신하도록 통신부를 설정할 수도 있다.
또한, 제어부는, 서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있지 않은 경우, 제2 세션에서 제1 시간값을 서버에 송신하도록 통신부를 제어하고, 제1 시간값에 대응되는 시간이 지난 후에 서버로부터 응답이 수신되는지 여부를 확인하며, 응답이 수신된 경우 제1 시간값을 단위시간만큼 증가시켜 증가된 제1 시간값을 서버에 재송신하는 과정을 반복하고, 응답이 수신되지 않은 경우 해당 제1 시간값에서 단위시간을 뺀 시간값을 제1 세션의 특정 킵얼라이브(Keep Alive) 값으로 설정하고 제2 세션을 종료함으로써, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브 값을 산출할 수도 있다.
그리고, 제어부는, 복수개의 애플리케이션을 구동시키는 프레임워크가 설치된 환경일 경우, 접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 프레임워크에 저장할 수도 있다.
또한, 제어부는, 상기 프레임워크에서 구동되는 애플리케이션이 새로 실행될 경우, 프레임워크에 저장되어 있는 해당 특정 킵얼라이브 값으로 통신하도록 제어할 수도 있다.
한편, 본 발명의 일 실시예에 따른, NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기에 의한 IoT 통신방법은, NAT을 통해 서버와 연결하는 단계; 서비스 연결을 위한 제1 세션을 실행하는 단계; NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 단계;를 포함한다.
본 발명의 다양한 실시예에 따르면, NAT을 통해 서버와 연결되고, 서비스 연결을 위한 제1 세션을 실행하고, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 IoT 기기 및 IoT 통신방법을 제공할 수 있게 되어, IoT 기기의 킵얼라이브 값 전송을 최소화할 수 있게 되고 특정 킵얼라이브 값을 다른 IoT 기기들에 공유할 수 있게 되어, IoT 통신 장치의 킵얼라이브 값으로 인한 네트워크 부하를 최소화할 수 있게 된다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에 서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시 예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른, IoT 네트워크 환경을 도시한 도면,
도 2는 본 발명의 일 실시예에 따른, IoT 기기의 구성을 도시한 블록도,
도 3은 본 발명의 일 실시예에 따른, IoT 통신 방법의 과정을 도시한 흐름도,
도 4는 본 발명의 일 실시예에 따른, 특정 킵얼라이브 값을 산출하는 과정을 도시한 흐름도,
도 5는 본 발명의 일 실시예에 따른, 특정 킵얼라이브 값을 산출하는 과정의 예시를 도식화한 도면,
도 6은 본 발명의 일 실시예에 따른, 서버를 통해 특정 킵얼라이브 값을 공유하는 IoT 네트워크 환경을 도시한 도면,
도 7은 본 발명의 일 실시예에 따른, 서버를 통해 특정 킵얼라이브 값을 공유하는 과정을 도시한 흐름도,
도 8은 본 발명의 일 실시예에 따른, 프레임워크를 통해 특정 킵얼라이브 값을 공유하는 IoT 네트워크 환경을 도시한 도면,
도 9는 본 발명의 일 실시예에 따른, 프레임워크를 통해 특정 킵얼라이브 값을 공유하는 과정을 도시한 흐름도이다.
본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.
다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을의미한다.
다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 기술되는 "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른, IoT(Internet of Things) 네트워크 환경을 도시한 도면이다. 도 1에 도시된 바와 같이, IoT 네트워크에는 IoT 기기(100)와 NAT(150)가 포함되며, IoT 서비스를 위한 서버(170)들에 연결된다.
IoT 기기(100)는 IoT 통신을 통해 제어되는 장치를 나타내는 것으로, 예를 들어, IoT 통신으로 제어 가능한 CCTV, 조명, 청소기, 및 선풍기 등이 포함될 수 있다. 하나의 IoT 네트워크에 IoT 기기(100)는 복수개가 포함되어 있을 수 있다.
NAT(150)는 IoT 기기(100)와 서버(170)를 서로 연결시켜주며, Public IP와 Private IP의 매핑 및 트래픽 라우팅을 처리하는 네트워크 장비를 나타낸다. 예를 들어, NAT(150)는 공유기와 같은 장치에 해당될 수 있다. 하나의 IoT 네트워크에 NAT(150)는 복수개가 포함되어 있을 수 있다.
서버(170)는 사용자의 모바일 기기 또는 PC(Personal Computer)와 연결되어 이를 통해 사용자에게 IoT 기기(100)를 제어할 수 있는 IoT 서비스를 제공하는 기능을 수행한다.
이와 같은 IoT 네트워크 환경에서, IoT 기기(100)들은 서버로부터의 제어를 상시로 받기 위해 킵얼라이브(Keep Alive) 값을 지속적으로 전송하여 Public IP, Private IP, 및 맵핑 만료 시간을 계속 갱신한다.
구체적으로 도 1에 도시된 NAT Mapping Table에는 IoT 기기(100)별로 할당된 Public IP, Private IP, 및 맵핑 만료 시간이 포함되어 있는 것을 확인할 수 있다. 그리고, 맵핑 만료 시간이 IoT 기기(100) 별로 다 다른 것을 확인할 수 있다.
도 1에 도시된 바와 같은 IoT 네트워크 환경은 다양한 환경이 될 수 있으며, 예를 들어, 하나의 주택이 하나의 IoT 네트워크 환경이 될 수 있고, 하나의 차량이 하나의 IoT 네트워크 환경이 될 수도 있다.
도 2는 본 발명의 일 실시예에 따른, IoT 기기(100)의 구성을 도시한 블록도이다. 도 2에 도시된 바와 같이, IoT 기기(100)는 통신부(110), 제어부(120), 및 메인 기능부(130)를 포함한다.
메인 기능부(130)는 IoT 기기(100)의 본연의 기능을 수행한다. 예를 들어, IoT 기기(100)가 CCTV인 경우 메인 기능부(130)는 CCTV의 기능을 수행하게 되고, IoT 기기(100)가 조명인 경우 메인 기능부(130)는 조명의 기능을 수행하게 된다.
통신부(110)는 IoT 통신을 위해 NAT(150)를 통해 외부의 서버(170)와 통신 가능하도록 연결된다. 통신부(110)는 IoT 통신을 위해 블루투스, 와이파이(WIFI), 근거리무선통신(NFC), 셀룰러, LTE(Long-Term Evolution) 등 다양한 무선 통신 방식으로 통신을 수행할 수 있으며, 유선 통신으로 통신을 할 수도 있음은 물론이다.
제어부(120)는 IoT 기기(100)의 전반적인 기능을 제어한다. 구체적인, 기능에 대해서는 도 3을 참고하여 설명한다. 도 3은 본 발명의 일 실시예에 따른, IoT 통신 방법의 과정을 도시한 흐름도이다.
우선, 제어부(120)는 NAT(150)를 통해 서버(170)와 연결되도록 통신부(110)를 제어한다(S210).
그리고, 제어부(120)는 서비스 연결을 위한 제1 세션을 실행한다(S220). 여기에서, 제1 세션은 IoT 기기(100)의 본연의 기능이나 서비스를 수행하기 위한 IoT 통신 세션을 나타낸다. 따라서, 제어부(120)는 IoT 기기(100)가 작동되는 동안 제1 세션을 계속해서 실행시키게 된다.
또한, 제어부(120)는 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하게 된다(S230). 제어부(120)는 특정 킵얼라이브 값의 산출이 완료되면, 제1 세션의 킵얼라이브 값을 산출된 킵얼라이브 값으로 변경하고, 제2 세션은 종료하게 된다.
여기에서, 킵얼라이브(keep alive) 값은 IoT 기기(100)와 서버(170) 간의 데이터 링크가 잘 동작하고 있는지 확인하거나 이 데이터링크가 끊어지는 것을 방지하기 위해서, IoT 기기(100)와 서버(170) 간에 서로 주고 받는 메시지의 시간 간격 값이다. 예를 들어, 킵얼라이브 값이 10초인 경우, IoT 기기(100)가 서버(170)로 킵얼라이브 메시지를 송신하고, 10초가 지난 후에, 서버(170)가 IoT 기기(100)로 킵얼라이브 메시지에 대한 응답을 송신하게 된다. 그리고, IoT 기기(100)는 서버(170)로부터 킵얼라이브 메시지에 대한 응답을 수신한 경우 통신에 문제가 없는 것으로 판단하고, 응답을 수신하지 못한 경우 통신에 문제가 있는 것으로 판단하게 된다.
그리고, 특정 킵얼라이브 값은 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 시간값을 나타내는 것으로, IP 주소가 변경되지 않고 유지될 수 있는 최대한 큰 시간값에 해당된다.
제어부(120)가 특정 킵얼라이브 값을 산출하는 과정에 대해 도 4를 참고하여 더욱 상세하게 설명한다. 도 4는 본 발명의 일 실시예에 따른, 특정 킵얼라이브 값을 산출하는 과정을 도시한 흐름도이다.
우선, 제어부(120)는 제2 세션에서 제1 시간값을 서버(170)에 송신하도록 통신부(110)를 제어한다(S310). 그러면, 서버(170)는 수신된 제1 시간값에 대응되는 시간 후에 이에 대한 응답을 IoT 기기(100)로 송신하게 된다.
그리고, 제어부(120)는 제1 시간값에 대응되는 시간이 지난 후에 서버(170)로부터 응답이 수신되는지 여부를 확인한다(S320).
만약, 응답이 수신된 경우(S320-Y), 제어부(120)는 제1 시간값을 단위시간만큼 증가시키고, 증가된 제1 시간값을 서버(170)에 재송신하며, S320 단계를 반복하게 된다(S325). 응답이 수신되었다는 것은 IP 주소가 만료되지 않아 통신에 문제가 없다는 것을 의미하기 때문에, 더 긴 시간값으로 다시 시도를 하게 되는 것이다.
만약, 응답이 수신되지 않은 경우(S320-N), 제어부(120)는 해당 제1 시간값에서 단위시간을 뺀 시간값을 제1 세션의 특정 킵얼라이브 값으로 설정한다(S330). 응답이 수신되지 않은 경우는 제1 시간값이 NAT에 의해 맵핑된 IP 주소가 만료되는 주기보다 더 긴 시간에 해당되어, IoT 기기(100)의 IP 주소가 변경되었지만 변경된 IP 주소 정보가 서버(170)로 전달되지 않았기 때문에, 제어부(120)가 응답을 수신하지 못하게 되는 것이다. 따라서, 단위시간만큼 증가되기 바로 직전의 제1 시간값이 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응하는 시간 값이 되는 것을 알 수 있게 된다.
그 후에, 제어부(120)는 접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 서버(170)로 송신한다(S340). 접속 IP주소는 해당 IoT 기기(100)의 Public IP 및 Private IP 주소를 나타내고, 접속 환경 정보는 NAT에 대한 정보, 통신방식에 대한 정보 등을 나타내며, 특정 킵얼라이브 값을 산출한 기기 정보는 IoT 기기(100)의 맥어드레스 정보 또는 시리얼 번호 등에 대한 정보를 나타낸다.
그리고, 제어부(120)는 제2 세션을 종료하게 된다(S350).
이와 같은 과정을 통해 제어부(120)는 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브 값을 산출하게 된다.
도 5는 본 발명의 일 실시예에 따른, 특정 킵얼라이브 값을 산출하는 과정의 예시를 도식화한 도면이다.
도 5에서 제1 세션은 IoT 기기(100)가 IoT 서비스를 제공하기 위한 세션이며, 킵얼라이브 값이 5000ms인 것을 확인할 수 있다.
그리고, 제2 세션은 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 세션이다. 제2 세션에 우선 IoT 기기(100)는 10000ms의 제1 시간값을 서버(170)에 송신하고 10000ms후에 서버(170)로부터 응답 수신에 성공한 것을 확인할 수 있다.
그 후에, IoT 기기(100)는 제1 시간값을 단위시간인 5000ms만큼 증가시켜 15000ms를 제1 시간값으로 서버(170)에 송신하고, 15000ms후에 서버(170)로부터 응답 수신에 성공한 것을 확인할 수 있다.
그 다음, IoT 기기(100)는 제1 시간값을 단위시간인 5000ms만큼 또 증가시켜 20000ms를 제1 시간값으로 서버(170)에 송신하고, 20000ms후에 서버(170)로부터 응답 수신에 실패한 것을 확인할 수 있다.
따라서, IoT 기기(100)는 해당 제1 시간인 20000ms에서 단위시간인 5000ms를 빼서 직전의 제1 시간인 15000ms를 NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값으로 산출하게 된다. 즉, 특정 킵얼라이브 값은 15000ms가 된다.
그리고, IoT 기기(100)의 제어부(120)는 제1 세션의 킵얼라이브 값을 특정 킵얼라이브 값인 15000ms로 변경하게 된다.
도 6은 본 발명의 일 실시예에 따른, 서버를 통해 특정 킵얼라이브 값을 공유하는 IoT 네트워크 환경을 도시한 도면이다.
도 6에 도시된 바와 같이, IoT 네트워크에는 IoT 기기(100)와 NAT(150)가 포함되며, IoT 서비스를 위한 서버(170)에 연결된다.
IoT 기기(100)는 IoT 통신을 통해 제어되는 장치를 나타내는 것으로, 예를 들어, 도 6의 경우 CCTV, 조명, 청소기, 선풍기가 포함된 것을 확인할 수 있다. 하나의 IoT 네트워크에 IoT 기기(100)는 복수개가 포함되어 있을 수 있다.
도 7은 본 발명의 일 실시예에 따른, 서버를 통해 특정 킵얼라이브 값을 공유하는 과정을 도시한 흐름도이다.
IoT 기기(100)의 제어부(120)는 통신부(110)가 새로운 네트워크에 접속된 경우(S710), 서버(170)에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있는지 여부를 확인한다(S720).
만약, 특정 킵얼라이브 값이 저장되어 있는 경우(S720-Y), 제어부(120)는 해당 특정 킵얼라이브 값으로 통신하도록 통신부(110)를 설정한다(S725).
반면, 제어부(120)는, 서버(170)에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있지 않은 경우(S720-N), NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하게 된다(S730). 이와 같은 제2 세션 과정은 도 4에 도시된 바와 같다.
이와 같은 과정을 통해, IoT 기기(100)는 서버(170)를 통해 특정 킵얼라이브 값을 공유할 수도 있다.
도 8은 본 발명의 일 실시예에 따른, 프레임워크를 통해 특정 킵얼라이브 값을 공유하는 IoT 네트워크 환경을 도시한 도면이다.
도 8에 도시된 바와 같이, IoT 네트워크에는 IoT 기기(100)와 NAT(150)가 포함되며, IoT 서비스를 위한 서버(170)에 연결된다.
IoT 기기(100)는 복수개의 애플리케이션을 구동시키는 프레임워크가 설치된 환경인 것을 확인할 수 있다. 구체적으로, 도 8에 도시된 IoT 기기(100)는 App1, App2, App3, App4의 4개의 애플리케이션을 구동시키는 프레임워크(Framework)가 포함된 것을 확인할 수 있다.
이와 같이, IoT 기기(100)에 복수개의 애플리케이션을 구동시키는 프레임워크가 설치된 환경일 경우, 제어부(120)는 접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 프레임워크에 저장하게 된다.
도 9는 본 발명의 일 실시예에 따른, 프레임워크를 통해 특정 킵얼라이브 값을 공유하는 과정을 도시한 흐름도이다.
IoT 기기(100)의 제어부(120)는 프레임워크에서 구동되는 애플리케이션이 새로 실행되는 경우(S910), 프레임워크(170)에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있는지 여부를 확인한다(S920).
만약, 특정 킵얼라이브 값이 저장되어 있는 경우(S920-Y), 제어부(120)는 프레임워크에 저장되어 있는 해당 특정 킵얼라이브 값으로 통신하도록 통신부(110)를 설정한다(S925).
반면, 제어부(120)는, 프레임워크에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있지 않은 경우(S720-N), NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하게 된다(S7930). 이와 같은 제2 세션 과정은 도 4에 도시된 바와 같다.
이와 같은 과정을 통해, IoT 기기(100)는 프레임워크를 통해 특정 킵얼라이브 값을 공유할 수도 있다.
한편, 본 실시예에 따른 장치의 기능 및 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다.
본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물은 다른 유형의 디지털 전자 회로로구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다.
따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이속하는 분야의 통상의 기술자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : IoT 기기
110 : 통신부
120 : 제어부
130 : 메인 기능부
150 : NAT
170 : 서버

Claims (8)

  1. NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기에 있어서,
    NAT을 통해 서버와 연결되는 통신부; 및
    서비스 연결을 위한 제1 세션을 실행하고, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 제어부;를 포함하고,
    제어부는,
    통신부가 새로운 네트워크에 접속된 경우, 서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있는지 여부를 확인하고, 특정 킵얼라이브 값이 저장되어 있는 경우 해당 특정 킵얼라이브 값으로 통신하도록 통신부를 설정하고,
    서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있지 않은 경우, 제2 세션에서 제1 시간값을 서버에 송신하도록 통신부를 제어하고, 제1 시간값에 대응되는 시간이 지난 후에 서버로부터 응답이 수신되는지 여부를 확인하며, 응답이 수신된 경우 제1 시간값을 단위시간만큼 증가시켜 증가된 제1 시간값을 서버에 재송신하는 과정을 반복하고, 응답이 수신되지 않은 경우 해당 제1 시간값에서 단위시간을 뺀 시간값을 제1 세션의 특정 킵얼라이브(Keep Alive) 값으로 설정하고 제2 세션을 종료함으로써, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브 값을 산출하며,
    접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 서버로 송신하며,
    특정 킵얼라이브 값은,
    NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 시간값을 나타내는 것으로, IP 주소가 변경되지 않고 유지될 수 있는 최대한 큰 시간값에 해당되는 것을 특징으로 하는 IoT 기기.

  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 청구항 1에 있어서,
    제어부는,
    복수개의 애플리케이션을 구동시키는 프레임워크가 설치된 환경일 경우, 접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 프레임워크에 저장하는 것을 특징으로 하는 IoT 기기,
  7. 청구항 6에 있어서,
    제어부는,
    상기 프레임워크에서 구동되는 애플리케이션이 새로 실행될 경우, 프레임워크에 저장되어 있는 해당 특정 킵얼라이브 값으로 통신하도록 제어하는 것을 특징으로 하는 IoT 기기.
  8. NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기에 의한 IoT 통신방법에 있어서,
    NAT을 통해 서버와 연결하는 단계;
    서비스 연결을 위한 제1 세션을 실행하는 단계;
    NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브(keep alive) 값을 산출하기 위한 제2 세션을 실행하는 단계;를 포함하고,
    제2 세션을 실행하는 단계는,
    통신부가 새로운 네트워크에 접속된 경우, 서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있는지 여부를 확인하고, 특정 킵얼라이브 값이 저장되어 있는 경우 해당 특정 킵얼라이브 값으로 통신하도록 통신부를 설정하고,
    서버에 해당 네트워크 환경에 대응되는 특정 킵얼라이브 값이 저장되어 있지 않은 경우, 제2 세션에서 제1 시간값을 서버에 송신하도록 통신부를 제어하고, 제1 시간값에 대응되는 시간이 지난 후에 서버로부터 응답이 수신되는지 여부를 확인하며, 응답이 수신된 경우 제1 시간값을 단위시간만큼 증가시켜 증가된 제1 시간값을 서버에 재송신하는 과정을 반복하고, 응답이 수신되지 않은 경우 해당 제1 시간값에서 단위시간을 뺀 시간값을 제1 세션의 특정 킵얼라이브(Keep Alive) 값으로 설정하고 제2 세션을 종료함으로써, NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 특정 킵얼라이브 값을 산출하며,
    접속 IP주소, 접속 환경 정보, 특정 킵얼라이브 값을 산출한 기기 정보 및 산출된 특정 킵얼라이브 값을 서버로 송신하며,
    특정 킵얼라이브 값은,
    NAT에 의해 맵핑된 IP 주소가 만료되는 주기에 대응되는 시간값을 나타내는 것으로, IP 주소가 변경되지 않고 유지될 수 있는 최대한 큰 시간값에 해당되는 것을 특징으로 하는 IoT 통신방법.
KR1020190144002A 2019-11-12 2019-11-12 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법 KR102231064B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190144002A KR102231064B1 (ko) 2019-11-12 2019-11-12 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법
US17/609,918 US11949746B2 (en) 2019-11-12 2019-11-20 IoT device connected to server via NAT, and IoT communication method
PCT/KR2019/015931 WO2021095957A1 (ko) 2019-11-12 2019-11-20 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190144002A KR102231064B1 (ko) 2019-11-12 2019-11-12 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법

Publications (2)

Publication Number Publication Date
KR102231064B1 true KR102231064B1 (ko) 2021-03-23
KR102231064B9 KR102231064B9 (ko) 2024-01-11

Family

ID=75223710

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190144002A KR102231064B1 (ko) 2019-11-12 2019-11-12 NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법

Country Status (3)

Country Link
US (1) US11949746B2 (ko)
KR (1) KR102231064B1 (ko)
WO (1) WO2021095957A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080205288A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation Concurrent connection testing for computation of NAT timeout period
KR20190110265A (ko) * 2018-03-20 2019-09-30 삼성에스디에스 주식회사 양방향 통신을 제공하는 전력 소비 절약형 무선통신 디바이스

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7881318B2 (en) * 2007-02-28 2011-02-01 Microsoft Corporation Out-of-band keep-alive mechanism for clients associated with network address translation systems
US9742728B2 (en) 2011-08-30 2017-08-22 Sonus Networks, Inc. Determining expiration time of bindings for network address translation devices
US10117171B2 (en) 2016-05-13 2018-10-30 Gainspan Corporation Estimating intervals at which to transmit keep-alive messages from a wireless station to an access point

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080205288A1 (en) * 2007-02-28 2008-08-28 Microsoft Corporation Concurrent connection testing for computation of NAT timeout period
KR20190110265A (ko) * 2018-03-20 2019-09-30 삼성에스디에스 주식회사 양방향 통신을 제공하는 전력 소비 절약형 무선통신 디바이스

Also Published As

Publication number Publication date
US20220232083A1 (en) 2022-07-21
KR102231064B9 (ko) 2024-01-11
US11949746B2 (en) 2024-04-02
WO2021095957A1 (ko) 2021-05-20

Similar Documents

Publication Publication Date Title
KR102247485B1 (ko) 사물 인터넷 통신 방법, 장치 및 시스템
JP6091644B2 (ja) モバイル・ネットワークにおける持続性tcp接続なしのプッシュ・サービス
WO2020259509A1 (zh) 一种应用迁移方法及装置
US10536213B2 (en) Establishment of packet data network connection via relay user equipment
US10075414B2 (en) Method and apparatus for providng push service in communication system
EP3099111A1 (en) Data processing method, device and system
US20160036870A1 (en) Session managing method, session managing system, and call processing method
JP2022504104A (ja) 動的nefトンネル割り当てと関係するネットワークノード/機能とを提供する方法
JP6693799B2 (ja) 中継方法並びに対応する通信ネットワークデバイス、システム、コンピュータプログラム及びコンピュータ可読記憶媒体
KR20130052240A (ko) 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치
JP2018533872A (ja) リソース取得方法および装置
KR101083480B1 (ko) 가입 통지 서비스를 구비하는 가상 접속
WO2016042764A1 (ja) 接続方法、接続システム、携帯端末、およびプログラム
CN113473493B (zh) 一种通信方法和装置
KR102231064B1 (ko) NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 통신방법
US11659012B2 (en) Relayed communication channel establishment
WO2017161866A1 (zh) 网络连接方法及装置
EP3753236B1 (en) Remote wake-up of a device behind a nat
KR101666724B1 (ko) 점대점 연결을 구현하기 위한 방법, 서버와 장치
KR102133139B1 (ko) NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 시스템
CN114465985A (zh) 网络配置方法、装置、系统、电子设备及存储介质
US10461949B2 (en) Communication system, communication device, and management method for communication system
WO2013061116A1 (en) Method and apparatus for facilitating maintenance of a connection state
WO2024061145A1 (zh) 网关信息的使用方法、装置、终端及网络侧设备
US9485801B1 (en) Mobile communication device connected to home digital network

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]