이하, 첨부 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다. 그러나, 다음에 예시하는 본 발명의 실시예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시예에 한정되는 것은 아니다. 본 발명의 실시예는 당업계에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공되어지는 것이다.
도 1은 본 발명의 일 실시예에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법을 구현하기 위한 센서 네트워크 구성을 개략적으로 나타낸 개념도이고, 도 2는 본 발명의 일 실시예에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법에 대해 시간별 동작상태를 설명하기 위한 개념도이다.
도 1 및 도 2를 참조하면, 본 발명의 일 실시예에 따른 센서 네트워크 환경 에서의 네트워크 인식 및 구성방법을 구현하기 위한 센서 네트워크는, 하나의 최상위 노드인 싱크노드(Sink Node, S)를 기준으로 적어도 하나의 부모 및 자식노드로 이루어진 제1 내지 제5 센서노드(A 내지 E)가 트리(Tree) 형태로 구성되어 있다.
여기서, 상기 "부모노드"라 함은 각 노드의 상위에 직접 연결된 노드로서, 예컨대, 제4 및 제5 센서노드(D 및 E)의 부모노드는 제2 센서노드(B)가 되고, 제1 내지 제3 센서노드(A 내지 C)의 부모노드는 싱크노드(S)가 된다. 따라서, 넓은 의미로 해석하면, 최하위 노드들 즉, 제4 및 제5 센서노드(D 및 E)의 상위에 존재하는 노드는 모두 부모노드가 될 수 있다.
한편, 상기 "자식노드"라 함은 각 노드의 하위에 직접 연결된 노드로서, 예컨대, 싱크노드(S)의 자식노드는 제1 내지 제3 센서노드(A 내지 C)가 되고, 제2 센서노드(B)의 자식노드는 제4 및 제5 센서노드(D 및 E)가 된다. 따라서, 넓은 의미로 해석하면, 최상위 노드 즉, 싱크노드(S)의 하위에 존재하는 노드는 모두 자식노드가 될 수 있다.
이하에는 본 발명의 일 실시예에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법에 대하여 상세하게 설명한다.
먼저, 복수개의 센서노드(Sensor Nodes)를 원하는 위치에 설치한 후, 사용자로부터 네트워크 인식을 시작하라는 명령을 수신한 최상위 노드인 싱크노드(S)는 인식에 필요한 자신의 네트워크 정보(또는 노드 정보)를 포함한 광고메시지를 브로드캐스트(Broadcast)(수신자 미지정) 송신한다.
이때, 해당 광고메시지에 포함되는 정보 중 본 발명에서 필요로 하는 것은 주기(Round)(즉, 네트워크 내에 동기화 된 값으로, 한 번의 인식 동작이 발생하는 시간을 1주기로 계산함.) 필드(field) 하나 이며, 그 외의 정보는 센서 네트워크가 사용할 라우팅 프로토콜에 필요한 정보가 될 것이며, 이는 라우팅 알고리즘에 따라 상이할 수 있다.
이후에, 상기 브로드캐스트 송신된 광고메시지를 수신한 자식노드는 수신된 광고메시지의 수신 강도(RSSI)값의 강약에 따라 해당 부모노드로의 접근시간을 각각 계산하고, 해당 접근시간에 응답메시지를 전송하여 각 부모 및 자식노드는 라우팅 프로토콜에 필요한 정보들을 서로 얻고 경로가 인식된다.
즉, 최상위 노드인 싱크노드(S)로부터 브로드캐스트 송신된 광고메시지를 수신한 자식노드는 수신된 광고메시지의 수신 강도(RSSI)값의 강도를 측정하고, 이를 계산하여 해당 부모노드로의 접근시간을 계산한다.
도 2를 참조하면, 상기 광고메시지의 전송 후에 (T21)부터 (T22)까지의 접근시간이 종료되기 전의 시간을 시간의 축에 따라 수신 강도(RSSI)값이 큰 경우 (T21)부터 작은 경우 (T22)까지의 범위로 나누고, 자신의 수신 강도(RSSI)값에 따라 계산된 접근시간에 해당 부모노드로의 응답 전송을 시도한다.
모든 응답 시간은 (T21)과 (T22) 사이가 된다. 또한, 상기 응답 시간은 수신 강도(RSSI)값에 따라 생성되므로, 동일한 수신 강도(RSSI)값을 가지는 자식노드가 발생하거나, 또는 그 외의 기타 지연(delay)에 따른 이유로 접근시간 중복의 발생이 가능하며, 이 경우는 실패 이후 랜덤하게 간격(random off)을 두어 다시 응답 전송을 시도하게 한다.
예컨대, 상기 접근시간 계산의 일 예를 살펴보면, 만약 "(T21)의 시간이 1.0이고, (T22)가 1.2의 시간 값을 가지며, RF칩에 따른 수신가능 RSSI 강도가 -100∼0[dBm]이고 RSSI의 임계값 설정이 없다."라고 가정할 경우, 수신 RSSI이 -80[dBm]이면 접근시간은 1.16이 된다.
한편, 수신 강도(RSSI)값이 큰 자식노드에게 우선 접근시간을 주는 이유는 수신 강도(RSSI)값이 큰 자식노드일수록 물리적으로 인접한 자식노드일 확률이 높으며 이는 송수신 성공률에 직접적인 영향을 주게 되며, 결과적으로는 라우팅 경로 선택 시 우선 고려될 효율적 및 고 신뢰도의 경로가 될 확률이 높기 때문에, 보다 많은 재응답 전송의 기회를 부여하여 연결의 생성 확률을 높이는 것이다.
그리고, 상기 경로 인식을 완료하면 자식노드들은 브로드캐스트 된 광고메시지를 통해 해당 부모노드의 정보를 가지게 되고, 각 부모노드는 해당 자식노드들로부터 응답 전송을 수신함으로서 해당 자식노드들의 정보를 알게 된다. 여기서, 응답한 자식노드의 개수는 다음 단계의 진행을 위해서 필수적인 사항이 된다.
이와 같이 경로 인식을 수행한 후, 각 부모노드는 자신의 자식노드들 기준으로 상기의 경로 인식 기능을 재귀적으로 반복하기 위한 각각의 광고메시지를 전송할 고유한 시간을 할당하여 준다.
즉, 도 2의 (T23)에 해당하는 부분으로, 각 부모노드는 모든 자식노드들에게 자식노드 기준의 광고메시지를 브로드캐스트 전송할, 다시 말해 전체 센서 네트워크 내의 유일성을 보장받는 고유전송시간의 할당 과정을 진행한다.
한편, 도 2에 도시된 전체 시간(T24)을 본 발명에서는 슬럿(slot)이라 명명하며, 하나의 슬럿은 경로 인식 단계에서 필요로 하는 모든 동작(T20∼T23)을 포함하는 최소 단위가 된다.
도 1을 참조하면, 최상위 노드인 싱크노드(S)는 3개의 제1 내지 제3 센서노드(A 내지 C)를 직접적인 자식노드로 가진다. 그리고, 싱크노드(S)는 (T10)과 같이 "1/1", 제1 센서노드(A)는 (T11)과 같이 "1/3", 제2 센서노드(B)는 (T12)과 같이 "2/3", 제3 센서노드(C)는 (T13)과 같이 "3/3"이라는 할당된 고유전송시간을 가진다.
여기서, 최상위 노드인 싱크노드(S)에게 할당된 시간 "1/1"에서 분모 "1"의 의미는 "1"의 시간 중, 분자 "1"의 시간을 가진다는 것으로서, 이는 연속된 무한한 시간을 "1"이라는 단위로 나누고 각 분할된 단위 내에서 "1"에 해당하는 시간을 의미한다는 것이다. 또한, 분할된 단위의 전체 규모는 "1"이므로, 즉 모든 시간이 싱크노드(S)에게 할당되었음을 의미한다.
예컨대, 제2 센서노드(B)의 경우 "2/3"에서 "3"은 무한한 시간을 "3"의 단위로 나눈 시간 중, "2"는 분할된 단위내의 "2"번째 시간이 제2 센서노드(B)에게 할당되었음을 의미한다.
즉, 최상위 노드인 싱크노드(S)를 비롯한 각 부모노드는 자신이 가진 시간을 자식노드의 수 즉, 해당 접근시간에 응답을 전송한 자식노드의 수로 나누어 각각 서로 다른 고유전송시간을 할당하여 주는 것이다. 여기서, 유의할 부분은 "x/y"가 한 슬럿을 내부적으로 나누는 것을 의미하는 것이 아닌 "y"개의 슬럿 중 "x"번째 슬럿을 의미한다는 것으로 이는 일정한 시간을 내부적으로 나누지 않게 하는 방법이 된다.
도 1은 상기와 같은 과정의 반복을 통해 할당된 시간을 그림으로 나타낸 것이며, 기본적으로 각 부모노드의 광고메시지의 전송 후, 자식노드의 응답에 대한 시간 할당이 이루어짐으로 자식노드와 부모노드간에는 할당된 광고 시간의 중첩은 발생하지 않는다.
그리고, 각 부모노드가 자식노드에게 시간을 할당하여 준다는 것은 각 부모노드가 해당 시간의 권리를 자식노드들에게 넘기는 것을 의미한다고 설명할 수 있다. 또한, 도 1의 제1 센서노드(A) 및 제2 센서노드(B)와 같은 형제 노드는 최초 시간의 할당이 다르게 된 후, 그 깊이(hop)에 무관하게 중첩되는 시간이란 존재하지 않게 된다. 이는 각 부모노드가 자식노드에게 할당하는 시간은 자신이 할당받은 시간의 부분 집합이기 때문이다.
한편, 상기의 경로 인식 과정을 통해 전송된 필드 중 주기(Round)는, 상기의 할당 시간을 계산하는데 사용되며 하나의 슬럿 시간이 지남에 따라 1의 증가를 가지는, 최상위 노드인 싱크노드(S)로부터 시작된 센서 네트워크 내에서 인식된 자식노드들의 동기화 된 값이다. 할당받은 값과 전송된 주기 값을 통해 자신의 고유 슬럿 시간(유일한 시간)을 계산하는 방법은 하기의 수학식 1과 같다.
주기 % 분모 == 분자
상기의 수학식 1을 만족할 때 해당 자식노드의 동작 슬럿 시간이 된다. 단, '%'는 나머지 연산이고, '=='는 비교 연산을 의미한다.
도 1의 제3 센서노드(C)에서 "3/3"의 예를 보면, "R % 3 == 3"이므로, 주기가 3의 배수가 될 때, 고유 슬럿 시간이 되는 것이며, 제4 센서노드(D)에서 "2/6" 의 경우는 "R % 6 == 2"로 "6"단위의 시간 분할 중, "2"번째 시간이 제4 센서노드(D)의 고유 슬럿 시간이 된다.
한편, 전술한 고유전송시간의 할당 과정에서의 할당 동작은 도 2의 (T23)시간에, 자신이 가지고 있는 분자 및 분모 값에 응답메시지를 전송 받은 자식노드의 개수를 이용하여 간단한 연산을 통하여 할당을 하게 된다. 즉, 구체적인 값을 산출하는 공식은 하기의 수학식 2와 같다.
여기서, "
"는 연속된 무한한 시간을 "y"라는 단위로 나누고 각 분할된 단위 내에서 "x"번째에 해당하는 시간을 의미하고, "B*M"은 자식노드에게 할당되는 분모의 값이며, "A+(N*B)"는 자식노드에게 할당되는 분자의 값이다.
또한, A는 현재 노드가 할당받은 분자의 값이고, B는 현재 노드가 할당받은 분모의 값이며, M은 응답메시지를 전송한 자식노드의 총 합이며, N(0≤N≤M-1, 접근해온 순서대로 0부터 M-1까지 부모노드가 임의로 순차적 부여)은 응답메시지를 전송한 자식노드의 고유 숫자를 의미한다.
상기의 수학식 2에 의해 계산된 값을 자식노드들에게 전송하여 주면, 모든 자식노드는 해당 부모노드가 보유했던 할당 시간의 부분집합에 해당하는 시간을 부여받고, 이로서 모든 자식노드는 유일성이 보장되는 광고메시지 전송시간(즉, 고유전송시간)을 보장받게 된다.
이후에, 각 자식노드들은 할당받은 해당 고유전송시간에 광고메시지 전송을 재귀적으로 반복하여 네트워크 인식을 진행하며, 인식 과정은 부모노드가 자신 광고 메시지 전송 이후 응답메시지를 수신 받지 못할 경우까지 재귀적으로 반복된다.
이와 같이, 광고메시지의 브로드캐스트 송신 후 아무런 응답 전송을 받지 못한 노드의 경우 인식종료메시지를 부모노드(할당을 준 노드)에게 보고하게 되며, 자식노드가 존재하는 부모노드는 자신의 모든 자식노드에게 종료 보고를 받을 경우, 자신의 상위 부모노드에게 종료 보고를 하는 동작을 재귀적으로 반복하여, 결과적으로 최상위 노드인 싱크노드(S)가 종료 보고를 받을 경우 이는 센서 네트워크내의 모든 노드가 종료 보고를 전송하였음을 의미하게 되어, 인식 과정의 완료를 알 수 있게 한다.
추가적으로, 본 발명은 멀티 채널의 환경에서도 사용이 가능하다. 즉, 본 발명의 방법을 멀티(multi) 채널을 사용하는 센서 네트워크 환경에 적용하여 각 노드 기준 선호 채널로 수신하고, 송신 노드가 멀티 채널 전송을 하게 한다.
도 3은 본 발명의 일 실시예에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법에 대해 멀티 채널에서의 적용상태를 설명하기 위한 개념도이다.
도 3을 참조하면, 본 발명을 멀티 채널에 적용하는 방법은, 우선 복수개의 센서노드를 원하는 위치에 설치하는 단계에서 인식이 시작되기 전에 모든 노드는 채널을 탐색하여 가장 선호되는 채널로 RX(수신대기)를 수행하며, 도 2의 (T20) 단계인 광고메시지의 브로드캐스트 송신 동작을 모든 채널에 대하여 실행함으로서 지원할 수 있다.
이와 같이 멀티 채널을 지원하는 형태의 슬럿(slot)은 도 3의 (T30)와 같이 될 것이다. 이 경우 최상위 노드인 싱크노드(S)로부터 광고메시지의 브로드캐스트 송신 및 경로 인식 과정에서 오가는 필드는 각 노드의 수신 채널 정보를 포함함이 필요로 하며, 또한 라우팅 정보로서도 요구될 것이다.
또한, RF칩이 케리어 센싱(carrier sensing) 기능을 지원한다면, 전술한 경로 인식 단계의 응답 전송 시 케리어 센싱을 수행하여 충돌을 회피할 확률을 증가시킬 수 있다.
또한, 전술한 경로 인식 단계에서 수신 강도(RSSI)값의 임계값을 미리 설정하여 임계값 이하의 수신에 대하여 응답을 전송하지 않는 방법을 통해 라우팅 테이블과 라우팅 경로 연산에 대한 메모리 및 컴퓨팅 자원에 대한 부담을 줄이는 방법을 센서 네트워크 시스템의 요구사항에 따라 추가할 수도 있다.
또한, 본 발명은 센서 네트워크 분야에서 최초 네트워크 인식 및 구성방법에 대한 알고리즘으로서, 일반적으로 센서노드가 설치 또는 뿌려진 후 네트워크를 인식하는 과정을 거치는 모든 센서 네트워크에 적용 가능하다.
한편, 본 발명의 실시예에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다.
예컨대, 컴퓨터가 읽을 수 있는 기록매체로는 롬(ROM), 램(RAM), 시디-롬(CD-ROM), 자기 테이프, 하드디스크, 플로피디스크, 이동식 저장장치, 비휘발성 메모리(Flash Memory), 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다.
또한, 컴퓨터로 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.
전술한 본 발명에 따른 센서 네트워크 환경에서의 네트워크 인식 및 구성방법에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.