KR102133139B1 - IoT Device and IoT system to link with server through NAT - Google Patents

IoT Device and IoT system to link with server through NAT Download PDF

Info

Publication number
KR102133139B1
KR102133139B1 KR1020190149305A KR20190149305A KR102133139B1 KR 102133139 B1 KR102133139 B1 KR 102133139B1 KR 1020190149305 A KR1020190149305 A KR 1020190149305A KR 20190149305 A KR20190149305 A KR 20190149305A KR 102133139 B1 KR102133139 B1 KR 102133139B1
Authority
KR
South Korea
Prior art keywords
timeout value
response message
specific response
value
specific
Prior art date
Application number
KR1020190149305A
Other languages
Korean (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 KR1020190149305A priority Critical patent/KR102133139B1/en
Application granted granted Critical
Publication of KR102133139B1 publication Critical patent/KR102133139B1/en

Links

Images

Classifications

    • 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
    • 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
    • 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

Abstract

An Internet of things (IoT) device and an IoT system are provided. According to the present invention, the IoT device is connected to a server through a plurality of network address translations (NATs), transmits a specific message including a timeout field for recording a timeout value to the server through the plurality of NATs, and can calculate a specific keep alive value by using the timeout value included in a received specific response message, thereby minimizing the transmission of keep alive messages from the IoT device, so that the network load caused by the keep alive messages of the IoT device can be minimized.

Description

NAT를 통해 서버와 연결되는 IoT 기기 및 IoT 시스템 {IoT Device and IoT system to link with server through NAT}IoT device and IoT system to link with server through NAT}

본 발명은 IoT 기기 및 IoT 시스템에 관한 것으로, 더욱 상세하게는, NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기 및 IoT 시스템에 관한 것이다. The present invention relates to an IoT device and an IoT system, and more particularly, to an Internet of Things (IoT) device and an IoT system connected to a server through a network address translation (NAT).

이 부분에 기술된 내용은 단순히 본 실시 예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The contents described in this section merely provide background information for this embodiment, and do not constitute a prior art.

NAT(Network Address Translation)은 IoT(Internet of Things) 기기와 서버를 서로 연결시켜주며, Public IP와 Private IP의 매핑 및 트래픽 라우팅을 처리하는 네트워크 장비를 나타낸다. (예: 공유기)Network Address Translation (NAT) refers to network equipment that connects Internet of Things (IoT) devices and servers, and handles mapping of public IP and private IP and traffic routing. (Example: router)

IoT 기기들은 서버로부터의 제어를 상시로 받기 위해 킵얼라이브(Keep Alive) 값을 지속적으로 전송하여 Public IP, Private IP 매핑 만료 시간을 계속 갱신한다. IoT devices continuously update the public IP and private IP mapping expiration time by continuously sending a keep alive value to receive control from the server at all times.

하지만, NAT 장치마다 IP 주소 매핑 만료 시간 및 타임아웃 값이 모두 다르고, 표준화되어 있지 않기 때문에 이를 알 수 있는 방법도 없다. 또한, IoT 통신 환경에서 NAT 장치가 몇 개가 존재할 지 알 수가 없는 것이 일반적이다. However, the IP address mapping expiration time and timeout value are different for each NAT device, and there is no way to know this because it is not standardized. In addition, it is common to not know how many NAT devices exist in the IoT communication environment.

IoT 기기들은 매핑 만료 시간 및 타임아웃 값을 알 수 없으니 아주 짧은 주기로 킵얼라이브 값을 계속 서버에 전송하여 연결 상태를 유지하게 된다. 이로 인해, IoT 기기들이 모인 IoT 통신환경은 네트워크 부하, 기기 전원 부하, 서버 트래픽 부하 등의 문제가 발생되게 된다. Since IoT devices do not know the mapping expiration time and timeout value, the keepalive value is continuously transmitted to the server in a very short period to maintain the connection state. Due to this, the IoT communication environment where IoT devices are gathered causes problems such as network load, device power load, and server traffic load.

이러한 문제를 해결하기 위해, IoT 기기들이 킵얼라이브 값을 최대한으로 설정하여 킵얼라이브 메시지를 최소한으로 전송할 수 있게 하기 위한 방안의 모색이 요청된다. In order to solve this problem, a search for a method for IoT devices to set a keepalive value to the maximum and transmit a keepalive message to a minimum is required.

본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은, 복수개의 NAT을 통해 서버와 연결되고, 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 IoT 기기 및 IoT 시스템을 제공함에 있다. The present invention has been devised to solve the above problems, and the object of the present invention is to connect to a server through a plurality of NATs, and a plurality of NATs to a specific message including a timeout field for recording a timeout value. It provides an IoT device and an IoT system that transmits to a server through and calculates a specific keep alive value using a timeout value included in the received specific response message.

본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The technical problems to be achieved in the present invention are not limited to the technical problems mentioned above, and other technical problems not mentioned will be clearly understood by a person having ordinary knowledge in the technical field to which the present invention belongs from the following description. Will be able to.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른, 복수개의 NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기는, 복수개의 NAT을 통해 서버와 연결되는 통신부; 및 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 서버로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 제어부;를 포함한다. According to an embodiment of the present invention for achieving the above object, an Internet of Things (IoT) device connected to a server through a plurality of NATs (Network Address Translation) includes: a communication unit connected to a server through a plurality of NATs; And a specific message containing a timeout field for recording a timeout value to a server through a plurality of NATs, and a specific keep alive using a timeout value included in a specific response message received from the server. It includes; a control unit for calculating a value.

그리고, 제어부는, 타임아웃 값에서 기설정된 값을 뺀 값을 특정 킵얼라이브 값으로 산출할 수도 있다. In addition, the control unit may calculate a value obtained by subtracting a preset value from the timeout value as a specific keepalive value.

또한, 제어부는, 산출된 특정 킵얼라이브 값을 주기로 하여 킵얼라이브 메시지를 주기적으로 전송할 수도 있다. In addition, the control unit may periodically transmit the keepalive message using the calculated specific keepalive value as a period.

그리고, 제어부는, 통신부가 새로운 네트워크에 접속된 경우, 특정 메시지를 서버에 송신할 수도 있다. Then, when the communication unit is connected to the new network, the control unit may transmit a specific message to the server.

또한, NAT는, 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있지 않은 경우, 자신의 타임아웃 값을 특정 응답 메시지에 기록할 수도 있다. In addition, the NAT may record its own timeout value in a specific response message when the received specific response message does not include a timeout value.

그리고, NAT는, 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송할 수도 있다. In addition, when the timeout value is included in the specific response message received, NAT compares the timeout value included in the specific response message received with its own timeout value, and the timeout value included in the specific response message. If the timeout value is greater than the timeout value, the timeout value may be recorded and transmitted in a specific response message.

또한, NAT는, 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 작거나 같은 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하지 않고 그대로 전송할 수도 있다. In addition, when the specific response message received includes a timeout value, NAT compares the timeout value included in the received specific response message with its own timeout value, and the timeout value included in the specific response message If the timeout value is less than or equal to the timeout value of the user, the timeout value of the user may be transmitted without writing to a specific response message.

한편, 본 발명의 일 실시예에 따른, IoT(Internet of Things) 기기가 복수개의 NAT(Network Address Translation)을 통해 서버와 연결되는 IoT 시스템은, 복수개의 NAT을 통해 서버와 연결되고, 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 서버로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 IoT 기기; 서버로부터 수신된 특정 응답 메시지에 자신의 타임아웃 값을 기록하고, 다른 NAT로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송하는 복수개의 NAT; 및 IoT 기기로부터 수신된 특정 메시지에 대한 응답으로 특정 응답 메시지를 송신하는 서버;를 포함한다. Meanwhile, according to an embodiment of the present invention, an IoT system in which an Internet of Things (IoT) device is connected to a server through a plurality of network address translation (NAT), is connected to a server through a plurality of NATs, and a timeout value. A specific message containing a timeout field for recording a message is transmitted to a server through a plurality of NATs, and a specific keep alive value is calculated using a timeout value included in a specific response message received from the server IoT devices; It records its timeout value in a specific response message received from the server, compares the timeout value included in a specific response message received from another NAT with its timeout value, and the timeout value included in a specific response message A plurality of NATs that record and transmit their timeout value in a specific response message when the timeout value is greater than their own timeout value; And a server that transmits a specific response message in response to the specific message received from the IoT device.

본 발명의 다양한 실시예에 따르면, 복수개의 NAT을 통해 서버와 연결되고, 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 IoT 기기 및 IoT 시스템을 제공할 수 있게 되어, IoT 기기의 킵얼라이브 메시지 전송을 최소화할 수 있게 되어, IoT 기기의 킵얼라이브 메시지로 인한 네트워크 부하를 최소화할 수 있게 된다. According to various embodiments of the present invention, a specific message that is connected to a server through a plurality of NATs and includes a timeout field for recording a timeout value is transmitted to a server through a plurality of NATs, and a specific response message is received. It is possible to provide an IoT device and an IoT system that calculates a specific keep alive value using the timeout value included in the IoT device, thereby minimizing the transmission of a keepalive message from the IoT device. It is possible to minimize the network load caused by the alive message.

본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에 서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects obtainable in the present invention are not limited to the above-mentioned effects, and other effects not mentioned can be clearly understood by those skilled in the art from the following description. will be.

본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시 예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
도 1은 본 발명의 일 실시예에 따른, IoT 시스템의 네트워크 환경을 도시한 도면,
도 2는 본 발명의 일 실시예에 따른, IoT 기기의 구성을 도시한 블록도,
도 3은 본 발명의 일 실시예에 따른, IoT 통신 방법의 과정을 도시한 흐름도,
도 4는 본 발명의 일 실시예에 따른, NAT의 타임아웃 값의 기록을 위한 추가 동작 과정을 도시한 흐름도,
도 5는 본 발명의 일 실시예에 따른, IoT 시스템이 특정 메시지를 송수신하는 과정의 예시를 도식화한 도면이다.
Included as part of the detailed description to aid understanding of the present invention, the accompanying drawings provide embodiments of the present invention and describe the technical features of the present invention together with the detailed description.
1 is a diagram illustrating a network environment of an IoT system according to an embodiment of the present invention;
2 is a block diagram showing the configuration of an IoT device according to an embodiment of the present invention,
3 is a flowchart illustrating a process of an IoT communication method according to an embodiment of the present invention,
4 is a flowchart illustrating an additional operation process for recording a timeout value of NAT according to an embodiment of the present invention,
5 is a diagram illustrating an example of a process in which an IoT system transmits and receives a specific message according to an embodiment of the present invention.

본 발명의 과제 해결 수단의 특징 및 이점을 보다 명확히 하기 위하여, 첨부된 도면에 도시된 본 발명의 특정 실시 예를 참조하여 본 발명을 더 상세하게 설명한다.In order to clarify the features and advantages of the problem solving means of the present invention, the present invention will be described in more detail with reference to specific embodiments of the present invention shown in the accompanying drawings.

다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.However, in the following description and accompanying drawings, detailed descriptions of known functions or configurations that may obscure the subject matter of the present invention are omitted. In addition, it should be noted that the same components throughout the drawings are denoted by the same reference numerals as much as possible.

이하의 설명 및 도면에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.The terms or words used in the following description and drawings should not be interpreted as being limited to ordinary or dictionary meanings, and the inventor can appropriately define the concept of terms for explaining his or her invention in the best way. Based on the principle of being present, it should be interpreted as meanings and concepts consistent with the technical spirit of the present invention.

따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.Therefore, the embodiments shown in the embodiments and the drawings described in this specification are only the most preferred embodiments of the present invention, and do not represent all of the technical spirit of the present invention, and thus can replace them at the time of application. It should be understood that there may be equivalents and variations.

또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하기 위해 사용하는 것으로, 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용될 뿐, 상기 구성요소들을 한정하기 위해 사용되지 않는다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제2 구성요소는 제1 구성요소로 명명될 수 있고, 유사하게 제1 구성요소도 제2 구성요소로 명명될 수 있다. In addition, terms including ordinal numbers such as first and second are used to describe various components, and are used only for the purpose of distinguishing one component from other components, and to limit the components It is not used. For example, the second component may be referred to as a first component without departing from the scope of the present invention, and similarly, the first component may also be referred to as a second component.

더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을의미한다.In addition, when referring to a component being "connected" or "connected" to another component, it means that it can be connected or connected logically or physically.

다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.In other words, it may be understood that a component may be directly connected to or connected to other components, but other components may exist in the middle and may be connected or connected indirectly.

또한, 본 명세서에서 기술되는 "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.In addition, terms such as "comprises" or "have" described herein are intended to designate the existence of features, numbers, steps, operations, components, parts, or combinations thereof described in the specification, or one or more thereof. It should be understood that the above or other features or numbers, steps, actions, components, parts or combinations thereof are not excluded in advance.

또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, terms such as “…unit”, “…group”, and “module” described in the specification mean a unit that processes at least one function or operation, which may be implemented by hardware or software or a combination of hardware and software. have.

또한, "일(a 또는 an)", "하나(one)", "그(the)" 및 유사어는 본 발명을 기술하는 문맥에 있어서(특히, 이하의 청구항의 문맥에서) 본 명세서에 달리 지시되거나 문맥에 의해 분명하게 반박되지 않는 한, 단수 및 복수 모두를 포함하는 의미로 사용될 수 있다.In addition, "a (a or an)", "one (one)", "the (the)" and similar words are otherwise indicated herein in the context of describing the present invention (especially in the context of the following claims). It may be used in a sense including both singular and plural unless it is or is clearly contradicted by the context.

이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다. Hereinafter, the present invention will be described in more detail with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른, IoT(Internet of Things) 시스템의 네트워크 환경을 도시한 도면이다. 도 1에 도시된 바와 같이, IoT 네트워크에는 IoT 기기(100)와 복수개의 NAT(150)가 포함되며, IoT 서비스를 위한 서버(170)들에 연결된다. 1 is a diagram illustrating a network environment of an Internet of Things (IoT) system according to an embodiment of the present invention. 1, the IoT network includes an IoT device 100 and a plurality of NATs 150, and is connected to servers 170 for IoT services.

IoT 기기(100)는 IoT 통신을 통해 제어되는 장치를 나타내는 것으로, 예를 들어, IoT 통신으로 제어 가능한 CCTV, 조명, 청소기, 및 선풍기 등이 포함될 수 있다. 하나의 IoT 네트워크에 IoT 기기(100)는 복수개가 포함되어 있을 수 있다.The IoT device 100 represents a device controlled through IoT communication, and may include, for example, CCTV, lighting, a vacuum cleaner, and a fan that can be controlled by IoT communication. A plurality of IoT devices 100 may be included in one IoT network.

또한, IoT 기기(100)는 복수개의 NAT(150)을 통해 서버(170)와 연결되고, 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT(150)을 통해 서버(170)에 송신하고, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출한다.In addition, the IoT device 100 is connected to the server 170 through a plurality of NAT 150, and a server including a specific message including a timeout field for recording a timeout value through a plurality of NAT 150 ( 170 ), and a specific keep alive value is calculated using the timeout value included in the received specific response message.

복수개의 NAT(150)는 IoT 기기(100)와 서버(170)를 서로 연결시켜주며, Public IP와 Private IP의 매핑 및 트래픽 라우팅을 처리하는 네트워크 장비를 나타낸다. 예를 들어, NAT(150)는 공유기와 같은 장치에 해당될 수 있다. 하나의 IoT 네트워크에 NAT(150)는 복수개가 포함되어 있을 수 있다.The plurality of NAT 150 connects the IoT device 100 and the server 170 to each other, and represents network equipment that handles mapping of public IP and private IP and traffic routing. For example, NAT 150 may correspond to a device such as a router. A plurality of NAT 150 may be included in one IoT network.

또한, 복수개의 NAT(150)는 서버(170)로부터 수신된 특정 응답 메시지에 자신의 타임아웃 값을 기록하고, 다른 NAT로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송한다. Further, the plurality of NATs 150 record their timeout values in a specific response message received from the server 170, and the timeout values included in the specific response message received from other NATs with their timeout values. In comparison, when the timeout value included in the specific response message is greater than the timeout value of the user, the timeout value of the user is recorded and transmitted in the specific response message.

서버(170)는 사용자의 모바일 기기 또는 PC(Personal Computer)와 연결되어 이를 통해 사용자에게 IoT 기기(100)를 제어할 수 있는 IoT 서비스를 제공하는 기능을 수행한다. The server 170 is connected to the user's mobile device or a personal computer (PC) to perform the function of providing an IoT service for controlling the IoT device 100 to the user.

또한, 서버(170)는 IoT 기기(100)로부터 수신된 특정 메시지에 대한 응답으로 특정 응답 메시지를 송신한다. In addition, the server 170 transmits a specific response message in response to a specific message received from the IoT device 100.

이와 같은 IoT 시스템 네트워크 환경에서, IoT 기기(100)들은 서버(170)로부터의 제어를 상시로 받기 위해 킵얼라이브(Keep Alive) 메시지를 지속적으로 전송하여 Public IP, Private IP, 및 맵핑 만료 시간을 계속 갱신한다. In such an IoT system network environment, the IoT devices 100 continuously transmit a Keep Alive message to receive control from the server 170 at all times to continue the Public IP, Private IP, and mapping expiration time. Update.

또한, 복수개의 NAT(150)는 각각 서로 다른 Public IP를 가지고 있으며, 타임아웃 값이 서로 다른 것을 확인할 수 있다. In addition, it can be seen that the plurality of NATs 150 have different Public IPs and different timeout values.

구체적으로 도 1에 도시된 표에는 NAT(150)별로 할당된 Public IP 및 타임아웃 값이 포함되어 있는 것을 확인할 수 있다. 그리고, 타임아웃 값이 NAT 별로 다 다른 것을 확인할 수 있다. 여기에서, 타임아웃 값은 NAT(150)와 IoT 기기(100)가 별도의 통신이 없더라도 연결을 지속시키는 대기 시간을 나타내며, 타임아웃 값 동안 NAT(150)와 IoT기기(100)의 통신이 없는 경우 둘간의 통신 연결 세션은 종료되게 된다. 따라서, IoT 기기(100)는 NAT(150)와 연결 상태를 지속시키기 위해 NAT(150)의 타임아웃 기간이 지나기 전에 킵얼라이브 메시지를 전송해야 하게 되며, 따라서, IoT 기기(100)는 킵얼라이브 값을 타임아웃 값보다 작도록 설정할 필요가 있다. Specifically, it can be seen that the table shown in FIG. 1 includes public IP and timeout values allocated for each NAT 150. And, you can see that the timeout values are different for each NAT. Here, the timeout value represents a waiting time for the connection to continue even if there is no separate communication between the NAT 150 and the IoT device 100, and there is no communication between the NAT 150 and the IoT device 100 during the timeout value. In this case, the communication connection session between the two ends. Therefore, the IoT device 100 must transmit a keepalive message before the timeout period of the NAT 150 passes in order to maintain a connection state with the NAT 150, and accordingly, the IoT device 100 keeps the keepalive value. Needs to be set to be less than the timeout value.

도 1에 도시된 바와 같은 IoT 네트워크 환경은 다양한 환경이 될 수 있으며, 예를 들어, 하나의 주택이 하나의 IoT 네트워크 환경이 될 수 있고, 하나의 차량이 하나의 IoT 네트워크 환경이 될 수도 있다. The IoT network environment as illustrated in FIG. 1 may be various environments, for example, one house may be one IoT network environment, and one vehicle may be one IoT network environment.

도 2는 본 발명의 일 실시예에 따른, IoT 기기(100)의 구성을 도시한 블록도이다. 도 2에 도시된 바와 같이, IoT 기기(100)는 통신부(110), 제어부(120), 및 메인 기능부(130)를 포함한다. 2 is a block diagram showing the configuration of the IoT device 100 according to an embodiment of the present invention. As illustrated in FIG. 2, the IoT device 100 includes a communication unit 110, a control unit 120, and a main function unit 130.

메인 기능부(130)는 IoT 기기(100)의 본연의 기능을 수행한다. 예를 들어, IoT 기기(100)가 CCTV인 경우 메인 기능부(130)는 CCTV의 기능을 수행하게 되고, IoT 기기(100)가 조명인 경우 메인 기능부(130)는 조명의 기능을 수행하게 된다. The main function unit 130 performs the original function of the IoT device 100. For example, when the IoT device 100 is a CCTV, the main function unit 130 performs a function of CCTV, and when the IoT device 100 is a light, the main function unit 130 performs a function of lighting. do.

통신부(110)는 IoT 통신을 위해 복수개의 NAT(150)를 통해 외부의 서버(170)와 통신 가능하도록 연결된다. 통신부(110)는 IoT 통신을 위해 블루투스, 와이파이(WIFI), 근거리무선통신(NFC), 셀룰러, LTE(Long-Term Evolution) 등 다양한 무선 통신 방식으로 통신을 수행할 수 있으며, 유선 통신으로 통신을 할 수도 있음은 물론이다. The communication unit 110 is connected to communicate with an external server 170 through a plurality of NATs 150 for IoT communication. The communication unit 110 may perform communication using various wireless communication methods such as Bluetooth, Wi-Fi (WIFI), short-range wireless communication (NFC), cellular, and long-term evolution (LTE) for IoT communication, and communicate with wired communication. Of course you can.

제어부(120)는 IoT 기기(100)의 전반적인 기능을 제어한다. 구체적인, 기능에 대해서는 도 3을 참고하여 설명한다. 도 3은 본 발명의 일 실시예에 따른, IoT 통신 방법의 과정을 도시한 흐름도이다. The control unit 120 controls overall functions of the IoT device 100. Specifically, the function will be described with reference to FIG. 3. 3 is a flowchart illustrating a process of an IoT communication method according to an embodiment of the present invention.

우선, 제어부(120)는 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT(150)을 통해 서버(170)에 송신한다(S210).First, the control unit 120 transmits a specific message including a timeout field for recording a timeout value to the server 170 through a plurality of NATs 150 (S210).

여기에서, 특정 메시지는 복수개의 NAT(150)의 타임아웃 값을 확인하기 위해 IoT 기기(100)와 서버(170)가 복수개의 NAT(150)를 통해 송수신하는 메시지이며, 복수개의 NAT(150)의 타임아웃 값 중 가장 작은값을 찾기 위해 타임아웃 값을 기록할 수 있는 타임아웃 필드가 포함되어 있다. Here, the specific message is a message transmitted and received by the IoT device 100 and the server 170 through the plurality of NATs 150 to check the timeout values of the plurality of NATs 150, and the plurality of NATs 150 Includes a timeout field that can record the timeout value to find the smallest of the timeout values of.

또한, 제어부(120)는 통신부(110)가 새로운 네트워크에 접속된 경우, 특정 메시지를 서버(170)에 송신하게 된다. 새로운 네트워크에 접속된 경우, 그 네트워크에 포함된 NAT들의 타임아웃 값을 확인해야 하므로, 제어부(120)는 통신부(110)가 새로운 네트워크에 접속된 경우, 특정 메시지를 서버(170)에 송신하게 되는 것이다. In addition, when the communication unit 110 is connected to a new network, the control unit 120 transmits a specific message to the server 170. When connected to a new network, since the timeout value of NATs included in the network must be checked, the controller 120 transmits a specific message to the server 170 when the communication unit 110 is connected to the new network will be.

그러면, 서버(170)는 수신한 특정 메시지에 대한 응답으로 특정 응답 메시지를 복수개의 NAT(150)를 통해 IoT 기기(100)로 송신하게 되며, 그 과정에서 복수개의 NAT(150)는 특정 응답 메시지에 자신의 타임아웃 값을 기록하게 된다. 여기에서, 특정 응답 메시지는 특정 메시지에 대한 응답으로 서버(170)가 IoT 기기(100)에 복수개의 NAT(150)를 통해 송신하는 메시지이며, 복수개의 NAT(150)의 타임아웃 값 중 가장 작은값을 찾기 위해 타임아웃 값을 기록할 수 있는 타임아웃 필드가 포함되어 있다. 그 과정에 대해서는 차후에 도 4 및 도 5를 참고하여 더 상세히 설명한다. Then, the server 170 transmits a specific response message to the IoT device 100 through a plurality of NATs 150 in response to the received specific message, and in the process, the multiple NATs 150 respond to the specific response message. Will record their timeout value. Here, the specific response message is a message that the server 170 transmits to the IoT device 100 through a plurality of NATs 150 in response to a specific message, and is the smallest of the timeout values of the plurality of NATs 150. It includes a timeout field that can record the timeout value to find the value. The process will be described in more detail with reference to FIGS. 4 and 5 later.

그 후에, 제어부(120)는 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출한다(S220). 제어부(120)는 특정 킵얼라이브 값이 특정 응답 메시지에 포함된 타임아웃 값보다 더 작은 값이 되도록 특정 킵얼라이브 값을 산출하게 된다. 구체적으로, 제어부(120)는 타임아웃 값에서 기설정된 값을 뺀 값을 특정 킵얼라이브 값으로 산출하게 되며, 그러면 산출된 특정 킵얼라이브 값은 타임아웃 값보다 작은 값이 되게 된다. 예를 들어, 제어부(120)는 타임아웃 값이 600초인 경우, 특정 킵얼라이브 값은 600초에서 10초를 뺀 590초로 산출할 수도 있다. Thereafter, the controller 120 calculates a specific keep alive value using the timeout value included in the received specific response message (S220). The controller 120 calculates a specific keepalive value such that the specific keepalive value is smaller than the timeout value included in the specific response message. Specifically, the controller 120 calculates a value obtained by subtracting a preset value from the timeout value as a specific keepalive value, and the calculated specific keepalive value becomes a value smaller than the timeout value. For example, when the timeout value is 600 seconds, the controller 120 may calculate a specific keepalive value as 590 seconds minus 10 seconds from 600 seconds.

그 다음, 제어부(120)는 산출된 특정 킵얼라이브 값을 주기로 하여 킵얼라이브 메시지를 주기적으로 전송하게 된다(S230). 여기에서, 킵얼라이브(keep alive) 값은 IoT 기기(100)와 서버(170) 간의 데이터 링크가 잘 동작하고 있는지 확인하거나 이 데이터링크가 끊어지는 것을 방지하기 위해서, IoT 기기(100)와 서버(170) 간에 서로 주고 받는 킵얼라이브 메시지의 시간 간격 값이다. 예를 들어, 킵얼라이브 값이 10초인 경우, IoT 기기(100)가 서버(170)로 킵얼라이브 메시지를 송신하고, 10초가 지난 후에, 서버(170)가 IoT 기기(100)로 킵얼라이브 메시지에 대한 응답을 송신하게 된다. 그리고, IoT 기기(100)는 서버(170)로부터 킵얼라이브 메시지에 대한 응답을 수신한 경우 통신에 문제가 없는 것으로 판단하고, 응답을 수신하지 못한 경우 통신에 문제가 있는 것으로 판단하게 된다. Then, the control unit 120 periodically transmits a keepalive message using the calculated specific keepalive value as a period (S230). Here, the keep alive (keep alive) value is to check whether the data link between the IoT device 100 and the server 170 is working well, or to prevent the data link from being disconnected, the IoT device 100 and the server ( 170) It is a time interval value of keepalive messages that are exchanged with each other. For example, if the keepalive value is 10 seconds, the IoT device 100 transmits a keepalive message to the server 170, and after 10 seconds, the server 170 sends a keepalive message to the IoT device 100. Response. In addition, when the IoT device 100 receives a response to the keepalive message from the server 170, it is determined that there is no problem in communication, and if it does not receive a response, it is determined that there is a problem in communication.

NAT가 특정 응답 메시지에 타임아웃 값을 기록하는 추가 동작에 대해서는 도 4 및 도 5를 참고하여 더욱 상세하게 설명한다. The additional operation in which the NAT records the timeout value in a specific response message will be described in more detail with reference to FIGS. 4 and 5.

도 4는 본 발명의 일 실시예에 따른, NAT의 타임아웃 값의 기록을 위한 추가 동작 과정을 도시한 흐름도이다. 4 is a flowchart illustrating an additional operation process for recording a timeout value of NAT according to an embodiment of the present invention.

NAT(150)는 서버(170) 또는 다른 NAT(150)로부터 특정 응답 메시지를 수신한다(S310). The NAT 150 receives a specific response message from the server 170 or another NAT 150 (S310).

그리고, NAT(150)는 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는지 여부를 판단한다(S320). 만약, 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있지 않은 경우(S320-N), NAT(150)는 자신의 타임아웃 값을 특정 응답 메시지의 타임아웃 필드에 기록하게 된다(S340). 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있지 않은 경우는, 즉, 서버(170)로부터 특정 응답 메시지를 수신한 경우가 되며, 서버(170)로부터 처음으로 특정 응답 메시지를 수신한 NAT(150)는 자신의 타임아웃 값을 특정 응답 메시지의 타임아웃 필드에 기록하게 되는 것이다. 그리고, NAT(150)는 다시 본연의 기능을 수행하게 된다(S350).Then, the NAT 150 determines whether a timeout value is included in the received specific response message (S320). If the timeout value is not included in the received specific response message (S320-N), the NAT 150 records its timeout value in the timeout field of the specific response message (S340). If the timeout value is not included in the received specific response message, that is, it is the case that a specific response message is received from the server 170, and the NAT 150 receives the specific response message for the first time from the server 170 ) Records its timeout value in the timeout field of a specific response message. Then, NAT 150 again performs the original function (S350).

반면, 수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우(S320-Y), NAT(150)는 다른 NAT로부터 응답 메시지를 수신한 경우에 해당되며, 이 경우 NAT(150)는 다른 NAT로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하여, 다른 NAT로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰지 여부를 확인하게 된다(S330). On the other hand, when the timeout value is included in the received specific response message (S320-Y), the NAT 150 corresponds to a case where a response message is received from another NAT, and in this case, the NAT 150 is from another NAT. By comparing the timeout value included in the received specific response message with its own timeout value, it is checked whether the timeout value included in the specific response message received from another NAT is greater than its own timeout value (S330). ).

만약, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우(S330-Y), NAT(150)는 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 특정 응답 메시지를 전송하게 된다(S340). 즉, 이 경우 NAT(150)는 자신의 타임아웃 값이 더 작기 때문에, 현재 특정 응답 메시지에 기록된 타임아웃 값을 자신의 타임아웃 값으로 변경하여 기록하게 되는 것이다. 그리고, NAT(150)는 다시 본연의 기능을 수행하게 된다(S350).If the timeout value included in the specific response message is greater than its timeout value (S330-Y), NAT 150 transmits the specific response message by recording its timeout value in the specific response message. (S340). That is, in this case, since the NAT 150 has a smaller timeout value, the current timeout value recorded in the specific response message is changed to its own timeout value. Then, NAT 150 again performs the original function (S350).

반면, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 작거나 같은 경우(S330-N), NAT(150)는 자신의 타임아웃 값을 특정 응답 메시지에 기록하지 않고 특정 응답 메시지를 그대로 전송하게 되며, NAT는 다시 본연의 기능을 수행하게 된다(S350).On the other hand, when the timeout value included in the specific response message is less than or equal to the timeout value of the user (S330-N), the NAT 150 does not record its timeout value in the specific response message and sends a specific response message. It will be transmitted as it is, and NAT will perform its original function again (S350).

이와 같은 과정을 통해, NAT는 특정 응답 메시지에 타임아웃 값을 기록하기 위한 추가동작을 수행하게 된다. Through this process, NAT performs an additional operation for recording a timeout value in a specific response message.

도 5는 본 발명의 일 실시예에 따른, IoT 시스템이 특정 메시지를 송수신하는 과정의 예시를 도식화한 도면이다. FIG. 5 is a diagram illustrating an example of a process in which an IoT system transmits and receives a specific message according to an embodiment of the present invention.

도 5에는 제1 NAT(150-1)와 제2 NAT(150-2)의 2개의 NAT가 포함된 IoT 시스템을 예로 든 것이다. 5 illustrates an IoT system including two NATs, a first NAT 150-1 and a second NAT 150-2.

도 5에 도시된 바와 같이, 우선 IoT 기기(100)는 특정 메시지를 서버(170)로 전송한다(S510). 5, first, the IoT device 100 transmits a specific message to the server 170 (S510).

그러면, 서버(170)는 특정 메시지에 대한 응답으로 특정 응답 메시지를 전송하게 된다(S520). Then, the server 170 transmits a specific response message in response to the specific message (S520).

그리고, 제2 NAT(150-2)는 서버(170)로부터 수신한 특정 응답 메시지에 대해 도 4에 도시된 추가동작을 수행하게 된다(S530). 구체적으로, 제2 NAT(150-2)는 서버(170)로부터 처음으로 특정 응답 메시지를 수신받았기 때문에 타임아웃 값이 포함되어 있지 않은 경우에 해당되며, 자신의 타임아웃 값을 특정 응답 메시지의 타임아웃 필드에 기록하게 된다. Then, the second NAT 150-2 performs the additional operation shown in FIG. 4 on the specific response message received from the server 170 (S530). Specifically, since the second NAT 150-2 receives a specific response message from the server 170 for the first time, it corresponds to a case where the timeout value is not included, and the timeout value of its timeout value is specified as the time of the specific response message. It will be recorded in the out field.

그 다음, 제1 NAT(150-1)는 제2 NAT(150-2)로부터 수신한 특정 응답 메시지에 대해 도 4에 도시된 추가동작을 수행하게 된다(S540). 만약, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우, 제1 NAT(150-1)는 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 특정 응답 메시지를 전송하게 된다. 반면, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 작거나 같은 경우, 제1 NAT(150-1)는 자신의 타임아웃 값을 특정 응답 메시지에 기록하지 않고 특정 응답 메시지를 그대로 전송하게 된다. Then, the first NAT 150-1 performs the additional operation illustrated in FIG. 4 on the specific response message received from the second NAT 150-2 (S540 ). If the timeout value included in the specific response message is greater than its own timeout value, the first NAT 150-1 records its timeout value in the specific response message and transmits the specific response message. On the other hand, if the timeout value included in the specific response message is less than or equal to the timeout value of the first NAT 150-1, the first NAT 150-1 does not record its timeout value in the specific response message, and maintains the specific response message. Will be sent.

그 후에, IoT 기기(100)는 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출한다. 이 때, IoT 기기(100)는 상술한 바와 같이 특정 킵얼라이브 값이 특정 응답 메시지에 포함된 타임아웃 값보다 더 작은 값이 되도록 특정 킵얼라이브 값을 산출하게 된다. 구체적으로, IoT 기기(100)는 타임아웃 값에서 기설정된 값을 뺀 값을 특정 킵얼라이브 값으로 산출하게 되며, 그러면 산출된 특정 킵얼라이브 값은 타임아웃 값보다 작은 값이 되게 된다. 예를 들어, IoT 기기(100)는 타임아웃 값이 600초인 경우, 특정 킵얼라이브 값은 600초에서 10초를 뺀 590초로 산출할 수도 있다. 그리고, IoT 기기(100)는 산출된 특정 킵얼라이브 값을 주기로 하여 킵얼라이브 메시지를 주기적으로 전송하게 된다(S550). Thereafter, the IoT device 100 calculates a specific keep alive value using the timeout value included in the received specific response message. At this time, the IoT device 100 calculates a specific keepalive value such that the specific keepalive value is smaller than the timeout value included in the specific response message, as described above. Specifically, the IoT device 100 calculates a value obtained by subtracting a preset value from a timeout value as a specific keepalive value, and then the calculated specific keepalive value becomes a smaller value than the timeout value. For example, when the timeout value is 600 seconds, the IoT device 100 may calculate a specific keepalive value as 590 seconds minus 10 seconds from 600 seconds. Then, the IoT device 100 periodically transmits the keepalive message by using the calculated specific keepalive value as a period (S550).

이와 같은 과정을 통해, IoT 시스템의 IoT 기기(100)는 복수개의 NAT의 타임아웃 값을 고려하여 킵얼라이브 값을 산출하고 이에 기반하여 킵얼라이브 메시지를 전송할 수 있게 된다. 또한, 도 5에서는 NAT가 2개인 경우를 도시하고 있으나, NAT가 이외에 더 많은 개수가 포함되는 경우에도 도 4 및 도 5에 게시된 동일한 과정을 적용할 수 있음은 물론이다. Through such a process, the IoT device 100 of the IoT system can calculate the keep-alive value in consideration of the timeout values of the plurality of NATs and transmit the keep-alive message based on this. In addition, although FIG. 5 shows a case in which there are two NATs, the same process as shown in FIGS. 4 and 5 can be applied to a case in which a larger number of NATs are included.

한편, 본 실시예에 따른 장치의 기능 및 방법을 수행하게 하는 컴퓨터 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 또한, 본 발명의 다양한 실시예에 따른 기술적 사상은 컴퓨터로 읽을 수 있는 기록매체에 기록된 컴퓨터로 읽을 수 있는 프로그래밍 언어 코드 형태로 구현될 수도 있다. 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터에 의해 읽을 수 있고 데이터를 저장할 수 있는 어떤 데이터 저장 장치이더라도 가능하다. 예를 들어, 컴퓨터로 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광디스크, 하드 디스크 드라이브, 플래시 메모리, 솔리드 스테이트 디스크(SSD) 등이 될 수 있음은 물론이다. 또한, 컴퓨터로 읽을 수 있는 기록매체에 저장된 컴퓨터로 읽을 수 있는 코드 또는 프로그램은 컴퓨터간에 연결된 네트워크를 통해 전송될 수도 있다. On the other hand, of course, the technical idea of the present invention can be applied to a computer-readable recording medium containing a computer program for performing functions and methods of the apparatus according to the present embodiment. Further, the technical idea according to various embodiments of the present disclosure may be implemented in the form of computer-readable programming language codes recorded on a computer-readable recording medium. The computer-readable recording medium can be any data storage device that can be read by a computer and stores data. Of course, the computer-readable recording medium may be a ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical disk, hard disk drive, flash memory, solid state disk (SSD), or the like. In addition, computer-readable codes or programs stored on a computer-readable recording medium may be transmitted through a network connected between computers.

본 명세서와 도면에서는 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물은 다른 유형의 디지털 전자 회로로구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다.Although this specification and drawings describe exemplary device configurations, the functional operations and subject implementations described herein are implemented in other types of digital electronic circuitry, or include the structures disclosed herein and their structural equivalents. Computer software, firmware, or hardware, or a combination of one or more of them.

따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 본 발명이속하는 분야의 통상의 기술자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.Therefore, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art to which the present invention pertains may make modifications, alterations, and modifications to the examples without departing from the scope of the present invention.

또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.In addition, although the preferred embodiments of the present invention have been illustrated and described above, the present invention is not limited to the specific embodiments described above, and the technical field to which the present invention pertains without departing from the gist of the present invention claimed in the claims. In addition, various modifications can be made by those skilled in the art, and these modifications should not be individually understood from the technical idea or prospect of the present invention.

100 : IoT 기기
110 : 통신부
120 : 제어부
130 : 메인 기능부
150 : 복수개의 NAT
170 : 서버
100: IoT device
110: communication unit
120: control unit
130: main function
150: multiple NATs
170: server

Claims (8)

복수개의 NAT(Network Address Translation)을 통해 서버와 연결되는 IoT(Internet of Things) 기기에 있어서,
복수개의 NAT을 통해 서버와 연결되는 통신부; 및
타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 서버로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 제어부;를 포함하고,
NAT는,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있지 않은 경우, 자신의 타임아웃 값을 특정 응답 메시지에 기록하고,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송하며,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 작거나 같은 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하지 않고 그대로 전송하는 것을 특징으로 하는 IoT 기기.
In the Internet of Things (IoT) devices connected to the server through a plurality of network address translation (NAT),
A communication unit connected to the server through a plurality of NATs; And
A specific message containing a timeout field for recording a timeout value is transmitted to a server through a plurality of NATs, and a specific keep alive value is used using a timeout value included in a specific response message received from the server Includes a control unit for calculating;
NAT,
If the timeout value is not included in the specific response message received, record the timeout value of the user in the specific response message,
If a specific response message received contains a timeout value, the timeout value included in the specific response message received is compared with its own timeout value, and the timeout value included in the specific response message is its timeout value. If it is greater than the value, the timeout value is recorded in a specific response message and transmitted.
If a specific response message received contains a timeout value, the timeout value included in the specific response message received is compared with its own timeout value, and the timeout value included in the specific response message is its timeout value. If less than or equal to the value, the IoT device characterized in that it transmits its timeout value as it is without recording it in a specific response message.
청구항 1에 있어서,
제어부는,
타임아웃 값에서 기설정된 값을 뺀 값을 특정 킵얼라이브 값으로 산출하는 것을 특징으로 하는 IoT 기기.
The method according to claim 1,
The control unit,
IoT device characterized by calculating a value obtained by subtracting a preset value from a timeout value as a specific keep-alive value.
청구항 2에 있어서,
제어부는,
산출된 특정 킵얼라이브 값을 주기로 하여 킵얼라이브 메시지를 주기적으로 전송하는 것을 특징으로 하는 IoT 기기,
The method according to claim 2,
The control unit,
IoT device characterized by periodically transmitting a keep-alive message with the calculated specific keep-alive value as a period.
청구항 1에 있어서,
제어부는,
통신부가 새로운 네트워크에 접속된 경우, 특정 메시지를 서버에 송신하는 것을 특징으로 하는 IoT 기기.
The method according to claim 1,
The control unit,
IoT device characterized in that when the communication unit is connected to a new network, a specific message is transmitted to a server.
삭제delete 삭제delete 삭제delete IoT(Internet of Things) 기기가 복수개의 NAT(Network Address Translation)을 통해 서버와 연결되는 IoT 시스템에 있어서,
복수개의 NAT을 통해 서버와 연결되고, 타임아웃 값을 기록하기 위한 타임아웃 필드가 포함된 특정 메시지를 복수개의 NAT을 통해 서버에 송신하고, 서버로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 이용하여 특정 킵얼라이브(keep alive) 값을 산출하는 IoT 기기;
서버로부터 수신된 특정 응답 메시지에 자신의 타임아웃 값을 기록하고, 다른 NAT로부터 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송하는 복수개의 NAT; 및
IoT 기기로부터 수신된 특정 메시지에 대한 응답으로 특정 응답 메시지를 송신하는 서버;를 포함하고,
NAT는,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있지 않은 경우, 자신의 타임아웃 값을 특정 응답 메시지에 기록하고,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 큰 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하여 전송하며,
수신된 특정 응답 메시지에 타임아웃 값이 포함되어 있는 경우, 수신된 특정 응답 메시지에 포함된 타임아웃 값을 자신의 타임아웃 값과 비교하고, 특정 응답 메시지에 포함된 타임아웃 값이 자신의 타임아웃 값보다 작거나 같은 경우 자신의 타임아웃 값을 특정 응답 메시지에 기록하지 않고 그대로 전송하는 것을 특징으로 하는 IoT 시스템.
In the IoT system in which the Internet of Things (IoT) device is connected to the server through a plurality of network address translation (NAT),
It connects to the server through multiple NATs, and sends a specific message with a timeout field to record the timeout value to the server through multiple NATs, and the timeout value included in the specific response message received from the server. An IoT device for calculating a specific keep alive value by using;
It records its timeout value in a specific response message received from the server, compares the timeout value included in a specific response message received from another NAT with its timeout value, and the timeout value included in a specific response message A plurality of NATs that record and transmit their timeout value in a specific response message when the timeout value is greater than their own timeout value; And
Includes a server for transmitting a specific response message in response to the specific message received from the IoT device;
NAT,
If the timeout value is not included in the specific response message received, record the timeout value of the user in the specific response message,
If a specific response message received contains a timeout value, the timeout value included in the specific response message received is compared with its own timeout value, and the timeout value included in the specific response message is its timeout value. If it is greater than the value, it records and transmits its timeout value in a specific response message.
If a specific response message received contains a timeout value, the timeout value included in the specific response message received is compared with its own timeout value, and the timeout value included in the specific response message is its timeout value. IoT system characterized in that if it is less than or equal to the value, its timeout value is transmitted as it is without writing to a specific response message.
KR1020190149305A 2019-11-20 2019-11-20 IoT Device and IoT system to link with server through NAT KR102133139B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190149305A KR102133139B1 (en) 2019-11-20 2019-11-20 IoT Device and IoT system to link with server through NAT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190149305A KR102133139B1 (en) 2019-11-20 2019-11-20 IoT Device and IoT system to link with server through NAT

Publications (1)

Publication Number Publication Date
KR102133139B1 true KR102133139B1 (en) 2020-07-13

Family

ID=71570624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190149305A KR102133139B1 (en) 2019-11-20 2019-11-20 IoT Device and IoT system to link with server through NAT

Country Status (1)

Country Link
KR (1) KR102133139B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090123867A (en) * 2007-02-28 2009-12-02 마이크로소프트 코포레이션 Out-of-band keep-alive mechanism for clients associated with network address translation systems
KR20150109465A (en) * 2013-01-25 2015-10-01 퀄컴 인코포레이티드 Synchronizing generation and transmission of keep-alive messages

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090123867A (en) * 2007-02-28 2009-12-02 마이크로소프트 코포레이션 Out-of-band keep-alive mechanism for clients associated with network address translation systems
KR20150109465A (en) * 2013-01-25 2015-10-01 퀄컴 인코포레이티드 Synchronizing generation and transmission of keep-alive messages

Similar Documents

Publication Publication Date Title
KR102247485B1 (en) Internet of Things communication methods, devices and systems
WO2020259509A1 (en) Method and device for application migration
US10069933B2 (en) System and method for creating virtual interfaces based on network characteristics
US7729366B2 (en) Method, apparatus and system for network mobility of a mobile communication device
WO2018049966A1 (en) Method, apparatus and system for controlling video monitoring system
CN103118148A (en) Method and device for updating ARP (address resolution protocol) cache
CN104135460A (en) Method for keeping push channel active and push server
CN111526223B (en) Management method of edge service server, service data processing method and device
CN102355479A (en) Method and equipment for forwarding traffic of multi-NAT (network address translation) gateway
JP2016019179A (en) Communication apparatus, terminal device and program
CN103634214A (en) Route information generating method and device
JP6563425B2 (en) Multi-hop capability and routing discovery per link
US9948598B2 (en) Delivery control device, data delivery system, delivery control method, and non-transitory computer readable medium storing delivery control program
US20150047009A1 (en) Access control method, access control system and access control device
US10135729B2 (en) Distributed gateway for local subnet
KR102133139B1 (en) IoT Device and IoT system to link with server through NAT
US10044590B2 (en) Method of effective retaining of NAT channel service
CN103916489A (en) Method and system for resolving single-domain-name multi-IP domain name
KR101378313B1 (en) Method, appratus, system and computer-readable recording medium for assisting communication between terminal and local host by using openflow
CN105100300A (en) Method and device for network address translation
KR102231064B1 (en) IoT Device and IoT communication method to link with server through NAT
CN114598532A (en) Connection establishing method, device, electronic equipment and storage medium
KR102023115B1 (en) Communication method based on integrated flat id and system
US11310310B2 (en) Communication device for peer-to-peer communication and a communication network using the same
WO2020118689A1 (en) Service chaining mechanism for data flow processing

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Publication of correction