OPNET을 사용하다보면 버전간의 호환성 문제로 고생하는 경우가 종종 발생한다. 모델을 수정/개발해서 사용하는 경우라면, 기존 버전에서는 문제가 없는 모델이 다른 버전에서는 컴파일 또는 실행 에러가 발생하여 시뮬레이션이 중단되는 문제가 있을 수 있다. OPNET 표준 모델을 사용하는 경우에도, 동일한 시나리오를 구성하였음에도 불구하고 시뮬레이션 결과가 크게 다른 현상이 발생할 수도 있다.
 이러한 문제의 원인은 대부분 OPNET의 버그때문이 아니라, OPNET에서 제공하는 프로토콜 모델이 계속 업데이트 되고 있기 때문이다(물론, 버그때문인 경우도 있기는 하다). 즉, OPNET 버전 업에 따라 프로토콜 기능수정, 사용하는 구조체/패킷 형식 변경, 프로세스/노드 모델 파라미터 변경등이 계속 이루어지고 있으며(이런 변경은 아무런 공지사항없이 이루어지는 경우도 많다), 변경사항을 정확히 확인하지 않고 다른 버전을 적용하면 전혀 예상치 못했던 문제가 발생할 수 있다. 특히, 네트워크 시뮬레이션의 특성("NLS와 SLS" 참조)상 여러 계층의 프로토콜이 함께 사용되기때문에, 관심 대상이 아닌 다른 프로토콜의 변화도 시뮬레이션 수행 과정에서 발생하는 오류나 결과에 큰 영향을 미칠 수 있다.
다음은 16.1 버전에서 잘 동작하던 시나리오를 15.0 버전에서 그대로 적용하였을 때 시뮬레이션 결과가 크게 달라져서 사용자를 당황시킨 한가지 예이다(모델을 수정/개발하는 경우와는 달리, 표준 모델을 사용하는 경우에는 상위 버전에서 사용하던 시나리오를 하위 버전에서 적용해보는 상황이 가끔씩 있다). 16.1 버전에서는 트래픽이 꾸준히 잘 전달되는 반면, 15.0 버전에서는 트래픽이 전달되지 않는 구간이 더 많은 것을 볼 수 있다.

 


이러한 문제가 발생하는 원인은 WLAN 프로토콜 Data rate의 Default 설정값이 15.0 버전에서는 802.11b 11Mbps인 반면, 16.1 버전에서는 802.11g 24Mbps로 변경되었기 때문이었다. 필자는 16.1 버전에서 WLAN 모델에 상당한 변화(새로운 기능의 추가, "OPNET Modeler 16.1 PL1 발표" 참조)가 있다는 것을 알고 있는 상황이었음에도 불구하고, WLAN이 이 시뮬레이션에서의 주된 관찰 대상이 아니었기 때문에 15.0 버전에서도 별다른 차이가 없을 것이라고 가볍게 생각하였다가 고생을 했던 것이다(이런 속도 변경은 트래픽 손실과는 별 관련이 없어 보이지만, 다른 프로토콜의 동작과 결부되면 이 예처럼 예상치 못한 결과를 초래하기도 한다).

Posted by 신상헌
,