2008.09.11 23:21

센서메이커: 세밀하고 확장성있는 실험을 위한 무선 센서 네트워크 시뮬레이터

이번 글에서는 센서 네트워크용 시뮬레이터인 '센서메이커'의 설계 및 구현에 대한 내용을 자세히 설명한다.

*** 이 논문은 ICCSA 2008 학회에 발표된 논문이다.
     참고: http://www.springerlink.com/index/135t337v633v6240.pdf 
             SensorMaker: A Wireless Sensor Network Simulator for Scalable and Fine-Grained Instrumentation
             Sangho Yi, Hong Min, Yookun Cho, and Jiman Hong


제목: '센서메이커: 세밀하고 확장성있는 실험을 위한
무선 센서 네트워크 시뮬레이터'
(SensorMaker: A Wireless Sensor Network Simulator for Scalable and Fine-Grained Instrumentation)


초록:
최근, 무선 센서 네트워크는 새로운 그리고 중요한 연구 분야로 주목을 받고 있다. 이러한 센서 네트워크는 일반적으로 수백 혹은 수천 개의 센서 노드로 구성되며, 각 센서 노드는 대상 환경에 뿌려져서 동작한다. 이러한 이유로, 실제 센서 네트워크를 새로운 기법의 개발이나 실험에 사용하는 것은 상당히 시간 및 비용을 소모하게 된다. 본 논문에서는, ‘센서메이커’ 라는 이름의 무선 센서 네트워크를 위한 시뮬레이터를 제안한다. 제안한 시뮬레이터는 전체 센서 네트워크에 대한 확장성 있고, 세밀한 측정 및 시뮬레이션을 지원한다. 또한, 이 시뮬레이터를 사용한 예제로, 라우팅 및 클러스터링, 그리고 네트워크 관리 프로토콜들의 실험 결과들을 보이고, 다양한 방면에서의 시뮬레이션이 가능함을 보인다.



1. 무선 센서 네트워크란 무엇인가? (Revisited)
- 이는 이미, 앞의 글에서 설명한 바 있으므로, 간략히 요약하겠다.

- 다수의 센서 노드로 구성되는 무선 네트워크
   수백~ 수만 개의 센서 노드

- 사람과 환경 간의 네트워크
   센서 노드들은 대상 환경에 뿌려짐 (건축물, 산, 바다, 공중 등)
   각 노드의 센싱 정보를 사람에게 전달
   무선 네트워크에서 라우팅 수행

사용자 삽입 이미지



- 예> MICAz 센서 노드 (UCB 설계, Crossbow 판매)
   ATMega128L CPU
   4KB RAM
   128KB NOR FLASH
   2.4Ghz R/F
   2개의 AA 배터리



2. 센서 네트워크 시뮬레이터의 필요성 (Revisited)
- 그럼, 센서 네트워크 시뮬레이터가 왜 필요한 것인지, 살펴보도록 하겠다.

- 자, 우리가 센서 네트워크를 전공으로 삼는 대학원생이라 해보자. (혹은 대학 교수도 좋다.)
  -> 연구가 직업이므로, 뭔가 새로운 라우팅 혹은 클러스터링 기법을 제안하게 될 것이고, 성능 비교 실험을 해야 할 것이다. 

- 실제 센서 네트워크를 사용하여 실험할 수 있을까?
  비용은? (센서 노드가 수십 ~ 수백개가 필요할 것이다. )
  시간은? (수백개의 센서 노드에 프로그램 탑재, 셋업 등을 하느라 몇일 ~ 몇십일을 소요할 지도 모른다.)
  디버깅은? (각 노드에 PC를 연결하여 정보를 로깅할 것인가?)
  트레이싱은? (분산된 PC의 정보를 모아서 어떻게 분석할 것인가?)
  외부의 간섭은? (다른 통신 장비의 간섭으로 인한 영향은 어떻게 할 것인가?)

- 위와 같은 이유로, 실제 네트워크를 구성해서 라우팅 등을 실험하는 것은 매우 힘들 것이다.
   따라서, '센서 네트워크 시뮬레이터'를 사용할 필요가 있다. 



3. 관련 연구
- 다음으로는, 센서 시뮬레이터 관련 연구를 살펴보겠다.

- SENSE:
   Chen, G., J. Branch, M. J. Pflug, L. Zhu and B. Szymanski
   “SENSE: A Sensor Network Simulator”
   Advances in Pervasive Computing and Networking, 2004.

   - 기능 및 장단점
     컴포넌트 기반 설계(C++)로 확장성 확보
     C++ 의 특성상, 시뮬레이션의 수행 속도가 느림

사용자 삽입 이미지




- SNetSim:
   URL:
http://www.dho.edu.tr/enstitunet/snetsim
   (현재는 웹페이지 공사중, 접속 불가)
   'SNetSim-SFX' 라는 이름의 프리웨어로 다운로드 가능

   - 기능 및 장단점
     이벤트 드리븐 방식을 사용
     MS 윈도우 환경에서 동작하는 프리웨어(Windows GUI 사용)
     멀티 쓰레디드 방식에 비하여, 대규모 네트워크에 대한 시뮬레이션 시에 메모리 사용량이 적음
     그러나, 시뮬레이터에 대한 추가적인 지원 부재 (따라서, 사용 불가)

사용자 삽입 이미지




- ATEMU:
   Jonathan Polley, Dionysys Blazakis, Jonathan McGee, Dan Rusk, John S. Baras
   “ATEMU: A Fine-grained Sensor Network Simulator”
   URL:
http://www.hynet.umd.edu/research/atemu/downloads.html
   Sensor and Ad Hoc Communications and Networks, 2004.

   - 기능 및 장단점
     AVR 프로세서에 기반한 에뮬레이션 수행 가능
     (각 노드들의 작업을 에뮬레이션)
     각 노드들의 무선 통신을 통한 상호 작용의 시뮬레이션 가능
     그러나, 네트워크 프로토콜의 시뮬레이션에는 적합하지 아니함

사용자 삽입 이미지




- EmStar:
   L. Girod, J. Elson, A. Cerpa, T. Stathopoulos, N. Ramanathan, and D. Estrin
   “EmStar: a Software Environment for Developing and Deploying Wireless Sensor Networks”
   URL:
http://cvs.cens.ucla.edu/emstar/
   In Proceedings of the USENIX Technical Conference, 2004.

   - 기능 및 장단점
     리눅스를 기반으로 한 이벤트 드리븐 방식의 시뮬레이션 수행
     노드의 결함이나 문제점을 해결하기 위하여 설계된 시뮬레이터임
     대규모 네트워크에서도 잘 동작함
     그러나 매우 제한적인 시뮬레이션 결과만을 얻을 수 있음

사용자 삽입 이미지




- TOSSIM:
   Philip Levis, Nelson Lee, Matt Welsh, and David Culler
   “TOSSIM: Accurate and Scalable Simulation of Entire TinyOS Applications”
   URL:
http://www.cs.berkeley.edu/~pal/research/tossim.html
   In Proceedings of SenSys'03, First ACM Conference on Embedded Networked Sensor Systems, 2003.

   - 기능 및 장단점
     TinyOS 운영체제 및 응용 프로그램을 시뮬레이션 하기 위한 개발 툴
     X86 기반 시스템에 포팅한 바이너리 이미지로 시뮬레이션 수행
     단지, TinyOS 기반 프로그램의 동작 확인 수준에서 사용 가능

사용자 삽입 이미지




- AVRORA:
   Ben Titzer, Daniel Lee, and Jens Palsberg
   “Avrora: Scalable Sensor Network Simulation with Precise Timing”
   URL:
http://compilers.cs.ucla.edu/avrora/
   In Proceedings of IPSN'05, Fourth International Conference on Information Processing in Sensor Networks, Los Angeles, 2005.

   - 기능 및 장단점
     AVR 마이크로 컨트롤러 기반 센서 노드를 위해 작성된 시뮬레이터
     각 노드의 스택, 배터리, 실행 흐름, 정적 분석에 용이
     GUI 부재의 단점 존재
     네트워크 프로토콜의 시뮬레이션에는 부적합

사용자 삽입 이미지




4. 센서메이커의 설계 및 동작 방식
- 다음으로는, 센서메이커의 설계 및 동작 방식을 간략히 살펴보겠다.

- 먼저, 센서 네트워크 시뮬레이터가 갖추어야 할 기능은 다음과 같다.
   1) 센싱 대상 환경 공간 설정

   2) 센서 노드 개수 및 배치 설정

   3) 센서 노드 배터리 잔량 모니터링

   4) 센서 노드 생존 수 모니터링

   5) 네트워크 프로토콜의 쉬운 추가 및 수정 (프로그래밍)

   6) 노드 간 거리 계산 및 라우팅 확률 모니터링

   7) 전체 시뮬레이션 자동화

   8) 다양한 관점에서의 실험 결과 출력



- 다음으로는, 센서메이커의 설계 및 구현 내용을 살펴보겠다.
   - 센서메이커의 설계
     앞의 기능들을 모두 지원하며, GUI 를 갖도록 설계
     동작 과정을 볼 수 있도록 중간 과정을 화면에 출력 가능하게 함
     출력 결과를 텍스트, 2차원 및 3차원 그래프로 출력 가능하게 함

   - 센서메이커의 구현
     기본 C 입출력 라이브러리와 Win32 API를 사용하여 구현
     (GUI 지원)

     GUI 를 제거하면, 일반 유닉스 시스템에서도 수행시킬 수 있음
     (MS 윈도우 플랫폼에 의존적이지 않음)

     사용자가 추가하고 싶은 네트워크 프로토콜은 기본적으로 제공되는 함수 위에 추가로 구현 가능
     (C 프로그래밍)

사용자 삽입 이미지



- 센서메이커의 초기 실행 화면

사용자 삽입 이미지


- 초기화 버튼을 눌렀을 때의 실행 화면

사용자 삽입 이미지


- 하나의 센서 노드를 선택한 화면

사용자 삽입 이미지


- 두개의 센서 노드를 선택한 화면

사용자 삽입 이미지


- LEACH 클러스터링 프로토콜의 시뮬레이션 수행 화면

사용자 삽입 이미지


- 다른 클러스터링 프로토콜에서, 패킷 전송 순서를 나타낸 수행 화면

사용자 삽입 이미지


- 프로그레스 바를 통한 작업 진행 정도 표시

사용자 삽입 이미지



- 센서 메이커를 사용한 논문들
   - 센서 네트워크 라우팅 프로토콜
    “Energy Aware Routing with Dynamic Probability Scaling”,
     Lecture Notes in Artificial Intelligence, Vol. 3642, pp. 662-670, 2005.

    “EAR-RT: Energy Aware Routing with Real-Time Guarantee for Wireless Sensor Networks”,
     Lecture Notes in Computer Science, Vol. 3994, pp. 946-953, 2005.

   - 센서 네트워크 클러스터링 프로토콜
     “Energy Aware Routing Based on Adaptive Clustering Mechanism for Wireless Sensor Networks”,
     Lecture Notes in Computer Science, Vol. 3619, pp. 1115-1124, 2005.

     “Power-Efficient and Adaptive Clustering Hierarchy Protocol for Wireless Sensor Networks”,
     Computer Communications, 2007.

   - 모바일 체크포인팅 프로토콜
     “무선 센서 네트워크를 위한 모바일 체크포인팅”,
     추계 학술 발표 논문집, 정보과학회 추계학술대회, Vol.32, No.2(1), pp. 775-777 2005.

     “Adaptive Mobile Checkpointing Facility for Wireless Sensor Networks”,
     Lecture Notes in Computer Science, Vol. 3981, pp. 701-709, 2006.

   - 센서 노드 배치 및 슬립 스케줄링

   - 그 외
     센서 네트워크 가상 머신 혹은 모바일 에이전트 기법의 에너지 효율성 측정 용도로 사용
     센서 네트워크 및 각 노드의 수명 측정의 용도로 사용
     센서 노드의 소프트웨어 동적 재구성 기법의 실험 용도로 사용


5. 센서메이커의 사용 예
- 생존 노드 수 변화 그래프 예제

사용자 삽입 이미지


- 평균 에너지 잔량 변화 그래프 예제

사용자 삽입 이미지


- 거리에 따라 정렬한 각 노드의 에너지 잔량 그래프 예제

사용자 삽입 이미지


- 에너지 분포 그래프 예제 1

사용자 삽입 이미지


- 에너지 분포 그래프 예제 2

사용자 삽입 이미지


- 노드 개수 변화 시의 에너지 잔량 측정 결과 그래프 예제

사용자 삽입 이미지



6. 결론 및 향후 연구 계획
- 마지막으로, 본 논문의 결론을 맺고, 향후의 연구 계획을 보인다.

- 결론
   무선 센서 네트워크를 위한 시뮬레이터로, ‘센서메이커’의 설계 및 구현, 그리고 테스트 완료
   다양한 관점에서 시뮬레이션 결과 출력 가능
   전체 소스코드 공개
   http://ssrnet.snu.ac.kr/~shyi/smaker-swcc07.zip

- 향후 연구 계획
   센서메이커의 기능 개선 연구 진행
   3차원 센싱 대상 환경에 대한 시뮬레이션 지원
   무선 망의 신호 간섭 현상에 대한 시뮬레이션 지원
   보다 실제적인 결과에 근접할 수 있는 시뮬레이터가 되도록 추가 연구 진행




[참고문헌]
 [1] Anna Hac, "Wireless Sensor Network Designs" John Wiley & Sons, pp. 101-140, 2003.
 [2] Crossbow website, "http://xbow.com"
 [3] 이승우, 구본철, 민홍, 이상호, 김용태, 허준영, 조유근, 홍지만, “센서 네트워크 시뮬레이터의 관련 연구 조사”, 제10회 차세대 통신 소프트웨어 학술대회 (NCS'2006), pp. 460-464 2006.
 [4] Chen, G., J. Branch, M. J. Pflug, L. Zhu and B. Szymanski, "SENSE: A Sensor Network Simulator", Advances in Pervasive Computing and Networking, 2004.
 [5] SNetSim, "http://www.dho.edu.tr/enstitunet/snetsim"
 [6] Jonathan Polley, Dionysys Blazakis, Jonathan McGee, Dan Rusk, John S. Baras, "ATEMU: A Fine-grained Sensor Network Simulator", Sensor and Ad Hoc Communications and Networks, 2004.
 [7] L. Girod, J. Elson, A. Cerpa, T. Stathopoulos, N. Ramanathan, and D. Estrin, "EmStar: a Software Environment for Developing and Deploying Wireless Sensor Networks", In Proceedings of the USENIX Technical Conference, 2004.
 [8] Philip Levis, Nelson Lee, Matt Welsh, and David Culler, "TOSSIM: Accurate and Scalable Simulation of Entire TinyOS Applications", In Proceedings of SenSys'03, First ACM Conference on Embedded Networked Sensor Systems, 2003.
 [9] Ben Titzer, Daniel Lee, and Jens Palsberg, "Avrora: Scalable Sensor Network Simulation with Precise Timing", In Proceedings of IPSN'05, Fourth International Conference on Information Processing in Sensor Networks, Los Angeles, 2005.
[10] Avrora Website-The AVR Simulation and Analysis Framework, "http://compilers.cs.ucla.edu/avrora"
[11] Atmel Corporation, "http://www.atmel.com"
[12] Geunyoung Park, Sangho Yi, Junyoung Heo, WoongChul Choi, Gwangil Jeon, Yookun Cho, and Charlie Shim, "Energy Aware Routing with Dynamic Probability Scaling", Lecture Notes in Artificial Intelligence, Vol. 3642, pp. 662-670, 2005.
[13] Sangho Yi, Geunyoung Park, Junyoung Heo, Jiman Hong, Gwangil Jeon, and Yookun Cho, "Energy Aware Routing Based on Adaptive Clustering Mechanism for Wireless Sensor Networks", Lecture Notes in Computer Science, Vol. 3619, pp. 1115-1124, 2005.
[14] Sangho Yi, Junyoung Heo, Yookun Cho, and Jiman Hong, "Power-Efficient and Adaptive Clustering Hierarchy Protocol for Wireless Sensor Networks", To be published in Elsevier Computer Communications, 2007.
[15] Junyoung Heo, Sangho Yi, Geunyoung Park, Yookun Cho, and Jiman Hong, "EAR-RT: Energy Aware Routing with Real-Time Guarantee for Wireless Sensor Networks", Lecture Notes in Computer Science, Vol. 3994, pp. 946-953, 2005.
[16] 이상호, 허준영, 조유근, 홍지만, “무선 센서 네트워크를 위한 모바일 체크포인팅”, 추계 학술 발표 논문집, 정보과학회 추계학술대회, Vol.32, No.2(1), pp. 775-777 2005.
[17] Sangho Yi, Junyoung Heo, Yookun Cho, and Jiman Hong, "Adaptive Mobile Checkpointing Facility for Wireless Sensor Networks", Lecture Notes in Computer Science, Vol. 3981, pp. 701-709, 2006.


-----------------------------------------------------------------------------------------------------
> 현재, 3차원 센싱 대상 환경 및 센서 노드의 이동성을 고려한 시뮬레이터를 제작 중에 있음.
   이는 추후에 발표, 혹은 공개할 예정임.


/* 멀티라인 주석을 남발하는 copyleft yi_sang */

Trackback 4 Comment 3
  1. 2008.10.28 15:44 address edit & del reply

    비밀댓글입니다

    • ANTIROOT 2008.10.28 21:38 신고 address edit & del

      키 분배 기법은 저도 관심있는 분야이긴 합니다만, 해보진 않았습니다. ^^

      키 분배 기법의 패킷 전송으로 인한 에너지 소모량을 측정할 것이라면, 이 시뮬레이터를 사용할 수 있습니다.

      키 분배 기법의 지연 시간 (딜레이?) 측정 등은 어렵고요.

      본 센서메이커 외에 C언어 수준에서 프로그래밍 가능한 시뮬레이터가 GloMoSim 이라고 있습니다. 한번 확인해보세요. ^^

  2. philiosi 2009.07.27 16:21 신고 address edit & del reply

    안녕하세요.
    센서 시뮬레이터를 찾는 중 검색을 통해 알게되었습니다.
    이용해 보고 싶은데 소스 다운로드가 안되네요... 혹시 다른 곳에서 받을 수 있는 곳이 있을까요??