KR102326764B1 - Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks - Google Patents

Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks Download PDF

Info

Publication number
KR102326764B1
KR102326764B1 KR1020200047555A KR20200047555A KR102326764B1 KR 102326764 B1 KR102326764 B1 KR 102326764B1 KR 1020200047555 A KR1020200047555 A KR 1020200047555A KR 20200047555 A KR20200047555 A KR 20200047555A KR 102326764 B1 KR102326764 B1 KR 102326764B1
Authority
KR
South Korea
Prior art keywords
node
nodes
time synchronization
determining
asynchronous
Prior art date
Application number
KR1020200047555A
Other languages
Korean (ko)
Other versions
KR20210129485A (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 KR1020200047555A priority Critical patent/KR102326764B1/en
Publication of KR20210129485A publication Critical patent/KR20210129485A/en
Application granted granted Critical
Publication of KR102326764B1 publication Critical patent/KR102326764B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W56/00Synchronisation arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

무선 애드혹 네트워크에서 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법이 개시된다. 일 실시예에 따른 무선 애드혹 네트워크에서 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법은 노드의 복수의 이웃 노드들의 상태를 인식하는 단계와, 상기 복수의 이웃 노드들의 상태에 기초하여 상기 복수의 이웃 노드들 중에서 상기 노드의 네트워크 시간 동기화를 위한 평균값 계산에 포함할 노드를 결정하는 단계와, 상기 평균값 계산에 포함할 노드를 이용하여 상기 노드의 네트워크 시간 동기화를 수행하는 단계를 포함한다.Disclosed is a method for improving mobility and security of a time synchronization protocol in a wireless ad hoc network. A method for improving mobility and security of a time synchronization protocol in a wireless ad hoc network according to an embodiment includes recognizing states of a plurality of neighboring nodes of a node, and based on the states of the plurality of neighboring nodes, the plurality of neighbors Determining a node to be included in calculation of an average value for network time synchronization of the node from among the nodes, and performing network time synchronization of the node by using the node to be included in the calculation of the average value.

Description

무선 애드혹 네트워크에서 이웃 노드의 상태 정보를 이용하여 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법{METHOD OF IMPROVING MOBILITY AND SECURITY OF TIME SYNCHRONIZATION PROTOCOL USING STATUS INFORMATION OF NEIGHBOR NODES IN WIRELESS AD HOC NETWORKS}Method of improving mobility and security of time synchronization protocol by using status information of neighboring nodes in a wireless ad hoc network

아래 실시예들은 무선 애드혹 네트워크에서 이웃 노드의 상태 정보를 이용하여 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법에 관한 것이다.The following embodiments relate to a method of improving mobility and security of a time synchronization protocol by using state information of a neighbor node in a wireless ad hoc network.

평균 기반의 컨센서스 시간 동기화 프로토콜(Average-based consensus time synchronization protocol)은 분산 방식의 설계로 인하여 단일 장애 지점(Single point of failure) 문제에 강건성을 가지고 있어 무선 센서 네트워크 및 애드혹 네트워크에서 널리 사용되어 왔다. 이러한 유형의 분산 프로토콜에서 각 노드는 네트워크의 다른 노드와 동일한 역할을 갖도록 설계된다. 그러나 분산 설계로 인하여, 동기화되지 않은 특정 노드가 시스템의 다른 노드에 부정적인 영향을 미칠 수 있다는 문제점을 가질 수 있다. 특히, 무선 애드혹 네트워크에서는 새로운 노드(또는 신규 노드)의 합류가 빈번히 발생할 수 있으며, 새로운 노드로 인하여 기존 네트워크의 시간동기가 깨질 수 있다. 또한, 악의적인 노드(malicious node)가 악의적인 의도로 잘못된 시간동기 정보를 네트워크에 전파할 수 있다. 이와 같이 평균 기반의 컨센서스 프로토콜은 동적이고 적대적인 환경에서 취약성을 안고 있다.The average-based consensus time synchronization protocol has been widely used in wireless sensor networks and ad hoc networks because it has robustness to the single point of failure problem due to the distributed design. In this type of distributed protocol, each node is designed to have the same role as the other nodes in the network. However, due to the distributed design, there may be a problem that a certain node that is not synchronized may have a negative effect on other nodes in the system. In particular, in a wireless ad hoc network, a new node (or a new node) may frequently join, and the time synchronization of the existing network may be broken due to the new node. In addition, a malicious node may propagate incorrect time synchronization information to the network with malicious intent. As such, the average-based consensus protocol has vulnerabilities in a dynamic and hostile environment.

실시예들은 인접한 복수의 이웃 노드들의 상태들을 인식하고, 복수의 이웃 노드들의 상태 정보에 기초하여 네트워크 시간 동기화를 위한 평균값 계산(또는 각 노드의 시간동기 값 평균화 과정)에 포함할 노드를 결정하는 기술을 제공할 수 있다.Embodiments recognize the states of a plurality of neighboring nodes, and based on the state information of the plurality of neighboring nodes, a technique for determining a node to be included in an average value calculation for network time synchronization (or a time synchronization value averaging process of each node) can provide

다만, 기술적 과제는 상술한 기술적 과제들로 한정되는 것은 아니며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problems are not limited to the above-described technical problems, and other technical problems may exist.

일 실시예에 따른 무선 애드혹 네트워크에서 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법은 노드의 복수의 이웃 노드들의 상태를 인식하는 단계와, 상기 복수의 이웃 노드들의 상태에 기초하여 상기 복수의 이웃 노드들 중에서 상기 노드의 네트워크 시간 동기화를 위한 평균값 계산에 포함할 노드를 결정하는 단계와, 상기 평균값 계산에 포함할 노드를 이용하여 상기 노드의 네트워크 시간 동기화를 수행하는 단계를 포함한다.A method for improving mobility and security of a time synchronization protocol in a wireless ad hoc network according to an embodiment includes recognizing states of a plurality of neighboring nodes of a node, and based on the states of the plurality of neighboring nodes, the plurality of neighbors Determining a node to be included in calculation of an average value for network time synchronization of the node from among the nodes, and performing network time synchronization of the node by using the node to be included in the calculation of the average value.

상기 인식하는 단계는 상기 복수의 이웃 노드들 각각과 상기 노드 간의 상대적인 클럭 속도에 기초하여 상기 복수의 이웃 노드들을 상기 노드와 시간이 동기화된 동기 노드, 시간이 동기화되지 않은 비동기 노드, 상기 무선 애드혹 네트워크에 새로 합류한 신규 노드로 결정하는 단계를 포함할 수 있다.The recognizing may include a synchronous node whose time is synchronized with the node, an asynchronous node whose time is not synchronized, and the wireless ad hoc network for the plurality of neighboring nodes based on a relative clock speed between each of the plurality of neighboring nodes and the node. It may include the step of determining as a new node newly joined to the .

상기 결정하는 단계는 상기 복수의 이웃 노드들 각각과 상기 노드 간에 메시지가 송수신되었는지 여부에 기초하여 상기 복수의 이웃 노드들을 상기 신규 노드 및 상기 무선 애드혹 네트워크에 이미 포함된 기존 노드로 결정하는 단계와, 상기 기존 노드로 결정된 노드들 각각과 상기 노드 간의 상대적인 클록 속도에 기초하여 상기 기존 노드로 결정된 노드들을 상기 동기 노드 및 상기 비동기 노드로 결정하는 단계를 포함할 수 있다.The determining includes determining the plurality of neighboring nodes as the new node and the existing node already included in the wireless ad-hoc network, based on whether a message is transmitted/received between each of the plurality of neighboring nodes and the node; and determining the nodes determined as the existing nodes as the synchronous node and the asynchronous node based on a relative clock speed between each of the nodes determined as the existing nodes and the nodes.

상기 평균값 계산에 포함할 노드를 결정하는 단계는 상기 동기 노드의 수를 상기 비동기 노드의 수 및 상기 신규 노드의 수와 비교하는 단계와, 비교 결과에 기초하여 상기 동기 노드와 상기 비동기 노드 중에서 적어도 하나를 상기 평균값 계산에 포함할 노드로 결정하는 단계를 포함할 수 있다.The determining of the nodes to be included in the average value calculation includes comparing the number of synchronous nodes with the number of asynchronous nodes and the number of new nodes, and based on a comparison result, at least one of the synchronous node and the asynchronous node. and determining as a node to be included in the average value calculation.

상기 적어도 하나를 상기 평균값 계산에 포함할 노드로 결정하는 단계는 상기 비동기 노드의 수 및 상기 신규 노드의 수보다 상기 동기 노드의 수가 많은 경우, 상기 동기 노드만 상기 평균값 계산에 포함할 노드로 결정하는 단계 또는, 상기 비동기 노드의 수 및 상기 신규 노드의 수보다 상기 동기 노드의 수가 적은 경우, 상기 동기 노드 및 상기 비동기 노드를 상기 평균값 계산에 포함할 노드로 결정하는 단계를 포함할 수 있다.In the step of determining the at least one node as a node to be included in the average value calculation, when the number of synchronous nodes is greater than the number of asynchronous nodes and the number of new nodes, determining only the synchronous node as a node to be included in the average value calculation or, when the number of synchronous nodes is smaller than the number of asynchronous nodes and the number of new nodes, determining the synchronous node and the asynchronous node as nodes to be included in the average value calculation.

도 1은 일 실시예에 따른 무선 애드혹 네트워크 환경을 설명하기 위한 도면이다.
도 2는 도 1에 도시된 무선 애드혹 네트워크 환경 내 각 노드에서 수행되는 이웃 노드의 상태 분류 동작과, 클록 속도 및 오프셋의 보상 동작을 설명하기 위한 순서도이다.
도 3은 이웃 노드의 상태를 구분하는 동작을 설명하기 위한 알고리즘이다.
도 4는 일 실시예에 따른 노드의 개략적인 블록도이다.
1 is a diagram for explaining a wireless ad hoc network environment according to an embodiment.
FIG. 2 is a flowchart illustrating an operation of classifying a state of a neighbor node, and an operation of compensating for a clock speed and an offset, performed in each node in the wireless ad hoc network environment shown in FIG. 1 .
3 is an algorithm for explaining an operation of classifying the state of a neighboring node.
4 is a schematic block diagram of a node according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for description purposes only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the components from other components, and the essence, order, or order of the components are not limited by the terms. When it is described that a component is “connected”, “coupled” or “connected” to another component, the component may be directly connected or connected to the other component, but another component is between each component. It will be understood that may also be "connected", "coupled" or "connected".

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having a common function will be described using the same names in other embodiments. Unless otherwise stated, a description described in one embodiment may be applied to another embodiment, and a detailed description in the overlapping range will be omitted.

도 1은 일 실시예에 따른 무선 애드혹 네트워크 환경을 설명하기 위한 도면이다.1 is a diagram for explaining a wireless ad hoc network environment according to an embodiment.

무선 애드혹 네트워크 환경은 복수의 노드들로 구성된다. 각 노드는 이웃 노드 상태 기반의 평균 기반 컨센서스 프로토콜을 통해 네트워크 시간 동기화를 수행한다. 실시예들은 이웃 노드 상태를 기반으로 평균 기반 컨센서스 프로토콜을 개선한 것이다. 이를 통해, 실시예들은 무선 애드혹 네트워크 환경에서 네트워크 시간 동기를 깨려는 악의적인 노드가 존재하는 경우에 악의적인 노드들 격리시키고, 네트워크 시간 동기가 빠르게 수행되게 하여 노드의 이동성 등 잦은 변화로 인한 네트워크 시간 동기의 어려움을 극복할 수 있다.A wireless ad hoc network environment consists of a plurality of nodes. Each node performs network time synchronization through an average-based consensus protocol based on the state of neighboring nodes. Embodiments are improvements to the average-based consensus protocol based on neighbor node status. Through this, the embodiments isolate the malicious nodes when there is a malicious node trying to break the network time synchronization in a wireless ad hoc network environment, and allow the network time synchronization to be performed quickly, so that the network time caused by frequent changes such as node mobility Overcome motivational difficulties.

일 실시예에 따른 이웃 노드 상태 기반 평균 기반 컨센서스 프로토콜을 설명하기 전에, 평균 기반 컨센서스 프로토콜의 동작에 대해서 설명하도록 한다.Before describing the average-based consensus protocol based on the neighbor node state according to an embodiment, the operation of the average-based consensus protocol will be described.

각 노드는 두 개의 clock을 포함한다. 하나의 clock은 hardware clock이고, 다른 하나의 clock은 local(software) clock일 수 있다.Each node contains two clocks. One clock may be a hardware clock, and the other clock may be a local (software) clock.

hardware clock은 외부에서 크리스탈 오실레이터(crystal oscillator)로 카운트한 시간을 나타내며, 하드웨어 및 주변 환경에 따라 hardware clock의 증가 속도가 달라지게 된다. 노드

Figure 112020040498775-pat00001
의 hardware clock 값
Figure 112020040498775-pat00002
는 다음과 같이 계산된다.The hardware clock indicates the time counted by an external crystal oscillator, and the increase rate of the hardware clock varies depending on the hardware and the surrounding environment. node
Figure 112020040498775-pat00001
hardware clock value of
Figure 112020040498775-pat00002
is calculated as

[수학식 1][Equation 1]

Figure 112020040498775-pat00003
Figure 112020040498775-pat00003

여기서

Figure 112020040498775-pat00004
는 hardware clock의 속도이고
Figure 112020040498775-pat00005
는 hardware clock offset이다. hardware clock은 연속적으로 실행되고 수정할 수 없기 때문에 local clock을 기준으로 시간을 표현하고 동기화하도록 정의한다.here
Figure 112020040498775-pat00004
is the speed of the hardware clock
Figure 112020040498775-pat00005
is the hardware clock offset. Since the hardware clock runs continuously and cannot be modified, it is defined to express and synchronize time with respect to the local clock.

노드

Figure 112020040498775-pat00006
의 local clock 값
Figure 112020040498775-pat00007
는 다음과 같이 계산된다.node
Figure 112020040498775-pat00006
local clock value of
Figure 112020040498775-pat00007
is calculated as

[수학식 2][Equation 2]

Figure 112020040498775-pat00008
Figure 112020040498775-pat00008

여기서

Figure 112020040498775-pat00009
는 logical clock 속도이고
Figure 112020040498775-pat00010
는 logical clock offset이다.here
Figure 112020040498775-pat00009
is the logical clock speed
Figure 112020040498775-pat00010
is the logical clock offset.

시간 동기화 프로토콜의 목표는 각 노드의 logical clock 값

Figure 112020040498775-pat00011
이 동일해지도록
Figure 112020040498775-pat00012
Figure 112020040498775-pat00013
를 추정하는 것이다. 평균 컨센서스 기반의 시간 동기화 프로토콜에서 각 노드는 인접 노드의 상대적인 속도에 따라 logical clock 속도를 조정한다.The goal of the time synchronization protocol is the logical clock value of each node.
Figure 112020040498775-pat00011
to be the same
Figure 112020040498775-pat00012
Wow
Figure 112020040498775-pat00013
is to estimate In the average consensus-based time synchronization protocol, each node adjusts the logical clock speed according to the relative speed of the adjacent node.

서로 이웃해 있는 노드

Figure 112020040498775-pat00014
Figure 112020040498775-pat00015
의 상대적인 속도는 다음과 같은 두 개의 식으로 계산된다.nodes next to each other
Figure 112020040498775-pat00014
Wow
Figure 112020040498775-pat00015
The relative speed of is calculated by the following two equations.

[수학식 3][Equation 3]

Figure 112020040498775-pat00016
Figure 112020040498775-pat00016

각각의 반복적인 상황에서 새로운 clock 속도는 다음과 같이 계산된다.In each iteration situation, the new clock speed is calculated as follows.

[수학식 4][Equation 4]

Figure 112020040498775-pat00017
Figure 112020040498775-pat00017

여기서

Figure 112020040498775-pat00018
는 노드
Figure 112020040498775-pat00019
의 1-홉 이웃들의 집합이다. clock offset 값도 유사한 방법으로, 아래의 식과 같이 계산할 수 있다.here
Figure 112020040498775-pat00018
is the node
Figure 112020040498775-pat00019
is the set of 1-hop neighbors of . The clock offset value can also be calculated in a similar way, as shown in the following formula.

[수학식 5][Equation 5]

Figure 112020040498775-pat00020
Figure 112020040498775-pat00020

각 노드는 모든 이웃하는 노드의 Clock 정보를 바탕으로 평균값을 계산하고 현재 Clock 값을 보정한다. 이때, 각 노드가 각 노드에 인접한 노드의 상태를 인식하고, 네트워크 시간 동기화에 저해되는 노드라고 판단할 경우, 시간 동기화 계산에 저해되는 노드를 포함하지 않는 것이 낫다. 각 노드에 인접한 이웃 노드는 무선 애드혹 네트워크 내 위치하고, 각 노드의 주변에 위치한 노드일 수 있다.Each node calculates an average value based on the clock information of all neighboring nodes and corrects the current clock value. At this time, when each node recognizes the state of a node adjacent to each node and determines that it is a node that inhibits network time synchronization, it is better not to include a node that is hindered in time synchronization calculation. A neighboring node adjacent to each node may be a node located in the wireless ad hoc network and located in the vicinity of each node.

실시예들은 평균 기반 컨센서스 프로토콜에서 설명된 시간 동기화 계산에서 인접한 이웃 노드의 상태를 인식하고, 이웃 노드의 상태를 시간 동기화 계산에 반영하는 것이다. 예를 들어, 무선 애드혹 네트워크 내 각 노드는 인접한 복수의 이웃 노드들의 상태들을 인식하고, 복수의 이웃 노드들의 상태 정보에 기초하여 네트워크 시간 동기화를 위한 평균값 계산(또는 각 노드의 시간동기 값 평균화 과정)에 포함할 노드를 결정할 수 있다. 이때, 각 노드는 이웃 노드의 상태를 각 노드와 동기화된 이웃 노드, 무선 애드혹 네트워크에 새로 합류된 이웃 노드 또는 각 노드와 비동기화된 이웃 노드로 인식할 수 있다. 동기화된 이웃 노드는 동기 노드로, 비동기화된 이웃 노드는 비동기 노드로, 무선 애드혹 네트워크에 새로 합류된 이웃 노드는 신규 노드로 지칭될 수 있다. 신규 노드는 악의적인 노드일 수 있다.Embodiments recognize the state of a neighboring node in the time synchronization calculation described in the average-based consensus protocol, and reflect the state of the neighboring node in the time synchronization calculation. For example, each node in the wireless ad hoc network recognizes the states of a plurality of neighboring nodes, and calculates an average value for network time synchronization based on the state information of the plurality of neighboring nodes (or the time synchronization value averaging process of each node) You can decide which nodes to include in . In this case, each node may recognize the state of the neighbor node as a neighbor node synchronized with each node, a neighbor node newly joined to the wireless ad hoc network, or a neighbor node unsynchronized with each node. A synchronized neighbor node may be referred to as a synchronous node, an unsynchronized neighbor node may be referred to as an asynchronous node, and a neighbor node newly joined to the wireless ad hoc network may be referred to as a new node. The new node may be a malicious node.

각 노드는 개별 이웃 노드마다 신규 노드인지, 동기 노드인지 또는 비동기 노드인지를 파악하고, 네트워크의 시간 동기가 안정화 상태인지 판단하여 각 노드의 복수의 이웃 노드들 중에서 각 노드의 시간을 동기화하기 위한 노드를 결정할 수 있다.A node for synchronizing the time of each node among a plurality of neighboring nodes of each node by determining whether the node is a new node, a synchronous node, or an asynchronous node for each neighboring node, and determining whether the time synchronization of the network is in a stable state can be decided

예를 들어, 각 노드는 복수의 이웃 노드들 각각과 각 노드 간의 상대적인 클럭 속도에 기초하여 복수의 이웃 노드들을 동기 노드, 비동기 노드 및 신규 노드로 결정할 수 있다. 구체적으로, 각 노드는 복수의 이웃 노드들 각각과 각 노드 간에 메시지가 송수신되었는지 여부에 기초하여 복수의 이웃 노드들을 신규 노드 및 무선 애드혹 네트워크에 이미 포함된 기존 노드로 결정할 수 있다. 각 노드는 기존 노드로 결정된 노드들 각각과 각 노드 간의 상대적인 클록 속도에 기초하여 기존 노드로 결정된 노드들을 동기 노드 및/또는 비동기 노드로 결정할 수 있다.For example, each node may determine the plurality of neighboring nodes as a synchronous node, an asynchronous node, and a new node based on each of the plurality of neighboring nodes and a relative clock speed between each node. Specifically, each node may determine the plurality of neighboring nodes as a new node and an existing node already included in the wireless ad-hoc network based on each of the plurality of neighboring nodes and whether a message is transmitted/received between each node. Each node may determine nodes determined as existing nodes as synchronous nodes and/or asynchronous nodes based on each of the nodes determined as existing nodes and a relative clock speed between each node.

각 노드는 비동기 노드의 수 및 신규 노드의 수를 동기 노드의 수와 비교하여 네트워크의 시간 동기가 안정화 상태인지 여부를 판단할 수 있다. 네트워크의 시간 동기가 안정화 상태인 것은 비동기 노드의 수 및 신규 노드의 수보다 동기 노드의 수가 많은 경우로, 동기 노드가 다수(super-majority, 2/3이 이상)이고 비동기 노드가 소수인 경우를 의미할 수 있다. 네트워크의 시간 동기가 불안정화 상태인 것은 비동기 노드의 수 및 신규 노드의 수보다 동기 노드의 수가 적은 경우로, 동기 노드가 소수이고 비동기 노드가 다수인 경우를 의미할 수 있다. 예를 들어, 동기 노드가 다수(super-majority, 2/3이 이상)가 아닌 경우는 네트워크의 시간 동기가 불안정화 상태라고 할 수 있다.Each node may compare the number of asynchronous nodes and the number of new nodes with the number of synchronous nodes to determine whether the time synchronization of the network is in a stable state. The time synchronization of the network is stable when the number of synchronous nodes is greater than the number of asynchronous nodes and the number of new nodes. can mean The time synchronization of the network is in an unstable state when the number of synchronous nodes is smaller than the number of asynchronous nodes and the number of new nodes. For example, when the number of synchronization nodes is not a majority (super-majority, 2/3 or more), the time synchronization of the network may be said to be in an unstable state.

각 노드는 네트워크의 시간 동기가 안정화 상태인 경우 비동기 노드를 평균값 계산에서 제외할 것을 결정하고, 네트워크의 시간 동기가 불안정화 상태인 경우 비동기 노드를 평균값 계산에서 제외하지 않을 것을 결정할 수 있다. 각 노드는 비동기 노드들이 다수를 차지하는 시간 동기의 불안정화 상태에서는 모든 노드들을 포함하여 평균값 계산 및 보정을 수행할 수 있다. 네트워크의 시간 동기가 안정화 상태인 경우, 각 노드는 동기 노드를 각 노드를 동기화하기 위한 노드로 결정할 수 있다. 네트워크의 시간 동기가 불안정한 상태인 경우, 각 노드는 동기 노드 미 비동기 노드를 각 노드를 동기화하기 위한 노드로 결정할 수 있다.Each node may decide not to exclude the asynchronous node from the average value calculation when the time synchronization of the network is in a stable state, and may decide not to exclude the asynchronous node from the average value calculation when the time synchronization of the network is in an unstable state. Each node can perform average value calculation and correction including all nodes in an unstable state of time synchronization in which asynchronous nodes occupy a majority. When the time synchronization of the network is in a stable state, each node may determine a synchronization node as a node for synchronizing each node. When the time synchronization of the network is in an unstable state, each node may determine a synchronous node or an asynchronous node as a node for synchronizing each node.

각 노드는 결정된 노드들의 클럭 값을 평균화하고, 평균화된 클럭 값에 기초하여 각 노드의 시간을 결정된 노드의 시간과 동기화할 수 있다. 결정된 노드는 복수의 이웃 노드들 중에서 각 노드의 시간을 동기화하기 위해 결정된 이웃 노드일 수 있다.Each node may average the clock values of the determined nodes, and synchronize the time of each node with the time of the determined node based on the averaged clock value. The determined node may be a neighbor node determined to synchronize time of each node among the plurality of neighboring nodes.

이를 통해, 각 노드는 무선 애드혹 네트워크의 동적이고 적대적인 환경에서도 평균 기반 컨센서스 시간동기화 프로토콜을 향상하여 시간동기화 프로토콜의 이동성 및 보안성이 향상되게 하고, 비동기 노드, 새로 합류한 신규 노드 및/또는 악의적인 노드로부터의 부정적인 영향을 감소하게 할 수 있다.Through this, each node improves the average-based consensus time synchronization protocol even in the dynamic and hostile environment of the wireless ad hoc network to improve the mobility and security of the time synchronization protocol, asynchronous nodes, newly joined new nodes and/or malicious It can reduce the negative influence from the node.

상술한 방법은 개별 노드별로 분산된 방식으로 독립적으로 수행될 수 있다. 예를 들어, 대다수의 노드가 동기화된 네트워크 환경이라고 할지라도 각 노드의 관점에서는 동기화/비동기화에 대한 판단이 다를 수 있으며, 대다수의 동기화된 노드들 관점에서는 특정 비동기 노드들을 제외할 수 있다. 반면, 비동기화된 노드들 관점에서는 나머지 대다수의 동기화된 노드들이 비동기 노드로 간주될 수 있으며, 이 때 대다수의 노드가 비동기 노드이므로 모든 노드의 시간 동기값을 평균 계산에 포함하게 된다.The above-described method may be independently performed in a distributed manner for each individual node. For example, even in a network environment in which the majority of nodes are synchronized, the judgment on synchronization/asynchronization may be different from the point of view of each node, and specific asynchronous nodes may be excluded from the point of view of the majority of synchronized nodes. On the other hand, from the point of view of asynchronous nodes, the majority of the remaining synchronized nodes can be regarded as asynchronous nodes.

시간 동기화 프로세스에는 메시지 송수신이라는 두 가지 하위 프로세스가 포함된다. 초기 단계에서는 모든 노드의 클럭 값이 다르기 때문에 네트워크가 비동기화 상태이다. 이후, 각 노드는 타이밍 메시지를 교환하여 동기화 프로세스를 시작한다. 각 노드는 시간동기 주기 T마다 시간동기 메시지를 전송하며, 이 때 T는 시간동기 주기(synchronization period)를 의미한다. 즉, 각 노드는 시간동기 주기 T마다 하나의 시간동기 메시지를 보내고, 모든 이웃 노드들로부터 메시지를 받는다. 이 때, 무선 네트워크 환경에 따라 일부 메시지가 손실될 수도 있으며, 패킷 손실 환경에서도 네트워크 시간 동기화를 달성하는 데에 큰 장애가 되지 않는다. 따라서 각 노드가 모든 메시지를 반드시 수신할 필요는 없다.The time synchronization process involves two sub-processes: sending and receiving messages. In the initial stage, the network is in an asynchronous state because the clock values of all nodes are different. Then, each node initiates the synchronization process by exchanging timing messages. Each node transmits a time synchronization message every time synchronization period T, where T means a synchronization period. That is, each node sends one time synchronization message every time synchronization period T, and receives messages from all neighboring nodes. In this case, some messages may be lost depending on the wireless network environment, and even in the packet loss environment, there is no significant obstacle to achieving network time synchronization. Therefore, it is not necessary for each node to receive all messages.

시간 동기화 프로세스에서, 각 노드는 1) 이웃 노드의 상태를 파악하고, 2) 클록 속도 및 오프셋의 보정값 계산을 수행할 수 있다.In the time synchronization process, each node may 1) determine the state of its neighboring node, and 2) calculate correction values for clock speed and offset.

기본적으로 각 노드는 대기 상태로 시작한다.By default, each node starts in a standby state.

각 노드가 이웃 노드로부터 시간동기 메시지를 수신하는 경우, 메모리에 타이밍 정보를 저장하기 전에 이 이웃을 즉시 새로 결합된 노드(newly joined node, 신규 노드), 동기화된 노드(synchronized node, 동기 노드) 또는 비동기화된 노드(unsynchronized node, 비동기 노드) 세 가지 상태로 분류한다.When each node receives a time-synchronized message from a neighbor, it immediately joins this neighbor to a newly joined node, synchronized node, or synchronized node before storing timing information in memory. An unsynchronized node is classified into three states.

또한, 시간동기 주기 T가 만료될 때마다 수학식 4와 5에 따라 보정된 clock offset 및 clock skew를 계산한 다음 새로운 클럭 값으로 타이밍 메시지를 전송한다. 이 때, 시간동기 보정값 계산 과정에서 동기 이웃 노드의 수, 비동기 이웃 노드의 수에 따라 이웃 노드의 포함여부를 다르게 적용할 수 있다. (동기 노드가 super-majority일 경우 비동기 노드 제외하고, 그렇지 않을 경우 모든 노드의 시간 동기값을 대상으로 보정값 계산함)In addition, whenever the time synchronization period T expires, the corrected clock offset and clock skew are calculated according to Equations 4 and 5, and then the timing message is transmitted as a new clock value. In this case, in the process of calculating the time synchronization correction value, whether or not to include neighboring nodes may be differently applied according to the number of synchronous neighboring nodes and the number of asynchronous neighboring nodes. (If the synchronous node is super-majority, except for the asynchronous node, otherwise, the correction value is calculated based on the time synchronization value of all nodes)

도 2는 도 1에 도시된 무선 애드혹 네트워크 환경 내 각 노드에서 수행되는 이웃 노드의 상태 분류 동작과, 클록 속도 및 오프셋의 보상 동작을 설명하기 위한 순서도이며, 도 3은 이웃 노드의 상태를 구분하는 동작을 설명하기 위한 알고리즘이다.FIG. 2 is a flowchart for explaining a state classification operation of a neighbor node performed at each node in the wireless ad hoc network environment shown in FIG. 1 and an operation of compensating for clock speed and offset, and FIG. It is an algorithm for explaining the operation.

도 2에 도시된 바와 같이, 각 노드는 1) 이웃 노드의 상태를 파악하고(왼쪽 순서도), 2) 클록 속도 및 오프셋의 보정값 계산을 수행할 수 있다.As shown in FIG. 2 , each node may 1) determine the state of a neighboring node (flow chart on the left), and 2) calculate clock speed and offset correction values.

1) 인접 노드의 상태 분류1) State classification of neighboring nodes

각 노드는 전원이 구동된 이후 현재 동기화 라운드를 모니터링하기 위하여 CurSeq라는 동기화 라운드 변수를 가지며, 각 시간동기 주기마다 CurSeq는 1씩 증가하게 된다. 각 노드는 이웃 노드로부터 시간동기 메시지를 수신할 때마다 수신된 시간동기 메시지의 타임스탬프(timestamp) 및 시간동기 정보를 seq 필드(sequence field)와 함께 메모리에 저장할 수 있다. 이 때, 각 노드의 시간동기 메시지에는 seq 정보(sequence information, 또는 시퀀스 번호)가 포함되어 있지 않으며, 각 이웃 노드로부터 수신한 시간동기 메시지의 이력을 추적하기 위하여 사용된다. seq 정보, 즉 seq 값을 할당하는 규칙은 다음과 같다.Each node has a synchronization round variable called CurSeq to monitor the current synchronization round after power is turned on, and CurSeq increases by 1 for each time synchronization period. Each node may store a timestamp and time synchronization information of the received time synchronization message together with a seq field in memory whenever it receives a time synchronization message from a neighboring node. At this time, the time synchronization message of each node does not include seq information (sequence information, or sequence number), and is used to track the history of the time synchronization message received from each neighbor node. The rules for assigning seq information, that is, seq values, are as follows.

· 수신된 시간동기 메시지가 메모리에 존재하지 않는 노드에서 미리 전송되는 경우, 이 노드(메시지)는 새로운 노드(newly joining node, 또는 신규 노드)로 간주된다. 따라서 항목에서 seq 필드의 값은 항상 0으로 설정된다(알고리즘 1의 13행).· If the received time-synchronization message is transmitted in advance from a node that does not exist in memory, this node (message) is considered as a new joining node (or new node). Therefore, the value of the seq field in the entry is always set to 0 (line 13 of Algorithm 1).

· 수신된 시간동기 메시지가 비동기 노드로 간주되는 노드(기존 노드)에서 전송된 경우, 입력의 seq 필드 값은 CurSeq의 음수 값(알고리즘 1의 5-7행)으로 설정된다. 기존 노드는 무선 애드혹 네트워크에 이미 포함된 노드일 수 있다. 동기화된 노드와 비동기화된 노드를 구분하는 세부 기준은 다음 단락에서 다시 설명한다.If the received time-synchronized message is sent from a node that is considered asynchronous (an existing node), the value of the seq field in the input is set to the negative value of CurSeq (lines 5-7 of Algorithm 1). The existing node may be a node already included in the wireless ad hoc network. The detailed criteria for distinguishing a synchronized node from a non-synchronized node will be described again in the next paragraph.

· 수신된 시간동기 메시지가 동기화된 노드로 간주되는 노드에서 전송되는 경우, seq 필드의 값은 curSeq 값(알고리즘 1의 8-10라인)으로 설정된다.· When the received time-synchronization message is transmitted from a node considered to be a synchronized node, the value of the seq field is set to the curSeq value (lines 8-10 of Algorithm 1).

이웃 노드를 동기화된 노드 또는 비동기화된 노드로 구분할지의 기준은 알고리즘 1에서의 4행에서와 같이, 상대적인 클록 속도 (related clock skew)로 파악할 수 있다. 예를 들어, 평균 기반 시간동기화 프로토콜에서 각 노드는 시간동기화 과정을 거치면서 각 노드의 클록 속도(clock rate)가 점차 동일한 클록 속도로 수렴하게 된다. 즉, 이론적인 조건에서 두 노드간 시간동기가 완료되고 나면, 각 노드의 클록 속도가 일정하게 유지된다. 이 때, 이론적인 조건이란 메시지 전달 과정에서 통신 지연이 없는 경우를 의미하나, 실제 환경에서 메시지 지연시간은 필연적으로 수반하며 특히, 메시지 지연시간이 비결정적으로(non-deterministic)하게 결정될 수 있어, 클록 속도에 일부 변이(fluctuation, 파동)가 발생할 수 있다. 따라서, 두 노드 사이의 클록 속도가 정확히 일치하는 조건으로 시간동기 여부를 파악할 수는 없으며 대신, 아래 수학식 6과 같이 최대 지연시간(또는 최대 전송 지연시간) D, 최대 클록 속도 ρ를 기준으로 임계값을 결정할 수 있다. 이 때, MAC layer timestamping 기법을 적용함으로써, 메시지 지연시간은 5us이하이며, 이에 따라 임계값 θ도 매우 작게 설정할 수 있다.As in line 4 of Algorithm 1, the criterion of whether to classify a neighbor node as a synchronized node or an asynchronous node can be identified by the relative clock skew (related clock skew). For example, in an average-based time synchronization protocol, each node gradually converges to the same clock rate as each node undergoes a time synchronization process. That is, in the theoretical condition, after the time synchronization between the two nodes is completed, the clock speed of each node is kept constant. At this time, the theoretical condition means that there is no communication delay in the message delivery process. There may be some fluctuations in the clock speed. Therefore, it is impossible to determine whether the time synchronization is based on the condition that the clock rates between the two nodes exactly match. Instead, as shown in Equation 6 below, the threshold is based on the maximum delay time (or maximum transmission delay time) D and the maximum clock speed ρ. value can be determined. At this time, by applying the MAC layer timestamping technique, the message delay time is 5 us or less, and accordingly, the threshold value θ can be set very small.

[수학식 6][Equation 6]

Figure 112020040498775-pat00021
Figure 112020040498775-pat00021

이에 따라, 노드의 클록 속도가 갑자기 변경되거나 악의적인 노드로부터 시간동기 메시지를 수신할 때에, 상대적인 클록 속도의 차이는 매우 크게 나타난다. 이를 바탕으로 아래 수학식 7과 같이 이웃 노드가 동기화된 노드인지 아닌지 여부를 파악할 수 있다.Accordingly, when a node's clock speed is suddenly changed or a time synchronization message is received from a malicious node, the relative clock speed difference is very large. Based on this, as shown in Equation 7 below, it is possible to determine whether the neighboring node is a synchronized node or not.

[수학식 7][Equation 7]

Figure 112020040498775-pat00022
Figure 112020040498775-pat00022

2) 클록 속도 및 오프셋의 보상2) Compensation of clock speed and offset

시간동기 주기 T가 만료되면, 각 노드는 수학식 4와 5에 따라 클록 속도 및 오프셋의 보정값 계산을 시작한다. 이때, 시간동기 보정에 포함되는 이웃 노드는 동기화된 이웃 노드의 수에 따라 다르게 적용되며, 자세한 규칙은 다음과 같다.When the time synchronization period T expires, each node starts calculating clock speed and offset correction values according to Equations (4) and (5). In this case, the neighbor nodes included in the time synchronization correction are applied differently depending on the number of synchronized neighbor nodes, and the detailed rules are as follows.

· 동기화된 이웃 노드의 수가 동기화되지 않은 이웃 노드의 수와 같거나 두 배 이상일 경우, 각 노드는 계산에 동기화된 이웃 노드만을 포함한다. 컨센서스 기반 시간동기화가 Byzantine fault tolerance (BFT) 시스템의 일종이기 때문에, BFT 시스템에서는 3분의 2의 노드간 합의를 통해서 전체 노드의 합의를 도출할 수 있다고 증명되었다. 이에 따라, 각 노드는 과반 이상의 동기화된 이웃 노드들을 통하여 네트워크 전체의 동기화를 도출할 수 있으며, 동기화되지 않는 이웃 노드들은 나머지 동기화된 이웃 노드에 따라 클록을 조정할 수 있다.· If the number of synchronized neighbors is equal to or more than double the number of unsynchronized neighbors, each node includes only synchronized neighbors in the calculation. Since consensus-based time synchronization is a kind of Byzantine fault tolerance (BFT) system, it has been proven that the consensus of all nodes can be derived through a two-thirds agreement between nodes in the BFT system. Accordingly, each node can derive synchronization of the entire network through more than half of the synchronized neighboring nodes, and non-synchronized neighboring nodes can adjust clocks according to the remaining synchronized neighboring nodes.

· 반대로 동기화된 이웃 노드의 수가 비동기화된 이웃 노드의 두 배 미만인 경우, 각 노드는 새로 결합된 노드를 제외한 모든 이웃 노드들을 계산에 포함시킨다. 즉, 각 노드는 네트워크 내에 대다수의 이웃 노드가 비동기화된 상태라고 볼 수 있으며, 전체 이웃 노드들의 클록 값의 평균화를 통하여 클록 속도의 일치를 이루게 될 수 있다.Conversely, if the number of synchronized neighboring nodes is less than twice the number of unsynchronized neighboring nodes, each node counts all neighboring nodes except the newly joined node. That is, each node can be regarded as a state in which most of the neighboring nodes in the network are in a state of synchronization, and the clock speed can be matched by averaging the clock values of all neighboring nodes.

비동기화된 노드의 존재는 실제 네트워크 환경, 특히 동적이고 적대적인 환경에서 피할 수 없다. 도 1 내지 도 3에서 설명한 바와 같이, 네트워크의 공통 클럭과 상이한 클럭을 갖는 노드는 비동기화된 노드로 간주되며, 비동기화된 노드는 자신의 상태를 인지할 수 없다. 즉, 비동기화된 노드의 관점에서는 비동기화된 노드에 이웃하는 모든 이웃 노드들의 상태를 비동기화 상태로 인식할 수 있다. 그러므로, 비동화된 노드는 클록 속도 및 오프셋의 보정값을 계산하기 위해서 모든 이웃 노드들 전체의 시간 동기값을 이용하여 평균화해야 한다. 반대로, 네트워크 내 나머지 노드들의 관점에서는 네트워크 내에 소수의 비동기화된 노드가 존재한다고 인식할 수 있다. 따라서, 네트워크 내에 동기화된 노드들은 일시적인 기간(예를 들어, 비동기화 노드들이 동기화된 노드들의 클록 속도에 동기화될 때까지의 기간) 동안 비동기화된 노드들을 보정값 계산과정에서 제외하면 된다.The existence of asynchronous nodes is unavoidable in real network environments, especially in dynamic and hostile environments. 1 to 3 , a node having a clock different from the common clock of the network is regarded as an unsynchronized node, and the unsynchronized node cannot recognize its state. That is, from the point of view of the unsynchronized node, the state of all neighboring nodes neighboring the unsynchronized node can be recognized as the unsynchronized state. Therefore, the desynchronized node must average the clock speed and offset using the time synchronization values of all neighboring nodes in order to calculate the correction values. Conversely, from the point of view of the remaining nodes in the network, it can be recognized that there are a small number of unsynchronized nodes in the network. Accordingly, the synchronized nodes in the network may exclude the unsynchronized nodes from the correction value calculation process for a temporary period (eg, the period until the unsynchronized nodes are synchronized with the clock speed of the synchronized nodes).

결과적으로 비동기화된 노드는 이웃하는 이웃 노드들에게 어떠한 부정적인 영향도 일으킬 수 없고 네트워크와 빠르게 동기화될 수 있다. 또한, 이동 환경에서 노드 이동성으로 네트워크 토폴로지가 변경될 경우에도 이동 노드의 잘못된 시간정보를 보정값 계산에서 제외함으로써 빠른 시간동기를 이루도록 할 수 있다.As a result, an unsynchronized node cannot cause any negative impact on its neighboring nodes and can quickly synchronize with the network. In addition, even when the network topology is changed due to node mobility in a mobile environment, it is possible to achieve fast time synchronization by excluding incorrect time information of the mobile node from the calculation of the correction value.

도 4는 일 실시예에 따른 노드의 개략적인 블록도이다.4 is a schematic block diagram of a node according to an embodiment.

노드(100)는 제1 메모리(110), 제2 메모리(130) 및 프로세서(150)를 포함할 수 있다.The node 100 may include a first memory 110 , a second memory 130 , and a processor 150 .

제1 메모리(110)는 프로세서(150)에 의해 실행가능한 인스트럭션들(또는 프로그램)을 저장할 수 있다. 예를 들어, 인스트럭션들은 프로세서(150)의 동작 및/또는 프로세서(150)의 각 구성의 동작을 실행하기 위한 인스트럭션들을 포함할 수 있다.The first memory 110 may store instructions (or programs) executable by the processor 150 . For example, the instructions may include instructions for executing an operation of the processor 150 and/or an operation of each component of the processor 150 .

제2 메모리(130)는 도 1 내지 도 3에서 설명된 시간동기 메시지, CurSeq, 타임스탬프, 시간동기 정보, Seq 필드 등 노드에 대한 다양한 정보를 저장할 수 있다.The second memory 130 may store various information about the node, such as the time synchronization message, CurSeq, timestamp, time synchronization information, and Seq field described with reference to FIGS. 1 to 3 .

프로세서(150)는 제1 메모리(130)에 저장된 데이터를 처리할 수 있다. 프로세서(130)는 제1 메모리(130)에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(150)에 의해 유발된 인스트럭션(instruction)들을 실행할 수 있다.The processor 150 may process data stored in the first memory 130 . The processor 130 may execute computer-readable codes (eg, software) stored in the first memory 130 and instructions induced by the processor 150 .

프로세서(150)는 도 2 및 도 3에서 설명된 이웃 노드의 상태 분류 동작과, 클록 속도 및 오프셋의 보상 동작시 저장해야 하는 것들을 제2 메모리(130)에 저장할 수 있다.The processor 150 may store, in the second memory 130 , things to be stored during the operation of classifying the state of the neighboring node and the operation of compensating the clock speed and offset described in FIGS. 2 and 3 .

프로세서(150)는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다.The processor 150 may be a hardware-implemented data processing device having a circuit having a physical structure for executing desired operations. For example, desired operations may include code or instructions included in a program.

예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.For example, a data processing device implemented as hardware includes a microprocessor, a central processing unit, a processor core, a multi-core processor, and a multiprocessor. , an Application-Specific Integrated Circuit (ASIC), and a Field Programmable Gate Array (FPGA).

프로세서(150)는 노드(100)의 전반적인 동작을 제어할 수 있다. 또한, 프로세서(135)는 도 1 내지 도 3에서 일 실시예에 따른 이웃 노드 상태 기반의 평균 기반 컨센서스 프로토콜을 통해 네트워크 시간 동기화 방법을 실질적으로 동일하게 수행할 수 있다. 이에, 프로세서(150)의 상세한 설명은 생략하기로 한다.The processor 150 may control the overall operation of the node 100 . In addition, the processor 135 may perform the network time synchronization method substantially the same through the average-based consensus protocol based on the neighbor node state according to an embodiment in FIGS. 1 to 3 . Accordingly, a detailed description of the processor 150 will be omitted.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may comprise a computer program, code, instructions, or a combination of one or more of these, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (5)

무선 애드혹 네트워크에서 시간동기화 프로토콜의 이동성 및 보안성을 향상하는 방법에 있어서,
노드의 복수의 이웃 노드들의 상태를 인식하는 단계;
상기 복수의 이웃 노드들의 상태에 기초하여 상기 복수의 이웃 노드들 중에서 상기 노드의 네트워크 시간 동기화를 위한 평균값 계산에 포함할 노드를 결정하는 단계; 및
상기 평균값 계산에 포함할 노드를 이용하여 상기 노드의 네트워크 시간 동기화를 수행하는 단계
를 포함하고,
상기 평균값 계산에 포함할 노드를 결정하는 단계는,
상기 복수의 이웃 노드들 중에서 상기 노드와 시간이 동기화된 동기 노드의 수, 시간이 동기화되지 않은 비동기 노드의 수, 및 상기 무선 애드혹 네트워크에 새로 합류한 신규 노드의 수를 비교하여 상기 평균값 계산에 포함할 노드를 결정하는 단계
를 포함하고,
상기 비교하여 상기 평균값 계산에 포함할 노드를 결정하는 단계는,
상기 비동기 노드의 수 및 상기 신규 노드의 수보다 상기 동기 노드의 수가 많은 경우, 상기 동기 노드만 상기 평균값 계산에 포함할 노드로 결정하는 단계; 및
상기 비동기 노드의 수 및 상기 신규 노드의 수보다 상기 동기 노드의 수가 적은 경우, 상기 동기 노드 및 상기 비동기 노드를 상기 평균값 계산에 포함할 노드로 결정하는 단계
를 포함하는, 방법.
A method for improving mobility and security of a time synchronization protocol in a wireless ad hoc network, the method comprising:
recognizing the state of a plurality of neighboring nodes of the node;
determining a node to be included in calculating an average value for network time synchronization of the node from among the plurality of neighboring nodes based on states of the plurality of neighboring nodes; and
performing network time synchronization of the node using a node to be included in the average value calculation
including,
The step of determining the node to be included in the average value calculation comprises:
Among the plurality of neighboring nodes, the number of synchronized nodes whose time is synchronized with the node, the number of asynchronous nodes whose time is not synchronized, and the number of new nodes newly joined to the wireless ad-hoc network are compared and included in the average value calculation Deciding which node to do
including,
The comparison and determining a node to be included in the calculation of the average value comprises:
determining, when the number of synchronous nodes is greater than the number of asynchronous nodes and the number of new nodes, determining only the synchronous node as a node to be included in the average value calculation; and
When the number of synchronous nodes is smaller than the number of asynchronous nodes and the number of new nodes, determining the synchronous node and the asynchronous node as nodes to be included in the average value calculation;
A method comprising
제1항에 있어서,
상기 인식하는 단계는,
상기 복수의 이웃 노드들 각각과 상기 노드 간의 상대적인 클럭 속도에 기초하여 상기 복수의 이웃 노드들을 상기 노드와 시간이 동기화된 동기 노드, 시간이 동기화되지 않은 비동기 노드, 상기 무선 애드혹 네트워크에 새로 합류한 신규 노드로 결정하는 단계
를 포함하는, 방법.
According to claim 1,
The recognizing step is
Based on the relative clock speed between each of the plurality of neighboring nodes and the node, the plurality of neighboring nodes are identified as a synchronous node whose time is synchronized with the node, an asynchronous node whose time is not synchronized, and a new member newly joined to the wireless ad hoc network. Steps to determine with nodes
A method comprising
제2항에 있어서,
상기 무선 애드혹 네트워크에 새로 합류한 신규 노드로 결정하는 단계는,
상기 복수의 이웃 노드들 각각과 상기 노드 간에 메시지가 송수신되었는지 여부에 기초하여 상기 복수의 이웃 노드들을 상기 신규 노드 및 상기 무선 애드혹 네트워크에 이미 포함된 기존 노드로 결정하는 단계; 및
상기 기존 노드로 결정된 노드들 각각과 상기 노드 간의 상대적인 클록 속도에 기초하여 상기 기존 노드로 결정된 노드들을 상기 동기 노드 및 상기 비동기 노드로 결정하는 단계
를 포함하는, 방법.
3. The method of claim 2,
The step of determining as a new node newly joined to the wireless ad hoc network includes:
determining the plurality of neighbor nodes as the new node and the existing node already included in the wireless ad hoc network based on whether a message is transmitted/received between each of the plurality of neighbor nodes; and
Determining the nodes determined as the existing nodes as the synchronous node and the asynchronous node based on a relative clock speed between each of the nodes determined as the existing nodes and the nodes
A method comprising
제3항에 있어서,
상기 비교하여 상기 평균값 계산에 포함할 노드를 결정하는 단계는,
상기 동기 노드의 수를 상기 비동기 노드의 수 및 상기 신규 노드의 수와 비교하는 단계; 및
비교 결과에 기초하여 상기 동기 노드와 상기 비동기 노드 중에서 적어도 하나를 상기 평균값 계산에 포함할 노드로 결정하는 단계
를 포함하는, 방법.
4. The method of claim 3,
The comparison and determining a node to be included in the calculation of the average value comprises:
comparing the number of synchronous nodes with the number of asynchronous nodes and the number of new nodes; and
determining at least one of the synchronous node and the asynchronous node as a node to be included in the average value calculation based on a comparison result
A method comprising
삭제delete
KR1020200047555A 2020-04-20 2020-04-20 Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks KR102326764B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200047555A KR102326764B1 (en) 2020-04-20 2020-04-20 Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200047555A KR102326764B1 (en) 2020-04-20 2020-04-20 Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks

Publications (2)

Publication Number Publication Date
KR20210129485A KR20210129485A (en) 2021-10-28
KR102326764B1 true KR102326764B1 (en) 2021-11-15

Family

ID=78232703

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200047555A KR102326764B1 (en) 2020-04-20 2020-04-20 Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks

Country Status (1)

Country Link
KR (1) KR102326764B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101788196B1 (en) * 2016-07-18 2017-10-19 국방과학연구소 Bio-inspired distributed wireless resource allocation method for the Ad-hoc network environment
KR101818870B1 (en) 2016-12-23 2018-01-17 한국과학기술원 Reliability based distributed synchronization method in distributed network with malfunctioning terminal and apparatus therefor

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101342588B1 (en) * 2008-07-11 2013-12-17 한국전자통신연구원 Time synchronization method for multi-hop sensor network
KR101468274B1 (en) * 2012-10-31 2014-12-03 중앙대학교 산학협력단 Method and system for synchronizing time information in ad hoc network
KR102067479B1 (en) * 2013-01-03 2020-01-20 한국전자통신연구원 Method and apparatus for correcting reference time for distributed time synchronization
KR102195766B1 (en) * 2017-10-25 2020-12-28 에스케이텔레콤 주식회사 Method and Apparatus for synchronizing clock using neighbor nodes collaboration and data learning

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101788196B1 (en) * 2016-07-18 2017-10-19 국방과학연구소 Bio-inspired distributed wireless resource allocation method for the Ad-hoc network environment
KR101818870B1 (en) 2016-12-23 2018-01-17 한국과학기술원 Reliability based distributed synchronization method in distributed network with malfunctioning terminal and apparatus therefor

Also Published As

Publication number Publication date
KR20210129485A (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US10862601B1 (en) Bridges including physical layer devices for indicating transmission times of synchronization frames by modifying previously generated corresponding follow up frames
US10237008B2 (en) Synchronization with different clock transport protocols
US8675636B2 (en) Node in a wireless system and method for time and frequency synchronizing nodes in a wireless system
US8995473B2 (en) Ring based precise time data network clock phase adjustments
JP5223427B2 (en) Clock synchronization system
JP5127482B2 (en) Timing synchronization method, synchronization apparatus, synchronization system, and synchronization program
US20210022098A1 (en) Distributed time sync in a directed acyclic graph of a time-synchronized network based on correlating timing information from higher network devices
KR102326764B1 (en) Method of improving mobility and security of time synchronization protocol using status information of neighbor nodes in wireless ad hoc networks
US8861552B2 (en) Fault-tolerant self-stabilizing distributed clock synchronization protocol for arbitrary digraphs
US8897289B2 (en) Node system and supervisory node
JP2014165582A (en) Time synchronization system, time synchronization method, slave node and computer program
KR102428935B1 (en) Method and apparatus of performing synchronization
KR101323128B1 (en) Apparatus and method of time synchronization by automaticlly controlling sending message count of master
JP6274918B2 (en) Communications system
JP6085864B2 (en) Time synchronization system, time synchronization method, slave node, and computer program
Kim et al. Delay attack-resilient clock synchronization for wireless sensor networks
KR102556623B1 (en) Method and apparatus for time synchronization using hybrid technique
JP2009171053A (en) Communication synchronization method and communication terminal
US20230208544A1 (en) Method, apparatus, and system for processing time synchronization fault and storage medium
US20230262625A1 (en) Time Synchronization Fault Processing Method, Apparatus, And System
JP6357796B2 (en) Wireless communication apparatus, wireless communication apparatus synchronization method, wireless communication program, and wireless communication system
KR20220027617A (en) Method and device for robust time synchronization with median filtering under mobile environments
CN117044322A (en) High-precision time synchronization method for communication network master clock of user plane function
Locher et al. Gradient Clock Synchronization in Dynamic Networks

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant