본 글은 2017년 9월 6일 18시 18분에 썼던 글이며 블로그 자료 이전으로 날짜와 일부 내용이 갱신되었습니다.
OMNeT++ 소개
OMNeT++는 네트워크 시뮬레이터 중 하나로 확장성을 고려한 모듈식 설계가 큰 특징이다. 이 모듈식 개발을 위해 C++로 각 모듈의 동작을 구현하고 NED로 이 모듈을 묶는다. OMNeT++은 Eclipse 기반의 IDE를 제공하여 개발하기 용이한 장점이 있다. 사실 많이 사용하는 네트워크 시뮬레이터는 다 이 구조라서 구조자체는 딱히 큰 장점은 없으나 UI로 인한 편리함에 차이가 난다.
OMNeT++ 라이센스
개인, 교육 및 연구를 목적으로한 학술기관, 비영리 연구기관 등에 비영리적 목적으로 무료로 제공한다. 하지만 아래의 예와 같이 영리 활동을 하는 경우 라이센스를 구매해야한다.
- 영리를 목적으로 제품을 개발하거나 향상시키기 위해 OMNeT++을 활용한 연구가 수행되는 경우
- 영리를 목적으로 OMNeT++를 사용하여 정부 출연 프로젝트와 같은 연구 프로젝트에 참여하는 경우
- OMNeT++이 상용 서비스에 사용되는 경우
라이센스는 OMNEST에서 구매가능하며 라이센스를 영구히 구매하는 것과 해마다 갱신하는 방법이 있다. 가격은 공개되어 있지 않으며 메일로 문의해야 알 수 있다. 필자가 연락해본 결과 영구 라이선스를 1개만 구매하는 경우 14,000유로(약1,896만원)이었고 10개이상 구매하면 1개에 7,000유로(약948만원)에 구매가 가능했다. 기술 지원비용은 1년에 1550유로(약200만원)이었다. 굉장한 가격이다. 이 돈 주고 못 쓸 것 같다.
라이센스를 구매해야 하는 구체적인 경우는 OMNEST에서 더 자세히 확인할 수 있다. 쉽게 생각하면 OMNet++를 사용하는 용도가 돈과 조금이라도 연관 있는 경우 라이센스를 구매해야 한다. OMNeT++이 아무래도 상용제품이다 보니 다양한 프로토콜이 구비되어 있고 안정성도 다른 무료 시뮬레이터에 비해 더 좋으며 업데이트도 빠르다. 이 때문에 구현과 실험의 용이성이 큰 장점이라고 볼 수 있는데 강의할 때나 학생이 학위논문을 쓰는 경우 외에는 유료인 점이 큰 걸림돌이다. 학위논문도 사실 연구 주제가 연구 과제와 관련이 있는 경우가 대부분이라서 학위 논문의 내용 중 일부가 저널이나 컨퍼런스에 게재된다면 유료로 결제해야 하는 상황이 발생할 것 같다.
OMNeT++을 이용한 시뮬레이션 절차
OMNeT++는 각 기능이 각각 모듈로 구성되어 있으며 이 모듈을 조합하여 네트워크 시뮬레이션을 수행할 수 있다. 아래와 같은 순서로 개발한다.
- NED라는 언어로 시뮬레이션 하고자 하는 모델의 구조를 정의한다. 여기서 말하는 모델은 실제 환경과 유사하게 꾸며진 Bluetooth과 Wi-Fi, Ethernet 같은 프로토콜이다.
- 시뮬레이션 커널 및 클래스 라이브러리를 활용하여 모델의 구성요소를 C++로 프로그래밍한다.
- 구현한 모델의 설정을 위해 omnetpp.ini을 수정한다.
- 시뮬레이션 프로그램을 빌드한다.
- 시뮬레이션 실행한다. 이 때 시뮬레이션 상황을 CUI 혹은 GUI 형식의 인터페이스로 볼 수 있다.
- 시뮬레이션 결과를 확인한다.
댓글