본문 바로가기
컴퓨터 네트워크 프로토콜/NS-3(Network Simulator 3)

컴퓨터 네트워크 연구자가 시뮬레이터로 NS-3를 써야하는 이유

by 연구자 공학코드 2022. 2. 24.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

필자는 NS-3를 왜 썼는가?

연구실에서 생활할 때 신입생으로부터 많이 받았던 질문 중 하나로 'NS-3를 왜 추천하시는거에요?'가 있었다. 그 당시에 내가 생각하던 NS-3를 써야하는 이유로 적당히 답을 했었던 기억이 난다. 나또한 석사과정 신입생일 때 '컴퓨터 네트워크 시뮬레이터로 NS-2와 NS-3 중에 뭘 쓰는게 좋을까요?'라고 선배에게 물어봤었다.

NS-3

내가 석사과정 신입생일 때 대부분의 선배들은 NS-2 기반으로 연구를 했었고 몇명의 입학년도가 가까운 선배들만 NS-3를 쓰고 있었다. 선배들로부터 받은 각종 연구 자료들은 NS-2와 NS-3가 혼재되어 있었는데 나는 이 중에 어떤 것에 집중할 지를 고민을 했었다. 고민한 결과 나는 다음과 같은 이유로 NS-3를 주로 썼다.

  • NS-3는 2011년부터 현재까지 활발히 발전하고 있는 시뮬레이터이다.
  • NS-3는 오픈소스이며 사용하는데 추가적인 비용이 발생하지 않는다.
  • 상당 수의 네트워크 프로토콜 관련 논문이 NS-3 기반으로 시뮬레이션을 한다. 이는 신뢰할 수 있는 시뮬레이터로 인정받고 있다는 뜻이다. 비교 관계에 있는 프로토콜을 시뮬레이션 해야하는 입장에서 최근의 논문들이 NS-3로 시뮬레이션을 하기 때문에 해당 논문 저자를 잘 설득하면 해당 프로토콜의 NS-3 소스를 지원 받을 수도 있다(잘 안 해주지만...).
  • 계층적으로 코딩이 가능하기 때문에 현재의 컴퓨터 네트워크 프로토콜의 레이어 아키텍쳐와 잘 맞다.
  • 계층적으로 코딩이 가능하기 때문에 시뮬레이션에 필요한 부분만 확인하고 코딩이 가능하다. 이러한 개발로 인해 소스코드가 덜 복잡하여 읽고 이해하는 것을 쉽게 만든다.
  • 구현되어 있는 기능이 많고 개발 생태계가 구축되어 있어서 지원받기 용이하다. 잘 찾아보면 NS-3 공식 Github에 없는 기능이라도 개인 Github에 있는 경우를 쉽게 발견할 수 있다.

네트워크 시뮬레이터 대안이 있는가?

NS-2와 NS-3 외에도 컴퓨터 네트워크 시뮬레이터로 GNS3, OMNET++, OPNET, NETSIM, JSIM 같은 것이 있는데 내가 연구하는 분야에서는 GNS3나 OPNET, NETSIM, JSIM 같은 것들을 실험용으로 쓴 논문은 찾아보지 못 했다. 어쩌다가 간간이 OMNET++가 나오기는 한다. 시뮬레이션 결과의 공신력을 얻기 위해서는 가장 많이 쓰는 NS-3 기반 시뮬레이션을 쓰는 것이 유리하다.

728x90
반응형

댓글