KR101989148B1 - 트리 생성 방법 및 스케쥴링 방법 - Google Patents

트리 생성 방법 및 스케쥴링 방법 Download PDF

Info

Publication number
KR101989148B1
KR101989148B1 KR1020170156531A KR20170156531A KR101989148B1 KR 101989148 B1 KR101989148 B1 KR 101989148B1 KR 1020170156531 A KR1020170156531 A KR 1020170156531A KR 20170156531 A KR20170156531 A KR 20170156531A KR 101989148 B1 KR101989148 B1 KR 101989148B1
Authority
KR
South Korea
Prior art keywords
node
nodes
period
data
child
Prior art date
Application number
KR1020170156531A
Other languages
English (en)
Other versions
KR20190059021A (ko
Inventor
추현승
이지수
강병석
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020170156531A priority Critical patent/KR101989148B1/ko
Publication of KR20190059021A publication Critical patent/KR20190059021A/ko
Application granted granted Critical
Publication of KR101989148B1 publication Critical patent/KR101989148B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/12Wireless traffic scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/44Star or tree networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/04Wireless resource allocation
    • H04W72/044Wireless resource allocation based on the type of the allocated resource
    • H04W72/0446Resources in time domain, e.g. slots or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/30Services specially adapted for particular environments, situations or purposes
    • H04W4/38Services specially adapted for particular environments, situations or purposes for collecting sensor information

Abstract

하나의 동작 기간내의 타임 스롯의 개수에 관한 정보, 네트워크내의 노드 간의 거리에 관한 정보 및 상기 네트워크내의 노드의 개수에 관한 정보 중 적어도 하나를 획득하는 단계; 상기 타임 슬롯의 개수에 관한 정보, 상기 노드 간 거리 정보 및 상기 노드개수 정보 중 적어도 하나에 기초하여, 각각의 노드가 보유할 수 있는 최대 자식 노드의 수를 결정하는 단계; 및 상기 최대 자식 노드의 수를 초과하는 노드가 최소가 되도록 상기 네트워크내의 노드의 데이터 수집 경로를 나타내는 트리를 생성하는 단계를 포함하는 트리 생성 방법 및 스케쥴링 방법이 개시된다.

Description

트리 생성 방법 및 스케쥴링 방법{Method for generating of tree and scheduling}
본 발명은 트리를 생성하는 방법 및 스케쥴링 방법에 관한 것으로, 특히, 듀티-사이클 방식의 네트워크에서 데이터의 수집 경로인 트리를 생성하는 방법 및 스케쥴링 방법에 관한 것이다.
무선 센서 네트워크(Wireless Sensor Network, WSN)은 다수의 센서로 구성되며, 각각의 센서는 에너지 하베스팅을 통하여 전력을 공급받는다. WSN은 군사 감시, 산업 모니터링, 환경 모니터링, 헬쓰케어와 같이 정보를 수집하고 특정 상황을 검출하는 다양한 분야에서 활용되고 있다. 이러한, WSN에서는 네트워크내의 모든 노드로부터 싱크 노드까지 데이터를 수집하는 과정이 매우 중요하다. 이 때, 싱크 노드와 리프 노드 사이의 노드에서는 수신된 데이터를 결합하여 부모 노드로 전송하여야 하므로 리프 노드에서 싱크 노드까지의 데이터 전송 지연을 줄이는 것이 매우 중요하다.
또한, WSN을 구성하는 다수의 센서는 일반적으로 충전이 불가능한 베터리나 에너지 하베스팅을 통하여 전력을 공급받기 때문에 에너지 소모를 줄이는 것이 중요하다. 이를 위하여, 듀티-사이클 방식의 네트워크 기술이 각광을 받고 있다. 듀티-사이클 방식은 동작 기간(Working Period)을 복수의 타임 슬롯으로 구분하고 각각의 노드는 일부 타임 슬롯에서만 활성화되고 나머지 타임 슬롯에서는 슬립 상태로 동작한다. 이러한 방식은 센서 노드의 활동 시간을 감소시킴으로서 노드의 전력 소모를 최소화시킨다. 다만, 슬립 상태에서는 데이터의 전송 및 수신이 불가능하므로, 데이터의 전송 지연이 증가하게 되고 노드간의 충돌이 발생하지 않도록 하기 위한 트리 생성 및 스케쥴링이 중요한 이슈로 부각되었다.
상기의 문제점을 해결하기 위한 타임 슬롯의 개수, 노드 간의 거리 및 노드의 개수에 기초하여 하나의 노드가 보유할 수 있는 최대 자식 수를 결정하고, 최대 자식 수를 초과하는 노드가 최소가 되도록 트리를 생성함으로서 데이터 전송 지연을 최소화하는 트리 생성 방법을 제공하는 것이다.
또한, 자식 노드의 타임 슬롯과 부모 노드의 타임 슬롯의 배치를 고려하여 충돌이 발생하지 않도록 노드의 데이터 전송 기간을 스케쥴링 함으로서 데이터 전송 지연을 최소화하는 스케쥴링 방법을 제공하는 것이다.
본 발명이 해결하고자 하는 과제는 이상에서 언급한 과제(들)로 제한되지 않으며, 언급되지 않은 또 다른 과제(들)은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기의 목적을 달성하기 위한 본 발명의 일 실시예에 따른 스케쥴링 방법은, 하나의 동작 기간내의 복수의 타임 슬롯들 중 일부 타임 슬롯에서만 활성화되는 노드의 데이터 전송 기간을 스케쥴링하는 방법에 있어서, 대상 노드가 데이터를 전송할 준비가 완료되는 동작 기간인 제 1 동작 기간 정보를 획득하는 단계; 상기 대상 노드가 활성화되는 제 1 타임 슬롯에 관한 정보 및 상기 대상 노드로부터 데이터를 수신하는 부모 노드가 활성화되는 제 2 타임 슬롯에 관한 정보를 획득하는 단계; 및 상기 제 1 타임 슬롯에 관한 정보, 상기 제 2 타임 슬롯에 관한 정보 및 상기 제 1 동작 기간 정보에 기초하여, 상기 대상 노드가 상기 부모 노드로 데이터를 전송하는 동작 기간인 데이터 전송 기간을 결정하는 단계를 포함하는 것이다.
상기 데이터 전송 기간을 결정하는 단계는, 상기 제 2 타임 슬롯이 상기 제 1 타임 슬롯 보다 큰 경우 상기 제 1 동작 기간을 상기 데이터 전송 기간으로 결정하고, 상기 제 2 타임 슬롯이 상기 제 1 타임 슬롯보다 작거나 같은 경우, 상기 제 1 동작 기간 이후의 동작 기간인 제 2 동작 기간을 상기 데이터 전송 기간으로 결정할 수 있다.
상기 데이터 전송 기간을 결정하는 단계는, 상기 결정된 데이터 전송 기간이 상기 대상 노드에 대한 충돌 가능한 노드의 데이터 전송 기간에 해당하는 경우, 상기 데이터 전송 기간을 다음번 동작 기간으로 변경하는 단계를 포함할 수 있다.
상기 제 1 동작 기간 정보를 획득하는 단계는, 상기 대상 노드의 자식 노드가 존재하지 않는 경우 상기 제 1 동작 기간은 가장 빠른 동작 기간으로 결정되고, 상기 대상 노드의 자식 노드가 존재하는 경우 상기 제1 동작 기간은 상기 자식 노드로부터 마지막으로 데이터가 수신된 동작 기간으로 결정될 수 있다.
상기 스케쥴링 방법은, 상기 데이터 전송 기간이 결정되면, 상기 대상 노드와 임계 거리 이내에 있는 노드에 상기 대상 노드의 데이터 전송 기간에 관한 정보를 전송하는 단계를 더 포함할 수 있다.
상기 스케쥴링 방법은, 상기 대상 노드에 대하여 충돌 가능한 노드의 데이터 전송 기간에 대한 정보를 수신하는 단계; 및 상기 충돌 가능한 노드의 데이터 전송 기간을 상기 대상 노드가 데이터를 전송할 수 없는 금지 동작 기간으로 결정하는 단계를 더 포함할 수 있다.
상기 스케쥴링 방법은, 상기 결정된 데이터 전송 기간에 기초하여, 상기 부모 노드가 데이터를 전송할 준비가 완료되는 동작 기간을 나타내는 제 2 동작 기간에 관한 정보를 업데이트 하는 단계를 더 포함할 수 있다.
상기의 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 트리 생성 방법은, 하나의 동작 기간내의 복수의 타임 슬롯들 중 일부 타임 슬롯에서만 활성화되는 노드의 데이터 수집 경로를 나타내는 트리를 생성하는 방법에 있어서, 하나의 동작 기간내의 타임 스롯의 개수에 관한 정보, 네트워크내의 노드 간의 거리에 관한 정보 및 상기 네트워크내의 노드의 개수에 관한 정보 중 적어도 하나를 획득하는 단계;
상기 타임 슬롯의 개수에 관한 정보, 상기 노드 간 거리 정보 및 상기 노드개수 정보 중 적어도 하나에 기초하여, 각각의 노드가 보유할 수 있는 최대 자식 노드의 수를 결정하는 단계; 및 상기 최대 자식 노드의 수를 초과하는 노드가 최소가 되도록 상기 네트워크내의 노드의 데이터 수집 경로를 나타내는 트리를 생성하는 단계를 포함하는 것이다.
상기 트리를 생성하는 단계는, 네트워크 내의 복수의 노드들 중 데이터를 전송할 수 있는 후보 부모 노드의개수가 임계치 이하인 특이 노드를 검색하는 단계; 및 상기 특이 노드에 대한 후보 부모 노드 중 하나를 상기 특이 노드에 대한 부모 노드로 결정하는 단계를 포함할 수 있다.
상기 트리를 생성하는 단계는, 상기 트리를 구성할 대상 노드를 선택하는 단계; 및 상기 대상 노드에 대한 이웃 노드로부터 상기 대상 노드를 경유하여 데이터가 전송되는 최종 노드인 싱크 노드까지 데이터를 전송하는데 소요되는 시간인 전송 지연 시간에 기초하여, 상기 이웃 노드를 상기 대상 노드에 대한 자식 노드로 선택적으로 등록하는 단계를 포함할 수 있다.
상기 자식 노드로 선택적으로 등록하는 단계는, 상기 이웃 노드가 데이터를 전송할 수 있는 후보 부모 노드의 개수가 임계치 이하인 특이 노드인 경우, 상기 전송 지연 시간과 관계없이 상기 이웃 노드를 상기 대상 노드에 대한 자식 노드로 등록할 수 있다.
상기 자식 노드로 선택적으로 등록하는 단계는, 상기 대상 노드의 자식 노드가 한계 자식 수 이상이 되면, 상기 이웃 노드를 상기 대상 노드의 자식 노드로 등록하지 않을 수 있다.
상기 트리를 생성하는 단계는, 상기 이웃 노드가 상기 대상 노드의 자식 노드로 등록되었음을 통지하는 메시지를 상기 대상 노드로부터 임계거리 이내의 노드에 전송하도록 제어하는 단계를 더 포함할 수 있다.
상기 트리를 생성하는 단계는, 상기 대상 노드의 자식 노드의 수가 상기 최대 자식 노드 수보다 크거나 같으면, 상기 대상 노드에 대한 이웃 노드가 상기 대상 노드를 후보 부모 리스트에서 제외하도록 제어하는 단계를 더 포함할 수 있다.
타임 슬롯의 개수, 노드 간의 거리 및 노드의 개수에 기초하여 하나의 노드가 보유할 수 있는 최대 자식 수를 결정하고, 최대 자식 수를 초과하는 노드가 최소가 되도록 트리를 생성함으로서, 최대 자식 수를 초과하는 노드가 많아짐에 따라 데이터 전송 지연이 발생하는 문제를 해결한다.
또한, 자식 노드를 검색 및 등록하고자 하는 대상 노드의 모든 자식 노드들이 트리 구성을 완료한 경우에는 예외적으로 대상 노드가 최대 자식 수를 초과하더라도 자식 노드의 검색 및 등록을 계속함으로써, 트리에서 배제되는 노드가 없도록 하면서 데이터 전송 지연을 최소화할 수 있다.
또한, 자식 노드가 활성화되는 타임 슬롯과 부모 노드가 활성화되는 타임 슬롯의 배치 및 충돌 가능 노드의 데이터 전송 기간을 고려하여 스케쥴링을 함으로서, 자식 노드와 부모 노드가 동일한 동작 기간내에 데이터를 전송할 수 있도록 하여 데이터 전송 지연을 최소화한다.
또한, 충돌 가능 노드의 데이터 전송 기간을 회피하면서 가장 빠른 동작 기간에 데이터를 전송함으로서 데이터 전송 지연을 최소화한다.
도 1a는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 수신(전송) 스케쥴을 간략히 나타낸 도면이다.
도 1b는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 송/수신 과정에서 충돌이 발생하는 경우를 설명하기 위한 도면이다.
도 1c는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 송/수신 과정에서 충돌이 발생하는 다른 경우를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 트리 생성 장치(200)에 관한 블록도를 나타낸다.
도 3은 본 발명의 일 실시예에 따른 트리 생성부(230)에서 트리를 생성하는 과정을 설명하기 위한 알고리즘을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 트리 생성부(230)에서 트리를 생성하는 과정을 설명하기 위한 알고리즘의 다른 예를 나타낸 도면이다.
도 5는 도 4의 라인 18에 따라 노드 (U)에서 노드(V)를 자식 노드로 등록하는 과정을 나타내는 알고리즘에 관한 일 예이다.
도 6은 도 4의 라인 27에 따른 노드 V의 트리 참여 과정을 나타내는 알고리즘에 관한 일 예이다.
도 7은 도 4의 라인 35에 따른 활성자 검색 과정을 나타내는 알고리즘에 관한 일 예이다.
도 8은 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에 관한 블록도를 나타낸다.
도 9는 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서 데이터 전송 기간을 스케쥴링 하는 과정을 설명하기 위한 알고리즘을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서 노드의 데이터 전송 기간을 스케쥴링 하는 과정을 설명하기 위한 도면이다.
도 11은 본 발명의 일 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다.
도 12은 본 발명의 다른 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다.
도 13은 본 발명의 일 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다.
도 14는 본 발명의 일 실시예에 따른 스케쥴링 방법에 관한 흐름도를 나타낸다.
도 15은 본 발명의 일 실시예에 따른 듀티-사이클 네트워크에서 노드 수 및 최대 자식 노드 수와 네트워크 성능간의 관계를 나타내는 도면이다.
도 16은 본 발명의 일 실시예에 따른 듀티-사이클 네트워크에서 노드 간 거리(네트워크 사이드 길이,L)와 네트워크 성능간의 관계를 나타내는 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1a는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 수신(전송) 스케쥴을 간략히 나타낸 도면이다.
듀티-사이클 방식의 네트워크에서, 각 노드의 전체 활성화 시간은 동일한 시간 길이를 갖는 복수의 동작 기간(Working Period)으로 나누어진다. 이 때, 동작 기간을 구성하는 타임 슬롯은 하나의 노드가 데이터를 수신하는데 충분한 시간의 길이로 분할된다. 각각의 노드는 특정 규칙에 따라(또는 랜덤하게) T개의 타임 슬롯 중 하나를 할당받게 되며, 각각의 동작 기간에서 나머지 T-1개의 타임 슬롯 동안은 동작하지 않는다. 이 경우, 해당 네트워크의 듀티-사이클은 1/T%로 결정된다. 도 1a의 경우, 하나의 동작 기간내에 5개의 타임 슬롯이 존재하므로, 해당 네트워크의 듀티-사이클은 20%가 되는 것이다. 본 명세서에서는 설명의 편의를 위하여, 각각의 노드는 활성화되는 타임-슬롯 동안 데이터를 수신할 수 있으며, 데이터의 전송은 언제든지 가능하다고 가정하자. 단, 동일한 노드에서 데이터의 전송과 수신이 하나의 타임-슬롯동안 동시에 수행될 수는 없다고 가정하자.
본 명세서에서 자식 노드는 데이터를 전송하는 노드이며, 부모 노드는 데이터를 수신하는 노드이다. 네트워크 내에서 하나의 노드는 A라는 노드에 대해서는 자식 노드이면서, B라는 노드에 대해서는 부모 노드일 수 있다. 부모 노드는 복수의 자식 노드를 포함할 수 있으며, 모든 자식 노드로부터 데이터를 수신한 후 이를 결합하여 자신의 부모 노드에게 전달한다. 만일, 하나의 타임 슬롯을 통하여 하나의 패킷이 전송되며 해당 노드가 A,B라는 두 개의 자식 노드를 갖는다면, 해당 노드는 A와 B로부터 각각 패킷을 수신하여 이를 하나의 패킷으로 가공한 후 가공된 하나의 패킷을 부모 노드 C에게 전달한다. 전송/수신/가공되는 패킷의 형태나 개수는 실시예에 따라서 다양할 수 있으며, 본 발명이 여기에 한정되는 것은 아니다.
싱크 노드는 데이터가 전달되는 최종 목적지에 해당하는 노드로, 싱크 노드는 다른 노드에 대한 부모 노드일 뿐 자식 노드가 될 수 없다. 즉, 데이터 수집 과정이 싱크 노드에서 종료되며, 싱크 노드는 더 이상 다른 노드에 데이터를 전송하지 않는다.
도 1a에서, 네모 박스는 타임 슬롯을 나타내는 것으로 박스내에 숫자는 해당 타임 슬롯의 번호를 나타낸다. 도 1a를 참고하면, 각각의 타임 슬롯은 소정의 주기마다 반복되는데 본 명세서에서는 해당 주기만큼의 시간 길이를 동작 기간이라고 명명한다.
일 예로, 제 1 동작 기간(110)은 '5'개의 타임 슬롯(111,122,123,124,125)로 구성된다. 제 1 타임 슬롯(111)에서는 '0'에 대응하는 노드가 활성화되어 데이터를 수신하며, 나머지 노드는 활성화되지 않는다. 유사하게, 제 2 타임 슬롯(112)에서는 '1'에 대응하는 노드가 활성화되어 데이터를 수신하며, 나머지 노드는 활성화되지 않는다.
설명의 편의를 위하여, 노드 ID가 '2'인 노드는 '2'번 타임 슬롯에서만 활성화 된다고 가정하자. 노드 ID가 '2'인 노드는 각각의 동작 기간에서 제 3슬롯에서 활성화되며, 나머지 타임 슬롯에서는 비활성화 상태이다. 따라서, 노드 ID가 '2'인 노드에 데이터를 전송하기 위해서는 반드시 제 3 슬롯에 해당하는 시간에 데이터를 전송하여야 한다.
도 1b는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 송/수신 과정에서 충돌이 발생하는 경우를 설명하기 위한 도면이다.
도 1b에서는, 해당 네트워크에 제 1 노드(141), 제 2 노드(142) 및 제 3 노드(143)가 존재하며, 제 1 노드(141) 및 제 2 노드(142)는 제 3 노드(143)로 데이터를 전송하는 것으로 가정한다. 또한, 반지름이 'R'인 원은 노드의 데이터 전송 범위를 나타내며, 제 1 노드(141), 제 2 노드(142) 및 제 3 노드(143)은 모두 'R'의 전송 범위를 갖는 것으로 가정한다.
도 1b를 참고하면, 만일 동일한 동작 기간에 제 1 노드(141)와 제 2 노드(142)가 제 3 노드(143)에 동시에 데이터를 전송할 경우, 제 3 노드(143)에서는 간섭에 의하여 완벽한 데이터를 수신할 수 없게 된다. 본 명세에서는, 이와 같이 간섭이나 충돌에 의하여 노드에서 데이터를 성공적으로 수신하지 못하는 경우를 데이터의 충돌이 발생하였다고 명명한다. 특히, 데이터 수집 경로내의 노드들로부터의 데이터 전송에 의하여 간섭이 발생하는 경우를, 직접 충돌이라고 명명한다.
도 1c는 본 발명의 일 실시예에 따른 듀티-사이클 방식으로 동작하는 센서의 데이터 송/수신 과정에서 충돌이 발생하는 다른 경우를 설명하기 위한 도면이다.
도 1c에서는, 제 1 노드(141) 및 제 3 노드(143)간에 데이터 수집을 위한 경로가 설정되며, 제 2 노드(142) 및 제 4 노드(144)간에 데이터 수집을 위한 경로가 설정된다. 또한, 제 2 노드(142)와 제 3 노드(143)간에는 데이터 수집을 위한 경로가 설정되어 있지 않지만, 데이터 전송 범위가 중첩되므로 제 2 노드(142)에서 전송된 데이터는 제 4 노드(144) 뿐만 아니라 제 3 노드(143)에도 도달한다.
따라서, 제 1 노드(141)와 제 2 노드(142)가 동시에 제 3 노드(143) 및 제 4 노드(144)에 각각 데이터를 전송할 경우, 제 3 노드(143)는 간섭으로 인하여 데이터를 성공적으로 수신할 수 없게 된다. 이와 같이, 데이터 수집을 위한 경로가 설정되지 않은 노드에서의 데이터 전송에 기인한 간섭을 간접 충돌로 명명하며, 본 명세에서는 직접 충돌과 간접 충돌을 모두 충돌로 고려한다.
본 명세서에서는, 데이터의 전송시 충돌이 발생할 가능성이 있는 노드들의 집합을 충돌 후보 노드로 명명한다. 도 1b 및 도 1c를 참고하면, 제 2 노드(142)는 제 1 노드(141)에 대한 충돌 후보 노드(CS(u))이다. 듀티-사이클 방식의 네트쿼크에서 데이터 트리 및 스케쥴링을 수행하는 경우 데이터의 충돌이 발생하지 않도록 하는 것이 중요하므로, 제 1 노드(141)에서 데이터를 전송할 때 제 2 노드(142)에서는 데이터를 전송하지 않도록 스케쥴링 하는 것이 중요하다.
도 2는 본 발명의 일 실시예에 따른 트리 생성 장치(200)에 관한 블록도를 나타낸다. 본 발명의 일 실시예에 따른 트리 생성 장치(200)는 파라미터 획득부(210), 결정부(220) 및 트리 생성부(230)를 포함한다.
파라미터 획득부(210)는 트리 생성에 필요한 파라미터를 획득한다. 파라미터 획득부(210)는 타임 슬롯 개수 정보, 노드 간 거리 정보 및 노드 개수 정보를 획득한다.
타임 슬롯 개수는 동작 기간을 구성하는 타임 슬롯의 개수를 의미한다.
노드 간 거리 정보는 네트워크 내에서 노드들 간의 거리를 나타내는 것으로, 네트워크 내의 노드가 배치되는 공간을 하나의 평면으로 정의할 경우, 노드 간 거리는 평면의 한 변에 해당하는 거리(즉, 한변을 구성하는 노드간 최대 거리)일 수 있다.
듀티-사이클 네트워크에서 네트워크 지연 시간은 모든 데이터가 싱크 노드에 수집될 때까지의 시간에 비례하며, 싱크 노드가 모든 데이터를 수집할 때까지 몇 개의 동작 기간이 필요한지에 따라서 결정될 것이다. 이러한, 네트워크 성능은 최대 자식 노드 수에 따라서 결정될 수 있다. 이하에서는, 도 15 내지 도 17을 참고하여, 파라미터 획득부(210)에서 획득한 각각의 파라미터와, 최대 자식 노드 수가 네트워크 성능에 미치는 영향을 살펴본다.
도 15은 본 발명의 일 실시예에 따른 듀티-사이클 네트워크에서 노드 수 및 최대 자식 노드 수와 네트워크 성능간의 관계를 나타내는 도면이다.
도 15에서, 가로축은 노드의 개수를 나타내며, 세로축은 싱크 노드가 모든 데이터를 수집하는데 필요한 동작 기간의 개수를 나타낸다. 싱크 노드가 모든 데이터를 수집하는데 필요한 동작 기간의 개수가 작을 수록 네트워크의 성능이 우수하다고 판단할 수 있으므로, 동일한 조건하에서는 y축의 값이 적을 수록 네트워크의 성능이 우수한 것이다.
도 15a는, 노드 간 거리(도 13에서는 네트워크 사이드 길이, L) = 200m, 타임 슬롯 개수(T) = 10인 경우, 노드의 개수와 동작 기간의 개수간의 관계를 나타낸다.
도 15b는, 노드 간 거리(도 13에서는 네트워크 사이드 길이, L) = 200m, 타임 슬롯 개수(T) = 100인 경우, 노드의 개수와 동작 기간의 개수간의 관계를 나타낸다.
도 15c는, 노드 간 거리(도 13에서는 네트워크 사이드 길이, L) = 50m, 타임 슬롯 개수(T) = 100인 경우, 노드의 개수와 동작 기간의 개수간의 관계를 나타낸다.
도 16은 본 발명의 일 실시예에 따른 듀티-사이클 네트워크에서 노드 간 거리(네트워크 사이드 길이,L)와 네트워크 성능간의 관계를 나타내는 도면이다.
도 16에서, 가로 축은 노드 간 거리를 나타내며, 세로축은 싱크 노드가 모든 데이터를 수집하는데 필요한 동작 기간의 개수를 나타낸다.
도 16a는, 노드 수(N) = 400, 타임 슬롯 개수(T) = 2인 경우, 노드간 거리 와 동작 기간의 개수간의 관계를 나타낸다.
도 16b는, 노드 수(N) = 400, 타임 슬롯 개수(T) = 10인 경우, 노드간 거리 와 동작 기간의 개수간의 관계를 나타낸다.
도 16c는, 노드 수(N) = 400, 타임 슬롯 개수(T) = 100인 경우, 노드간 거리 와 동작 기간의 개수간의 관계를 나타낸다.
도 17는 본 발명의 일 실시예에 따른 듀티-사이클 네트워크에서 타임 슬롯 개수와 네트워크 성능간의 관계를 나타내는 도면이다.
도 17에서, 가로 축은 타임 슬롯 개수를 나타내며, 세로축은 싱크 노드가 모든 데이터를 수집하는데 필요한 동작 기간의 개수를 나타낸다.
도 17a는, 노드 수(N) = 400, 노드 간 거리(L) = 50m인 경우, 타임 슬롯 개수와 동작기간가긱기l의 개수간의 관계를 나타낸다.
도 17b는, 노드 수(N) = 400, 노드 간 거리(L) = 100m인 경우, 타임 슬롯 개수와 동작 기간의 개수간의 관계를 나타낸다.
도 17c는, 노드 수(N) = 400, 노드 간 거리(L) = 200m인 경우, 타임 슬롯 개수와 동작 기간의 개수간의 관계를 나타낸다.
다시 도 2를 참고하면, 결정부(220)는 타임 슬롯 개수 정보, 노드 간 거리 정보 및 노드 개수 정보중 적어도 하나에 기초하여, 하나의 노드가 가질 수 있는 최대 자식 노드 수를 결정한다. 상술한 바와 같이, 최적의 최대 자식 수는 타임 슬롯 개수, 노드 간 거리 및 노드 개수에 따라 달라지므로 결정부(220)는 타임 슬롯 개수, 노드 간 거리 및 노드 개수에 따라 네트워크에 적합한 최대 자식 노드 수를 결정한다. 최대 자식 수는 각각의 노드가 상이한 값을 갖도록 결정될 수도 있으며, 모든 노드가 동일한 값을 갖도록 결정될 수도 있다.
트리 생성부(230)는 최대 자식 노드의 수를 초과하는 노드가 최소가 되도록 네트워크내의 노드들 간의 데이터 전송 흐름을 나타내는 트리를 생성한다. 트리 생성부(230)는 가능하면 최대 자식 노드 수를 초과하는 노드가 없도록 트리를 생성하지만, 특정 조건을 만족하는 경우에 한하여 예외적으로 해당 노드가 최대 자식 노드 수를 초과하도록 한다. 예를 들어, 아직 부모 노드를 결정하지 못한 자식 노드에 대하여 더 이상 후보 부모 노드가 없는 경우, 최대 자식 노드의 수를 초과하는 노드가 예외적으로 부모 노드가 될 수 있다.
우선, 트리 생성부(230)는 부모 노드가 결정되지 않은 노드들 중 후보 부모 노드의 개수가 임계치 이하인 노드를 검색한다. 본 명세서에서는, 후보 부모 노드의 개수가 임계치 이하(일 예로, 1개)인 노드를 특이 노드로 명명하고, 후보 부모 노드가 임계치를 초과하는 노드를 일반 노드로 명명한다.
설명의 편의를 위하여 특이 노드를 노드 A로, 노드 A에 대한 후보 부모 노드를 노드 B로, 노드 B에 대한 이웃 노드를 노드 C로 가정해보자.
먼저, 트리 생성부(230)는 특이 노드인 노드 A를 검색한 후, 노드 A에 대한 유일한 후보 부모 노드인 노드 B를 노드 A에 대한 부모 노드로 등록한다. 이 후, 노드 B의 자식 노두 수가 최대 자식 수 이상인 경우 노드 B가 더 이상 다른 노드(예를 들면, 노드 C)의 부모 노드가 되지 않도록 설정한다. 일 예로, 노드 C의 후보 부모 노드에서 노드 B를 제거한다.
모든 특이 노드에 대하여 부모 노드가 결정되면, 트리 생성부(230)는 싱크 노드로부터 자식 노드를 결정하는 과정을 수행한다.
자식 노드를 결정하고자 하는 대상 노드는 이웃 노드들에 자식 노드로의 참여를 요청하는 검색 메시지를 전송한다.
이웃 노드들 중 부모 노드가 정해지지 않은 노드들 즉, 대상 노드가 후보 부모 노드의 리스트에 포함되어 있는 노드들은 검색 메시지에 대응하는 응답 메시지를 대상 노드에 전송한다.
트리 생성부(230)는 응답 메시지를 전송한 노드가 대상 노드를 경유하여 싱크 노드까지 데이터를 전송할 때 소요되는 시간인 전송 지연 시간에 기초하여, 응답 메시지를 전송한 노드를 대상 노드의 자식 노드로 등록할지를 결정한다. 전송 지연 시간은 다음의 수학식 1에 의하여 결정될 수 있다.
[수학식 1]
t(u,v) = d(u) + sl(u,v) +rand(0,1) + nch(v)*T
d(u): 말단 노드로부터 u까지 데이터가 수집되는데 시간
sl(u,v):노드 u에서 노드 v까지 데이터를 전송하는데 걸리는 시간
rand(0,1): 0과 1사이의 난수
nch(v):노드 V의 자식 수
트리 생성부(230)는 응답 메시지를 전송한 노드가 복수의 노드로부터 자식 노드로의 참가를 요청받은 경우 더 유리한 경로로 트리를 형성한다. 그러나, 대상 노드가 검색 메시지를 전송한 유일한 노드라면 대상 노드를 부모 노드로 결정한다.
트리 생성부(230)는 응답 메시지를 전송한 노드를 대상 노드에 대한 자식 노드로 결정한 경우, 해당 정보를 임계치 이내의 거리에 있는 다른 노드들에게 통지한다. 이 때, 대상 노드의 자식 수가 한계 자식 수 이상이면, 이웃하는 다른 노드들이 대상 노드를 부모 노드로 선정하지 못하도록 해당 사실을 함께 전송한다.
도 3은 본 발명의 일 실시예에 따른 트리 생성부(230)에서 트리를 생성하는 과정을 설명하기 위한 알고리즘을 나타낸 도면이다.
도 3에 도시된 알고리즘은 트리를 구성하기 위하여 가장 먼저 수행되는 과정으로 본 명세서에서는 [스타트-업]과정으로 명명한다.
먼저, 설명의 편의를 위하여 스타트-업 알고리즘(300)에서 사용된 변수를 정의한다.
nn(u):노드 u에 대한 이웃 노드의 수
ChS(u):노드 u 의 자식 노드 목록
nch(u): 노드 u의 자식 노드의 수
napc(u): 노드 u의 후보 부모 노드의 수
NAS(u): u의 선택된 활성자 목록(즉, u의 자식 노드들 중 트리 생성이 완료되지 않은 노드)
state(u): 노드 u의 상태를 나타내며, WAIT, ACTIVATED, LISTEN, COMPLETE로 구분됨.
특이 노드: napc(u) = 1
일반 노드: napc(u) >1
P(u): u의 부모 노드
Initialization라인은 변수들의 초기화 과정을 나타낸다.
라인 1에서는, 부모 노드가 결정되지 않은 특이 노드가 존재하는 동안 스타터-업 과정이 수행됨을 나타낸다.
라인 2에서는, 특이 노드 V가 이웃 노드에 자식 노드로의 등록을 요청하는 메시지(JOIN_REQ)를 전송하는 과정을 나타낸다.
라인 3에서, 노드 U가 특이 노드 V로부터 요청 메시지를 수신하면,
라인 4에서는, nch(u)와 napc(u)를 갱신한다. 즉, 노드 V를 노드 U의 자식 노드로 등록한 후, 노드 U의 자식 노드 수를 하나 증가시킨다. 또한, 노드 V는 더 이상 노드 U의 부모 노드가 될 수 없으므로 노드 U의 후보 부모 개수를 하나 감소시킨다.
라인 7에서, 노드 V가 수락 메시지(JOIN_ACCEPT)를 수신하면,
라인 8에서는, 노드 U를 노드 V의 부모 노드로 등록하고, 노드 U의 상태를 "COMPLETE"로 변경한다.
라인 10에서는, 노드 U의 자식 노드 수가 한계 자식 수 이상이면, 노드 U는 더 이상 이웃 노드들(예를 들면, 노드 X)의 부모 노드가 될 수 없다.(단, 실시예에 따라서 예외 설정이 가능) 따라서, 이웃 노드들의 후보 부모 노드 수, 즉, napc(x)를 하나 감소시킨다.
도 4는 본 발명의 일 실시예에 따른 트리 생성부(230)에서 트리를 생성하는 과정을 설명하기 위한 알고리즘의 다른 예를 나타낸 도면이다.
도 4에 도시된 알고리즘은 트리를 구성하기 위하여 [스타트-업] 과정 이후에 수행되는 과정으로 [정규]과정으로 명명한다.
라인 1에서는 싱크 노드(S)의 모든 이웃 노드가 자식 노드로 설정되었는지를 확인한다. 싱크 노드(S)의 모든 이웃 노드가 자식 노드로 설정되었다면, 트리 생성 작업이 완료된 상태이므로 [정규 과정]을 종료한다.
라인 4~5에서는, 최초의 활성자로 싱크 노드(S)가 선택되며 정규 과정이 완료되기 전까지 싱크 노드(S)의 상태는 "ACTIVATED"로 변경된다.
라인 6에서는 활성자 노드(U)의 상태를 "ACTIVATED"로 변경한다. 활성자 노드(U)는 트리 생성 과정이 완료되지 않은 자식 노드로서, 자식 노드를 검색하는 대상 노드가 된다. 일 예로, 싱크 노드(S)가 최초의 활성자 노드로 선택되며, 싱크 노드(S)의 자식 노드가 검색되면 검색된 자식 노드들 중 트리 생성 과정이 완료되지 않은 자식 노드가 새로운 활성자 노드로 추가된다.
라인 7에서, 활성자 노드(U)는 이웃 노드들에 자식 노드를 검색하기 위한 검색 메시지(FIND_CHILD)를 전송한다.
라인 8에서, WATI 상태의 활성자 노드(U)에 대한 이웃 노드(V)는 검색 메시지에 대응하여 요청 메시지(JOIN_REQ)를 전송한다.
라인 12~13에서, 요청 메시지를 전송한 노드(V)가 특이 노드이면, 백-오프 시간(t(u,v))을 0으로 설정한다. 특이 노드는 전송 지연과는 무관하게 활성자 노드(U)에 대한 자식 노드로 등록하기 위함이다.
라인 15에서, 요청 메시지를 전송한 노드(V)가 일반 노드이면, 백-오프 시간(t(u,v))를 업데이트하고, 백-오프 시간동안 이웃 노드(V)를 자식노드로 등록하기 위한 절차를 수행한다.
라인 17에서, 요청 메시지를 전송한 노드(V)가 일반 노드이면서, 다른 활성자 노드(Z)로부터 확정 메시지(JOIN_CONFIRM)를 이미 받은 상태라면 노드(V)를 활성자 노드(U)의 자식 노드에서 제외한다. 이는, 노드 V==>노드 Z==>노드 S로의 데이터 전송이 노드 V==>노드 U==>노드 S로의 데이터 전송보다 더 적합하기 (즉, 전송 지연이 더 짧음) 때문이다.
라인 18에서, 응답 메시지를 전송한 노드(V)가 일반 노드이면서, 백-오프 타임 이전에 다른 활성자 노드(Z)로부터 확정 메시지(JOIN_CONFIRM)를 받지 않은 상태라면 도 5에 따른 수락 과정을 수행한다.
도 5는 도 4의 라인 18에 따라 노드 (U)에서 노드(V)를 자식 노드로 등록하는 과정을 나타내는 알고리즘에 관한 일 예이다.
라인 1에서, 노드(V)를 활성자 노드(U)의 자식 노드로 추가하고, 활성자 노드(U)의 자식 노드 수를 하나 증가시킨다.
라인 2에서, 활성자 노드(U)는 노드(V)를 자식 노드로 수락함을 나타내는 메시지(JOIN_ACCETP)를 이웃 노드에 전송한다.
라인 3~4에서, 노드(V)가 특이 노드인지를 판단한다. 노드(V)가 임의 노드인 경우, 노드 (V)를 활성자 노드로 추가하여 노드(V)에 대한 자식 노드를 검색한다.
라인 5에서, 활성자 노드(U)의 자식 수가 한계 자식수 이상인지를 판단한다. 이는, 활성자 노드(U)의 자식 수가 한계 자식수 이상인 경우 활성자 노드(U)를 다른 이웃 노드가 부모로 설정하지 못하도록 제한하기 위함이다.
라인 6에서, 활성자 노드(U)의 자식 수가 한계 자식수 미만인 경우 다른 이웃 노드에 대한 백-오프 타임을 유지하여 다른 이웃 노드를 자식 노드로 등록할 것인지를 결정한다.
라인 8)에서, 활성자 노드(U)의 자식 수가 한계 자식수 이상이면 다른 이웃 노드에 대한 백-오프 타임을 취소한다.
라인 11에서, 활성자 노드(U)가 다른 활성자 노드를 선택하지 못하였다면(예를 들어, 활성자 노드(U)의 모든 자식 노드가 특이 노드이거나, 모든 자식 노드가 자식 노드의 검색을 완료한 상태라며면) 활성자 노드(U)의 자식 수가 한계 자식 수 이상이라 하더라도 다른 이웃 노드에 대한 백-오프 타임을 유지한다. 이는, 새로운 활성자 노드가 존재하지 않는다면 트리를 완성할 수 없기 때문에 활성자 노드(U)의 자식 수가 한계 자식 수 이상이라 하더라도 예외적으로 이웃 노드를 자식 노드로 등록할 수 있도록 하기 위함이다.
다시 도 4로 돌아가서, 라인 23~24에서는 활성자 노드(U)에 대한 새로운 활성자 노드를 더 이상 발견하지 못한다면 활성자 노드(U)의 부모 노드(P(U))로 완료 메시지(STUCK)를 전송하고 활성자 노드(U)의 상태를 "COMPLETE"로 변경한다.
한편, 라인 27에서, 활성자 노드(U)로부터 수락 메시지(JOIN_ACCEPT)를 수신한 노드(V)는 도 6에 따른 트리 참여 과정을 수행한다.
도 6은 도 4의 라인 27에 따른 노드 V의 트리 참여 과정을 나타내는 알고리즘에 관한 일 예이다.
라인 1에서, 노드(V)는 노드(U)를 부모 노드(P(V))로 등록하고, 지연 시간(d(v))를 업데이트한다.
라인 2에서, 노드(V)는 이웃 노드에 노드(V)가 노드(U)의 자식 노드로 등록되었음을 확인하는 메시지(JOIN_CONFIRM)를 전송한다.
라인 3~4에서, 노드(V)가 특이 노드이면 노드(V)의 상태를 "COMPLETE"로 수정한다. 이는 노드(V)가 특이 노드인 경우 노드(V)의 모든 이웃 노드들은 트리에 참여한 상태이기 때문이다.
라인 6에서, 노드(V)가 일반 노드이면 노드(V)의 상태를 "ACTIVATE"로 수정하고, 노드(V)에 대한 자식 노드를 검색한다.
다시 도 4로 돌아가서, 라인 30~33는 활성자 노드(U)에 대한 이웃 노드(Y)의 동작에 관한 설명이다.
라인 30에서, "WAIT"상태인 이웃 노드(Y)는 활성자 노드(U)가 노드(V)를 자식 노드로 수락하였음을 나타내는 메시지(JOIN_ACCEPT)를 수신한다.
라인 31에서, 활성자 노드(U)의 자식 노드 수가 한계 자식 수 이상인 경우, 이웃 노드(Y)의 후보 부모 노드에서 활성자 노드(U)를 제외하여야 하므로, 후보 부모 노드 수(napc(y))를 하나 감소시킨다.
라인 35는 모든 활성자 노드로부터 "STUCK"메시지가 수신되면 도 7에 따른 활성자 검색 과정을 수행한다.
도 7은 본 발명의 일 실시예에 따른 트리 생성 장치(200)에서 트리를 생성하는 과정에서 도 4의 라인 35에 따른 활성자 검색 과정을 나타내는 알고리즘에 관한 일 예이다.
라인 1에서, 활성자 노드(U)는 이웃 노드에 검색 메시지(FIND_CHILD)를 재전송한다.
라인 2에서, 활성자 노드(U)가 일반 노드로부터 요청 메시지(JOIN_REQ)를 수신하지 못한다면, 라인 3에서 활성자 노드(U)는 부모 노드(P(U))에 "STUCK"메시지를 전송하고 상태를 "COMPLETE"로 변경한다.
라인 5에서, 싱크 노드(S)가 일반 노드로부터 응답 메시지(JOIN_REQ)를 수신하지 못한다면, 라인 6에서 싱크 노드(S)의 상태를 "COMPLETE"로 변경하고 트리 생성 과정을 종료한다.
도 8은 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에 관한 블록도를 나타낸다.
본 발명의 일 실시예에 따른 스케쥴링 장치(800)는 제 1 정보 획득부(810), 제 2 정보 획득부(820) 및 동작 기간 결정부(830)를 포함할 수 있다.
제 1 정보 획득부(810)는 데이터를 전송하고자 하는 자식 노드와 자식 노드로부터 데이터를 수신할 부모 노드가 활성화되는 타입 슬롯에 관한 정보를 획득한다. 설명의 편의를 위하여 도 8에서는 데이터의 전송 시점을 결정할 자식 노드를 대상 노드로 명명하고, 대상 노드가 활성화되는 타임 슬롯을 제 1 타임 슬롯, 부모 노드가 활성화되는 타임 슬롯을 제 2 타임슬롯으로 명명한다.
제 2 정보 획득부(820)는 대상 노드가 데이터를 전송할 수 있는 동작 기간인 제 1 동작 기간에 관한 정보를 획득한다.
WSN에서 대상 노드가 부모 노드에 데이터를 전송하기 위해서는, 대상 노드의 모든 자식노드로부터 데이터를 수신하여야 한다. 따라서, 대상 노드가 자식 노드를 가지고 있지 않다면 네트워크에서 데이터의 전송이 시작되는 첫번째 동작 기간이 제 1 동작 기간이 되지만, 대상 노드가 하나 이상의 자식 노드를 가지고 있는 경우, 대상 노드의 모든 자식 노드로부터 데이터를 수신한 이후의 가장 빠른 동작 기간이 제 1 동작 기간이 된다.
동작 기간 결정부(830)는 제 1 타임 슬롯과 제 2 타임 슬롯을 비교하여 대상 노드가 데이터를 전송하는 기간을 결정한다.
제 1 타임 슬롯이 제 2 타임 슬롯보다 빠르다면(즉, 제 2 타임 슬롯의 번호가 제 1 타임 슬롯의 번호보다 크다면), 동작 기간 결정부(830)는 제 1 동작 기간을 대상 노드가 데이터를 전송하는 기간으로 결정한다. 즉, 제 1 동작 기간에서 부모 노드가 활성화되는 시점인 제 2 타임 슬롯에서 데이터를 전송한다.
그러나, 제 1 타임 슬롯이 제 2 타임 슬롯보다 느리거나 같다면, 동작 기간 결정부(830)는 제 1 동작 기간 이후의 가장 빠른 동작 기간인 제 2 동작 기간을 대상 노드가 데이터를 전송하는 기간으로 결정한다.
다만, 제 1 타임 슬롯과 제 2 타임 슬롯을 비교하여 결정한 데이터 전송 기간이, 금지된 동작 기간 셋에 포함된 경우 동작 기간 결정부(830)는 그 다음 동작 기간에 대상 노드가 데이터를 전송하도록 스케쥴링한다. 금지된 동작 기간 셋은 대상 노드와 충돌할 가능성이 있는 노드가 데이터를 전송하는 동작 기간이다.
도 9는 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서 데이터 전송 기간을 스케쥴링 하는 과정을 설명하기 위한 알고리즘을 나타낸 도면이다.
먼저, 설명의 편의를 위하여 도 9에서 사용하는 용어를 정의한다.
rank(u): 노드 u의 랭킹을 나타낸다. 노드의 랭킹은 트리 상에서 노드가 위치하는 레벨 및 노드의 식별 정보에 기초하여 결정될 수 있다. 예를 들어, 싱크 노드로부터의 거리가 가장 먼 노드(즉, 홉수가 가장 큰 노드)가 가장 높은 레벨을 갖는다. 노드의 랭킹을 결정하는 방식은 실시예에 따라서 다양할 수 있으며, 예를 들어, 레벨이 높은 노드에 높은 랭킹을 할당하고, 같은 레벨의 경우 노드의 식별자가 앞선 노드에 높은 랭킹을 할당할 수 있다.
tsch(u): 노드 u가 부모 노드로 데이터를 전송하는 동작 기간을 나타낸다. 즉, 노드 u의 데이터 전송 기간을 의미한다.
tmin(u): 노드 u가 부모 노드로 데이터를 전송할 수 있는 최소의 동작 기간을 나타낸다. 즉, 노드 u가 부모 노드로 데이터를 전송할 수 있는 준비가 완료되는 동작 기간인 제 1 동작 기간를 의미하는 것으로, 노드 u는 대한 자식 노드로부터 데이터 수집이 완료되어야 부모 노드로 데이터를 전송할 수 있다.
nuch(u): u의 자식노드들 중 스케쥴링이 완료되지 않은 노드의 개수를 나타낸다.
CS(u): 노드 u가 데이터를 전송할 때 충돌할 가능성이 있는 노드이다.
FS(u): 노드 u가 데이터를 전송하지 못하는 동작 기간을 나타내는 것으로, 금지 동작 기간이다. 금지 동작 기간에는 CS(u)에 속하는 노드, 즉, 충돌 가능성이 있는 노드 중 먼저 스케쥴링 된 노드의 데이터 전송 기간이 포함된다.
이하에서는, 도 9를 참고하여 스케쥴링 장치(800)에서 데이터 전송 기간을 스케쥴링 하는 과정을 설명한다.
라인 0에서는 모든 변수를 초기화한다.
라인 1~4에서는 랭크에 기초하여 스케쥴링을 수행할 대상 노드를 결정한다. 예를 들어, 노드 U의 자식 노드가 없고, 경쟁하는 노드(예를 들면, 충돌 가능성이 있는 노드)들 중 랭킹이 가장 높다면, 대상 노드 U의 데이터 전송 기간을 "동작 노드 1"로 설정한다.
라인 6~9에서는, 노드 U와 노드 U의 부모 노드인 P(U)가 활성화되는 타임 슬롯을 확인한다. 노드 U의 타임 슬롯이 부모 노드 P(U)의 타임 슬롯보다 작다면 데이터 전송 기간이 제 1 동작 기간으로 결정된다. 노드 U의 타임 슬롯이 부모 노드 P(U)의 타임 슬롯보다 작다는 것은, 동일한 동작 기간내에서 부모 노드 P(U)가 활성화되기 전에 노드 U가 먼저 활성화되어 데이터를 전송할 준비가 완료될 수 있음을 의미한다. 반면, 노드 U의 타임 슬롯이 부모 노드 P(U)의 타임 슬롯보다 크다면 데이터 전송 기간은 제 1 동작 기간 + 1(즉, 제 2 동작 기간)로 결정된다.
라인 12~13에서는, 노드 U의 데이터 전송 기간이 금지 동작 기간에 해당하는지를 판단한다. 노드 U의 데이터 전송 기간이 금지 동작 기간에 해당한다면, 데이터 전송 기간을 1 증가시킨다.
라인 15에서는, 노드 U의 스케쥴링 정보(즉, 노드 U의 데이터 전송 기간에 관한 정보)를 이웃하는 노드(예를 들면, 2홉 이내의 노드)에 전송한다.
라인 16~19는 노드 U에 대한 스케쥴링 정보를 수신한 이웃 노드에서의 동작에 관한 것이다. 노드 U에 대한 스케쥴링 정보를 수신한 노드 V는 노드 U의 데이터 전송 기간을 금지 동작 기간(FS(V))에 추가한다. 또한, 노드 U는 이미 스케쥴링이 완료되었으므로 충돌 노드 집합(CS(V))에서 노드 U를 제거한다.
라인 20~24는 노드 U에 대한 스케쥴링 정보를 수신한 부모 노드 P(U))에서의 동작에 관한 것이다. 자식 노드 U에 대한 스케쥴링 정보를 수신한 부모 노드 P(U))는 스케쥴링 되지 않은 자식 노드의 수(nuch(v))에서 하나를 감소시킨다. 또한, 노드 U의 데이터 전송 기간이 부모 노드 P(U))의 제 1 동작 기간 이후인 경우 부모 노드(P(U))의 제 1 동작 기간을 노드 U의 데이터 전송 기간으로 변경한다.
도 10은 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서 노드의 데이터 전송 기간을 스케쥴링 하는 과정을 설명하기 위한 도면이다.
도 10a는 각각의 노드가 활성화되는 타임 슬롯을 나타내는 도면이다.
도 10a를 참고하면, 하나의 동작 기간에는 3개의 타임 슬롯이 존재한다.
도 10a를 참고하면, 싱크 노드는 타임 슬롯 '2'에서 활성화된다.
또한, 노드 V1은 타임 슬롯 '1'에서 활성화되고,
노드 V2는 타임 슬롯 '1'에서 활성화되고,
노드 V3는 타임 슬롯 '0'에서 활성화되고,
노드 V4는 타임 슬롯 '1'에서 활성화되고,
노드 V5는 타임 슬롯 '0'에서 활성화되며,
노드 V6는 타임 슬롯 '0'에서 활성화된다.
도 10b은 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서 노드의 데이터 전송 기간에 대한 스케쥴링을 완료한 모습이다.
설명의 편의를 위하여, 노드 V3, V4, V5, V6은 동작 기간 '0'에서 모든 데이터를 수신하였거나, 자식 노드가 없는 리프 노드로서 이미 데이터의 전송 준비가 완료되었다고 가정한다.
먼저, 스케쥴링 장치(800)는 순위가 가장 높은 노드를 선택하여 데이터 전송 기간을 정한다. 도 10에서는 노드 V3의 순위가 가장 높다고 가정하자.
i)스케쥴링 장치(800)은 노드 V3의 데이터 전송 기간을 가장 빠른 동작 기간인 동작 기간 '1'로 결정한다.
ii)다음으로, 스케쥴링 장치(800)는 노드 V4의 데이터 전송 기간을 결정한다. 노드 V4는 노드 V3와 충돌이 발생할 수 있는 노드이므로, 노드 V3의 데이터 전송 기간과 상이한 동작 기간에 데이터를 전송하여야 한다. 따라서, 노드 V4의 데이터 전송 기간은 동작 기간 '2'로 결정된다.
iii)다음으로, 스케쥴링 장치(800)는 노드 V5의 데이터 전송 기간을 결정한다. 노드 V5는 노드 V4와 충돌이 발생할 수 있는 노드이므로, 노드 V5의 데이터 전송 기간과 상이한 동작 기간 중 가장 빠른 동작 기간에 데이터를 전송하여야 한다. 노드 V4는 동작 기간 '2'에서 데이터를 전송하므로, 노드 V5의 데이터 전송 기간은 동작 기간 '1'로 결정된다.
iv)다음으로, 스케쥴링 장치(800)는 노드 V6의 데이터 전송 기간을 결정한다. 노드 V6는 노드 V4 및 노드 V5와 충돌이 발생할 수 있는 노드이므로, 동작 기간 '1' 및 동작 기간 '2'에는 데이터를 전송할 수 없다. 따라서, 노드 V6의 데이터 전송 기간은 동작 기간 '3'으로 결정된다.
v)다음으로, 스케쥴링 장치(800)는 노드 V1의 데이터 전송 기간을 결정한다. 노드 V1은 타임 슬롯 '1'에서 활성화되므로, 노도 V1이 자식 노드로부터 모든 데이터를 수신하는 시점은 동작 기간 '2'의 타임 슬롯 '1'에서일 것이다. 결과적으로, 노드 V1은 동작 기간 '2'에 싱크 노드 S로 데이터를 전송할 수 있다. 이 때, 부모 노드 S가 활성화되는 타임 슬롯은 타임 슬롯 '2'이므로, 노드 V1은 동작 기간 '2'의 타임 슬롯 '2'에 데이터를 전송할 수 있다. 따라서, 노드 V1의 데이터 전송 기간은 '2'로 결정된다.
vi)마지막으로, 스케쥴링 장치(800)는 노드 V3의 데이터 전송 기간을 결정한다. 노드 V3은 타임 슬롯 '0'에서 활성화되므로, 노드 V3이 자식 노드로부터 모든 데이터를 수신하는 시점은 동작 기간 '3'의 타임 슬롯 '0'에서일 것이다. 결과적으로, 노드 V3는 동작 기간 '3'의 타임 슬롯 '2'에 싱크 노드 S로 데이터를 전송할 수 있다. 이 때, 노드 V1은 노드 V3와 충돌이 발생할 수 있는 노드이지만, 노드 V3의 데이터 전송 기간은 동작 기간 '2'이므로 노드 V3은 동작 기간 '3'에 싱크 노드 S로 데이터를 전송할 수 있다.
종래에는, 충돌 가능한 노드가 존재하는 경우 충돌 가능한 노드의 데이터 전송 기간 이후에 데이터를 전송하여야 하므로 충돌 가능한 노드가 많은 경우 데이터 전송 기간이 길어지게 된다.(예를 들어, 노드 V5는 노드 V4와 충돌이 가능하므로, 노드 V5의 데이터 전송 기간 = 노드 V4의 데이터 전송 기간 + 1이 된다.) 그러나, 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서는 충돌 가능 노드의 데이터 전송 기간과 일치하지 않는 범위내에서 가장 빠른 동작 기간에 데이터를 전송하므로 데이터가 싱크 노드에 도달하는 시간을 줄일 수 있다.
또한, 종래에는 부모 노드는 자식 노드의 데이터 전송 기간 이후에 데이터를 전송한다. (예를 들어, 노드 V1의 데이터 전송 기간 = 노드 V4의 데이터 전송 기간 + 1) 그러나, 본 발명의 일 실시예에 따른 스케쥴링 장치(800)에서는 특정 조건을만족하는 경우(즉, 부모 노드의 타임 슬롯이 자식 노드의 타임 슬롯보다 큰 경우) 부모 노드와 자식 노드가 동일한 동작 기간에 데이터를 전송할 수 있기 때문에 데이터가 싱크 노드에 도달하는 시간을 줄일 수 있다.
도 11은 본 발명의 일 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다. 도 11은 스타트-업 과정을 설명하기 위한 흐름도이다.
단계 s1110에서, 특이 노드 V(1101)는 이웃 노드에 자신을 자식 노드로 등록해 줄 것을 요청하는 메시지(JOIN_REQ)를 전송한다.
단계 s1120에서, 요청 메시지를 수신한 노드 U(1102)는 노드 V(1101)를 자식 노드로 등록하고, 노드 U(1102)의 자식 노드 수와 후보 부모 노드 수를 갱신한다.
단계 s1130에서, 노드 U(1102)는 노드 V(1101) 및 이웃 노드 X(1103)에 노드 U를 자식 노드로 등록함을 알리는 메시지(JOIN_ACCEPT)를 전송한다.
단계 s1140에서, 노드 V(1101)는 노드 V를 자신의 부모 노드로 등록하고 자신의 상태를 완료로 변경한다.
단계 s1150에서, 노드 U(1102)의 자식 노드 수가 한계 자식 수 이상이 된 경우 이웃 노드 X(1103)는 후보 부모 노드의 수에서 1을 감소시킨다.(즉, 후보 부모 노드에서 노드 U를 제외한다.)
도 12은 본 발명의 다른 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다. 도 12은 트리 생성의 정규 과정을 설명하기 위한 흐름도이다.
단계 s1212에서, 활성자 노드 U(1201)는 자식 노드를 검색하기 위한 메시지(FIND_CHILD)를 이웃 노드 V(1202)에 전송한다.
단계 s1214에서, 다른 활성자 노드 Z(1203)도 자식 노드를 검색하기 위한 메시지(FIND_CHILD)를 이웃 노드 V(1202)에 전송한다.
단계 s1222 및 단계 s1224에서, 이웃 노드 V(1202)는 활성자 노드 U(1201)와 활성자 노드 Z(1203)에 요청 메시지(JOIN_REQ)를 전송한다.
단계 s1230에서, 활성자 노드 U(1201)는 이웃 노드 V(1202)에 대한 백-오프 타임을 갱신한다. 이웃 노드 V(1202)가 특이 노드인 경우에는 자식 노드로 등록하기 위하여 백-오프 타임을 '0'으로 설정한다. 그러나, 이웃 노드 V(1202)가 특이 노드가 아닌 경우 전송 지연 시간에 기초하여 이웃 노드 V(1202)에 대응하는 백-오프 타임을 설정한다. 만일, 백-오프 타임 이내에, 이웃 노드 V(1202)가 다른 활성자 노드(예를 들면, 노드 Z)로부터 자식 노드로의 요청을 받고 확정 메시지(JOIN_CONFIRM)메시지를 전송한 경우에는 활성자 노드 U(1201)는 이웃 노드 V(1202)를 자식 후보 노드에서 제외한다. 이는, 이웃 노드 V(1202) ==> 활성자 노드 Z(1203) ==> 싱크 노드로의 데이터 지연이, 이웃 노드 V(1202) ==> 활성자 노드 U(1201) ==> 싱크 노드로의 데이터 지연보다 짧다는 것을 의미하기 때문이다.
단계 s1240에서, 활성자 노드 U(1201)는 수락 메시지(JOIN_ACCETP)를 이웃 노드 V(1202)에 전송한다.
단계 s1250에서, 이웃 노드 V(1202)는 활성자 노드 U(1201)를 부모 노드로 등록한다.
단계 s1260에서, 이웃 노드 V(1202)는 자신에게 이웃하는 노드(즉, 활성자 노드 U, Z)에 확정 메시지(JOIN_CONFIRM)를 전송한다.
단계 s1270에서, 활성자 노드 U(1201)는 자식 노드 수가 한계 자식 수 이상인지를 판단하고, 한계 자식 수 이상인 경우 자식 노드의 검색을 종료한다. (단, 더 이상 활성자 노드가 존재하지 않는 경우에는 등록된 자식 노드 수가 한계 자식수를 초과한다 하더라도 자식 노드의 검색을 계속한다.) 그러나, 등록된 자식 노드 수가 한계 자식 수 미만인 경우 이웃 노드에 대한 백-오프 타임을 유지하면서 자식 노드의 검색을 계속 수행한다.
단계 s1280에서, 이웃 노드 V(1202)는 자신의 상태를 변경한다. 이웃 노드 V(1202)가 특이 노드인 경우 상태를 완료로 변경하고, 그렇지 않은 경우 자신의 자식 노드를 검색하기 위하여 새로운 활성자 노드가 된다.
도 13은 본 발명의 일 실시예에 따른 트리 생성 방법에 관한 흐름도를 나타낸다. 본 발명의 일 실시예에 따른 트리 생성 방법은 듀티-사이클 방식의 데이터 전송을 위한 것이다.
단계 s1310에서는, 동작 기간에 포함된 타임 슬롯의 개수에 관한 정보, 네트워크내의 노드 간의 거리에 관한 정보 및 네트워크내의 노드의 개수에 관한 정보 중 적어도 하나를 획득한다.
단계 s1320에서는, 타임 슬롯의 개수에 관한 정보, 노드 간 거리 정보 및 노드 개수 정보 중 적어도 하나에 기초하여, 각각의 노드가 보유할 수 있는 최대 자식 노드의 수를 결정한다.
단계 s1330에서는, 최대 자식 노드의 수를 초과하는 노드가 최소가 되도록 네트워크내의 노드들 간의 데이터 수집 경로(즉, 리프 노드에서 싱크 노드까지 데이터가 이동하는 경로)타내는 트리를 생성한다.
먼저, 네트워크 내의 특이 노드를 검색한다. 특이 노드는 후보 부모 노드가 임계치 이하(예를 들면, 하나)인 노드로서, 특이 노드의 부모 노드를 먼저 결정한다.
다음으로, 싱크 노드로부터 자식 노드를 검색 및 등록한다. 이 때, 등록된 자식 노드 수가 최대 자식 수 이상이면, 자식 노드의 검색 및 등록 절차를 중지한다. (다만, 예외적인 경우에는 허용)
도 14는 본 발명의 일 실시예에 따른 스케쥴링 방법에 관한 흐름도를 나타낸다.
단계 s1410에서, 스케쥴링을 수행하고자 하는 대상 노드에 대한 제 1 동작 기간 정보를 획득한다. 제 1 동작 기간은 대상 노드가 데이터를 전송할 수 있는 동작 기간 중 가장 빠른 기간을 의미한다.
단계 s1420에서, 대상 노드가 활성화되는 제 1 타임 슬롯에 관한 정보와 부모 노드가 활성화되는 제 2 타임 슬롯에 관한 정보를 획득한다.
단계 s1430에서, 제 1 타임 슬롯에 관한 정보, 제 2 타임 슬롯에 관한 정보 및 제 1 동작 기간 정보에 기초하여, 대상 노드가 데이터를 전송하는 데이터 전송 기간을 결정한다. 구체적으로, 제 2 타임 슬롯이 제 1 타임 슬롯과 같거다 크면(즉, 더 느리면) 제 1 동작 기간을 대상 노드의 데이터 전송 기간으로 결정한다. 그러나,
본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성요소를 지칭한다.
지금까지 본 발명에 따른 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서는 여러 가지 변형이 가능함은 물론이다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허 청구의 범위뿐 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
200: 트리 생성 장치
210: 파라미터 획득부
220: 결정부
230: 트리 생성부

Claims (14)

  1. 하나의 동작 기간내의 복수의 타임 슬롯들 중 일부 타임 슬롯에서만 활성화되는 노드를 스케쥴링하는 방법에 있어서,
    대상 노드가 데이터를 전송할 준비가 완료되는 동작 기간 중 가장 빠른 기간인 제 1 동작 기간 정보를 획득하는 단계;
    상기 대상 노드가 활성화되는 제 1 타임 슬롯에 관한 정보 및 상기 대상 노드로부터 데이터를 수신하는 부모 노드가 활성화되는 제 2 타임 슬롯에 관한 정보를 획득하는 단계; 및
    상기 제 1 타임 슬롯에 관한 정보, 상기 제 2 타임 슬롯에 관한 정보 및 상기 제 1 동작 기간 정보에 기초하여, 상기 대상 노드가 상기 부모 노드로 데이터를 전송하는 동작 기간인 데이터 전송 기간을 결정하는 단계를 포함하는 것을 특징으로 하는 스케쥴링 방법.
  2. 제 1항에 있어서, 상기 데이터 전송 기간을 결정하는 단계는,
    상기 제 2 타임 슬롯이 상기 제 1 타임 슬롯 보다 큰 경우 상기 제 1 동작 기간을 상기 데이터 전송 기간으로 결정하고, 상기 제 2 타임 슬롯이 상기 제 1 타임 슬롯보다 작거나 같은 경우, 상기 제 1 동작 기간 이후의 동작 기간인 제 2 동작 기간을 상기 데이터 전송 기간으로 결정하는 것을 특징으로 하는 스케쥴링 방법.
  3. 제 1항에 있어서, 상기 데이터 전송 기간을 결정하는 단계는,
    상기 결정된 데이터 전송 기간이 상기 대상 노드에 대한 충돌 가능한 노드의 데이터 전송 기간에 해당하는 경우, 상기 데이터 전송 기간을 다음번 동작 기간으로 변경하는 단계를 포함하는 것을 특징으로 하는 스케쥴링 방법.
  4. 제 1항에 있어서, 상기 제 1 동작 기간 정보를 획득하는 단계는,
    상기 대상 노드의 자식 노드가 존재하지 않는 경우 상기 제 1 동작 기간은 가장 빠른 동작 기간으로 결정되고, 상기 대상 노드의 자식 노드가 존재하는 경우 상기 제1 동작 기간은 상기 자식 노드로부터 마지막으로 데이터가 수신된 동작 기간으로 결정되는 것을 특징으로 하는 스케쥴링 방법.
  5. 제 1항에 있어서, 상기 스케쥴링 방법은,
    상기 데이터 전송 기간이 결정되면, 상기 대상 노드와 임계 거리 이내에 있는 노드에 상기 데이터 전송 기간에 관한 정보를 전송하는 단계를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  6. 제 1항에 있어서, 상기 스케쥴링 방법은,
    상기 대상 노드에 대하여 충돌 가능한 노드의 데이터 전송 기간에 대한 정보를 수신하는 단계; 및
    상기 충돌 가능한 노드의 데이터 전송 기간을 상기 대상 노드가 데이터를 전송할 수 없는 금지 동작 기간으로 결정하는 단계를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  7. 제 1항에 있어서, 상기 스케쥴링 방법은,
    상기 결정된 데이터 전송 기간에 기초하여, 상기 부모 노드가 데이터를 전송할 준비가 완료되는 동작 기간을 나타내는 제 2 동작 기간에 관한 정보를 업데이트 하는 단계를 더 포함하는 것을 특징으로 하는 스케쥴링 방법.
  8. 하나의 동작 기간내의 복수의 타임 슬롯들 중 일부 타임 슬롯에서만 활성화되는 노드의 데이터 수집 경로를 나타내는 트리를 생성하는 방법에 있어서,
    하나의 동작 기간내의 타임 스롯의 개수에 관한 정보, 네트워크내의 노드 간의 거리에 관한 정보 및 상기 네트워크내의 노드의 개수에 관한 정보 중 적어도 하나를 획득하는 단계;
    상기 타임 슬롯의 개수에 관한 정보, 상기 노드 간 거리 정보 및 상기 노드개수 정보 중 적어도 하나에 기초하여, 각각의 노드가 보유할 수 있는 최대 자식 노드의 수를 결정하는 단계; 및
    상기 최대 자식 노드의 수를 초과하는 노드가 최소가 되도록 상기 네트워크내의 노드의 데이터 수집 경로를 나타내는 트리를 생성하는 단계를 포함하는 것을 특징으로 하는 트리 생성 방법.
  9. 제 8항에 있어서, 상기 트리를 생성하는 단계는,
    네트워크 내의 노드들 중 데이터를 전송할 수 있는 후보 부모 노드의개수가 임계치 이하인 특이 노드를 검색하는 단계; 및
    상기 특이 노드에 대한 후보 부모 노드 중 하나를 상기 특이 노드에 대한 부모 노드로 결정하는 단계를 포함하는 것을 특징으로 하는 트리 생성 방법.
  10. 제 9항에 있어서, 상기 트리를 생성하는 단계는,
    상기 트리를 구성할 대상 노드를 선택하는 단계; 및
    상기 대상 노드에 대한 이웃 노드로부터 상기 대상 노드를 경유하여 데이터가 전송되는 최종 노드인 싱크 노드까지 데이터를 전송하는데 소요되는 시간인 전송 지연 시간에 기초하여, 상기 이웃 노드를 상기 대상 노드에 대한 자식 노드로 선택적으로 등록하는 단계를 포함하는 것을 특징으로 하는 트리 생성 방법.
  11. 제 10항에 있어서, 상기 자식 노드로 선택적으로 등록하는 단계는,
    상기 이웃 노드가 데이터를 전송할 수 있는 후보 부모 노드의 개수가 임계치 이하인 특이 노드인 경우, 상기 전송 지연 시간과 관계없이 상기 이웃 노드를 상기 대상 노드에 대한 자식 노드로 등록하는 것을 특징으로 하는 트리 생성 방법.
  12. 제 10항에 있어서, 상기 자식 노드로 선택적으로 등록하는 단계는,
    상기 대상 노드의 자식 노드가 한계 자식 수 이상이 되면, 상기 이웃 노드를 상기 대상 노드의 자식 노드로 등록하지 않는 것을 특징으로 하는 트리 생성 방법.
  13. 제 10항에 있어서, 상기 트리를 생성하는 단계는,
    상기 이웃 노드가 상기 대상 노드의 자식 노드로 등록되었음을 통지하는 메시지를 상기 대상 노드로부터 임계거리 이내의 노드에 전송하도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 트리 생성 방법.
  14. 제 10항에 있어서, 상기 트리를 생성하는 단계는,
    상기 대상 노드의 자식 노드의 수가 상기 최대 자식 노드 수보다 크거나 같으면, 상기 대상 노드에 대한 이웃 노드가 상기 대상 노드를 후보 부모 리스트에서 제외하도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 트리 생성 방법.
KR1020170156531A 2017-11-22 2017-11-22 트리 생성 방법 및 스케쥴링 방법 KR101989148B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170156531A KR101989148B1 (ko) 2017-11-22 2017-11-22 트리 생성 방법 및 스케쥴링 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170156531A KR101989148B1 (ko) 2017-11-22 2017-11-22 트리 생성 방법 및 스케쥴링 방법

Publications (2)

Publication Number Publication Date
KR20190059021A KR20190059021A (ko) 2019-05-30
KR101989148B1 true KR101989148B1 (ko) 2019-06-13

Family

ID=66675431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170156531A KR101989148B1 (ko) 2017-11-22 2017-11-22 트리 생성 방법 및 스케쥴링 방법

Country Status (1)

Country Link
KR (1) KR101989148B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102240504B1 (ko) * 2019-10-15 2021-04-14 울산대학교 산학협력단 로라 통신 기술을 이용한 트리 네트워크 구성 및 제어 방법
KR20210062368A (ko) 2019-11-21 2021-05-31 부산대학교 산학협력단 논리적 슬롯프레임을 활용한 스케줄링 장치 및 방법
KR102252523B1 (ko) 2019-11-28 2021-05-14 부산대학교 산학협력단 Tsch 프로토콜에서 타임슬롯 타입 변경을 위한 장치 및 방법
KR102416088B1 (ko) * 2020-06-15 2022-07-04 울산대학교 산학협력단 타임 슬롯 채널 호핑 무선 네트워크를 위한 경로 충돌 인식 실시간 링크 스케줄링 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101533037B1 (ko) * 2015-02-26 2015-07-01 성균관대학교산학협력단 무선 센서 네트워크의 스케줄링 장치 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100923166B1 (ko) * 2007-07-09 2009-10-23 한국전자통신연구원 비컨 모드로 동작하는 무선 센서 네트워크에서의 비컨 간접충돌 방지 및 극복 방법
KR100969943B1 (ko) * 2008-09-22 2010-07-14 동명대학교산학협력단 센서 네트워크 트리구조 구축 방법
KR101674182B1 (ko) * 2015-03-04 2016-11-08 성균관대학교산학협력단 무선 센서 네트워크에서의 브로드캐스팅 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101533037B1 (ko) * 2015-02-26 2015-07-01 성균관대학교산학협력단 무선 센서 네트워크의 스케줄링 장치 및 방법

Also Published As

Publication number Publication date
KR20190059021A (ko) 2019-05-30

Similar Documents

Publication Publication Date Title
KR101989148B1 (ko) 트리 생성 방법 및 스케쥴링 방법
JP5598228B2 (ja) 無線端末、収容先端末決定プログラム及び無線ネットワーク、並びに、ネットワーク構成装置
EP2109960B1 (en) Method for allocating a beacon slot using a beacon table in wireless personal area network (wpan) and wpan device
Gandham et al. Distributed minimal time convergecast scheduling in wireless sensor networks
JP2009094896A (ja) 無線装置
JP2004336779A (ja) 高エネルギー効率アドホック・ネットワーク用の適応型スリーピングおよびウェイクアップ・プロトコル
US10763992B2 (en) Techniques for maintaining network connectivity in wireless mesh networks
CN106376054B (zh) 一种移动设备的双wifi系统及网络连接控制方法
WO2008093939A1 (en) Wireless sensor network with linear structure being capable of bidirectional communication and method thereof
KR100903112B1 (ko) 애드 혹(ad-hoc) 네트워크에서 비컨 스케줄링 노드장치 및 스케줄링 방법, 및 데이터 전송 방법
US9131521B2 (en) Communications apparatus transmitting data on channels adaptively switchable
Gupta et al. Energy aware data collection in wireless sensor network using chain based PEGASIS
KR101555315B1 (ko) 저전력 사물 인터넷 네트워크 관리를 위한 네트워크 관리 데이터 전파 방법 및 저전력 사물 인터넷 노드 장치
CN104798399A (zh) 数据收发方法
KR101533037B1 (ko) 무선 센서 네트워크의 스케줄링 장치 및 방법
JP6039694B2 (ja) 電子デバイスにおける無線走査及びアドバタイズメント
US8126005B2 (en) Beacon transmission method and beacon transmission apparatus
JP2008228180A (ja) 無線装置
KR100918841B1 (ko) 무선 센서 네트워크의 클러스터링을 위한 헤드 노드를선정하는 방법 및 그 무선 센서 네트워크
Mo et al. Infinite-horizon sensor scheduling for estimation over lossy networks
US9538365B2 (en) Method for transmitting and receiving data
WO2015009138A2 (en) A system and method for managing sleeping mode of wireless nodes in a wireless sensor network
EP3573419B1 (en) Unreachable node recovery in wireless mesh networks
US11425024B2 (en) Thread network routing control
JP2004080228A (ja) 無線lanシステム及びそのアクセスポイント選択方法

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