본문 바로가기

ns3

(5)
[ns3] extern 변수 선언의 편리성과 그에 따른 고민 실험하다보면 정말 매우 많은 파일의 함수 참조가 이뤄진다. ns3 기본 제공 모듈만 사용한 간단한 실험을 진행할 때에는 새로운 application이나 기타 기능을 생성할 필요가 없이 main내에서 적당히 파라미터를 바꾸면 되는데, 이번 실험은 규모가 크다보니 조정해야 할 파라미터가 매우 많았다. 또한 다양한 파일에서 동시적으로 접근해야하는 공용 데이터가 많았다. - 기지국의 커버리지, node 별 stop and restart time을 랜덤하게 변경, 서버의 커버리지, handover 관련 파라미터 등등등 처음에는 각 파일에서 파라미터들을 변수로 사용하지 않고 (레전드 바보짓) 대충 임의의 값을 가지고 작성했지만 이러다보니 나중에 진짜 조작변인들을 변경해가며 실험해야할 때, 커버리지가 옵션에 따라 자..
[ns3] SIGSEGV 에러 해결 (segmentation fault) 실험하면서 진짜 자주보는 에러... 아직도 초보인가봐 ㅎ 원인은 당연히 메모리 접근을 잘못한건데, 문제는 큰 실험을 돌리다보니 어디서 이게 뜬건지조차 찾는게 오래 걸린다. 내 경험적 통계상 많은 원인은 map이나 vector 사용할 때이다. 나중에 다시 이 에러를 만났을때를 위해 정리해둔다..^^ case 1) map이나 vector에서 []사용해서 인덱스로 값 참조하는 경우보단 .at을 사용하는게 안전한데, 문제는 at의 경우 반드시 해당 자리에 값이 존재하는 경우에만 사용가능하다. 따라서 사용 전 자동 생성이나 초기화 과정이 반드시 필요하다. case 2) c++보다 ns3에서 발생하는 조금 더 구체적인 상황이다. 나는 시뮬레이션에서 node를 구분하는 기준으로 node Id를 사용한다. (node별..
[Ubuntu 20.04] badvalue (integer parameter out of range for operation) 에러 해결 netgenerate으로 네트워크를 생성하고 netedit에서 내가 만든 파일을 선택하면 터미널에서 아래와 같은 에러와 함께 core dumped error로 꺼지는 현상이었다. badvalue (integer parameter out of range for operation) 처음에는 netedit이나 sumo의 문제라 생각했지만 찾아보니 nvidia graphic driver 문제인 것 같았다. 아래처럼 기존 설치된 권장 그래픽 드라이버를 지우고, 다시 설치한 다음 reboot하니 잘 동작되었다. 첫번째 문장으로 내 pc에 적합한 driver를 찾은 다음 (recommended 등의 표시되어있음) 해당 드라이버를 지운 뒤, 다시 설치하고 reboot하기 $ sudo ubuntu-drivers devi..
SUMO에서 netgenerate를 이용해 자동 네트워크 생성하기 ns3로 실험을 하다보면 grid 네트워크와 이동하는 노드 trace file을 자주 생성하고 사용하는데, netedit에서 원하는 모양을 만들수는 있지만 하나씩 만들기는 너무 오래걸린다. netgenerate 기능을 사용하면 터미널에 몇 줄 입력만하면 자동으로 네트워크가 생성되어서 매우 매우 편리하다! 나는 grid net만 만들어봤지만, 스파이더 등 다양한 토폴로지가 가능하다. 아래 방식을 따라가면 4x4 (간격은 300m)의 grid map이 생성된다! 이외에도 netgenerate --help를 터미널에 입력하면 매우 다양한 옵션으로 커스터마이즈 가능하다. 1. Grid network 자동 생성하기 netgenerate --grid --grid.number 5 --grid.length 300 --..
네트워크 시뮬레이터 ns3 :: 설치부터 구현까지 1. ns3 설치와 초반 스터디졸업 프로젝트에서 설계한 V2P 네트워크 구조의 성능을 평가하기 위해 네트워크 시뮬레이션을 수행해야 했다.많은 네트워크 시뮬레이션 중 오픈소스인 ns3(network simulator)을 사용하기로 결정했다. ns3를 설치하기 위해 가상머신으로 Oracle VirtualBox를 사용했다. 내가 사용한 버전은 ns-3.31로 ns3를 최초 설치한 날(대략 2020년 8월?) 기준 가장 최신 버전이었다.지금 확인하니 ns-3.32가 2020년 10월 7일에 새로 릴리즈되었다!VirtualBox를 설치하는 과정은 이미 많은 블로거가 작성해두어서 어렵지 않았고, ns3를 설치하는 과정은 블로그보다 유튜브에 검색하여 보이는 영상을 따라하니 금방 설치가 됐다. + 추가로 공동 프로젝트..