정보공간_1

[3기 신촌 윤기백] Wireless Sensor Network에 대해서 본문

IT 놀이터/Elite Member Tech & Talk

[3기 신촌 윤기백] Wireless Sensor Network에 대해서

알 수 없는 사용자 2013. 3. 11. 21:59

안녕하세요신촌멤버십 22-1기 윤기백입니다.


본래 Hadoop에 대해서 글을 연재하고 있었는데, 

이는 다음 달부터 다시 진행하기로 하고, 

제가 현재 진행하고 있는 프로젝트인 WSN(Wireless Sensor Network)에 대해서 소개하려고 합니다. 

WSN에 대해서 소개하고, 그 것의 발전방향에 대해서 논해보도록 하겠습니다. 


WSN의 소개

 

 무선 센서 네트워크(WSN)은 센서로 센싱이 가능하고 수집된 정보를 가공하는 프로세서가 달려 있으며, 이를 전송하는 소형 무선 송수진 장치를 말하는 센서노드와 이를 수집하여 외부로 내보내는 싱크노드로 구성된 네트워크입니다. 기존의 네트워크와 다르게 커뮤니케이션의 수단이 아닌, 자동화된 원격 정보 수집을 기본 목적으로 하며 과학적, 의학적, 군사적, 상업적 용도등 다양한 응용개발에 폭넓게 사용됩니다.  

위와 같이 수많은 센서노드가 흩뿌려져 있고, 특정 노드로부터 센싱된 데이터를 노드를 거쳐서 수집하여 싱크노드로 받아서 유저가 확인하는 시스템입니다. 여기서 센서는 온도센서, 조도센서, 적외선센서등 용도에 맞춰서 다양하게 활용될 수 있습니다. 


우리가 익히 알고 있는 네트워크의 OSI 7 Layer를 WSN에서는 그대로 활용하고 있지 않습니다. 본래 7계층에서는 응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크계층, 데이터 링크 계층, 물리계층으로 나누어지나 이중에서 표현, 세션 계층은 따로 두지 않고 5개의 계층으로만 표현하게 됩니다. 그리고 Topology 관리, 동기화 관리, Localization 평면과 전력관리, 센서노드의 움직임관리, 작업관리 평면으로 나누어서 생각하게 됩니다. 

위와 같이 이러한 형태를 센서네트워크의 프로토콜 스택이라고 보시면 됩니다. 


WSN의 주요 특징

 


A.장애 내성(Falut tolerance)

  센서 노드들은 전력의 부족이나 물리적인 손상, 환경적인 여러 제약조건들로 인해서 동작이 중지되는 경우

가 발생합니다. 그러나, 적은 수의 센서 노드들의 고정이 전체 센서 네트워크에 영향을 주어서는 안 됩니다.

B.확장성(Scalability)

  요구되는 노드의 수가 애드 혹 네트워크와는 달리 어플리케이션에 따라 수천~수만 개 이상 필요하게 될 수 

있으므로 센서 네트워크 프로토콜은 이러한 네트워크 규모에 관계없이 올바르게 동작 해야 합니다.

C.저렴한 가격(Low-cost)

  매우 많은 수의 센서 노드가 사용되므로 노드 1개의 가격은 낮은 가격이어야 합니다. 센서 네트워크 설계 시 

이러한 비용적 측면에 대해 고려해야 합니다. 많은 기능을 요하는 시스템을 위해서는 고가의 노드가 사용되므

로 시스템에 요구사항에 맞는 노드를 사용해야 합니다.

D.낮은 전력 소모(Low-power consumption)

  무선 센서 노드는 제한된 에너지 공급원을 가지고 있기 때문에 네트워크 토폴로지의 변형이나 다른 요인들

로 인해 네트워크의 재구성, 패킷의 재전송을 수행하는데 있어서 전력 사용을 최소화해야 합니다. 에너지의 대

부분은 RF 통신, 센싱, 데이터 처리 등에 사용됩니다.

E.강인한 구조와 동작환경

  센서 네트워크의 구성 대부분은 사용자의 접근이 쉽지 않은 지역적으로 위험하거나 멀리 떨어진 곳에 설치

되어 동작하고 자연에 노출된 상태로 동작하기 때문에 센서 네트워크는 이러한 열악한 동작 환경을 고려하

여 설계되어야 합니다.


WSN의 제약사항

 

 

A.노드의 제한
  성능, 메모리등의 문제로 각 모트는 제한된 계산 능력을 가지고 있습니다.  또한, 보안문제 때문에 공개키를 사용하는 것은 어려움이 있습니다. 그리고 제한된 전력만이 제공되므로 저전력으로 운영되는 것이 중요하며, 특정 노드에 전력이 집중되어 전력소모가 많아 지는 것을 피해야 합니다. 그리고 무선 통신의 범위가 짧습니다..
B.데이터 통합(Aggregation) 필요
  노드들이 수집한 정보의 중복성 때문에 데이터 통합 과정이 필요합니다. 
C.노드의 추가와 삭제 가능성
  노드들이 처음 배치된 이후 문제가 있는 노드들을 교체 가능합니다. 
D.노드의 물리적 위험성
  노드들은 공개적인 장소에 또는 위험지역에 설치 될 수 있습니다. 


WSN의 응용 분야

 

 

  WSN은 온도, 습도, 압력, 가속도 등 다양한 주변 환경감지를 할 수 있는 센서들로 구성되어 있습니다. 이러한 센서를 활용하는 응용분야는 군대, 환경, 건강, 홈 네트워크 등의 분야가 있습니다.
A.군대
  WSN 군 병력의 제어, 통신, 정보 감시, 정찰임무 등 국방 시스템에 중요한 역할을 할 수 있습니다. 다수의 저렴한 센서 노드들로 구성되어 있기 때문에 몇몇의 노드 손상에도 비교적 영향을 덜 받아 센싱을 처리할 수 있습니다.
B.환경
  다양한 측정 센서를 통해 식물의 관리나 축산 등에 활용 할 수 있고 생물학적인 오염 감지 등 다양한 환경측정 분야에 응용 될 수 있습니다.
C.건강
  환자의 관찰 및 여러 의학적 값들의 수집 활용으로 의료 분야에 응용 될 수 있습니다.
D.홈네트워크
  최근 들어 지속적으로 발전하고 있는 홈 네트워크 시스템에 활용될 수 있는데 가정에 사용되는 여러 가전 기구들에 장착되어 원격관리 및 사용확대 분야로 응용 될 수 있습니다.


MAC( Medium Access Control)

 


  MAC은 WSN의 Protocol Stack 중에서 link layer에 속하게 됩니다. Link는 각 노드 사이의 Medium 에서의 통신 채널을 의미합니다. 우리가 익히 알고 있는 MAC Address와는 다른 개념입니다. WSN의 경우는 여러 개의 센서노드로 구성이 되어있기 때문에 Wireless 통신에서 Multi Access Problem이 계속 발생하기 때문에 이를 방지하기 위한 Protocol이 필요합니다. 또한 대부분의 WSN은 Multi Hop으로 구성되어 있기 때문에 일반적인 One-hop을 이용한 Wireless 통신에 비하여 MAC의 중요성이 매우 높다고 할 수 있습니다.

   WSN 의 MAC 프로토콜 설계에서 가장 중요한 점은 어플리케이션 목적에 맞는 프로토콜을 설계하면서, 각 노드에서 에너지 사용을 최소화하며 통신하여 전체 네트워크의 수명을 길게 유지하는 것입니다. 어플리케이션 목적에 따라서 에너지를 많이 쓰면서 목적에 부합한 프로토콜 설계를 할 수도 있고, Correlation 이용, Cluster 구성 등 다양한 방식으로 설계가 가능합니다. 

   하지만 대부분의 WSN 네트워크에서는 제한적인 에너지를 이용하여 구성되기 때문에 에너지 절약이 프로토콜 설계에서 가장 중요한 요소가 됩니다. 대부분의 WSN에서 Sensing보다는 통신을 하는데 에너지가 많이 소비되게 됩니다. 따라서 통신에서 에너지 낭비를 줄이는 것이 가장 중요하다고 할 수 있습니다. MAC 프로토콜에서 에너지가 낭비되는 요인은 크게 Collisions, Idle listening, Protocol overhead, Overhearing의 4가지가 있습니다.

   첫째, Collision은 전송된 패킷이 hidden terminal problem등의 문제로 인하여 carrier sensing을 실패하였을 경우 패킷이 손상되는 상황입니다. 이럴 경우 신호를 다시 전송해야하기 때문에 에너지 소비가 많아지므로 collision을 방지해야 합니다. 

   둘째, Idle listening은 노드 자신은 전송할 데이터가 없지만 이웃 노드가 언제 데이터를 전송할지 모르기 때문에 지속적으로 패킷들을 수신해야 하는 상황입니다. 

   셋째, Protocol overhead는 제어를 하는데 필요한 패킷을 나타내는데 효율적인 전송을 위해서는 Protocol overhead이 길어져야 하는데 이 경우 패킷이 길어져서 전송 에너지가 증가하게 됩니다. 따라서 최적화를 통해 적당한 protocol overhead를 구성해야 합니다.  마지막으로 overhearing은 다른 노드를 목적지로 하는 패킷을 엿듣게 되는 상황을 나타냅니다.

   따라서 이러한 에너지 낭비 문제를 고려하면서 WSN의 MAC을 구성하여야 하는 것이 중요합니다.



MAC의 분류

 

 

WSN에서 현재까지 연구된 MAC의 종류는 매우 많습니다. 그러한 MAC의 카테고리를 나눈다면 크게 4가지로 나눌 수 있습니다. 다음에서 볼 수 있듯이 Scheduled Protocols, Protocols with Common Active Period, Preamble Sampling Protocols, Hybrid Protocols( asynchronous, synchronous, frame-slotted, and multichannel )로 볼 수 있으며, 2번째 그림에서도 MAC의 변화상을 확인할 수 있습니다. 이중에서 Synchronous MAC의 S-MAC, Asynchronous MAC의 Preamble기반의 B-MAC, Hybrid MAC인 SCP-MAC이 그 대표격이라고 할 수 있습니다.



S-MAC의 이해

 

 

WSN에서 low load인 경우에 idle listening으로 인한 에너지 낭비가 심해지게 됩니다. 따라서 이런 문제점을 해결하기 위해서 SMAC은 duty cycle을 적용하여 노드가 주기적으로 sleep 모드로 에너지를 최소로 쓰는 상태로 들어가게 함으로 idle listening을 줄일 수 있게 됩니다.


SMAC의 기본적인 동작은 CSMA/CA를 기반으로 합니다. RTS와 CTS 교환을 통해서 overhearing 문제를 해결하여 이로 인한 에너지 낭비를 줄여주게 됩니다. 또한 이런 구조를 이용하여 hidden terminal problem 등 collision을 줄여주어 패킷 재전송으로 인한 에너지 낭비를 줄일 수 있게 됩니다.

SMAC에서 가장 중요한 부분은 노드별로 synchronization을 맞추는 부분입니다. SMAC의 경우 duty cycle 중에서 synchronization을 위한 패킷 교환 시간을 할당하여 synchronization을 맞추게 됩니다. 이 때, global하게 모든 노드의 시간을 맞출 수 없기 때문에 virtual cluster을 구성하여 local synchronization을 구성합니다.


Figure 6는 ns-2 시뮬레이터에 구현된 SMAC Class Diagram입니다. SMAC은 총 7개의 Timer와 SMAC 클래스로 이루어져서 구현됩니다. 7개의 Timer는 General Timer, Send Timer, Receive Timer, Nav Timer, NeighNav Timer, Carrier Sensing Timer, Counter Timer로 이루어져 있습니다. 각각의 Timer는 각자의 목적에 맞게 돌며 주기 시간 후에 SMAC에 알려줍니다. 각각의 상태를 기억하는 State에 맞게 돌게 되며, SLEEP, IDLE, WAIT_CTS, WAIT_DATA, WAIT_ACK에 맞게 해당 역할을 합니다.



B-MAC의 이해

 

 

 MAC은 Preamble을 이용한 asynchronization MAC입니다. BMAC 또한 duty cycle을 이용하여 sleep 모드로 에너지 사용을 최소화 하지만 SMAC의 단점인 synchronization과정을 생략합니다. synchronization과정에 많은 에너지 낭비가 발생하기때문에 이를 없애서 에너지 낭비를 줄이게 됩니다.


 패킷을 보내려는 노드는 한 주기 이상의 시간 동안 preamble 신호를 보내게 됩니다. 다른 노드들은 duty cycle 주기중에 한 번 짧은 시간 동안 이 preamble 신호를 감지하고 이로서 통신이 이루어 지게 됩니다. BMAC에서는 이 뿐만 아니라 carrier sensing의 정확도를 높이는 방법을 제안하여 더 효율적으로 통신을 하게 됩니다. BMAC은 cluster 구성 등의 추가적인 설정 없이 적용할 수 있는 MAC라서 TinyOS의 default MAC protocol로 사용됩니다.


SCP-MAC의 이해

 

 

 SCP-MAC은 Synchronization 특성을 가진 Scheduled listening 방식(S-MAC)과 LPL(Low-Power Listening) 특성을 가진 Preamble 방식(B-mac)을 Hybrid 하여 구성한 Mac입니다. 
Scheduled listening방식은 효율적인 전송측면에서는 좋지만, 동기화 과정에서 생기는 overhead와 listen interval이 보통 너무 길다는 단점이 있습니다. 그리고 LPL 방식은 트래픽이 없는 상황에서 listen cost를 효과적으로 줄일 수있지만, 전송에는 high cost가 듭니다. 
 이 둘의 단점을 극복하고 장점만을 결합하여 만든 것이 SCP-MAC입니다. SCP-MAC에서는 Ultra Low Duty cycle을 목표로 합니다. 이는 현재 MAC보다 1/10정도라고 목표로 잡았었습니다. 그리고 많은 traffic상태에서도 효과적으로 적용될 수 있도록 합니다. 

 짧은 시간동안 wake up tone은 Reciever를 깨우게 됩니다. 이는 unicast, broadcast packets 모두에서 효율적입니다. 또한 Optimization을 위해서 Contention Window를 Tone 전, 후로 두어 Collision 확률을 줄였습니다.

TinyOS의 이해

 

 

임베디드 센서 네트워크에서 사용되는 open-source operating system 입니다.
전체적인 구조는 컴포넌트 기반 구조 
Event-driven 방식
nesC 라는 언어를 사용.
하나의 프로그램만을 동작시킬 수 있음.
Task로 FIFO 방식으로 처리.
TinyOS Kernel Scheduler

Task를 FIFO 방식으로 처리함

Task Queue와 Interrupt Vectors 존재

현재는 TinyOS 2.1 버전이 최신


WSN의 향후 발전

 

 

2000년초반부터 WSN이 이슈화되면서 현재까지 나와있는 MAC의 종류는 어마어마하게 많습니다. 모두 기반이 되는 MAC을 조금조금씩 효율을 증대시켜서 만들어져있으며, 이미 새로운 MAC에 대한 연구는 거의 끝났다고 합니다. 하지만 이를 특정환경에서 적용하게 될 때, 어떤 MAC이 더 효율적인가에 대한, 즉 실적용에 대한 연구는 더욱 필요하다고 생각됩니다. 
정말 실생활에 이용되었을 때, 유용하게 사용될 수 있게 발전되도록 깊은 연구가 필요한 것입니다.

그리고 현재 NS-2 가상시뮬레이션으로 결과를 내며 작업을 하고 있는데, WSN과 NS-2, MicaZ와 관련된 내용을 더 알고싶으신 분들은 문의해주시기 바랍니다. 

이 다음에는 Hadoop에 대해서 다시 연재하도록 하겠습니다. 

감사합니다.