상기 목적을 달성하기 위한 본 발명의 방법은, 피코넷 상의 디바이스에서 코디네이터로의 전환 방법에 있어서, 피코넷 코디네이터로부터 최신의 우선순위 정보를 전송받는 단계; 상기 피코넷 코디네이터로부터 기 수신한 수퍼 프레임의 비컨을 통해 피코넷 상의 디바이스들에 할당된 P-CTA(Pseudo-static Channel Time Allocation)를 확인하는 단계; 상기 피코넷 코디네이터로부터 새로운 비컨을 수신하지 못함에 따라 상기 확인한 P-CTA 동안 상기 피코넷 상의 각 디바이스들 간에 전송되는 비컨 미수신 알림정보를 검출하는 단계; 상기 검출 결과, 비컨 미수신 알림정보가 검출되지 않음에 따라 피코넷 코디네이터로 전환하지 않는 단계; 및 상기 검출 결과, 비컨 미수신 알림정보가 검출됨에 따라 상기 피코넷 코디네이터가 정상적인 PNC 핸드오버 과정을 수행하지 않고 피코넷을 이탈했다고 판단하여 최우선 순 위 여부에 따라 피코넷 코디네이터로 전환하는 피코넷 코디네이터 전환 단계를 포함하는 것을 특징으로 한다.
한편, 본 발명의 다른 방법은, 피코넷 상의 디바이스에서 코디네이터로의 전환 방법에 있어서, 피코넷 코디네이터로부터 최신의 우선순위 정보를 전송받는 단계; 상기 피코넷 코디네이터로부터 기 수신한 수퍼 프레임의 비컨을 통해 피코넷 상의 디바이스들에 할당된 CTA(Channel Time Allocation)를 확인하는 단계; 상기 피코넷 코디네이터로부터 새로운 비컨을 수신하지 못함에 따라 상기 확인한 CTA 동안 상기 피코넷 상의 디바이스 간에 전송되는 패킷의 유무를 체크하는 단계; 상기 체크 결과, 전송되는 패킷이 존재함에 따라 피코넷 코디네이터로 전환하지 않는 단계; 및 상기 체크 결과, 전송되는 패킷이 존재하지 않음에 따라 상기 피코넷 코디네이터가 정상적인 PNC 핸드오버 과정을 수행하지 않고 피코넷을 이탈했다고 판단하여 최우선 순위 여부에 따라 피코넷 코디네이터로 전환하는 피코넷 코디네이터 전환 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은 'PNC failure'가 발생해도 피코넷의 운영을 지속하여 피코넷 내에서 제공하던 서비스를 지속하기 위한 PCA(Proactive Coordinator Appropriation) 방법이다.
또한, 본 발명은 WPAN(Wireless Personal Area Network)상에 "PNC failure"가 발생했을 경우, 진행중인 데이터 서비스 중 특히 인터럽트(interrupt)에 민감한 서비스가 중단 없이 지속될 수 있도록 차기 피코넷 코디네이터를 선출하여 피코넷의 운영을 지속할 수 있도록 한다.
또한, 본 발명은 PNC 기능을 갖춘 디바이스들의 목록이 우선 순위와 함께 미리 PNC에 의해서 결정되어 피코넷 내에 전송되고, "PNC failure"가 발생하면 그 목록의 디바이스들 중에서 최우선 순위를 갖는 디바이스가 차기 PNC로서 동작한다.
또한, 본 발명은 전송할 데이터를 가지고 있는 디바이스들이 비컨 프레임을 수신하지 못하였을 경우, 할당받은 P-CTA 내에서 서로 'no beacon' 지시자(indicator)를 교환함으로써, 'hidden terminal problem'에 대한 문제를 극복하였으며, 이때 'no beacon' 지시자는 기존 패킷 프레임의 MAC 헤더에 플래그(flag)의 형태로 전송할 수 있기 때문에, IEEE 802.15.3과 같은 국제 표준 규격에 단지 몇 가지 기능을 추가함으로써 구현이 가능한 장점을 갖는다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 3 은 본 발명에 따른 피코넷 상의 디바이스에서 코디네이터로의 전환 방법에 대한 일실시예 흐름도이다.
먼저, 피코넷 코디네이터로부터 최신의 우선순위 정보를 전송받는다(301).
이후, 상기 피코넷 코디네이터로부터 기 수신한 수퍼 프레임의 비컨을 통해 피코넷 상의 디바이스들에 할당된 P-CTA(Pseudo-static Channel Time Allocation)를 확인한다(302).
이후, 상기 피코넷 코디네이터로부터 새로운 비컨을 수신하지 못함에 따라 상기 확인한 P-CTA 동안 피코넷 상의 각 디바이스들 간에 전송되는 비컨 미수신 알림정보를 검출한다(303).
상기 검출 결과(303), 비컨 미수신 알림정보가 검출되지 않음에 따라 피코넷 코디네이터로 전환하지 않는다(304).
상기 검출 결과(303), 비컨 미수신 알림정보가 검출됨에 따라 상기 피코넷 코디네이터가 정상적인 PNC 핸드오버 과정을 수행하지 않고 피코넷을 이탈했다고 판단하여 최우선 순위 여부에 따라 피코넷 코디네이터로 전환하는 피코넷 코디네이터 전환한다(305).
도 4 는 본 발명에 따른 피코넷 상의 디바이스에서 코디네이터로의 전환 방법에 대한 다른 실시예 흐름도이다.
먼저, 피코넷 코디네이터로부터 최신의 우선순위 정보를 전송받는다(401).
이후, 상기 피코넷 코디네이터로부터 기 수신한 수퍼 프레임의 비컨을 통해 피코넷 상의 디바이스들에 할당된 CTA(Channel Time Allocation)를 확인한다(402).
이후, 상기 피코넷 코디네이터로부터 새로운 비컨을 수신하지 못함에 따라 상기 확인한 CTA 동안 피코넷 상의 디바이스 간에 전송되는 패킷의 유무를 체크한다(403).
상기 체크 결과(403), 전송되는 패킷이 존재함에 따라 피코넷 코디네이터로 전환하지 않는다(404).
상기 체크 결과(403), 전송되는 패킷이 존재하지 않음에 따라 상기 피코넷 코디네이터가 정상적인 PNC 핸드오버 과정을 수행하지 않고 피코넷을 이탈했다고 판단하여 최우선 순위 여부에 따라 피코넷 코디네이터로 전환하는 피코넷 코디네이터 전환한다(405).
이를 좀 더 상세히 살펴보면 하기와 같다.
"PNC failure"가 발생했을 경우를 대비하여, PNC는 지속적으로 차기 PNC 후보 디바이스들의 목록을 그 우선 순위와 함께 갱신한다. PNC 후보 디바이스들의 우선 순위는 현 PNC에 의해서 결정되는데, 이를 결정하기 위해 PNC는 IEEE 802.15.3 표준에서의 "PNC capability"와 같은 정보를 이용할 수 있다. 만약, "PNC capability"로부터 PNC 후보 디바이스의 우선 순위를 결정할 수 없는 경우 그 우선 순위를 임의로 정할 수 있다.
이러한 PNC 후보 디바이스들의 우선 순위에 대한 정보는, 피코넷 상에 등록(association)하는 디바이스에게 주어지고, 또한 비컨 프레임 내의 IE(Information Element)로서 피코넷에 방송된다. 새로운 디바이스가 등록하거나, 기존의 디바이스가 등록 해제(disassociation)하는 일이 발생하면, 그 우선 순위 정보는 새로 갱신되어 피코넷 내부의 모든 디바이스들에게 방송된다. "PNC failure"가 발생하면 참가(participating) 디바이스 중 최우선 순위를 갖는 디바이스가 비컨 프레임을 전송하기 시작함으로써 새로운 PNC로서 동작한다.
이때, 전체 디바이스 중에 차기 PNC로서 최우선 순위를 갖는 디바이스가 반 드시 참가 디바이스는 아니다. 또한, 참가 디바이스들은 등시 데이터를 갖은 디바이스일 경우가 많으나, 반드시 등시 데이터를 갖은 디바이스들만 참가 디바이스가 되는 것은 아니다.
한편, 디바이스 A가 디바이스 B에게 데이터를 전송하고 있는 경우 디바이스 A와 디바이스 B를 상호 간의 "통신 상대(communication peer)라 부른다. 만약, 참가 디바이스가 비컨을 수신하지 못한 경우 그 디바이스는 수신하지 못한 비컨의 개수가 일정 숫자가 될 때까지 기다리면서 PNC 할당 가능성에 대비한다. 즉, 비컨을 수신하지 못한 디바이스는 내부 카운터를 감소/증가시키거나, 통신 상대에게 'no beacon' 지시자를 전송하거나, 수신된 'no beacon' 지시자에 대한 응답으로 'no beacon' 지시자를 보내는 등의 동작을 하며 PNC 할당에 대비한다. 이때, 'no beacon' 지시자는 비컨을 수신하지 못하였음을 나타내는 플래그(flag)를 의미한다.
이렇게 참가 디바이스들의 통신 상대 간에 정보를 주고받는 핸드쉐이크(handshake)는 "hidden terminal problem"로 인해 발생하는 디바이스에서의 잘못된 PNC 할당 시도 문제를 방지하기 위함이다. 통신 상대 간의 핸드쉐이크는 그들에게 할당된 P-CTA 동안 전송되는 패킷과 이에 대한 응답(ACK) 프레임에 'no beacon' 지시자를 심어서 보냄으로써 이루어진다.
비컨을 수신하지 못하면 참가 디바이스는 자기 자신에게 할당된 P-CTA 뿐만 아니라 다른 디바이스들의 P-CTA도 확인함으로써, 다른 통신 상대 간에 'no beacon' 지시자를 주고 받는 핸드쉐이크를 관찰할 수 있고, 따라서 다른 디바이스들이 비컨을 수신하였는지 여부를 알 수 있다.
다른 방법으로는, 참가 디바이스로 하여금 비컨을 수신하지 못한 수퍼프레임 내의 P-CTA 뿐만 아니라 보통 CTA들도 확인하도록 할 수도 있다. 즉, 비컨을 수신하지 못한 경우 보통 CTA에서는 송신이 금지되어 있기 때문에 CTA 내에 패킷 송신이 있는지를 관찰함으로써 PNC 할당의 신뢰도를 높일 수 있다.
PNC 할당이 실제로 일어나는 것은 수신되지 않은 비컨의 개수가 임계값(threshold)보다 크거나 같을 때 참가 디바이스 중 우선 순위가 가장 높은 디바이스가 비컨 프레임을 전송하기 시작하는 시점이다.
PNC 기능을 갖춘 새로운 디바이스가 PNC 역할을 맡게 된 이후에는, 이 새로운 PNC는 피코넷과 피코넷 내의 디바이스들에 대한 정보를 수집하기 위해 "information request command" 등을 사용할 수 있다. PNC 할당의 결과로 기존의 등록이 무효화 되는 디바이스들이 있을 수 있다. 이들 디바이스들은 이 피코넷에 다시 참여하기 위해 새로운 PNC를 통해 재등록(re-association) 받아야 한다.
피코넷이 정상적으로 동작하는 동안, PNC는 다른 기능들을 수행하기 위하여 한 개 또는 그 이상의 연속된 비컨 프레임을 보내지 않을 수도 있다. 이 경우 보내지 않는 비컨 프레임의 수는 임계값(threshold)보다 작다. 따라서, 디바이스들은 보내지 않는 비컨 프레임의 수가 임계값(threshold)보다 크거나 같을 때에만 PNC 할당을 시도해야 한다. 이때, 비컨 프레임을 받지 못한 디바이스가 어떤 이유로든 다른 디바이스의 P-CTA를 알 수 없다면, 이 디바이스는 PNC 할당을 시도하지 말아야 한다.
비컨 프레임은 모든 CTA 할당 정보를 포함함으로, 비컨을 받으면 어떤 디바 이스들이 P-CTA를 할당받았는지 알 수 있으며, P-CTA를 할당받은 디바이스들만이 PNC 할당 과정에 참여할 수 있다.
데이터를 송신하는 송신 디바이스(participating source DEV)가 비컨 프레임을 수신하지 못한 경우, 이 사실을 해당 수퍼프레임의 P-CTA내에서 수신 디바이스(participating destination DEV)에게 알린다. 이때, 'No beacon' 지시자는 송신 중인 데이터 패킷의 MAC 헤더 안에 플래그로서 전송된다.
그러면, 수신 디바이스는 수신된 패킷의 MAC 헤더 안의 플래그를 검사하여 송신 디바이스가 비컨 프레임을 수신하지 못한 것으로 판단한다. 이때, MAC 헤더 안의 플래그를 통해 수신(즉시) 응답(Imm-ACK: immediate ACK)이 요청된 경우 비컨의 수신 여부를 응답 프레임(ACK frame)의 MAC 헤더 안에 플래그로서 전송한다.
이때, 수신 디바이스로부터 'no beacon' 지시자를 수신하지 못한 경우 송신 디바이스는 수신 디바이스가 비컨을 받은 것으로 판단한다. 예로서, 만약 송신 디바이스가 비이컨을 수신하지 못했음에도 불구하고, 수신 디바이스로 'no beacon' 지시자를 송신하지 않으면, 수신 디바이스는 송신 디바이스가 비컨을 수신한 것으로 판단하여 'no beacon' 지시자를 송신 디바이스로 보내지 않는다.
만약, 참가 디바이스가 이미 데이터 전송을 완료하여 더 이상 전송할 데이터가 없을 경우 페이로드(payload)가 없는 빈 패킷을 만들어 그 안에 'no beacon' 지시자를 심는다.
한편, PNC 할당 정책은 적극적인 정책과 보수적인 정책을 포함한다. 적극적인 정책은 보수적인 정책에 비해서 PNC 할당이 일어날 확률이 더 높으며, "PNC failure" 발생시 좀더 효율적이다. 그러나, 적극적인 정책은 아무 문제가 없는 피코넷을 방해(interrupt)할 확률 또한 크다.
4개의 단계로 이루어진 보수적인 PNC 할당 정책의 예는 다음과 같다.
제 1 단계: 만약 비컨을 수신하지 못하면 참가 디바이스들은 해당 수퍼프레임의 P-CTA 내에서 'no beacon' 지시자를 전송한다. 이때, 참가 디바이스들은 가능한 한 기존의 동작을(original behavior) 유지한다.
송신 디바이스는 현재 송신 중인 데이터 패킷의 MAC 헤더 안에 플래그의 형태로 'no beacon' 지시자를 보낸다. 이때, 응답(ACK) 정책은 바꾸지 않는다. 만약, 송신할 패킷이 없는 경우 'no beacon' 지시자를 보내기 위해 수신 응답(Imm-ACK)으로 셋팅된 응답 정책을 가지는 페이로드(payload)가 없는 빈 패킷을 생성한다.
수신 디바이스가 'no beacon' 지시자를 송신 디바이스로부터 수신하지 않으면, 송신 디바이스가 비컨을 수신한 것으로 간주한다. 만약, 수신 디바이스가 비컨 프레임을 수신하지 못하였을 경우, 송신 디바이스로부터 'no beacon' 지시자를 수신하고 수신된 패킷 내의 ACK 정책이 수신 응답(Imm-ACK)일 경우 'no beacon' 지시자를 전송한다. 이때, 모든 참가 디바이스들은 다른 참가 디바이스들의 P-CTA도 수신한다.
제 2 단계: 송신 디바이스는 응답 정책을 수신 응답(Imm-ACK)으로 만들어서 'no beacon' 지시자를 전송한 후, 수신 디바이스로부터의 ACK 프레임 안에 'no beacon' 지시자가 있는지 확인한다. 필요에 따라 제 1 단계에서처럼 페이로드가 없는 빈 패킷을 생성할 수도 있다.
여기서, 수신 디바이스들은 제 1 단계의 경우와 동일하게 동작한다.
한가지 예외는, 현 P-CTA안에 응답 프레임을 수신할 공간적 여유가 없는 경우로, 이 경우 기존의 ACK 정책을 바꾸지 않고 'no beacon' 지시자를 전송한다. 이는 'hidden terminal problem'에 의해 불필요한 패킷 손실이 발생하는 것을 방지하기 위한 것이다. 'Hidden terminal problem'을 경험하는 디바이스의 경우 다른 디바이스들 간의 핸드쉐이크를 관찰함으로써, 자신의 상대 디바이스(peer DEV)와 핸드쉐이크를 수행하기 위하여 패킷을 버리는 것을 방지한다. 이때, 모든 참가 디바이스들은 다른 참가 디바이스들의 P-CTA도 수신한다.
제 3 단계: 모든 송신 디바이스는 응답 정책을 수신 응답(Imm-ACK)으로 만들어서 'no beacon' 지시자를 수신 디바이스로 보낸다. 만약, P-CTA안에 응답 프레임을 위한 공간적 여유가 없다고 판단되면, 보낼 데이터를 버리고 페이로드가 없는 빈 패킷을 생성하여 전송한다. 이때, 수신 디바이스들은 제 1 단계의 경우와 동일하게 동작한다.
제 4 단계: 차기 PNC로서 우선 순위가 가장 높은 참가 디바이스가 비컨 프레임을 송신하기 시작한다.
상기 언급한 PNC 할당 정책을, 송신 디바이스와 수신 디바이스의 경우에 대해서 'pseudo-code'로 구현한 예는 하기의 [표 1] 및 [표 2]와 같다. 이때, [표 1] 및 [표 2]는 참가 디바이스들이 PNC 할당의 일환으로 '보통 CTA'들을 수신하지 않는 경우를 예시한 것이다.
한편, PNC 할당을 구현함에 있어서 위의 네 단계 모두가 구현될 필요는 없다. 예를 들어, 제 1 단계와 제 2 단계는 간단히 구현하기 위해서 선택적으로 생략이 가능하다.
도 5 는 IEEE 802.15.3의 MAC 헤더에 'no beacon' 지시자 플래그를 사용하는 예를 보여주고 있다.
도 5에 도시된 바와 같이, 'No beacon' 지시자 플래그는 MAC 헤더 내의 "Frame Control"(500) 영역에 해당하는 16 비트(bit) 중, 사용하지 않는 5개의 비트인 b15 - b11(502, 504) 중에서 b11(504)를 'no beacon' 지시자로 사용한다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.