일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 가상화
- 물걸레자동세척로봇청소기
- 패턴 인식
- 물걸레로봇청소기추천
- 삼성
- 구글 앱 엔진
- 하이퍼바이저
- 고려대학교
- Friendship
- 삼성전자 소프트웨어멤버십 SSM
- 빅데이터
- NarwalFreo
- Google App Engine
- 나르왈프레오
- 증강현실
- 인공지능
- 삼성소프트웨어멤버십
- SSM
- Python
- 신경회로망
- 갤럭시탭S8울트라
- 멤버십
- Neural Network
- 신경망
- Bidirectional Associative Memory
- 파이썬
- hopfield network
- 패턴인식
- 동아리
- BAM
- Today
- Total
정보공간_1
[3기 신촌 윤기백] Wireless Sensor Network에 대해서 본문
[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의 제약사항 |
|
WSN의 응용 분야 |
|
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의 분류 |
|
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의 이해 |
|
패킷을 보내려는 노드는 한 주기 이상의 시간 동안 preamble 신호를 보내게 됩니다. 다른 노드들은 duty cycle 주기중에 한 번 짧은 시간 동안 이 preamble 신호를 감지하고 이로서 통신이 이루어 지게 됩니다. BMAC에서는 이 뿐만 아니라 carrier sensing의 정확도를 높이는 방법을 제안하여 더 효율적으로 통신을 하게 됩니다. BMAC은 cluster 구성 등의 추가적인 설정 없이 적용할 수 있는 MAC라서 TinyOS의 default MAC protocol로 사용됩니다.
SCP-MAC의 이해 |
|
짧은 시간동안 wake up tone은 Reciever를 깨우게 됩니다. 이는 unicast, broadcast packets 모두에서 효율적입니다. 또한 Optimization을 위해서 Contention Window를 Tone 전, 후로 두어 Collision 확률을 줄였습니다.
TinyOS의 이해 |
|
Task를 FIFO 방식으로 처리함
Task Queue와 Interrupt Vectors 존재
현재는 TinyOS 2.1 버전이 최신
WSN의 향후 발전 |
|
이 다음에는 Hadoop에 대해서 다시 연재하도록 하겠습니다.
감사합니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[3기 전주 전환규] Place & Route Part.1 (0) | 2013.04.02 |
---|---|
[3기 신촌 최기환] 안드로이드 런처의 구조 (1) | 2013.03.14 |
[3기 강남 이소영] Photoshop/illustrator 유용한 단축키 (0) | 2013.03.07 |
[3기 강남 백정의] Android Web View에 관하여. (0) | 2013.03.07 |
[3기 대전 김재원] Linux Kernel Debugging - Dynamic Probes(3) (0) | 2013.03.05 |