KR100870088B1 - 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법 - Google Patents

클러스터 라벨 기반의 지그비 메쉬 라우팅 방법 Download PDF

Info

Publication number
KR100870088B1
KR100870088B1 KR1020060132379A KR20060132379A KR100870088B1 KR 100870088 B1 KR100870088 B1 KR 100870088B1 KR 1020060132379 A KR1020060132379 A KR 1020060132379A KR 20060132379 A KR20060132379 A KR 20060132379A KR 100870088 B1 KR100870088 B1 KR 100870088B1
Authority
KR
South Korea
Prior art keywords
node
cluster
address
path
zigbee
Prior art date
Application number
KR1020060132379A
Other languages
English (en)
Other versions
KR20080058565A (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 KR1020060132379A priority Critical patent/KR100870088B1/ko
Publication of KR20080058565A publication Critical patent/KR20080058565A/ko
Application granted granted Critical
Publication of KR100870088B1 publication Critical patent/KR100870088B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/32Connectivity information management, e.g. connectivity discovery or connectivity update for defining a routing cluster membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

클러스터 라벨 기반의 지그비 메쉬 라우팅 방법이 제공된다. 본 발명의 일 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법은, 지그비의 계층 특성을 이용한 깊이 의존적 클러스터를 형성하는 단계, 형성된 클러스터 구조를 바탕으로 목적지 노드의 클러스터 라벨을 계산하는 단계, 계산된 목적지 노드의 클러스터 라벨 정보를 이용하여 목적지 노드와의 경로를 설정하는 단계 및 설정된 경로를 통해 데이터를 전송하는 단계를 포함한다.
그리고, 이와 같은 본 발명의 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 의하면, 다수의 지그비 노드를 수용하는 지그비 메쉬 네트워크에 대하여 더욱 향상된 범위성(scalability)의 지원을 가능하게 한다는 궁극적인 효과를 얻을 수 있다.
지그비, 클러스터 라벨, 라우팅, 클러스터헤드, 소스 노드, 목적지 노드

Description

클러스터 라벨 기반의 지그비 메쉬 라우팅 방법{ZigBee mesh routing protocol based on cluster label}
도 1은 종래 기술에 따른 주소가 할당된 지그비 네트워크 환경을 나타내는 모식도이다.
도 2는 본 발명의 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 있어서 부모 노드의 선택 과정을 나타낸 흐름도이다.
도 3은 본 발명의 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 있어서, 소스 노드에서 목적지 노드의 클러스터 라벨을 계산하는 과정을 나타낸 흐름도이다.
도 4는 목적지 노드에 대한 경로 요청 제어 메시지(RREQ)를 수신한 각 노드에서의 이의 처리 방법을 설명하기 위한 흐름도이다.
도 5는 목적지 노드로부터 소스 노드로 전송되는 경로 응답 제어 메시지(RREP)를 수신한 각 노드에서의 처리 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른 클러스터 라벨 기반 메쉬 라우팅 방법에 있어 데이터 전송시의 라우팅 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시예에 의한 클러스터 형성 규칙에 따른 클러스터 구조를 갖는 지그비 네트워크의 모식도이다.
도 8은 본 발명의 실시예에 따른 클러스터 기반의 지그비 메쉬 라우팅 방법이 적용된 지그비 네트워크의 모식도이다.
도 9는 도 8에 있어서 경로 탐색 초기화를 위해 경로 요청 제어 메시지(RREQ)를 브로드캐스트 하는 상태를 나타낸 설명도이다.
도 10은 경로 응답 제어 메시지가 소스 노드에 수신되는 과정을 나타낸 모식도이다.
도 11은 소스 노드가 경로 통보 제어 메시지를 클러스터헤드에게 전송하는 과정을 나타낸 모식도이다.
도 12는 클러스터헤드가 클러스터 멤버들에게 경로 갱신 제어 메시지를 라벨 브로드캐스트하는 과정을 나타낸 모식도이다.
본 발명은 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 관한 것으로, 더욱 상세하게는, 지그비 노드들이 일정한 클러스터 형성 규칙을 기반으로 한 개 이상의 논리적인 클러스터를 형성하게 함으로써, 무선 환경에서의 범위성을 지원하는 클러스터 라벨 기반의 메쉬 라우팅 방법에 관한 것이다.
지그비(ZigBee)란, 저전력, 저비용 및 데이터 발생률이 적은 민간 및 산업 전반에 걸친 무선 응용 서비스를 겨냥하여 개발된 무선 통신 기술이다.
지그비는 지그비의 네트워크 이하 계층인 물리 계층과 매체 접근 제어 계층 을 정하는 IEEE 802.15.4 표준을 기반으로 상위 계층인 네트워크, 보안 및 응용 계층에 대해서 정의한다.
지그비 디바이스는 역할에 따라 PAN 코디네이터(Coordinator), 라우터(Router), 종단 디바이스(End Device)와 같은 3가지의 형태로 분류된다.
PAN 코디네이터는 최상위 계층에 존재하는 노드로써 PAN을 형성하고, 이하 PAN에 참여하는 지그비 노드들에게 주소를 할당하거나 데이터를 중계하는 라우팅 기능을 갖는 노드를 말한다.
라우터는 최상위 계층의 존재하는 PAN 코디네이터 및 이미 네트워크에 참여한 라우터들의 하위 레벨에 위치하며 데이터를 중계하거나, 이후 지그비 네트워크에 새롭게 참여하는 임의의 노드들에게 주소를 할당해주는 노드를 말한다.
마지막으로, 종단 디바이스는 PAN 코디네이터 및 라우터 하위 계층에 위치하며, 응용을 위한 최소한의 기능만을 갖고 주소할당 및 라우팅 기능을 수행하지 못하는 노드를 말한다.
지그비에 관한 네트워크 표준 규격 V1.0은 지그비 네트워크 계층에 대하여 상세하게 정의하고 있으며, IEEE 802.15.4 표준 문서에서 발생 가능한 메쉬형, 스타형 및 클러스터 트리형 토폴로지 구성에 대해서 정의한다.
스타형의 경우 항상 PAN 코디네이터를 중심으로 통신을 수행하는 토폴로지를 말한다. 클러스터 트리형의 경우 지그비가 갖는 계층적인 주소 구조를 통해 형성된 트리 구조를 사용하여 통신을 수행하는 토폴로지를 말한다. 마지막으로 메쉬형은 지그비의 계층적인 구조에 의존적이지 않고 자유롭게 전송 범위 내에서 최적의 경 로를 통해 통신을 수행할 수 있는 토폴로지를 말한다.
상기 지그비 네트워크 표준 문서에서는 메쉬형 토폴로지를 지원하기 위한 라우팅 방법론으로써, 일반적인 Ad Hoc 네트워크에서 사용되는 AODV(Adaptive On-Demand Vector)를 바탕으로 하는 라우팅 방법론을 정의한다. 이와 같은 라우팅 방법론에 따르면 소스 노드와 목적지 노드 간 최적의 경로 형성을 위해 소스 노드는 경로 요청 제어 메시지(Route Request)를 지그비 네트워크에 브로드캐스트(broadcast) 한다.
이 과정에서 경로 탐색에 참여하는 노드들은 경로 요청 메시지를 복수 횟수에 걸쳐서 수신받을 수 있기 때문에 브로드캐스트 비용을 저장하는 경로 탐색 테이블(Route Discovery Table)을 일시적으로 생성하여 경로 탐색을 제어한다.
예를 들면, 처음 받은 경로 탐색 메시지를 통해 임의의 노드는 경로 탐색 테이블을 생성하고, 이후 들어오는 경로 탐색 제어 메시지와 비용을 비교하여 브로드캐스트 유무를 결정한다. 해당 메시지는 목적지 노드가 받을 때까지 중간 노드들을 통해 계속해서 브로드캐스트 된다.
여기서, PAN 코디네이터 및 라우터 역할을 맡은 노드를 통해 브로드캐스트된 경로 요청 제어 메시지는 최종적으로 목적지 노드에 도착하고, 해당 목적지 노드는 경로 응답 제어 메시지(Route Response)를 경로 요청 제어 메시지에 의해 생성된 경로 탐색 테이블의 역경로를 따라 소스 노드에게 유니캐스트 한다. 또한, 해당 경로 응답 제어 메시지를 소스 노드가 수신하면 경로가 확립되었기 때문에 데이터의 전송을 시작한다.
도 1은 종래 기술에 따른 주소가 할당된 지그비 네트워크 환경을 나타내는 모식도이다.
도 1에 따르면, 지그비 네트워크는 노드 A, B, C, D, E, F, G, H, I, J로 구성되고 노드 A가 PAN 코디네이터가 된다. 이때, 종단 디바이스 역할을 수행하는 노드 I가 같은 역할의 노드 G로 데이터를 전송하는 예를 통해, 종래 기술에 따른 지그비 네트워크에 있어서의 동작을 설명하기로 한다. 단, 여기서 모든 종단 디바이스들은 자신들의 정해진 비콘 주기에 따라 깨어난다고 가정한다.
우선 노드 I는 오직 부모 노드 H와만 통신을 수행할 수 있기 때문에, 부모 노드인 라우터 H에게 데이터를 전송한다. 노드 H는 노드 I로부터 수신한 데이터 패킷을 자신의 큐에 저장하고, 노드 G와의 경로를 형성하기 위해 경로 요청 메시지를 네트워크에 브로드캐스트 한다.
이때, 브로드캐스트된 메시지는 노드 A와 F가 수신하게 된다.
즉, 노드 F는 경로 요청 메시지를 수신하면 종단 디바이스인 목적지 노드 G를 자식으로 가지고 있기 때문에 소스 노드에 대하여 경로 응답을 한다. 경로 요청 메시지는 노드 H로부터 왔으므로 노드 F는 유니캐스트로 노드 H에게 경로 응답 메시지를 전송한다.
반면, 노드 A 또한 경로 요청 메시지를 수신했을 때, 자신이 목적지가 아니고 자신의 자식 노드들 중에도 목적지가 포함되어 있지 않기 때문에, 임시적으로 경로 탐색 테이블을 생성하고 해당 메시지를 다시 네트워크에 브로드캐스트 한다. 이렇게 전송되는 메시지는 노드 D, B, H, F가 수신하게 되고, 이후에는 위와 동일 한 과정을 반복하기 때문에 더 이상의 설명은 생략하기로 한다.
그러면 노드 F로부터 경로 응답 메시지를 수신받은 노드 H는 해당 목적지 노드 G로 가는 경로를 라우팅 테이블에 생성하게 되고, 큐잉된 데이터를 꺼내어 다음 홉 상에 위치한 노드인 F에게 데이터 전송을 시작한다.
앞의 예를 통해 알 수 있듯이, 종래의 메쉬 라우팅 방법론을 통해 데이터를 전송하는 경우 지그비 네트워크는 라우터 노드를 최대 255개까지 수용할 수 있으므로, 만일 네트워크에 수십, 수백개의 노드들이 위치하게 된다면 이들 사이의 수많은 브로드캐스트 메시지로 인해 심각한 네트워크 부하 문제가 발생될 수밖에 없다.
그리고, 이와 같은 라우팅 오버헤드의 증가는 플러딩에 기반한 라우팅 패킷의 일시적인 확산으로 발생될 수 있는 종단간 지연 시간 및 패킷 전달율 등의 네트워크 성능에 영향을 주게 된다. 이는 일반적인 무선 통신에 있어서의 범위성(Scalability) 문제와 유사하다.
또한, 저용량의 특징을 갖는 지그비 센서의 메모리를 고려한다면, AODV 기반의 라우팅 프로토콜은 연결될 수 있는 노드의 증가에 따라 라우팅 테이블이 커지기 때문에, 잦은 테이블 교체 및 경로의 재탐색 등으로 인한 불필요한 에너지 소비나 네트워크 성능 저하와 같은 이차적인 문제의 발생 원인이될 수 있다.
따라서, 지그비의 저용량 및 저전력 특징을 고려하면서 네트워크의 범위성 문제를 해결하기 위한 지그비 메쉬 라우팅 프로토콜의 개발이 요구되고 있다.
본 발명이 이루고자 하는 기술적 과제는, 지그비 네트워크에서 노드 수의 증 가에 따른 네트워크 성능 저하 문제를 해결하기 위한 것으로, 지그비 노드들이 일정한 클러스터 형성 규칙을 기반으로 한 개 이상의 논리적인 클러스터를 형성하게 함으로써, 무선 환경에서의 범위성을 지원하는 클러스터 라벨 기반의 메쉬 라우팅 방법을 제공하는 것이다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 확립된 경로에 대하여 동일한 클러스터 라벨을 소유한 클러스터 멤버 간에 목적지 클러스터 라벨 정보 공유를 통해 잠재적인 경로 탐색 요구를 줄임으로써, 불필요한 경로 탐색으로 발생되는 전력 소모를 줄일 수 있는 메쉬 라우팅 방법을 제공하는 것이다.
본 발명이 이루고자 하는 또 다른 기술적 과제는, 클러스터 라벨 정보만을 저장하는 라우팅 테이블 구조를 통해 지그비 센서의 제한된 메모리를 효율적으로 사용하여 경로 유지에 따른 테이블 교체 등의 문제들을 해결하기 위한 메쉬 라우팅 방법을 제공하는 것이다.
본 발명의 목적들은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해되어질 수 있을 것이다.
상기 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법은, 지그비의 계층 특성을 이용한 깊이 의존적 클러스터를 형성하는 단계, 형성된 클러스터 구조를 바탕으로 목적지 노드의 클러스터 라벨을 계산하는 단계, 계산된 목적지 노드의 클러스터 라벨 정보를 이용하여 목적지 노드와의 경로를 설정하는 단계 및 설정된 경로를 통해 데이터를 전송하는 단계를 포함한다.
여기서, 단일의 클러스터 내에 위치되는 각각의 노드들은 동일한 클러스터 라벨을 갖도록 형성될 수 있다.
이때, 상기 클러스터를 형성하는 단계는, 액티브(Active) 및 패시브(Passive) 스캔(Scan)을 통해 주변 노드에 대한 리스트를 생성하는 단계, 리스트 상의 노드가 어소시에이션(association)을 허용하는지 판단하는 단계, 판단의 결과 어소시에이션(association)을 허용하는 짝수 깊이의 노드에 대해 해당 노드의 리스트 인덱스 값과 LQI 값을 저장하는 단계 및 저장된 리스트 인덱스 값과 LQI 값의 비교를 통해 가장 적합한 부모 노드를 선정하는 단계 등을 포함하여 이루어질 수 있다.
또한, 상기 클러스터 라벨을 계산하는 단계는, 목적지 주소를 저장하는 단계, 목적지 노드의 부모 노드 주소와 깊이를 계산하기 위해 시작주소를 PAN 코디네이터의 주소 값으로 설정하고 PAN 코디네이터가 할당하는 자식 노드의 깊이 값을 설정하는 단계 및 부모 노드의 주소와 CSkip 값 범위 이내에 자식 노드의 주소가 포함되는지 여부를 판단하기 위해, 주소의 하한과 상한을 각각 나타내는 임시변수의 설정을 통해 노드의 주소를 추적하는 단계 등을 포함하여 이루어 질 수 있다.
이때, 상기 클러스터 라벨을 계산하는 단계는, 설정된 주소의 하한과 상한을 각각 나타내는 임시변수 범위 내에 목적지 노드가 존재하지 않을 경우 RouterIndex가 최대 라우터 개수까지 증가되었는지를 판단하는 단계, 판단의 결과, 최대 라우 터 개수 보다 RouterIndex가 작으면 RouterIndex를 증가시키며 상기의 단계를 반복하고, RouterIndex가 최대 라우터 개수를 넘어서거나 동일하면, 목적지 노드가 현재 깊이의 종단 디바이스로 할당되는 주소 범위 내에 존재하는가의 여부를 판단하는 단계, 판단의 결과, 목적지 노드 주소가 종단 디바이스 주소영역 이내에 포함되지 않을 경우 에러 메시지를 전송하는 단계 및 판단의 결과, 목적지 노드 주소가 종단 디바이스 주소영역 이내에 포함되는 경우 부모 디바이스의 깊이를 파악하여, 부모 디바이스의 깊이가 깊이가 짝수인 경우 시작주소를 클러스터 라벨로 결정하고, 부모 디바이스의 깊이가 홀수인 경우 이전 시작주소를 클러스터 라벨로 결정하는 단계를 더 포함할 수 있다.
그리고, 상기 클러스터 라벨의 계산 결과 상기 소스 노드와 상기 목적지 노드가 상이한 클러스터에 속할 경우 상기 목적지 노드와의 경로를 설정하는 단계는, 소스 노드가 경로 요청 제어 메시지(RREQ)를 브로드캐스트 하는 단계, 브로드캐스트 된 경로 요청 제어 메시지(RREQ)를 수신한 PAN 코디네이터 및 지그비 라우터들에 의해 경로 탐색 테이블과 라우팅 테이블이 생성되고, 역경로 정보가 저장되는 단계, 경로 요청 제어 메시지(RREQ)를 수신한 목적지 노드 또는 목적지 노드의 부모 노드에 의해 경로 응답 제어 메시지가 유니캐스트 되는 단계 및 유니캐스트 된 경로 응답 제어 메시지가 PAN 코디네이터 및 지그비 라우터들에 저장된 역경로 정보를 이용하여 상기 소스 노드로 전달되는 단계 등을 더 포함하여 이루어질 수 있다.
한편, 본 발명의 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법은, 상기 목적지 노드와의 경로가 설정되면, 소스 노드가 경로 통보 제어 메시지(RNOT)를 자신의 클러스터헤드에게 전송하는 단계, 경로 통보 제어 메시지(RNOT)를 전송받은 클러스터헤드가, 동일한 클러스터 라벨 노드들에게 경로 갱신 제어 메시지(RUPT)를 라벨 브로드캐스트 하는 단계 및 경로 갱신 제어 메시지를 수신한 노드들이, 상기 수신 메시지에 대응되도록 자신의 라우팅 테이블을 갱신하는 단계 등을 더 포함할 수 있다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있을 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것으로, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도면에 대한 설명에 앞서 본원발명을 간략히 설명하자면, 상기한 바와 같은 기술적 과제를 달성하기 위한 본원발명의, 복수개의 지그비 노드로 이루어진 지그비 네트워크 환경에서 클러스터 라벨을 사용하는 메쉬 라우팅 방법은, 우선 지그비 네트워크를 한 개 이상의 논리적인 클러스터로 형성하는 기능을 가져야 한다.
다음으로는, 형성된 네트워크를 기반으로 소스 노드가 목적지 노드에게 데이터를 보내려는 경우 목적지 노드의 클러스터 라벨을 알아야 하기 때문에, 이를 위해 목적지 클러스터 라벨을 계산할 수 있는 기능이 필요하다.
다음은, 목적지 클러스터 라벨의 일치 여부에 따라 동일한 클러스터 내부에서 라우팅 하는 기능과 원격 클러스터와 라우팅 할 수 있는 기능이 요구된다.
또한, 잠재적인 경로 탐색의 수를 효과적으로 줄이기 위해 원격 클러스터 라벨 정보를 공유하는 기능을 갖춰야 한다.
이를 정리하면 다음과 같다.
1. 지그비 네트워크를 한 개 이상의 논리적인 클러스터로 형성하는 기능
2. 목적지 노드의 클러스터 라벨을 계산하는 기능
3. 라우팅 기능
3.1. 같은 클러스터 내부에서 라우팅 하는 기능
3.2. 원격 클러스터에 대하여 라우팅 하는 기능
4. 원격 클러스터 라벨 정보를 공유하는 기능
따라서, 아래에서는 상기 각각의 항목에 대한 본원발명에 따른 실시예를 도면을 참조하여 설명하기로 한다.
1. 지그비 네트워크를 한 개 이상의 논리적인 클러스터로 형성하는 기능
우선 지그비 네트워크를 한 개 이상의 논리적인 클러스터로 형성하려면 클러 스터의 형성자인 클러스터헤드를 선출해야 한다.
본 발명의 실시예에 있어서는, 클러스터 형성 과정에서 발생하는 오버헤드를 줄이기 위해 지그비의 계층적인 특성을 이용하는, 깊이 의존적인 클러스터를 형성한다. 클러스터를 생성하기 위해서는 다음과 같은 규칙을 준수해야 한다.
1) 코디네이터 및 라우터만이 클러스터를 형성할 수 있다. 따라서, 종단 디바이스의 경우 클러스터를 형성할 수 없으며 부모의 클러스터를 그대로 따라간다.
2) 코디네이터는 지그비 네트워크의 형성자로서 클러스터헤드로 활동한다. 코디네이터의 경우 라우터로 활동할 수 있으므로, 네트워크를 형성하자마자 바로 클러스터헤드가 되어 하나의 클러스터를 형성한다.
3) 지그비의 주소할당 방식에 의해 짝수의 깊이를 소유한 라우터들만이 클러스터헤드로 활동한다.
4) 논리적인 클러스터의 무분별한 형성을 억제하기 위해, 네트워크에 참여하는 라우터들은 네트워크 조인 과정에서 짝수 깊이를 소유한 코디네이터 및 라우터에 조인을 시도한다.
5) 홀수 깊이의 라우터들은 자식을 참여시킬 시 게이트웨이 노드가 된다.
형성되는 모든 클러스터에는 클러스터 라벨이라 불리는 16비트 크기의 유일한 식별자가 붙여진다. 이 라벨은 별도로 존재하는 클러스터 라벨 분배 노드를 통하여 부여받는 것이 아니라, 클러스터헤드가 사용하는 지그비의 16비트 네트워크 주소를 그대로 사용한다.
따라서, 라벨을 부여하는 과정에서 추가적인 전송 오버헤드가 존재하지 않는 다. 또한, 임의의 클러스터에 참여하는 노드들은 짝수 깊이의 라우터가 클러스터 헤드로 선출되는 규칙을 통해 자신이 속한 클러스터를 계산상으로 알아낼 수 있다.
도 2는 본 발명의 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 있어서 부모 노드의 선택 과정을 나타낸 흐름도로써, 다시 말해, 임의의 노드가 조인하는 과정에서 Active 및 Passive Scan을 통해 수집된 이웃 노드 가운데 부모 노드를 선택하는 방법을 설명하기 위한 흐름도이다.
전술한 클러스터 형성 규칙을 통해 설명한 바와 같이, 적합한 부모 노드를 선정하기 위해서는 부모 노드가 Association을 허용해야 하고, 짝수 깊이에 위치되어야 한다. 왜냐하면, 만일 홀수 깊이에 위치한 부모 노드에게 Association을 요청하면, 상기 요청을 한 노드는 짝수 깊이를 할당받아 자신이 또 다른 클러스터를 형성할 수 있게 되므로, 클러스터의 무분별한 확산을 초래할 수 있기 때문이다.
도 2를 참조하면, 네트워크에 새롭게 참여하는 노드는 먼저, 부모 노드 선정을 위해 Active 및 Passive Scan을 통하여 주변 노드들의 정보를 리스트로 생성한다(S210). 그리고, 이하의 과정(S220 내지 S290)에 따라, 생성된 리스트를 통해서 리스트 개수만큼 반복문을 수행함으로써 적당한 부모 노드를 찾아내게 된다.
이때, 상기의 과정들을 좀 더 상세하게 살펴보면, 생성된 리스트가 존재하는지의 여부를 먼저 판단(S220)한 후, 주변 디바이스들이 Association을 허용하는지 여부를 판단한다(S230).
그 결과, 해당 디바이스가 Association을 허용하면 해당하는 리스트 인덱스 값을 저장(S240)하고, 해당 노드가 깊이 값을 짝수로 갖고 있는지 여부를 판 단(S250)하여, 깊이 값을 짝수로 가지고 있으면 해당 노드의 리스트 인덱스 값과 LQI값을 임시변수에 저장한다(S260).
이하 리스트의 존재하는 노드의 개수만큼 위와 동일한 과정을 반복하기 위해 리스트의 개수를 한 개 감소시키고(S270), 다음, 반복문을 수행하기 위해 리스트가 존재하는지 판단한다(S280).
마지막으로, 리스트의 개수만큼 반복한 이후 반복문을 빠져나오면 저장된 LQI값과 리스트의 인덱스 값을 통해 주변 노드들 중 적합한 부모 노드를 선정한다(S290).
상술한 클러스터 형성 규칙을 바탕으로 형성된 클러스터 구조를 갖는 지그비 네트워크의 모식도를 도 7에 나타내었다.
도 7에 따르면, 지그비 네트워크는 노드 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P로 구성되고 노드 A는 PAN 코디네이터가 된다.
노드 A는 PAN 코디네이터이기 때문에 클러스터 형성 규칙 2번에 의해 클러스터헤드로 활동하고, 자신의 네트워크 주소인 0x0000을 클러스터 라벨 주소로 사용한다.
이후 노드 A는 네트워크 내에 참여하는 라우터 노드 C, B, E에게 주소를 할당한다.
계속해서, 노드 G가 네트워크에 참여하면 부모 노드 B로부터 주소를 할당받고, 깊이값을 짝수인 2로 갖기 때문에 클러스터 형성 규칙 3번에 의해 클러스터헤드로 활동하고, 자신의 주소인 0x02AB를 클러스터 라벨로 사용한다.
다음 노드 G는 자신의 자식으로 참여하는 노드들에 대하여 주소를 할당하고 같은 클러스터 라벨을 부여한다. 여기서, 노드 B는 클러스터 형성 규칙 5번에 의해 자신이 게이트웨이 노드임을 알게된다.
2. 목적지 노드의 클러스터 라벨을 계산하는 기능
본 발명의 실시예에 따른 클러스터 라벨 기반의 메쉬 라우팅 방법에 의하면, 라우팅 시 동일한 클러스터 및 다른 원격 클러스터에서의 라우팅을 결정하기 위해 목적지 노드의 클러스터 라벨을 계산해야 한다.
상술된 클러스터 형성 규칙에 의하면 짝수 깊이에 위치한 PAN 코디네이터 및 라우터는 클러스터헤드로 활동하기 때문에, PAN 코디네이터가 할당한 어드레스를 시작으로 어드레스의 할당을 깊이에 따라 추적함으로써, 목적지 노드의 깊이, 노드의 타입 및 부모의 어드레스 등에 대하여 계산할 수 있다.
지그비 네트워크는 어드레스 할당 공식과 PAN 코디네이터가 설정하는 네트워크 파라미터 값들에 의해 임의의 노드에 대하여 어드레스 및 깊이 등을 계산할 수 있으며, 어드레스 할당 공식이 종단 디바이스와 라우터로 나누어지기 때문에 노드의 타입 또한 계산이 가능하다.
이하에서, 첨부된 도면을 참조하여 클러스터 라벨의 계산에 대하여 자세하게 설명한다.
도 3은 본 발명의 실시예에 따른 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법에 있어서, 소스 노드에서 목적지 노드의 클러스터 라벨을 계산하는 과정을 나 타낸 흐름도이다.
도 3을 참조하면, 우선 목적지 노드의 클러스터 라벨을 계산하기 위해 목적지 주소를 저장한다(S310).
다음, 목적지 노드의 부모 주소와 깊이를 계산하기 위해서는 PAN 코디네이터로부터 시작된 주소부터 주소를 추적해야 하므로, 시작주소를 PAN 코디네이터의 주소인 0으로 설정하고 PAN 코디네이터가 할당하는 자식 노드의 깊이 값인 1을 설정한다.
지그비 네트워크 환경에서 라우터들은 CSkip 값을 통해 복수 개의 주소 집합인 어드레스 블럭(Address Block)을 할당받기 때문에, 부모 노드의 주소와 CSkip 값 범위 이내에 자식 노드의 주소가 포함되는지 여부를 판단하기 위해, 주소의 하한을 나타내는 LowerBound와 주소의 상한을 나타내는 UpperBound의 임시변수를 통해 노드의 주소를 추적한다.
이때, PAN 코디네이터부터 주소를 추적하기 때문에 LowerBound는 0으로 UpperBound는 1로 설정한다(S320).
LowerBound는 추적이 시작되는 주소의 다음의 주소를 의미하므로 시작주소에 1을 증가시킨 값을 저장하고, 몇 번째 라우터 주소에 포함되는지 알기 위해 RouterIndex를 설정한다.
첫 번째 할당받는 라우터부터 추적이 시작되기 때문에 RouterIndex는 0으로 설정(S330)한 다음, 첫 번째 라우터 자식인지 여부를 판단한다(340).
첫 번째 라우터 자식이 아닌 경우 이미 반복문을 수행하여 다시 해당 판단 문으로 들어왔기 때문에, 이전의 주소의 상한으로 저장되었던 주소 값을 LowerBound로 새로 저장한다(S350).
즉, UpperBound는 반복문이 처음 수행되거나 여러 번 수행되어도 항상 LowerBound에 의존적으로 값이 저장되는데, 그 값이 LowerBound에 CSkip(d-1)값을 더하여 설정됨은 도시된 바와 같다(S360).
LowerBound와 UpperBound가 설정되면 목적지 노드의 주소가 상기 할당주소들 범위 이내에 있는지에 대한 여부를 판단(S370)하며, 만일 범위 이내에 목적지 노드의 주소가 존재하면 우선 목적지주소가 LowerBound와 같은지의 여부를 판단한다(S371).
그리고, 목적지 노드의 주소가 LowerBound와 일치하지 않는 경우에는 다음 깊이 값 이내에 해당 목적지 노드가 존재하기 때문에, 현재 깊이 값을 1 증가시키고 시작주소를 현재 설정되어 있는 LowerBound로 저장한다(S372).
목적지 노드의 부모 깊이가 홀수로 판정되면 부모 노드의 상위 부모 노드의 주소를 알아야 클러스터 라벨을 판정할 수 있으므로 이전 부모를 저장하고 상기 상술된 과정을 반복한다(S373).
여기서, 만일 목적지 노드의 주소가 LowerBound와 동일한 경우에는 해당 목적지 노드의 주소를 이미 찾은 것이므로 반복문을 더 이상 수행하지 않고 빠져나온다.
이때, 상기 S370 단계에서 LowerBound와 UpperBound 범위 이내에 목적지 노드가 존재하지 않으면 RouterIndex가 최대 라우터 개수까지 증가되었는지를 판단한 다(S380). 그 결과, 만일 최대 라우터 개수 보다 RouterIndex가 작으면 라우터 개수까지 도달하지 못한 것이므로, RouterIndex를 1증가시키고 다시 반복문을 수행한다(S381).
그리고, 만일 RouterIndex가 최대 라우터 개수를 넘어서거나 동일하면, 해당 목적지 주소가 종단 디바이스로 할당되는 주소영역에 위치하는 것이기 때문에, 해당 목적지 노드가 현재 깊이의 종단 디바이스로 할당되는 주소 범위 내에 존재하는가의 여부를 판단한다(S390).
그래서, 목적지 노드 주소가 상기 종단 디바이스 주소영역 이내에 포함되지 않는 경우에는, 해당 목적지 주소가 지그비 네트워크 환경에서 유효하지 않은 주소이므로 에러 메시지를 노드에게 알린다(S391). 또한, 목적지 노드의 주소가 상기 종단 디바이스 주소영역 이내에 포함되는 경우라면, 목적지 노드의 부모 주소는 현재 깊이 내의 시작주소를 의미하기 때문에 부모 디바이스의 깊이의 여부를 판단한다(S392).
클러스터 라벨은 부모 디바이스의 주소이므로, 현재 깊이가 짝수인 경우 클러스터 라벨은 현재 깊이에서 추적 중인 시작주소와 동일하기 때문에 시작주소를 클러스터 라벨로 판정할 수 있다(S393).
반면, 현재 깊이가 홀수인 경우에는 클러스터 라벨은 현재 시작주소의 이전 시작주소가 되어 이전 시작주소를 클러스터 라벨로 판정할 수 있다(S394).
3. 라우팅 기능
본 발명에 따른 클러스터 라벨 기반의 메쉬 라우팅 방법은, 소스와 목적지 노드가 동일한 클러스터 라벨을 가졌을 때와 상이한 클러스터 라벨을 가졌을 때의 라우팅으로 분류된다.
도 6은 본 발명의 실시예에 따른 클러스터 라벨 기반 메쉬 라우팅 방법에 있어 데이터 전송시의 라우팅 방법을 설명하기 위한 흐름도이다.
도 6에 도시된 바와 같이, 우선 임의의 지그비 노드가 네트워크 상위 계층으로부터 데이터를 받게 되면(S610) 해당 데이터에 대한 브로드캐스트 필요 여부를 판단한다(S630). 그 결과 브로드캐스트를 필요로 하는 데이터인 경우 그대로 데이터를 브로드캐스트 하며(S631), 만일 데이터가 유니캐스트를 필요로 한다면 종단 디바이스의 경우 항상 부모에게 데이터를 전송해야 하기 때문에, 우선 종단 해당 데이터를 보내는 노드가 종단 디바이스인가를 판단한다(S640).
이에 따라, 종단 디바이스인 경우에는 그대로 데이터를 부모에게 전송하고(S642) 라우터인 경우에는 라우팅을 위해 목적지 노드의 클러스터 라벨을 계산한다(S641). 이후 라벨을 계산한 데이터의 소스 노드 또는 해당 데이터를 유니캐스트로 수신한 노드는 해당 노드가 목적지 노드인가를 판단한다(S650).
상기 판단(S650)의 결과, 해당 노드가 목적지 노드인 경우 그대로 데이터를 상위 계층으로 보내고(S651) 라우팅을 종료하고, 만일 목적지 노드가 아닌 경우 우선 자신의 1 홉 반경 이내의 데이터 테이블 내에 목적지 노드 정보의 존재 여부를 확인한다(S660).
그리고, 테이블 상에 해당 목적지 노드가 존재하는 경우에는 유니캐스트로 데이터를 전송하고(S661), 테이블 상에 해당 목적지 노드가 존재하지 않는 경우에는 목적지 노드의 클러스터 라벨이 현재 노드와 동일한 클러스터 라벨에 위치하는 가를 판단한다(S670).
만일 목적지 노드와 보내려는 데이터를 가진 노드가 동일한 클러스터 라벨에 위치하면 계층적인 라우팅을 통해 라우팅을 수행한다(S671).
또한, 목적지 노드가 원격 클러스터에 위치하는 경우에는 해당 목적지 클러스터 라벨 정보가 라우팅 테이블에 존재하는지 판단하고(S680), 해당 정보가 존재하는 경우 테이블이 가리키는 다음 홉의 노드에게 데이터를 유니캐스트로 전송하며(S681), 그렇지 않은 경우 경로 탐색을 초기화하여 목적지를 찾아 나선다(S682).
3.1 같은 클러스터 내부에서 라우팅 하는 기능
본 발명의 실시예에 있어, 동일한 클러스터 라벨에 위치한 소스와 목적지 노드를 위한 라우팅은 지그비의 트리 기반 라우팅에 의존한다. 지그비는 계층적인 주소 할당을 통해 트리 구조를 갖기 때문에 별도의 경로 탐색 없이도 목적지 노드와 데이터를 주고받을 수 있다.
따라서, 본 발명의 실시예에 따른 클러스터 라벨 기반의 라우팅 방법에 의하면, 클러스터 형성 규칙에 의해 클러스터 내에 위치한 모든 노드들이 클러스터헤드를 중심으로 계층적으로 연결된 구조를 갖기 때문에, 지그비의 계층적 특성을 이용한 라우팅을 수행할 수 있다.
3.2 원격 클러스터에 대하여 라우팅 하는 기능
다음으로, 다른 클러스터 라벨에 위치한 목적지 노드와 데이터를 주고받기 위해서는 경로 설정을 통한 최적의 경로를 통해 라우팅을 수행해야 한다.
그러므로, <표 1>과 같은 소스 노드의 라우팅 테이블에서 목적지 노드의 경로 정보를 갖고 있지 않은 경우, 경로 탐색을 수행하여 목적지 노드와의 경로를 확립해야 한다.
경로 탐색은 종래의 방법과 마찬가지로 목적지 노드를 찾기 위해 경로 요청 제어 메시지를 브로드캐스트 하는 방법을 사용한다. 여기서, 경로 탐색은 목적지 노드의 클러스터 라벨 정보를 기반으로 수행되므로, 경로 탐색 이후 최종적으로 라우팅 테이블에 저장되는 엔트리는 목적지 클러스터 라벨 정보가 된다.
<표 1>
Figure 112006095287887-pat00001
이하에서는, 첨부된 도면을 참조하여 경로 요청 및 응답 제어 메시지 처리 과정에 대하여 자세하게 설명한다.
도 4는 목적지 노드에 대한 경로 요청 제어 메시지(RREQ)를 수신한 각 노드에서의 이의 처리 방법을 설명하기 위한 흐름도로써, 다른 클러스터에 속한 목적지 노드를 찾아내기 위해 브로드캐스트 하는 경로 요청 제어 메시지(RREQ)를 수신한 각 노드에서 이를 처리하는 방법을 나타낸다.
도 4를 참조하면, 경로 탐색은 라우팅 능력(Routing capacity)을 갖는 PAN 코디네이터 및 라우터에 의해 수행되기 때문에, 종단 디바이스가 임의의 목적지 노드에게 데이터를 전달하고 싶을 때 부모 노드에게 그대로 해당 데이터를 전송한다. 그리고, 해당 데이터를 수신한 부모 노드는 목적지 노드의 클러스터 라벨을 계산한 후 다른 클러스터에 속한 노드임을 확인했을 때 자신의 라우팅 테이블을 검색한다.
그 결과, 자신의 라우팅 테이블 내에 해당 목적지 클러스터 라벨 정보를 갖고 있다면 라우팅 테이블이 지정하는 다음 노드로 데이터를 전송하게 된다. 반면, 자신의 라우팅 테이블 내에 원격 목적지 라벨 정보가 존재하지 않는 경우에는 경로 요청 제어 메시지를 브로드캐스트하게 된다.
이와 같이 브로드캐스트 된 메시지를 임의의 노드가 수신하게 되면(S410), 현재 이 노드가 경로 탐색을 수행할만한 라우팅 능력을 갖고 있는지 여부를 판단한다(S411).
라우팅 능력을 갖지 못하는 노드들은 종단 디바이스이거나 테이블 엔트리의 포화상태에 의해 라우팅 엔트리를 더 이상 추가하지 못하는 경우의 라우터이므로, 자신이 목적지 주소인지 여부를 먼저 판단하고(S420) 목적지가 아니면 그대로 상기 제어 메시지를 버리고(S421), 목적지 노드인 경우에는 경로 응답 메시지를 유니캐스트로 전달한다(S422).
반면, 라우팅 능력이 존재하는 라우터가 경로 요청 메시지를 수신하게 되면 경로 탐색 테이블에 목적지 노드의 클러스터 라벨 정보를 담은 라우팅 엔트리가 존재하는가를 확인한다(S430).
이때, 라우팅 테이블 엔트리가 없는 경우에는 첫 번째 경로 요청 제어 메시지를 수신한 경우이므로, 경로 탐색 테이블과 라우팅 테이블 엔트리를 동시에 생성하고 라우팅 테이블 엔트리의 상태를 경로 탐색중임을 나타내는 DISCOVERY_UNDERWAY로 설정한다(S431).
이렇게 생성된 라우팅 테이블의 목적지 노드를 나타내는 주소는 목적지 노드의 클러스터 라벨로 저장되며, 경로 탐색 테이블의 경우에는 최종 목적지 노드까지의 최적 경로를 보장하기 위해 그대로 노드의 주소를 저장한다.
<표 2>
Figure 112006095287887-pat00002
다음으로 테이블을 생성한 노드는 자신이 목적지 노드인지 여부를 판단하고(S450), 만일 자신이 목적지가 아닌 경우 경로 요청 메시지를 전달하는 중간 노드의 경우이므로 해당 매시지를 다시 브로드캐스트 한다(S451).
자신이 목적지 노드라면, 더 이상 경로 요청 메시지를 브로드캐스트 할 필요가 없기 때문에 경로 응답 제어 메시지를 테이블에 설정된 역경로의 노드를 의미하는 이전 노드 주소 정보를 통해 유니캐스트 한다(S452).
<표 3>
Figure 112006095287887-pat00003
상기 과정에서 경로 탐색 테이블에 해당 엔트리가 이미 존재하는 경우, 이미 경로 요청 제어 메시지를 한 번 이상 수신한 노드이기 때문에 별도의 테이블은 생성하지 않고 자신이 목적지이거나 목적지 노드가 자신의 자식 가운데 하나의 노드인지를 판단한다(S440).
상기 판단(S440)의 결과, 만일 자신이 목적지이거나 자식 노드들 중에 목적지 노드가 있는 경우에는, 우선 해당 경로 요청 메시지의 라우팅 cost가 테이블에 저장되어 있는 Forward Cost보다 낮은가를 판단한다(S470).
그리고, 경로 요청 제어 메시지의 cost가 테이블의 Forward Cost보다 더 적은 경우, 보다 나은 최적 경로를 통해 수신된 메시지이기 때문에 테이블을 해당 cost로 업데이트하고, 경로 응답 제어 메시지를 다시 해당 소스 노드에게 유니캐스트 한다(S471). 이때, 경로 요청 제어 메시지의 cost가 더 큰 경우는 그대로 폐기한다(S472).
상기 과정에서 자신이 목적지도 아니고 자식 노드들 중에 목적지 노드가 없 는 경우에는, 해당 노드는 중간 노드이면서 경로 요청 제어 메시지를 중복 수신하였기 때문에 상기 과정과 동일하게 경로 요청 제어 메시지의 cost를 테이블의 Forward Cost와 비교한다(S460).
비교(S460)의 결과, 만일 테이블의 Forward Cost가 메시지의 cost보다 더 큰 경우, 보다 나은 최적 경로를 통해 수신된 메시지이기 때문에 테이블을 해당 메시지의 cost로 업데이트하고 계속해서 목적지 노드를 찾기 위해 경로 요청 메시지를 다시 브로드캐스트 한다(S461). 이때, 마찬가지로 경로 요청 제어 메시지의 cost가 더 큰 경우는 그대로 폐기한다(S472).
다음, 도 5는 목적지 노드로부터 소스 노드로 전송되는 경로 응답 제어 메시지(RREP)를 수신한 각 노드에서의 처리 방법을 나타낸 흐름도로써, 경로 탐색 제어 메시지를 수신한 목적지 노드가 역경로를 통해 경로 응답 제어 메시지(RREP)를 소스 노드로 보낼 때, 이를 수신한 각 노드에서의 경로 응답 메시지 처리에 대한 방법을 나타낸다.
도 5를 참조하면, 최종적으로 경로 요청 제어 메시지를 수신한 목적지 노드는 경로 응답 메시지를 역경로를 통해 소스 노드에게 유니캐스트로 전송함을 알 수 있다.
따라서, 역경로 상에 존재하는 노드가 경로 응답 제어 메시지를 수신하면(S510), 우선 경로를 설정하기 위한 라우팅 능력의 유무를 판단한다(S520).
그 결과, 만일 라우팅 능력이 없는 포화된 라우팅 테이블을 유지하는 라우터 및 잘못된 종단 디바이스가 해당 경로 응답 제어 메시지를 수신하면 이 메시지를 그대로 폐기(S521)하며, 만일 라우팅 능력을 갖는 역경로 상의 라우터가 해당 메시지를 수신하면 우선 그 경로의 노드가 소스 노드인가를 판단한다(S530).
또한, 해당 노드가 소스 노드가 아닌 경우 역경로 상의 중간 노드이기 때문에, 경로 요청 제어 메시지에 의해 이미 생성된 라우팅 테이블 및 경로 탐색 테이블의 유무를 확인한다(S540).
여기서, 테이블이 존재하면 역경로 상의 중간 경로이므로 현재 수신한 경로 응답 제어 메시지의 cost가 경로 탐색 테이블의 Residual Cost와 비교하여 더 작은 가를 판단한다(S550).
단, 첫 번째로 경로 응답 제어 메시지를 수신한 경우에는 어떠한 Residual Cost도 설정되어 있지 않으므로 경로 설정을 수행하는 단계에 들어간다. 이때, 이를 수신한 노드는 소스 노드와 동일한 클러스터에 속해 있는 경우 경로 응답 제어 메시지가 항상 클러스터헤드를 거치지 않고 최적 경로를 통해 소스에 도달할 수 있도록, 자신이 클러스터 간 통로 역할을 수행하는 게이트웨이 노드인가를 판단한다(S560).
그리고, 자신이 게이트웨이인 경우 경로 응답 제어 메시지의 cost를 경로 탐색 테이블에 업데이트하고 라우팅 테이블의 상태를 ACTIVE로 설정하며, 라벨 브로드캐스트를 통해서 게이트웨이의 주변 노드들에게 경로 응답 메시지를 브로드캐스트 한다(S561).
만일 게이트웨이 노드가 아닌 경우라면, 라우팅 테이블 상태를 ACTIVE로 설정하고 현재 경로 응답 제어 메시지의 cost를 경로 탐색 테이블 내의 Residual Cost에 업데이트하며, 소스 노드로 해당 메시지를 유니캐스트한다(S562).
상기 S550 과정에서 경로 응답 제어 메시지의 cost가 경로 탐색 테이블에 저장되어 있는 Residual Cost보다 작은 경우에는, 이미 최적의 경로로 설정되어 있다는 의미이므로 해당 메시지를 폐기하며(S541), 상기 S540 과정에서 라우팅 테이블 엔트리가 존재하지 않는 경우에는 역경로에 존재하는 바람직한 노드가 아니기 때문에 해당 메시지를 그대로 폐기한다(S541).
상기 S530 과정에서 해당 경로 응답 메시지를 수신한 노드가 소스 노드인 경우에는 경로 요청 제어 메시지를 처음으로 브로드캐스트 했던 소스 노드이기 때문에, 해당된 라우팅 테이블 엔트리의 유무를 판단한다(S570).
그래서, 라우팅 테이블이 존재하는 경우에는 해당 노드가 소스 노드이므로 이미 경로가 확립되어 있는가를 확인하기 위해 라우팅 테이블 상태가 ACTIVE 임을 판단(S580)하는데, 상태가 ACTIVE로 설정되어 있는 경우라면 이미 경로가 확립되어 있기 때문에 현재 수신한 경로 응답 제어 메시지와 경로 탐색 테이블의 Residual Cost를 비교(S581)하며, 만일 해당 제어 메시지의 Cost가 테이블의 Residual Cost보다 작은 경우 더 나은 최적 경로를 통해 수신된 경로 제어 메시지이므로 테이블을 업데이트한다(S583).
클러스터 내부 노드 간에 목적지 클러스터 라벨 정보 공유를 위해 경로 응답 제어 메시지를 수신한 노드는 자신이 게이트웨이 노드이면서 클러스터헤드인가를 판단한다(S590).
만일 해당 노드가 게이트웨이 역할과 동시에 클러스터헤드의 역할을 수행한 다면, 경로 갱신제어 메시지를 클러스터 내부에 브로드캐스트하여 현재 확립된 경로에 대한 정보를 공유한다(S591).
또한, 해당 노드가 클러스터헤드가 아닌 경우 해당 클러스터헤드에게 경로 통보 제어 메시지를 유니캐스트하여(S592), 추후 클러스터헤드가 경로 갱신제어 메시지를 통해 클러스터 라벨 정보를 공유할 수 있도록 유도한다.
상기 S580 과정에서 라우팅테이블이 ACTIVE 상태가 아닌 경우에는 상기 경로 응답 제어 메시지를 처음 수신한 경우이므로, 경로 탐색 테이블의 Residual Cost를 업데이트하고 라우팅 테이블의 상태를 ACTIVE로 설정한 후(S582), 위 과정과 동일하게 원격 클러스터 정보 공유를 위한 과정으로 들어간다.
이후의 과정은 상기에서 설명된 과정과 동일한 과정을 반복하기 때문에 더 이상의 설명은 생략하기로 한다.
마지막으로, 상기 S581 과정에서 경로 응답 제어 메시지가 소스 노드에 중복되어 들어온 경우 해당 메시지의 cost가 경로 탐색 테이블의 Residual Cost보다 큰 경우 해당 메시지를 그대로 폐기한다(S541).
결국, 경로 탐색을 수행한 소스 노드가 해당 경로 응답 메시지를 수신하게 되면, 라우팅 테이블을 업데이트하여 경로를 확립하고 데이터를 전송하기 시작한다.
4. 원격 클러스터 라벨 정보를 공유하는 기능
본 발명의 클러스터 라벨을 사용하는 메쉬 라우팅 방법에 의하면, 경로 탐색 에 따르는 오버헤드를 줄이기 위하여 클러스터의 임의의 한 노드가 원격 클러스터 라벨 정보를 습득한 경우에 있어, 동일한 클러스터 상에서 라우터 기능을 수행하는 모든 노드들과 해당 원격 클러스터 라벨 정보를 공유해야 한다.
이러한 과정은 최종적으로 소스 노드가 경로 응답 제어 메시지를 수신한 이후 이루어진다.
클러스터 내에 새로운 라벨 정보가 들어오면 해당 정보를 습득한 노드는 이 정보를 클러스터헤드 노드에게 통보해야 한다. 이때 사용되는 메시지는 경로 통보(Route Notify: RNOT) 제어 메시지로써, 원격 클러스터 라벨 정보를 처음으로 수신한 노드의 16비트 네트워크 주소정보와 습득한 원격 클러스터 라벨의 정보를 포함한다.
이를 수신한 클러스터헤드 노드는 해당 클러스터 라벨 정보를 클러스터 내부의 라우터들과 공유하기 위해 라벨 브로드캐스트를 사용한다. 여기서, 라벨 브로드캐스트란, 클러스터헤드가 자신과 1홉 이내에 위치한 동일한 클러스터의 모든 라우터들에게 데이터를 브로드캐스트하는 것을 말한다.
이때 사용되는 메시지는 경로 갱신(Route Update: RUPT) 제어 메시지로써, 경로 통보 제어 메시지와 마찬가지로 원격 클러스터 라벨 정보를 포함한다. 이를 수신한 라우터 노드들은 게이트웨이 노드가 자신의 이웃 노드로 존재하는 경우, 해당 원격 클러스터에 대하여 라우팅 테이블을 생성함으로써 다음 홉으로 해당 게이트웨이 노드를 설정한다.
이 경우, 만일 게이트웨이 노드가 이웃에 없다면 클러스터헤드 노드를 다음 홉으로 설정하여 원격 클러스터와 경로를 확보한다.
이하, 본 발명에 따른 지그비 네트워크에서 클러스터 라벨을 사용하여 메쉬 라우팅을 수행하는 동작에 대해 실시예를 통해 상세하게 알아보기로 한다.
-실시예-
도 8은 본 발명의 실시예에 따른 클러스터 기반의 지그비 메쉬 라우팅 방법이 적용된 지그비 네트워크의 모식도로써, 임의의 일 소스 노드로부터 목적지 노드까지 데이터를 보내기 위해 설정된 지그비 네트워크를 나타낸다.
도 8을 참조하면, 네트워크 상에 존재하는 지그비 노드들의 네트워크 파라미터는 Cm은 8, Rm은 4, Lm은 5로 초기화되어 있다.
여기서, 실선은 지그비 노드들의 부모 자식 관계를 나타내는 계층형 트리 구조를 의미하며, 점선은 전송이 허용되는 다중 경로들을 나타낸다.
또한, 지그비 네트워크는 노드 A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V로 구성되며, 중앙에 PAN 코디네이터인 A를 중심으로 상기 상술된 클러스터 형성 규칙에 따라 노드 A, F, J 각각을 클러스터 헤드로 갖는 3개의 클러스터를 구성한다.
도 8에서 소스 노드 L은 목적지 노드인 U에게 메시지를 보내려 할 때, 목적지 노드 U가 속한 클러스터 라벨 정보가 없기 때문에 경로 탐색을 초기화 해야 한다.
도 9는 도 8에 있어서 경로 탐색 초기화를 위해 경로 요청 제어 메시 지(RREQ)를 브로드캐스트 하는 상태를 나타낸 설명도로써, 소스 노드 L이 경로 탐색을 초기화하기 위해 경로 요청 제어 메시지(RREQ)를 브로드캐스트하는 지그비 네트워크를 나타내고 있다.
브로드캐스트된 경로 요청 제어 메시지는 PAN 코디네이터 및 지그비 라우터들을 경유하여 지그비 네트워크에 전파된다.
브로드캐스트에 참여하는 PAN 코디네이터 및 지그비 라우터들은, 경로 탐색 테이블을 생성하고 지금까지 방문한 노드 수 및 경로 응답 제어 메시지를 통해 소스 노드 L로 가기 위한 역경로를 저장한다. 또한, 상기 노드들은 라우팅 테이블을 생성한다.
생성된 라우팅 테이블의 목적지 클러스터 라벨에는 목적지 노드 U가 속한 클러스터 라벨에 대한 16비트 정보가 입력된다. 그 다음으로, 다음 목적지 주소(Next Hop)는 경로 탐색 과정이기 때문에 NULL 상태로 놓이며, Status의 경우 경로 탐색 중인 상태를 나타내는 DISCOVERY_UNDERWAY로 설정된다.
결국 상기 경로 요청 제어 메시지가 노드 F에 도착하게 되면, 자신의 종단 디바이스 자식으로 노드 U를 가지고 있기 때문에 경로 응답 제어 메시지를 소스 노드 L에게 유니캐스트 한다.
도 10은 경로 응답 제어 메시지가 소스 노드에 수신되는 과정을 나타낸 모식도이다.
도 10에 도시된 바와 같이, 각 노드들은 경로 응답 제어 메시지를 수신하는 동시에 경로 탐색 과정에서 생성된 라우팅 테이블을, 경로 탐색 테이블을 통해 생 성된 역경로를 다음 목적지 주소로 갱신한다. 또한, 해당 노드들은 라우팅 테이블의 상태를 활동중인 상태임을 나타내는 ACTIVE로 설정한다.
경로 응답 제어 메시지를 수신한 소스 노드 L은, 목적지 노드 U와의 경로가 확립되었음을 알고 데이터 메시지들을 전송하기 시작한다.
또한, 일정시간 이후 동일한 클러스터 라벨을 소유한 노드들과 해당 원격 클러스터 라벨 정보를 공유하기 위해, 경로 통보 제어 메시지(RNOT)를 자신의 클러스터헤드에게 전송한다.
도 11은 소스 노드가 경로 통보 제어 메시지를 클러스터헤드에게 전송하는 과정을 나타낸 모식도이다.
도 11을 참조하면, 소스 노드 L이 클러스터헤드 J에게 경로 통보 제어 메시지를 보내는 것을 알 수 있다. 이를 수신한 클러스터헤드 J는, 자신의 클러스터 멤버들에게 해당 경로에 대한 정보를 공유하기 위해 경로 갱신 제어 메시지(RUPT)를 라벨 브로드캐스트 한다.
도 12는 클러스터헤드가 클러스터 멤버들에게 경로 갱신 제어 메시지를 라벨 브로드캐스트하는 과정을 나타낸 모식도이다.
도 12를 살펴보면, 라벨 브로드캐스트 된 경로 갱신 제어 메시지를 수신한 클러스터 멤버 I, K, L은, 해당 정보를 통해 자신의 라우팅 테이블을 생성한다.
이때, 노드 L의 경우 이미 라우팅 테이블이 생성되어 있기 때문에 테이블 생성에 관여하지 않지만, 노드 I, K의 경우 테이블 생성 이후 임의의 목적지 노드가 클러스터 라벨 0x0002에 속한 경우에는, 경로 탐색의 초기화 없이 데이터를 목적지 노드에게 전송할 수 있게 된다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해되어야만 한다.
상기한 바와 같은 본 발명의 클러스터 기반의 지그비 메쉬 라우팅 방법에 따르면, 경로 탐색을 위한 라우팅 오버헤드를 효과적으로 감소시킬 수 있다.
즉, 경로 탐색 과정에서 발생할 수 있는 라우팅 패킷들의 클러스터 라벨 구조를 통해 잠재적인 경로 탐색의 횟수를 효과적으로 줄이는데 기여한다. 이는 다른 데이터 흐름의 방해를 최소화함으로써 패킷 손실율을 줄일 수 있고, 정해진 시간 내에 더 많은 데이터의 전송을 가능하게 함으로써 지그비 네트워크의 성능을 개선시킬 수 있다는 장점을 제공한다.
또한, 본 발명은 한정된 배터리 전력을 갖는 지그비 노드에 대하여 에너지 소모율을 줄일 수 있다.
다시 말해, 플러딩 방식을 사용하는 경로 탐색은 지그비와 같은 무선 센서 네트워크에서 에너지 소모율에 대해 큰 부담을 제공하지만, 본 발명에 따르면 불필요한 경로 탐색의 횟수를 최소화 함으로써 지그비 센서의 에너지 소모율을 줄일 수 있다는 장점을 제공한다.
또한, 본 발명은 적은 메모리를 소유하는 지그비 노드의 메모리 사용량을 최소화 할 수 있다.
즉, 지그비 센서 노드는 저용량 및 저성능의 하드웨어로 이루어지기 때문에, 지그비 노드가 다수의 경로를 갖는다면 목적지 노드에 대하여 16비트 네트워크 주소 단위가 아닌 클러스터 라벨 단위로 경로를 저장함으로써, 적은 메모리 용량을 소유하는 지그비 노드에 대하여 메모리 사용률을 최소화하고 다수의 목적지 노드에 대하여 테이블의 교체 등에 따르는 문제점들을 해소할 수 있도록 하는 것이 좋다.
따라서, 본 발명에 따르면 지그비 노드에서 목적지 노드를 위한 경로에 대하여 라우팅 테이블 내에 16비트 클러스터 라벨 정보만을 저장하므로, 적은 메모리 용량을 소유하는 지그비 노드의 메모리 사용률을 최소화 할 수 있으며, 또한, 지그비 네트워크 내에 노드의 개수가 많아짐에 따라 다수의 목적지를 수용해야 하는 지그비 노드에 대하여, 테이블 교체에 따른 반복된 경로 탐색 등의 문제들을 해소할 수 있게 되었다는 등의 장점을 제공한다.
그리고, 본 발명은 상술한 장점들을 바탕으로 다수의 지그비 노드를 수용하는 지그비 메쉬 네트워크에 대하여, 궁극적으로 더욱 향상된 범위성(scalability) 지원이 가능하게 되었다는 장점을 제공한다.

Claims (7)

  1. 지그비의 계층 특성을 이용한 깊이 의존적 클러스터를 형성하는 단계;
    상기 형성된 클러스터 구조를 바탕으로 목적지 노드의 클러스터 라벨을 계산하는 단계;
    상기 계산된 목적지 노드의 클러스터 라벨 정보를 이용하여 상기 목적지 노드와의 경로를 설정하는 단계; 및
    상기 설정된 경로를 통해 데이터를 전송하는 단계를 포함하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
  2. 제 1 항에 있어서,
    단일의 클러스터 내에 위치되는 각각의 노드들은 동일한 클러스터 라벨을 갖는 것을 특징으로 하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
  3. 삭제
  4. 제 2 항에 있어서,
    상기 클러스터 라벨을 계산하는 단계는, 목적지 주소를 저장하는 단계;
    목적지 노드의 부모 노드 주소와 깊이를 계산하기 위해, 시작주소를 PAN 코디네이터의 주소 값으로 설정하고 PAN 코디네이터가 할당하는 자식 노드의 깊이 값을 설정하는 단계; 및
    상기 부모 노드의 주소와 CSkip 값 범위 이내에 자식 노드의 주소가 포함되는지 여부를 판단하기 위해, 주소의 하한과 상한을 각각 나타내는 임시변수의 설정을 통해 노드의 주소를 추적하는 단계를 포함하는 것을 특징으로 하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
  5. 제 4 항에 있어서,
    상기 클러스터 라벨을 계산하는 단계는, 상기 설정된 주소의 하한과 상한을 각각 나타내는 임시변수 범위 내에 목적지 노드가 존재하지 않을 경우, RouterIndex가 최대 라우터 개수까지 증가되었는지를 판단하는 단계;
    상기 판단의 결과, 최대 라우터 개수 보다 상기 RouterIndex가 작으면 RouterIndex를 증가시키며 상기의 단계를 반복하고, 상기 RouterIndex가 최대 라우터 개수를 넘어서거나 동일하면, 상기 목적지 노드가 현재 깊이의 종단 디바이스로 할당되는 주소 범위 내에 존재하는가의 여부를 판단하는 단계;
    상기 판단의 결과, 상기 목적지 노드 주소가 상기 종단 디바이스 주소영역 이내에 포함되지 않을 경우, 에러 메시지를 전송하는 단계; 및
    상기 판단의 결과, 상기 목적지 노드 주소가 상기 종단 디바이스 주소영역 이내에 포함되는 경우 부모 디바이스의 깊이를 파악하여, 상기 부모 디바이스의 깊이가 깊이가 짝수인 경우 시작주소를 클러스터 라벨로 결정하고, 상기 부모 디바이스의 깊이가 홀수인 경우 이전 시작주소를 클러스터 라벨로 결정하는 단계를 더 포함하는 것을 특징으로 하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
  6. 제 2 항에 있어서,
    상기 클러스터 라벨의 계산 결과, 상기 소스 노드와 상기 목적지 노드가 상이한 클러스터에 속할 경우 상기 목적지 노드와의 경로를 설정하는 단계는,
    소스 노드가 경로 요청 제어 메시지(RREQ)를 브로드캐스트 하는 단계;
    상기 브로드캐스트 된 경로 요청 제어 메시지(RREQ)를 수신한 PAN 코디네이터 및 지그비 라우터들에 의해 경로 탐색 테이블과 라우팅 테이블이 생성되고, 역경로 정보가 저장되는 단계;
    상기 경로 요청 제어 메시지(RREQ)를 수신한 목적지 노드 또는 목적지 노드의 부모 노드에 의해 경로 응답 제어 메시지가 유니캐스트 되는 단계; 및
    상기 유니캐스트 된 경로 응답 제어 메시지가, 상기 PAN 코디네이터 및 지그비 라우터들에 저장된 역경로 정보를 이용하여 상기 소스 노드로 전달되는 단계를 포함하되,
    상기 라우팅 테이블 정보는 16비트 클러스터 라벨 정보인 것을 특징으로 하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
  7. 제 1 항, 제 2 항, 제 4 항 또는 제 5 항 중 어느 한 항에 있어서,
    상기 목적지 노드와의 경로가 설정되면, 상기 소스 노드가 경로 통보 제어 메시지(RNOT)를 자신의 클러스터헤드에게 전송하는 단계;
    상기 경로 통보 제어 메시지(RNOT)를 전송받은 클러스터헤드가, 상기 동일한 클러스터 라벨 노드들에게 경로 갱신 제어 메시지(RUPT)를 라벨 브로드캐스트 하는 단계; 및
    상기 경로 갱신 제어 메시지를 수신한 노드들이, 상기 수신 메시지에 대응되도록 자신의 라우팅 테이블을 갱신하는 단계를 더 포함하는 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법.
KR1020060132379A 2006-12-22 2006-12-22 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법 KR100870088B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060132379A KR100870088B1 (ko) 2006-12-22 2006-12-22 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060132379A KR100870088B1 (ko) 2006-12-22 2006-12-22 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법

Publications (2)

Publication Number Publication Date
KR20080058565A KR20080058565A (ko) 2008-06-26
KR100870088B1 true KR100870088B1 (ko) 2008-11-25

Family

ID=39803913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060132379A KR100870088B1 (ko) 2006-12-22 2006-12-22 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법

Country Status (1)

Country Link
KR (1) KR100870088B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101034557B1 (ko) * 2009-07-16 2011-05-12 고려대학교 산학협력단 무선 애드혹 네트워크의 토폴로지 제어장치 및 방법, 무선 애드혹 네트워크의 노드장치, 그리고 무선 애드혹 네트워크의 노드장치의 통신 링크 형성방법
CN113613307B (zh) * 2021-07-15 2023-08-04 天津(滨海)人工智能军民融合创新中心 一种基于局部主动路由辅助的按需路由方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204623A1 (en) 2002-04-29 2003-10-30 Harris Corporation Hierarchical mobile ad-hoc network and methods for performing reactive routing therein
US6718394B2 (en) 2002-04-29 2004-04-06 Harris Corporation Hierarchical mobile ad-hoc network and methods for performing reactive routing therein using ad-hoc on-demand distance vector routing (AODV)
KR20060045776A (ko) * 2004-08-06 2006-05-17 삼성전자주식회사 클러스터-트리 구조로 연결된 이후에 어드레스를 할당하는지그비 네트워크 디바이스, 그 어드레스 할당 방법, 및,라우팅 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204623A1 (en) 2002-04-29 2003-10-30 Harris Corporation Hierarchical mobile ad-hoc network and methods for performing reactive routing therein
US6718394B2 (en) 2002-04-29 2004-04-06 Harris Corporation Hierarchical mobile ad-hoc network and methods for performing reactive routing therein using ad-hoc on-demand distance vector routing (AODV)
KR20060045776A (ko) * 2004-08-06 2006-05-17 삼성전자주식회사 클러스터-트리 구조로 연결된 이후에 어드레스를 할당하는지그비 네트워크 디바이스, 그 어드레스 할당 방법, 및,라우팅 방법

Also Published As

Publication number Publication date
KR20080058565A (ko) 2008-06-26

Similar Documents

Publication Publication Date Title
Jain et al. Geographical routing using partial information for wireless ad hoc networks
Kozat et al. Network layer support for service discovery in mobile ad hoc networks
Kaur et al. Comparative analysis of AODV, OLSR, TORA, DSR and DSDV routing protocols in mobile ad-hoc networks
Sra et al. QoS in mobile ad-hoc networks
Zhang et al. A security aware fuzzy enhanced reliable ant colony optimization routing in vehicular ad hoc networks
Kasana et al. A geographic routing algorithm based on Cat Swarm Optimization for vehicular ad-hoc networks
CN110831006A (zh) 自组网系统及其数据传输方法
Omar et al. On-demand source routing with reduced packets protocol in mobile ad-hoc networks
Lee et al. A new taxonomy of routing algorithms for wireless mobile ad hoc networks: the component approach
KR100870088B1 (ko) 클러스터 라벨 기반의 지그비 메쉬 라우팅 방법
Fonseca et al. Beacon vector routing: Scalable point-to-point in wireless sensornets
KR100733828B1 (ko) 애드혹 네트워크에서의 멀티캐스트 라우팅 방법 및 주소할당 방법
Ramrekha et al. Towards a scalable routing approach for mobile ad-hoc networks
Shaker et al. Fuzzy logic-based trusted and power-aware routing protocol in mobile ad-hoc networks
Ramakrishnan et al. Mathematical modeling of routing protocol selection for optimal performance of MANET
Halder et al. Mobility Aware Routing Protocol In Ad-Hoc Network
Dong et al. A new data transmission mechanism in aeronautical ad hoc network
Jemili et al. An optimized layered cluster-based routing protocol for ad hoc networks
Ren et al. Unicast routing in mobile ad hoc networks: Present and future directions
Wadhwani et al. A Survey of multicast routing protocols in MANET
Kim et al. Location-free semi-directional flooding for on-demand routing in low-rate wireless mesh networks
Nwelih et al. Analysis and performance evaluation of mobile ad-hoc network (MANET) protocols based on selected criteria
Kapoor et al. To improve the QoS in MANETs through analysis between reactive and proactive routing protocols
Hosseini Nejad et al. Routing Protocols of Mobile Ad-hoc Network MANET
Chigra et al. Performance study of routing protocols based on node mobility in MANETs

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130621

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140708

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161114

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191001

Year of fee payment: 12