KR20100120110A - Apparatus and method for cooperatively updating firmware on wireless mesh network - Google Patents

Apparatus and method for cooperatively updating firmware on wireless mesh network Download PDF

Info

Publication number
KR20100120110A
KR20100120110A KR1020100103929A KR20100103929A KR20100120110A KR 20100120110 A KR20100120110 A KR 20100120110A KR 1020100103929 A KR1020100103929 A KR 1020100103929A KR 20100103929 A KR20100103929 A KR 20100103929A KR 20100120110 A KR20100120110 A KR 20100120110A
Authority
KR
South Korea
Prior art keywords
update
target node
code image
script
mesh network
Prior art date
Application number
KR1020100103929A
Other languages
Korean (ko)
Other versions
KR101383691B1 (en
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 KR1020100103929A priority Critical patent/KR101383691B1/en
Publication of KR20100120110A publication Critical patent/KR20100120110A/en
Priority to US13/280,957 priority patent/US8793680B2/en
Application granted granted Critical
Publication of KR101383691B1 publication Critical patent/KR101383691B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/02Arrangements for optimising operational condition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Abstract

PURPOSE: An apparatus and a method for cooperatively updating firmware on a wireless mesh network are provided to reduce a bandwidth by updating a firmware through inter-node cooperation. CONSTITUTION: When the updating of an execution code image for a target node in a mesh network is required, an update script generator(304) generates a code update script in reference to the execution code image of neighbor nodes and the execution code image of the target node stored in a code image DB(302). The update script generator updates the target node based on the code update script.

Description

무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법{APPARATUS AND METHOD FOR COOPERATIVELY UPDATING FIRMWARE ON WIRELESS MESH NETWORK}Apparatus and method for cooperative wireless firmware update in wireless mesh network {APPARATUS AND METHOD FOR COOPERATIVELY UPDATING FIRMWARE ON WIRELESS MESH NETWORK}

본 발명은 무선 메쉬 네트워크(wireless mesh network)에 관한 것으로, 특히 무선 메쉬 네트워크에서 노드(node)간의 협력을 통해 대역폭(bandwidth)을 절약하면서도 안정적으로 펌웨어 업데이트(firmware update)를 수행할 수 있도록 하는 무선 메쉬 네트워크에서의 협력적 무선 펌웨어 업데이트 장치 및 방법에 관한 것이다.
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a wireless mesh network, and more particularly to wirelessly reliably perform firmware updates while saving bandwidth through cooperation between nodes in a wireless mesh network. An apparatus and method for cooperative wireless firmware update in a mesh network are provided.

통상적으로, 무선 메쉬 네트워크 기술이란 기존의 무선 LAN에서 사용되는 액세스 포인트(access point)에 멀티홉 라우팅 등의 네트워킹 기능을 탑재하고 이들을 무선 통신 기술을 이용하여 서로 연결함으로써 유선망과의 연결 없이도 광범위한 지역을 커버할 수 있도록 하는 네트워크 기술을 말한다.In general, wireless mesh network technology includes a networking function such as multi-hop routing at an access point used in a conventional wireless LAN and connects them to each other using a wireless communication technology to connect a wide area without a wired network. Network technology that can be covered.

위와 같은 무선 메쉬 네트워크에서는 노드들이 사람의 손이 닿기 힘든 곳에 설치되거나 많은 수의 노드들이 설치되기 때문에 한번 설치하면 수거하기가 어려우며, 이에 따라 노드들의 소프트웨어를 유지보수하기가 어렵다. 이를 해결하기 위하여 무선으로 노드들의 펌웨어를 업데이트하는 다양한 FOTA(Firmware Over-the-Air) 기술들이 제안되고 있다.In the wireless mesh network as described above, it is difficult to collect once installed because the nodes are installed in a location that is hard to reach, or because a large number of nodes are installed. Therefore, it is difficult to maintain the software of the nodes. To solve this problem, various FOTA (Firmware Over-the-Air) technologies have been proposed to update the firmware of nodes wirelessly.

이러한 기술들은 대부분 펌웨어 업데이트를 위한 코드 이미지의 크기를 줄이는 것을 기본으로 한다. 노드에서 실행중인 코드 이미지와 새롭게 전송할 코드 이미지를 비교하여 리눅스의 diff 프로그램처럼 둘 사이의 차이점을 기술한 차분 스크립트를 생성한다. 타겟 노드는 이렇게 생성된 스크립트를 이용하여 기존 실행코드 이미지와 새로운 실행코드 이미지간 중복되는 부분을 최대한 활용, 새로운 실행코드 이미지를 생성한다. Most of these techniques are based on reducing the size of code images for firmware updates. It compares the code image running on the node with the newly transferred code image and creates a differential script that describes the differences between the two, like the diff program in Linux. The target node uses the generated script to create a new executable image by making the most of the overlap between the existing executable image and the new executable image.

이러한 방법은 기존 코드에서 일부 부분만 수정되는 경우에 약간의 스크립트 전송으로 새로운 코드를 생성 가능하므로, 대역폭 절약의 효과가 매우 크다. 하지만 기존 코드 이미지와 전혀 다른 새로운 이미지로 변경할 때에는 스크립트의 크기보다 새로운 코드 이미지 자체의 크기가 작을 수 있다.This method saves a lot of bandwidth because new code can be generated by sending a little script when only a part of the existing code is modified. However, when changing to a new image that is completely different from the existing code image, the new code image itself may be smaller than the size of the script.

한편, 무선 메쉬 네트워크에서는 노드들이 자율적으로 네트워크를 구성하며 멀티홉으로 데이터를 전송한다. 이러한 환경에서 특정 지역의 여러 노드들을 비슷한 내용으로 업데이트하기 위해서는 비슷한 데이터를 멀티홉으로 여러 번 전송해야 하므로 대역폭 낭비가 발생한다.
Meanwhile, in a wireless mesh network, nodes autonomously form a network and transmit data in multihops. In such an environment, updating multiple nodes in a specific region with similar content requires a waste of bandwidth because similar data must be transmitted multiple times in multiple hops.

즉, 종래 무선 메쉬 네트워크에서 순차적 네트워크 리프로그래밍(re-programing)의 개념을 도시한 도 1에서 보여 지는 바와 같이, 종래에는 기지국(base station : BS)(100)에서 업데이트가 필요한 타겟 노드(target node)까지 중간 노드에서 업데이트를 위한 동일한 데이터 크기의 원본 이미지(raw image)를 계속 전송하도록 하고 있어 이미지의 업데이트를 위해 네트워크의 대역폭 사용이 크게 됨으로써 네트워크의 대역폭(bandwidth)이 불필요하게 낭비되는 문제점이 있었다.That is, as shown in FIG. 1 illustrating the concept of sequential network re-programming in a conventional wireless mesh network, a target node that needs to be updated in a base station (BS) 100 is conventionally required. Since the intermediate node keeps transmitting the original image of the same data size for updating, the network bandwidth is used to update the image, which causes unnecessary waste of network bandwidth. .

따라서, 본 발명은 무선 메쉬 네트워크에서의 각 노드가 커널, 네트워크 스택, 응용 프로토콜 등의 공통적으로 사용하는 바이너리 정보를 이용하여 기지국에서 타겟 노드까지 원본 이미지 대신 차분 스크립트를 전송하는 방식으로 노드간 협력을 통한 펌웨어 업데이트를 수행함으로서 대역폭을 절약하면서도 보다 안정적으로 펌웨어의 업데이트 및 유지 관리가 가능하도록 하는 무선 메쉬 네트워크에서 협력적 무선 펌웨어 업데이트 장치 및 방법을 제공하고자 한다.
Therefore, in the present invention, each node in the wireless mesh network uses the binary information commonly used by the kernel, the network stack, and the application protocol to transmit the differential script instead of the original image from the base station to the target node. The present invention provides a cooperative wireless firmware update apparatus and method in a wireless mesh network that enables firmware update and maintenance more reliably by performing firmware update through the firmware.

상술한 본 발명은 무선 메쉬 네트워크에서 펌웨어 업데이트 장치로서, 상기 메쉬 네트워크내 각 노드별 실행코드 상기 실행코드 이미지와 이미지의 버전 정보를 저장하는 코드 이미지 DB와, 상기 메쉬 네트워크내 임의의 타겟 노드에 대한 실행코드 이미지의 업데이트가 필요한 경우 상기 코드 이미지 DB내 저장된 상기 타겟 노드의 실행코드 이미지와 이웃 노드들의 실행코드 이미지를 참조하여 코드 업데이트 스크립트를 생성한 후, 상기 코드 업데이트 스크립트를 이용하여 상기 타겟 노드에 대한 업데이트를 수행하는 업데이트 스크립트 생성기를 포함한다.The present invention as described above is a firmware updater in a wireless mesh network, the execution code for each node in the mesh network code image DB for storing the execution code image and version information of the image, and any target node in the mesh network If an update of the execution code image is required, a code update script is generated by referring to the execution code image of the target node and the execution code image of neighbor nodes stored in the code image DB, and then to the target node using the code update script. Includes an update script generator that performs an update on

또한, 상기 코드 이미지 DB는, 상기 업데이트 스크립트 생성기에 의해 상기 타겟노드에 대한 업데이트가 수행되는 경우 상기 업데이트된 새로운 실행코드 이미지를 갱신 저장하는 것을 특징으로 한다.The code image DB may update and store the updated new executable code image when an update is performed on the target node by the update script generator.

또한, 상기 업데이트 스크립트 생성기는, 상기 타겟 노드의 업데이트가 필요한 경우, 상기 타겟 노드로 업데이트 요청 메시지를 전송하고, 상기 타겟 노드로부터 상기 업데이트 요청 메시지에 대응하는 업데이트 응답 메시지를 수신한 후, 상기 업데이트 응답 메시지에 포함된 정보를 이용하여 상기 타겟 노드의 업데이트를 위한 코드 업데이트 스크립트를 생성하는 것을 특징으로 한다.The update script generator may transmit an update request message to the target node when an update of the target node is required, and after receiving an update response message corresponding to the update request message from the target node, updates the response. And generating a code update script for updating the target node by using the information included in the message.

또한, 상기 업데이트 요청 메시지는, 상기 무선 메쉬 네트워크와 업데이트 스크립트 생성기간 데이터 송/수신을 인터페이스하는 기지국을 통해 상기 타겟 노드로 전송되는 것을 특징으로 한다.The update request message may be transmitted to the target node through a base station that interfaces data transmission / reception period with the wireless mesh network and update script generation period.

또한, 상기 타겟 노드는, 상기 업데이트 요청 메시지의 수신 시 상기 업데이트 요청 메시지에 포함된 새로운 실행코드 이미지의 버전이 현재 버전보다 높을 경우, 이웃 노드들에게 업데이트 협조 요청 메시지를 멀티캐스트 전송하는 것을 특징으로 한다.The target node may multicast the update coordination request message to neighbor nodes when the version of the new execution code image included in the update request message is higher than the current version when the update request message is received. do.

또한, 상기 업데이트 협조 요청 메시지는, 상기 타겟 노드로부터 기설정된 홉수의 멀티캐스트 반경의 이웃 노드들에게 전송되는 것을 특징으로 한다.The update coordination request message may be transmitted from the target node to neighboring nodes of a multicast radius of a predetermined hop number.

또한, 상기 타겟 노드는, 상기 업데이트 협조 요청 메시지를 멀티캐스트 전송한 후, 기설정된 시간동안 상기 이웃 노드들로부터 상기 업데이트 협조 요청 메시지에 대한 업데이트 협조 응답 메시지를 수신하는 것을 특징으로 한다.The target node may receive an update cooperation response message for the update cooperation request message from the neighbor nodes for a preset time after multicasting the update cooperation request message.

또한, 상기 타겟 노드는, 상기 업데이트 협조 응답 메시지를 수신하는 경우, 상기 업데이트 협조 응답 메시지를 바탕으로 이웃 노드들의 참여 여부 정보를 포함하는 업데이트 응답 메시지를 상기 업데이트 스크립트 생성기로 전송하는 것을 특징으로 한다.In addition, when the target node receives the update cooperation response message, the target node transmits an update response message including information on whether the neighbor nodes participate in the update coordination response message to the update script generator.

또한, 상기 업데이트 스크립트 생성기는, 상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지들을 대상으로 각각 차분 스크립트를 생성하고, 상기 차분 스크립트와 상기 실행코드 이미지가 참조된 이웃 노드들과의 거리 정보를 참조하여 최소의 대역폭을 사용하는 코드 업데이트 스크립트를 생성하고 이를 상기 타켓 노드로 전송하여 업데이트를 수행하는 것을 특징으로 한다.The update script generator may generate a difference script for each of the current execution code image of the target node and the execution code images of neighbor nodes, and the distance between the difference script and the neighbor nodes to which the execution code image is referenced. A code update script using the minimum bandwidth is generated with reference to the information, and the code update script is transmitted to the target node to perform the update.

또한, 상기 타켓 노드는, 상기 업데이트 스크립트 생성기로부터 전송되는 상기 코드 업데이트 스크립트를 하나의 행씩 실행시키면서 업데이트할 새로운 코드 이미지를 생성하는 것을 특징으로 한다.The target node may generate a new code image to be updated while executing the code update script transmitted from the update script generator line by line.

또한, 상기 타겟 노드는, 상기 새로운 실행코드 이미지의 생성 시, 이웃 노드들로부터 참조해야 하는 실행코드 이미지가 있는 경우, 해당 이웃 노드로 코드 참조 요청 메시지를 전송하고 응답을 수신하여 상기 참조가 필요한 실행코드 이미지를 생성하는 것을 특징으로 한다.In addition, when generating the new executable code image, when there is an executable code image to be referred to from neighboring nodes, the target node transmits a code reference request message to the corresponding neighbor node, receives a response, and executes the reference. Characterized by generating a code image.

또한, 본 발명은 무선 메쉬 네트워크에서 펌웨어 업데이트 방법으로서, 상기 메쉬 네트워크내 임의의 타겟 노드에 대해 실행코드 이미지의 업데이트가 필요한지를 검사하는 단계와, 상기 실행코드 이미지의 업데이트가 필요한 경우 상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지를 참조하여 실행코드 업데이트 스크립트를 생성하는 단계와, 상기 코드 업데이트 스크립트를 이용하여 상기 타겟 노드에 대한 실행코드 이미지를 생성하는 단계와, 상기 타겟 노드에서 생성된 실행코드 이미지의 무결성을 검증하기 위하여 해쉬 함수를 통한 다이제스트를 생성하는 단계와, 상기 생성된 다이제스트의 비교를 통해 실제 업데이트 실행 여부를 결정하는 단계를 포함한다.In addition, the present invention is a firmware update method in a wireless mesh network, the step of checking whether the update of the executable code image for any target node in the mesh network, and if the update of the executable code image is required Generating an execution code update script by referring to a current execution code image and execution code images of neighboring nodes, generating an execution code image for the target node using the code update script, and generating at the target node Generating a digest through a hash function to verify the integrity of the executed executable image, and determining whether to perform the actual update by comparing the generated digest.

또한, 상기 코드 업데이트 스크립트를 생성하는 단계는, 상기 타겟 노드의 업데이트가 필요한 경우, 상기 타겟 노드로 업데이트 요청 메시지를 전송하는 단계와, 상기 타겟 노드로부터 상기 업데이트 요청 메시지에 대응하는 업데이트 응답 메시지를 수신하는 단계와, 상기 업데이트 응답 메시지에 포함된 정보를 이용하여 상기 타겟 노드의 업데이트를 위한 코드 업데이트 스크립트를 생성하는 단계를 포함한다.The generating of the code update script may include transmitting an update request message to the target node when an update of the target node is required, and receiving an update response message corresponding to the update request message from the target node. And generating a code update script for updating the target node by using the information included in the update response message.

또한, 상기 코드 업데이트 스크립트를 생성하는 단계는, 상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지들을 대상으로 각각 차분 스크립트를 생성하는 단계와, 상기 차분 스크립트와 상기 실행코드 이미지가 참조된 이웃 노드들과의 거리 정보를 참조하여 최소의 대역폭을 사용하는 코드 업데이트 스크립트를 생성하는 단계와, 상기 생성된 코드 업데이트 스크립트를 상기 타켓 노드로 전송하여 업데이트를 수행하는 단계를 포함한다.The generating of the code update script may include generating a difference script for each of the current execution code image of the target node and the execution code images of neighboring nodes, and referring to the difference script and the execution code image. Generating a code update script using a minimum bandwidth by referring to distance information with neighbor nodes, and transmitting the generated code update script to the target node to perform an update.

또한, 상기 실행코드 이미지의 업데이트를 수행하는 단계는, 상기 타겟 노드에 대해 업데이트할 새로운 실행코드 이미지를 생성한 경우 생성된 이미지의 다이제스트를 생성하여 펌웨어 업데이트 장치로 생성 이미지 확인 메시지를 전송하는 단계와, 상기 다이제스트와 원본 실행코드 이미지의 다이제스트 값 비교를 통해 무결성을 검증하고, 검증되는 경우 상기 타겟 노드에서 펌웨어 업데이트를 수행하도록 업데이트 실행 메시지를 상기 타겟 노드로 전송하는 단계와, 상기 업데이트 실행 메시지를 수신한 상기 타겟 노드에서 펌웨어 업데이트를 수행하고, 정상적으로 업데이트 되는 경우 상기 코드 이미지 DB로 업데이트 확인 메시지를 전송하는 단계와, 상기 코드 이미지 DB에서 상기 업데이트 확인 메시지를 수신한 경우, DB내 해당 내용을 갱신하는 단계를 포함하는 것을 특징으로 한다.The updating of the executable code image may include generating a digest of the generated image and transmitting a generated image confirmation message to the firmware updater when generating a new executable code image to be updated for the target node; Verifying integrity by comparing a digest value of the digest with an original execution code image, and if verified, transmitting an update execution message to the target node to perform a firmware update on the target node, and receiving the update execution message. A firmware update is performed at the target node, and if it is normally updated, transmitting an update confirmation message to the code image DB, and updating the corresponding contents in the DB when receiving the update confirmation message from the code image DB. only It is characterized by including a system.

또한, 상기 업데이트 요청 메시지의 수신 시, 상기 타겟 노드에서 상기 업데이트 요청 메시지에 포함된 새로운 실행코드 이미지의 버전이 현재 버전과 같은지를 검사하는 단계와, 상기 새로운 실행코드 이미지의 버전이 현재 버전보다 높은 경우, 이웃 노드들에게 업데이트 협조 요청 메시지를 멀티캐스트 전송하는 단계를 더 포함하는 것을 특징으로 한다.In addition, when the update request message is received, checking, by the target node, that the version of the new executable code image included in the update request message is the same as the current version, and wherein the version of the new executable code image is higher than the current version. In this case, the method may further include multicasting an update coordination request message to neighbor nodes.

또한, 상기 업데이트 협조 요청 메시지를 멀티캐스트 전송한 후, 상기 타겟 노드에서 기설정된 시간동안 상기 이웃 노드들로부터 상기 업데이트 협조 요청 메시지에 대한 응답 메시지를 수집하는 단계를 더 포함하는 것을 특징으로 한다.The method may further include collecting a response message for the update cooperation request message from the neighbor nodes for a preset time in the target node after multicasting the update cooperation request message.

또한, 상기 업데이트 협조 응답 메시지를 수신하는 경우, 상기 타겟 노드에서 상기 업데이트 협조 응답 메시지를 바탕으로 이웃 노드들의 참여 여부 정보를 포함하는 업데이트 응답 메시지를 반송하는 단계를 더 포함하는 것을 특징으로 한다.In addition, when receiving the update cooperation response message, the target node further comprises the step of returning an update response message including information on whether the neighbor nodes to participate based on the update cooperation response message.

또한, 상기 업데이트 협조 요청 메시지는, 상기 타겟 노드로부터 기설정된 홉수의 멀티캐스트 반경의 이웃 노드들에게 전송되는 것을 특징으로 한다.
The update coordination request message may be transmitted from the target node to neighboring nodes of a multicast radius of a predetermined hop number.

본 발명에서는 무선 메쉬 네트워크에서의 각 노드가 커널, 네트워크 스택, 응용 프로토콜 등의 공통적으로 사용하는 바이너리 정보를 이용하여 기지국에서 타겟 노드까지 원본 이미지 대신 차분 스크립트를 전송하는 방식으로 노드간 협력을 통한 펌웨어 업데이트를 수행함으로서 대역폭을 절약하면서도 보다 안정적으로 펌웨어의 업데이트 및 유지 관리가 가능하게 되는 이점이 있다.
In the present invention, each node in the wireless mesh network by using the binary information commonly used, such as kernel, network stack, application protocols, etc. firmware by the cooperation between the nodes to transmit the differential script instead of the original image from the base station to the target node The advantage of performing the update is that the firmware can be updated and maintained more reliably while saving bandwidth.

도 1은 기지국에서 타겟 노드까지 원본 이미지를 전송하는 종래의 무선 메쉬 네트워크에서의 펌웨어 업데이트 방법을 설명하기 위한 도면,
도 2는 무선 메쉬 네트워크의 노드간 실행코드 이미지의 구성을 도시한 도면,
도 3은 본 발명의 실시 예에 따른 무선 메쉬 네트워크에서 협력적 무선 펌웨어 업데이트 장치의 구성을 도시한 도면,
도 4는 본 발명의 실시 예에 따른 무선 펌웨어 업데이트 장치에서 타겟 노드에 대한 업데이트를 요청하는 처리 흐름을 도시한 도면,
도 5는 본 발명의 실시 예에 따른 무선 펌웨어 업데이트 장치에서 타겟 노드에 대한 업데이트를 응답을 처리하는 처리 흐름을 도시한 도면,
도 6은 본 발명의 실시 예에 따라 업데이트 스크립트 전송 및 이웃 노드에게 코드 참조를 요청하는 신호 처리 흐름을 도시한 도면,
도 7은 본 발명의 실시 예에 따른 업데이트에 따라 코드 이미지 및 다이제스트를 생성하는 신호 처리 흐름을 도시한 도면,
도 8은 본 발명의 실시 예에 따라 코드 이미지의 무결성을 확인 후, 펌웨어 업데이트를 실행하는 신호 처리 흐름을 도시한 도면,
도 9는 본 발명의 실시 예에 따라 펌웨어 업데이트가 완료된 후, 업데이트 완료 상태를 보고하고, 코드 이미지 DB의 내용을 갱신하는 신호 처리 흐름을 도시한 도면,
도 10은 본 발명의 실시 예에 따른 무선 메쉬 네트워크에서 협력적 펌웨어 업데이트를 통한 순차적 네트워크 리프로그래밍 개념을 도시한 도면.
1 is a view for explaining a firmware update method in a conventional wireless mesh network transmitting an original image from a base station to a target node,
2 is a diagram illustrating a configuration of an execution code image between nodes of a wireless mesh network;
3 is a diagram illustrating a configuration of a cooperative wireless firmware update apparatus in a wireless mesh network according to an embodiment of the present invention;
4 is a flowchart illustrating a processing request for updating a target node in a wireless firmware updater according to an embodiment of the present invention;
5 is a flowchart illustrating a process of processing a response to update a target node in a wireless firmware updater according to an embodiment of the present invention;
6 is a diagram illustrating a signal processing flow of transmitting an update script and requesting a code reference to a neighbor node according to an embodiment of the present invention;
7 illustrates a signal processing flow of generating a code image and a digest according to an update according to an embodiment of the present invention;
8 is a diagram illustrating a signal processing flow of executing a firmware update after checking the integrity of a code image according to an embodiment of the present invention;
9 is a diagram illustrating a signal processing flow for reporting an update completion state and updating contents of a code image DB after a firmware update is completed according to an embodiment of the present invention;
10 illustrates a sequential network reprogramming concept through cooperative firmware update in a wireless mesh network according to an embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the present invention. In the following description of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intentions or customs of the user, the operator, and the like. Therefore, the definition should be made based on the contents throughout the specification.

도 2는 무선 메쉬 네트워크의 노드간 실행코드 이미지의 구성을 도시한 것이다.2 illustrates a configuration of an execution code image between nodes of a wireless mesh network.

도 2에서 보여지는 바와 같이, 무선 메쉬 네트워크에서의 각 노드들은 서로 수행하는 응용 프로그램(application program)이 다를 수 있다. 하지만 커널(kernel), 네트워크 스택(network stack), 응용 프로토콜(application protocol) 등은 모든 노드들이 공통적으로 사용하기 때문에 각 노드의 코드 이미지에는 해당 모듈들의 바이너리(binary)가 공통적으로 존재할 수 있다. 이러한 성질을 응용하여 응용 프로그램 외의 다른 공통적인 부분들을 업데이트할 때에는 이웃 노드들을 활용하게 하면 효율적으로 업데이트가 가능하다.As shown in FIG. 2, each node in the wireless mesh network may have a different application program. However, the kernel, network stack, application protocol, etc. are used by all nodes in common, so the binary of each module can be commonly found in the code image of each node. By applying this property, when updating common parts other than the application program, neighbor nodes can be efficiently updated.

도 3은 본 발명의 실시 예에 따른 무선 메쉬 네트워크에서 협력적 무선 펌웨어 업데이트 장치의 구성을 도시한 것이다.3 illustrates a configuration of a cooperative wireless firmware update apparatus in a wireless mesh network according to an exemplary embodiment of the present invention.

위 도 3을 참조하면 본 발명의 무선 펌웨어 업데이트 장치(300)는 무선 메쉬 네트워크를 구성하는 노드들(310)과 노드들에서 현재 실행중인 코드 이미지를 관리하는 코드 이미지 DB(data base)(302), 그리고 업데이트 스크립트 생성기(304) 등을 포함한다.Referring to FIG. 3 above, the wireless firmware update apparatus 300 of the present invention includes a code image DB (data base) 302 managing nodes 310 constituting a wireless mesh network and a code image currently running on the nodes. And an update script generator 304.

업데이트 스크립트 생성기(304)는 특정 노드의 실행 코드를 변경하고자 할 때 코드 이미지 DB(302)에 저장되어 있는 해당 노드와 그 노드의 이웃 노드들의 실행코드 이미지를 참고하여 코드 업데이트 스크립트(code update script)(305)를 생성한다. When the update script generator 304 wants to change the execution code of a specific node, the code update script refers to the execution code image of the node and neighbor nodes of the node stored in the code image DB 302. Generate 305.

코드 이미지 DB(302)에는 각 노드별 실행 코드 이미지와 이미지의 버전 번호(verson number) 등이 저장되어 있다. 따라서 어떤 노드의 실행 코드 이미지가 변경되었다면, 코드 이미지 DB(302)에도 변경된 이미지 데이터가 갱신되어야 한다. 이때, 실행코드 이미지들을 저장하고 관리하는 이유는 코드 이미지를 업데이트할 때 생성할 차분 스크립트에 활용하기 위함이다. 각 노드에는 실행할 코드 이미지의 버전 관리를 위하여 현재 실행중인 코드의 버전 등의 정보를 별도로 저장한다. The code image DB 302 stores an execution code image for each node, a version number of an image, and the like. Therefore, if the execution code image of a node is changed, the changed image data must also be updated in the code image DB 302. At this time, the reason for storing and managing the executable code images is to utilize them in the difference script to be generated when updating the code image. Each node stores information such as the version of the currently running code for version control of the code image to be executed.

도 4는 본 발명의 실시 예에 따른 무선 펌웨어 업데이트 장치(300)에서 타겟노드(target node)(400)에 대한 업데이트를 수행하기 위한 신호 처리 흐름을 도시한 것으로, 특히 업데이트를 요청하는 처리 흐름을 도시한 것이다.4 illustrates a signal processing flow for performing an update on a target node 400 in the wireless firmware update apparatus 300 according to an embodiment of the present invention. In particular, FIG. It is shown.

이하 도 4를 참조하여 무선 펌웨어 업데이트 장치(300)에서 노드간 스크립트의 전송을 통해 타겟 노드(400)에 대한 협력적 업데이트를 수행하는 동작을 상세히 설명하기로 한다.Hereinafter, referring to FIG. 4, an operation of performing the cooperative update of the target node 400 by transmitting the script between the nodes in the wireless firmware update apparatus 300 will be described in detail.

위 도 4를 참조하면, 기지국(base station)(306)에서 업데이트할 타겟 노드(400)의 새로운 코드 이미지가 생성되었다면, 코드 이미지 DB(302)에 저장되어 있는 타겟 노드(400)의 버전을 참조하여 해당 타겟 노드(400)에게 현재 실행되고 있는 코드의 버전과 그보다 한 계단 높은 새로운 버전의 번호를 포함하는 업데이트 요청 메시지를 생성하여 전송한다(S10).Referring to FIG. 4 above, if a new code image of the target node 400 to be updated at the base station 306 is generated, refer to the version of the target node 400 stored in the code image DB 302. In step S10, the target node 400 generates and sends an update request message including the version of the code currently being executed and the number of the new version one step higher.

그러면, 업데이트 요청 메시지를 수신한 타겟 노드(400)는 메시지에 포함된 현재 버전 값이 자신의 현재 버전보다 높을 경우, 업데이트 협조 요청 메시지를 주변에 멀티캐스트(multicast) 전송한 후(S12), 일정 시간 동안 업데이트 협조 응답 메시지를 수집한다. Then, when the target node 400 receiving the update request message is higher than its current version, the target node 400 multicasts the update coordination request message around (S12), and then schedules the schedule. Collect update coordination response messages over time.

이때, 타겟 노드(400)는 업데이트 협조 요청 메시지를 1홉 또는 그 이상 홉의 멀티캐스트 반경의 이웃 노드들(402)에게 전송한다. 이때, 멀티캐스트의 반경은 기지국(306)과 타겟 노드(400)간 거리보다 가까워야 네트워크 대역폭을 절약할 수 있을 것으로 기대된다.At this time, the target node 400 transmits an update cooperation request message to neighbor nodes 402 of a multicast radius of one or more hops. In this case, it is expected that the radius of the multicast should be closer than the distance between the base station 306 and the target node 400 to save the network bandwidth.

도 5는 본 발명의 실시 예에 따른 무선 펌웨어 업데이트 장치(300)에서 타겟노드(400)에 대한 업데이트를 수행하기 위한 신호 처리 흐름을 도시한 것으로, 특히 업데이트를 응답을 처리하는 처리 흐름을 도시한 것이다.FIG. 5 illustrates a signal processing flow for performing an update to the target node 400 in the wireless firmware update apparatus 300 according to an embodiment of the present invention. In particular, FIG. will be.

이하 도 5를 참조하여 무선 펌웨어 업데이트 장치(300)에서 노드간 스크립트의 전송을 통해 타겟 노드(400)에 대한 협력적 업데이트를 수행하는 동작을 상세히 설명하기로 한다.Hereinafter, an operation of performing the cooperative update of the target node 400 by transmitting the script between the nodes in the wireless firmware update apparatus 300 will be described in detail with reference to FIG. 5.

먼저, 업데이트 협조 요청 메시지를 수신한 이웃 노드들(402)은 업데이트 협조 응답 메시지를 통해 협조 가능 여부를 해당 노드에게 통보한다(S14). 이웃 노드들(402)은 만약 전원 부족 등의 문제로 협조가 불가능할 경우 협조를 거절할 수 있다. 타겟 노드(400)는 일정 시간 동안 수집한 업데이트 협조 응답 메시지를 바탕으로 이웃 노드들(402)의 참여 여부 정보를 포함하는 업데이트 응답 메시지를 기지국(306)으로 전송한다(S16).First, neighbor nodes 402 receiving the update cooperation request message notify the corresponding node whether or not they can cooperate through an update cooperation response message (S14). The neighbor nodes 402 may refuse to cooperate if cooperation is not possible due to lack of power. The target node 400 transmits an update response message including information on whether the neighbor nodes 402 participate, based on the update cooperation response message collected for a predetermined time, to the base station 306 (S16).

그러면, 기지국(306)은 수신된 업데이트 응답 메시지를 업데이트 스크립트 생성기(304)로 인가하며, 업데이트 스크립트 생성기(304)는 업데이트 응답 메시지에 포함된 정보들을 활용하여 코드 업데이트 스크립트를 생성한다(S18). 이때, 업데이트 스크립트 생성기(304)는 코드 이미지 DB(302)에 저장된 타겟 노드(400)와 이웃 노드들(402)의 코드 이미지들을 활용하여 네트워크 대역폭을 최소한으로 사용하는 코드 업데이트 스크립트를 생성한다.Then, the base station 306 authorizes the received update response message to the update script generator 304, and the update script generator 304 generates a code update script using information included in the update response message (S18). At this time, the update script generator 304 generates a code update script that uses the minimum network bandwidth by utilizing the code images of the target node 400 and the neighbor nodes 402 stored in the code image DB (302).

즉, 업데이트 스크립트 생성기(304)는 타겟 노드(400)의 현재 이미지와 이웃 노드들(402)의 이미지들을 대상으로 각각 차분 스크립트를 생성하고, 이 차분 스크립트들과 참조한 이웃 노드들(402)과의 거리 등을 고려하여 최소의 네트워크 대역폭을 사용하는 업데이트 스크립트를 생성한다. That is, the update script generator 304 generates a difference script for each of the current image of the target node 400 and the images of the neighbor nodes 402, and the difference script and the referenced neighbor nodes 402. Create an update script that uses the minimum network bandwidth, taking into account the distance.

도 6은 본 발명의 실시 예에 따라 업데이트 스크립트 전송 및 이웃 노드에게 코드 참조를 요청하는 신호 처리 흐름을 도시한 것이다.6 illustrates a signal processing flow for transmitting an update script and requesting a code reference to a neighbor node according to an embodiment of the present invention.

위 도 6에서 보여지는 바와 같이, 도 4 내지 도 5의 과정을 통해 생성된 코드 업데이트 스크립트(305)는 타겟 노드(400)에 업데이트 스크립트 메시지를 통해 전송된다(S20). 그러면, 타겟 노드(400)는 스크립트를 한 행씩 실행시켜 나가면서 새로운 코드 이미지를 생성한다. 이때 만일 이웃 노드들(402)로부터 참조해야 할 코드 조각이 있다면 코드 참조 요청 메시지를 이웃 노드들(402)에 전송한다(S22). 이에 따라 이웃 노드들(402)은 후술될 도 7에 도시된 바와 같은 코드 참조 응답 메시지를 통해 해당 이미지 조각을 제공한다(S24).As shown in FIG. 6, the code update script 305 generated through the process of FIGS. 4 to 5 is transmitted to the target node 400 through an update script message (S20). Then, the target node 400 generates a new code image while executing the script line by line. At this time, if there are code fragments to be referred from the neighbor nodes 402, a code reference request message is transmitted to the neighbor nodes 402 (S22). Accordingly, the neighbor nodes 402 provide the corresponding image fragments through the code reference response message as shown in FIG. 7 to be described later (S24).

도 7은 본 발명의 실시 예에 따른 업데이트에 따라 코드 이미지 및 다이제스트를 생성하는 신호 처리 흐름을 도시한 것이다.7 illustrates a signal processing flow for generating a code image and a digest according to an update according to an embodiment of the present invention.

타겟 노드(400)는 이웃 노드들(402)로부터의 코드 참조 응답 메시지를 통해 완성된 이미지는 해쉬 함수 등을 통해 다이제스트를 생성하여(S26), 생성 이미지 확인 메시지를 기지국(306)에 전송한다(S28). 그러면, 기지국(306)은 이 다이제스트 값과 새로운 이미지의 원본의 다이제스트 값을 비교하여 생성된 이미지의 무결성을 검증한다. The target node 400 generates a digest through a code reference response message from the neighbor nodes 402 through a hash function (S26) and transmits the generated image confirmation message to the base station 306 (S26). S28). Base station 306 then compares this digest value with the digest value of the original of the new image to verify the integrity of the generated image.

이후 도 8에 도시된 바와 같이 업데이트 스크립트 생성기(304)에서 타겟 노드(400)로 업데이트 실행 메시지를 전송하고(S30), 타겟 노드(400)에서는 펌웨어 업데이트를 실행하게 된다(S32). 이어, 타겟 노드(400)가 업데이트되는 경우에는 도 9에서 도시된 바와 같이 타겟 노드(400)가 업데이트 완료된 후 업데이트 확인 메시지를 기지국(306)을 통해 업데이트 스크립트 생성기(304)에 전송하게 되며(S34), 업데이트 스크립트 생성기(304)는 코드 이미지 DB(302)에 타겟 노드(400)의 실행코드 이미지를 갱신시킨다(S34).Thereafter, as shown in FIG. 8, the update script generator 304 transmits an update execution message to the target node 400 (S30), and the target node 400 executes the firmware update (S32). Subsequently, when the target node 400 is updated, as shown in FIG. 9, after the update is completed, the target node 400 transmits an update confirmation message to the update script generator 304 through the base station 306 (S34). The update script generator 304 updates the execution code image of the target node 400 to the code image DB 302 (S34).

도 10은 본 발명의 실시 예에 따른 무선 메쉬 네트워크에서 협력적 펌웨어 업데이트를 통한 순차적 네트워크 리프로그래밍 개념을 도시한 것이다.10 illustrates a sequential network reprogramming concept through cooperative firmware update in a wireless mesh network according to an embodiment of the present invention.

종래의 차분 스크립트 전송 방법에서는 기지국에서 타겟 노드까지 원본 이미지 대신 스크립트를 전송하여 네트워크 대역폭 낭비를 줄일 수 있으며, 이러한 경우 차분 스크립트를 얼마나 작게 만들 수 있는가가 성능의 핵심 요소가 됨은 전술한 바와 같다. In the conventional differential script transmission method, it is possible to reduce network bandwidth waste by transmitting a script instead of the original image from the base station to the target node, and in this case, how small to make the differential script becomes a key factor of the performance as described above.

이에 따라, 본 발명에서는 도 10에서 보여지는 바와 같이 타겟 노드의 과거 이미지뿐만 아니라 타겟 노드의 주변 노드들의 이미지도 참고하여 차분 스크립트를 생성하므로 기존 차분 스크립트보다 훨씬 작은 스크립트를 만들 수 있다.Accordingly, in the present invention, as shown in FIG. 10, the differential script is generated by referring not only to the past image of the target node but also to the image of the neighboring nodes of the target node, thereby making the script much smaller than the existing differential script.

또한 네트워크상의 여러 노드들을 대상으로 공통적인 기능을 순차적으로 업데이트하는 경우(network reprogramming), 어떤 노드의 업데이트가 완료된 후, 그 다음 노드로 하여금 완료된 노드의 이미지를 참조하도록 하면, 전체 네트워크에 걸쳐 원형 이미지 전송을 최소화하고 이를 크기가 작은 스크립트로 대신 전송함으로써 효율적인 펌웨어 업데이트를 진행할 수 있다. 특히, 새로운 이미지가 기존 이미지와 공통점이 거의 없어 종래의 차분 스크립트로 별다른 이득을 취하지 못할 경우에도 네트워크 대역폭 사용 절약 이득이 클 것으로 기대된다.In addition, in the case of sequentially updating common functions for several nodes on a network (network reprogramming), after updating of a node is completed, if the next node refers to the image of the completed node, a circular image over the entire network By minimizing the transfer and transferring it to a smaller script instead, an efficient firmware update can proceed. In particular, even if the new image has little in common with the existing image, it is expected that the savings in the use of the network bandwidth will be great even if the conventional differential script cannot take advantage of it.

상술한 바와 같이, 본 발명에서는 무선 메쉬 네트워크에서의 각 노드가 커널, 네트워크 스택, 응용 프로토콜 등의 공통적으로 사용하는 바이너리 정보를 이용하여 기지국에서 타겟 노드까지 원본 이미지 대신 차분 스크립트를 전송하는 방식으로 노드간 협력을 통한 펌웨어 업데이트를 수행함으로서 대역폭을 절약하면서도 보다 안정적으로 펌웨어의 업데이트 및 유지 관리가 가능하도록 한다.As described above, in the present invention, each node in the wireless mesh network transmits a differential script instead of the original image from the base station to the target node by using commonly used binary information such as a kernel, a network stack, and an application protocol. By performing the firmware update through cooperation, the firmware can be updated and maintained more reliably while saving bandwidth.

한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
Meanwhile, in the above description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the invention should be determined by the claims rather than by the described embodiments.

300 : 펌웨어 업데이트 장치 302 : 코드 이미지 DB
304 : 업데이트 스크립트 생성기 306 : 기지국
300: firmware update device 302: code image DB
304: update script generator 306: base station

Claims (18)

무선 메쉬 네트워크에서 펌웨어 업데이트 장치로서,
상기 메쉬 네트워크내 각 노드별 실행코드 상기 실행코드 이미지와 이미지의 버전 정보를 저장하는 코드 이미지 DB와,
상기 메쉬 네트워크내 임의의 타겟 노드에 대한 실행코드 이미지의 업데이트가 필요한 경우 상기 코드 이미지 DB내 저장된 상기 타겟 노드의 실행코드 이미지와 이웃 노드들의 실행코드 이미지를 참조하여 코드 업데이트 스크립트를 생성한 후, 상기 코드 업데이트 스크립트를 이용하여 상기 타겟 노드에 대한 업데이트를 수행하는 업데이트 스크립트 생성기
를 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
As a firmware update device in a wireless mesh network,
A code image DB for storing the execution code image and version information of the image for each node in the mesh network;
If an update of the execution code image for any target node in the mesh network is required, the code update script is generated by referring to the execution code image of the target node stored in the code image DB and the execution code images of neighboring nodes. Update script generator for updating the target node using a code update script
Firmware update device in a wireless mesh network comprising a.
제 1 항에 있어서,
상기 코드 이미지 DB는,
상기 업데이트 스크립트 생성기에 의해 상기 타겟노드에 대한 업데이트가 수행되는 경우 상기 업데이트된 새로운 실행코드 이미지를 갱신 저장하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 1,
The code image DB,
And updating the stored new executable code image when the update is performed on the target node by the update script generator.
제 1 항에 있어서,
상기 업데이트 스크립트 생성기는,
상기 타겟 노드의 업데이트가 필요한 경우, 상기 타겟 노드로 업데이트 요청 메시지를 전송하고, 상기 타겟 노드로부터 상기 업데이트 요청 메시지에 대응하는 업데이트 응답 메시지를 수신한 후, 상기 업데이트 응답 메시지에 포함된 정보를 이용하여 상기 타겟 노드의 업데이트를 위한 코드 업데이트 스크립트를 생성하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 1,
The update script generator,
When an update of the target node is required, an update request message is transmitted to the target node, an update response message corresponding to the update request message is received from the target node, and then information is included in the update response message. Firmware update apparatus in a wireless mesh network for generating a code update script for updating the target node.
제 3 항에 있어서,
상기 타겟 노드는,
상기 업데이트 요청 메시지의 수신 시 상기 업데이트 요청 메시지에 포함된 새로운 실행코드 이미지의 버전이 현재 버전보다 높을 경우, 이웃 노드들에게 업데이트 협조 요청 메시지를 멀티캐스트 전송하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 3, wherein
The target node,
And a new execution code image included in the update request message when the version of the update request message is higher than the current version, multi-transmitting the update cooperation request message to neighboring nodes.
제 4 항에 있어서,
상기 업데이트 협조 요청 메시지는,
상기 타겟 노드로부터 기설정된 홉수의 멀티캐스트 반경의 이웃 노드들에게 전송되는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 4, wherein
The update cooperation request message,
Firmware update apparatus in a wireless mesh network is transmitted from the target node to neighboring nodes of a multicast radius of a predetermined number of hops.
제 4 항에 있어서,
상기 타겟 노드는,
상기 업데이트 협조 요청 메시지를 멀티캐스트 전송한 후, 기설정된 시간동안 상기 이웃 노드들로부터 상기 업데이트 협조 요청 메시지에 대한 업데이트 협조 응답 메시지를 수신하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 4, wherein
The target node,
And transmitting an update cooperation response message for the update cooperation request message from the neighbor nodes for a preset time after multicasting the update cooperation request message.
제 6 항에 있어서,
상기 타겟 노드는,
상기 업데이트 협조 응답 메시지를 수신하는 경우, 상기 업데이트 협조 응답 메시지를 바탕으로 이웃 노드들의 참여 여부 정보를 포함하는 업데이트 응답 메시지를 상기 업데이트 스크립트 생성기로 전송하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method according to claim 6,
The target node,
When receiving the update cooperation response message, based on the update cooperation response message, firmware update device for transmitting an update response message including information on the participation of neighbor nodes to the update script generator.
제 1 항에 있어서,
상기 업데이트 스크립트 생성기는,
상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지들을 대상으로 각각 차분 스크립트를 생성하고, 상기 차분 스크립트와 상기 실행코드 이미지가 참조된 이웃 노들과의 거리 정보를 참조하여 최소의 대역폭을 사용하는 코드 업데이트 스크립트를 생성하고 이를 상기 타켓 노드로 전송하여 업데이트를 수행하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 1,
The update script generator,
Creates a difference script for each of the current execution code image of the target node and the execution code images of neighbor nodes, and uses the minimum bandwidth by referring to the distance information between the difference script and the neighboring nodes referenced by the execution code image. A firmware update device in a wireless mesh network that generates a code update script and transmits it to the target node to perform an update.
제 8 항에 있어서,
상기 타켓 노드는,
상기 업데이트 스크립트 생성기로부터 전송되는 상기 코드 업데이트 스크립트를 하나의 행씩 실행시키면서 업데이트할 새로운 코드 이미지를 생성하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 8,
The target node,
Firmware update apparatus in a wireless mesh network for generating a new code image to update while executing the code update script transmitted from the update script generator line by line.
제 8 항에 있어서,
상기 타겟 노드는,
상기 새로운 실행코드 이미지의 생성 시, 이웃 노드들로부터 참조해야 하는 실행코드 이미지가 있는 경우, 해당 이웃 노드로 코드 참조 요청 메시지를 전송하고 응답을 수신하여 상기 참조가 필요한 실행코드 이미지를 생성하는 무선 메쉬 네트워크에서 펌웨어 업데이트 장치.
The method of claim 8,
The target node,
When generating the new executable code image, when there is an executable code image to be referred to from neighbor nodes, a wireless mesh for transmitting the code reference request message to the neighbor node and receiving a response to generate the executable code image requiring the reference Firmware update device on the network.
무선 메쉬 네트워크에서 펌웨어 업데이트 방법으로서,
상기 메쉬 네트워크내 임의의 타겟 노드에 대해 실행코드 이미지의 업데이트가 필요한지를 검사하는 단계와,
상기 실행코드 이미지의 업데이트가 필요한 경우 상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지를 참조하여 실행코드 업데이트 스크립트를 생성하는 단계와,
상기 코드 업데이트 스크립트를 이용하여 상기 타겟 노드에 대한 실행코드 이미지의 업데이트를 수행하는 단계
를 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
As a firmware update method in a wireless mesh network,
Checking whether an update of the executable code image is required for any target node in the mesh network;
Generating an execution code update script by referring to the current execution code image of the target node and the execution code image of neighbor nodes when the execution code image is required to be updated;
Updating the execution code image for the target node by using the code update script
Firmware update method in a wireless mesh network comprising a.
제 11 항에 있어서,
상기 코드 업데이트 스크립트를 생성하는 단계는,
상기 타겟 노드의 업데이트가 필요한 경우, 상기 타겟 노드로 업데이트 요청 메시지를 전송하는 단계와,
상기 타겟 노드로부터 상기 업데이트 요청 메시지에 대응하는 업데이트 응답 메시지를 수신하는 단계와,
상기 업데이트 응답 메시지에 포함된 정보를 이용하여 상기 타겟 노드의 업데이트를 위한 코드 업데이트 스크립트를 생성하는 단계
를 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 11,
Generating the code update script,
If an update of the target node is required, transmitting an update request message to the target node;
Receiving an update response message corresponding to the update request message from the target node;
Generating a code update script for updating the target node using the information included in the update response message;
Firmware update method in a wireless mesh network comprising a.
제 11 항에 있어서,
상기 코드 업데이트 스크립트를 생성하는 단계는,
상기 타겟 노드의 현재 실행코드 이미지와 이웃 노드들의 실행코드 이미지들을 대상으로 각각 차분 스크립트를 생성하는 단계와,
상기 차분 스크립트와 상기 실행코드 이미지가 참조된 이웃 노들과의 거리 정보를 참조하여 최소의 대역폭을 사용하는 코드 업데이트 스크립트를 생성하는 단계와,
상기 생성된 코드 업데이트 스크립트를 상기 타켓 노드로 전송하여 업데이트를 수행하는 단계
를 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 11,
Generating the code update script,
Generating a difference script for each of the current execution code image of the target node and the execution code images of neighboring nodes;
Generating a code update script using a minimum bandwidth by referring to distance information between the difference script and neighboring nodes referenced by the execution code image;
Transmitting the generated code update script to the target node to perform an update
Firmware update method in a wireless mesh network comprising a.
제 11 항에 있어서,
상기 실행코드 이미지의 업데이트를 수행하는 단계는,
상기 타겟 노드에 대해 업데이트할 새로운 실행코드 이미지를 생성한 경우 생성된 이미지의 다이제스트를 생성하여 펌웨어 업데이트 장치로 생성 이미지 확인 메시지를 전송하는 단계와,
상기 다이제스트와 원본 실행코드 이미지의 다이제스트 값 비교를 통해 무결성을 검증하고, 검증되는 경우 상기 타겟 노드에서 펌웨어 업데이트를 수행하도록 업데이트 실행 메시지를 상기 타겟 노드로 전송하는 단계와,
상기 업데이트 실행 메시지를 수신한 상기 타겟 노드에서 펌웨어 업데이트를 수행하고, 정상적으로 업데이트 되는 경우 상기 코드 이미지 DB로 업데이트 확인 메시지를 전송하는 단계와,
상기 코드 이미지 DB에서 상기 업데이트 확인 메시지를 수신한 경우, DB내 해당 내용을 갱신하는 단계
를 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 11,
The updating of the executable code image may include:
Generating a digest of the generated image and transmitting a generated image confirmation message to the firmware updater when generating a new execution code image to be updated for the target node;
Verifying integrity by comparing a digest value of the digest with an original execution code image, and if verified, transmitting an update execution message to the target node to perform a firmware update on the target node;
Performing a firmware update on the target node receiving the update execution message, and transmitting an update confirmation message to the code image DB when the target node is normally updated;
When the update confirmation message is received from the code image DB, updating the corresponding contents in the DB.
Firmware update method in a wireless mesh network comprising a.
제 12 항에 있어서,
상기 업데이트 요청 메시지의 수신 시, 상기 타겟 노드에서 상기 업데이트 요청 메시지에 포함된 새로운 실행코드 이미지의 버전이 현재 버전과 같은지를 검사하는 단계와,
상기 새로운 실행코드 이미지의 버전이 현재 버전보다 높은 경우, 이웃 노드들에게 업데이트 협조 요청 메시지를 멀티캐스트 전송하는 단계
를 더 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 12,
Upon receiving the update request message, checking at the target node whether a version of a new executable code image included in the update request message is equal to a current version;
If the version of the new executable code image is higher than the current version, multicasting an update cooperation request message to neighbor nodes;
Firmware update method in a wireless mesh network further comprising.
제 15 항에 있어서,
상기 업데이트 협조 요청 메시지를 멀티캐스트 전송한 후, 상기 타겟 노드에서 기설정된 시간동안 상기 이웃 노드들로부터 상기 업데이트 협조 요청 메시지에 대한 응답 메시지를 수집하는 단계를 더 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 15,
And collecting a response message for the update cooperation request message from the neighbor nodes for a preset time in the target node after multicasting the update cooperation request message.
제 16 항에 있어서,
상기 업데이트 협조 응답 메시지를 수신하는 경우, 상기 타겟 노드에서 상기 업데이트 협조 응답 메시지를 바탕으로 이웃 노드들의 참여 여부 정보를 포함하는 업데이트 응답 메시지를 반송하는 단계를 더 포함하는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
17. The method of claim 16,
And receiving the update coordination response message from the target node, returning an update response message including information on whether neighboring nodes participate in the update coordination response message.
제 15 항에 있어서,
상기 업데이트 협조 요청 메시지는,
상기 타겟 노드로부터 기설정된 홉수의 멀티캐스트 반경의 이웃 노드들에게 전송되는 무선 메쉬 네트워크에서 펌웨어 업데이트 방법.
The method of claim 15,
The update cooperation request message,
Firmware update method in a wireless mesh network transmitted from the target node to neighboring nodes of a multi-hop radius of a predetermined number of hops.
KR1020100103929A 2010-10-25 2010-10-25 Apparatus and method for cooperatively updating firmware on wireless mesh network KR101383691B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020100103929A KR101383691B1 (en) 2010-10-25 2010-10-25 Apparatus and method for cooperatively updating firmware on wireless mesh network
US13/280,957 US8793680B2 (en) 2010-10-25 2011-10-25 Apparatus and method for cooperatively updating firmware on wireless mesh network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100103929A KR101383691B1 (en) 2010-10-25 2010-10-25 Apparatus and method for cooperatively updating firmware on wireless mesh network

Publications (2)

Publication Number Publication Date
KR20100120110A true KR20100120110A (en) 2010-11-12
KR101383691B1 KR101383691B1 (en) 2014-04-09

Family

ID=43405860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100103929A KR101383691B1 (en) 2010-10-25 2010-10-25 Apparatus and method for cooperatively updating firmware on wireless mesh network

Country Status (2)

Country Link
US (1) US8793680B2 (en)
KR (1) KR101383691B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101495749B1 (en) * 2013-05-02 2015-02-25 (주)누리텔레콤 Method for upgrading of nodes in remote meter reading system and apparatus thereof

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951622B1 (en) * 2008-05-02 2010-04-09 강릉원주대학교산학협력단 Method for updating firmware of sensor nodes on a wireless sensor network and firmware updater using for the same method
US8997085B2 (en) * 2011-06-24 2015-03-31 International Business Machines Corporation Image delta-based upgrade of complex stack in software appliance
US8972972B2 (en) * 2012-09-13 2015-03-03 Elemental Technologies, Inc. Handshaking methodology and redundant data channel between servers during software upgrade
US9081643B2 (en) * 2012-09-21 2015-07-14 Silver Sring Networks, Inc. System and method for efficiently updating firmware for nodes in a mesh network
US11582101B2 (en) 2013-03-29 2023-02-14 Hewlett Packard Enterprise Development Lp Update of programmable for computing nodes
EP3040858A1 (en) * 2014-12-31 2016-07-06 Echelon Corporation A method and system of processing an image update
US10101987B2 (en) 2015-03-11 2018-10-16 Echelon Corporation Method and system of processing an image upgrade
US9763062B2 (en) * 2015-04-01 2017-09-12 Synapse Wireless, Inc. Rapid deployment of software updates in multi-hop wireless networks
US9665469B2 (en) * 2015-07-24 2017-05-30 American Megatrends, Inc. System and method of runtime downloading of debug code and diagnostics tools in an already deployed baseboard management controller (BMC) devices
US10303456B2 (en) * 2017-03-23 2019-05-28 Intel Corporation Technologies for performing energy efficient software distribution
JP6536618B2 (en) * 2017-04-20 2019-07-03 富士通株式会社 INFORMATION PROCESSING APPARATUS, INFORMATION PROCESSING SYSTEM, AND CONTROL PROGRAM
US11231448B2 (en) 2017-07-20 2022-01-25 Targus International Llc Systems, methods and devices for remote power management and discovery
KR102034427B1 (en) * 2018-02-21 2019-10-18 주식회사 펀진 IoT Device and It's Firmware Update Method
CN109002318A (en) * 2018-07-25 2018-12-14 郑州云海信息技术有限公司 A kind of firmware update of CPLD, device, equipment and medium
US11012853B2 (en) 2018-11-20 2021-05-18 Parallel Wireless, Inc. Secure software update in a wireless mesh radio network using peer-to-peer file sharing
WO2021035156A1 (en) 2019-08-22 2021-02-25 Targus International Llc Systems and methods for participant-controlled video conferencing

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6802061B1 (en) * 1996-12-12 2004-10-05 Microsoft Corporation Automatic software downloading from a computer network
US6836483B1 (en) * 1998-06-24 2004-12-28 Research Investment Network, Inc. Message system for asynchronous transfer
US7073172B2 (en) * 1998-09-21 2006-07-04 Microsoft Corporation On demand patching of applications via software implementation installer mechanism
US8875116B2 (en) 2000-11-17 2014-10-28 Hewlett-Packard Development Company, L.P. Network for updating firmware and / or software in wireless communication devices
US7814474B2 (en) * 2000-11-17 2010-10-12 Hewlett-Packard Development Company, L.P. Updatable mobile handset based on Linux with compression and decompression techniques
US7246351B2 (en) * 2001-02-20 2007-07-17 Jargon Software System and method for deploying and implementing software applications over a distributed network
US8233893B2 (en) 2002-08-22 2012-07-31 Hewlett-Packard Development Company, L.P. Mobile handset update package generator that employs nodes technique
US20040109188A1 (en) * 2002-09-13 2004-06-10 Kunihiro Akiyoshi Image forming apparatus and methods used in the image forming apparatus
US8316361B2 (en) * 2003-01-09 2012-11-20 Hewlett-Packard Development Company, L.P. Method of enabling a user to update one or more low-level resources of a computer system in a user-friendly manner
US7739679B2 (en) * 2004-04-06 2010-06-15 Hewlett-Packard Development Company, L.P. Object ordering tool for facilitating generation of firmware update friendly binary image
US7694291B2 (en) 2004-04-06 2010-04-06 Hewlett-Packard Development Company, L.P. Build optimizer tool for efficient management of software builds for mobile devices
US7958502B2 (en) * 2005-08-05 2011-06-07 Hewlett-Packard Development Company, L.P. Efficient generator of update packages for mobile devices that uses non-ELF preprocessing
EP1903437A3 (en) * 2006-07-31 2008-10-22 Seiko Epson Corporation Update data transmission method, firmware writing system, and update data transmission program
US7996829B2 (en) * 2006-07-31 2011-08-09 Hewlett-Packard Development Company, L.P. Managing software revisions for servers in an infrastructure
TW200830876A (en) * 2006-08-24 2008-07-16 Chumby Ind Inc Networked personal audiovisual device having flexible housing
US7870548B2 (en) * 2007-01-05 2011-01-11 Inventec Corporation Method for updating an image file
US8375381B1 (en) * 2007-07-30 2013-02-12 Adobe Systems Incorporated Management user interface for application execution environment
US8448161B2 (en) * 2007-07-30 2013-05-21 Adobe Systems Incorporated Application tracking for application execution environment
KR20090062317A (en) * 2007-12-12 2009-06-17 한국전자통신연구원 Method and system for upgrading in multi hop wireless network
US8418168B2 (en) * 2008-05-29 2013-04-09 Research In Motion Limited Method and system for performing a software upgrade on an electronic device connected to a computer
KR101019822B1 (en) 2008-12-04 2011-03-04 포항공과대학교 산학협력단 Method and apparatus for sensor node software update in wireless sensor network
WO2010135696A1 (en) * 2009-05-21 2010-11-25 Salesforce.Com, Inc. System, method and computer program product for versioning components of an application
US8429640B2 (en) * 2009-06-05 2013-04-23 Dell Products L.P. System and method for modifying firmware
US8464249B1 (en) * 2009-09-17 2013-06-11 Adobe Systems Incorporated Software installation package with digital signatures
US8612516B2 (en) * 2011-11-28 2013-12-17 Wyse Technology Inc. Deployment of a driver or an application on a client device having a write-filter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101495749B1 (en) * 2013-05-02 2015-02-25 (주)누리텔레콤 Method for upgrading of nodes in remote meter reading system and apparatus thereof

Also Published As

Publication number Publication date
US8793680B2 (en) 2014-07-29
KR101383691B1 (en) 2014-04-09
US20120102478A1 (en) 2012-04-26

Similar Documents

Publication Publication Date Title
KR101383691B1 (en) Apparatus and method for cooperatively updating firmware on wireless mesh network
US8910141B2 (en) Distribution of software updates in wireless multihop networks
US8340131B2 (en) Efficient broadcast of data in a communication network
Panta et al. Stream: Low overhead wireless reprogramming for sensor networks
US11038767B2 (en) Discovery of a set of nodes in a network
US9350603B2 (en) Daisy chain distribution in data centers
KR20160115814A (en) Mechanisms for dynamically forming mesh network
US9763062B2 (en) Rapid deployment of software updates in multi-hop wireless networks
CN102224751A (en) System and method for dynamic automatic communication path selection, distributed device synchronization and task delegation
KR101757417B1 (en) Method for updating communication node firmware in wireless communication
Li et al. Distributed dataset synchronization in disruptive networks
US20140215028A1 (en) Shared information distribution in a computer network
WO2014057595A1 (en) Method for exchanging information between communication terminals, and communication terminal
Phillips Aqueduct: Robust and efficient code propagation in heterogeneous wireless sensor networks
CN114115939A (en) Firmware upgrading method and device, electronic equipment and storage medium
JP2020527881A (en) Message transmission method and device
Panta et al. Efficient wireless reprogramming through reduced bandwidth usage and opportunistic sleeping
KR100929235B1 (en) Dynamic Reconfiguration Method of Wireless Sensor Network and Its System
Pule et al. Firmware updates over the air mechanisms for low power wide area networks: A review
US20240121297A1 (en) Method and apparatus for distributed synchronization
Lee et al. Policy-based reprogramming for wireless sensor networks
CN117914634A (en) Method and device for sending control instruction, storage medium and electronic device
Porter et al. Managing software evolution in large-scale wireless sensor and actuator networks
Kumar Transmission of data through a MOBINET protocol to handle the duplication problem from the mobile sensor side
Khan et al. Performance Optimization through Channel Profiling in Cognitive Sensor Networks

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: 20170327

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190325

Year of fee payment: 6