반응형

QualNet 5.0 이상 버전을 컴파일하려면 [QUALNET_HOME 디렉토리]/main/make 명령을 입력하면 된다.

그런데 64bit Ubuntu desktop에서 별다른 설정을 하지 않고 Qualnet을 컴파일하려고 하면, make의 거의 마지막 과정에서 아래와 같은 에러가 발생한다.

 ld: cannnot find -lexpat


이 때는 아래와 같이 libexpat 패키지를 설치하면 해결된다.

$ sudo apt-get install libexpat1-dev


끝.

반응형
블로그 이미지

Bryan_

,
반응형
ns 시뮬레이터 버전: 2.33


ns-2에서 802.11을 사용하는 노드의 transmission range는 default가 아마 250m일 것이다.
라디오 채널을 바꾸면서 간섭의 영향을 받는 경우와 그렇지 않은 경우를 비교할 일이 생겨서, multi-hop path에서 단 하나의 중간 노드만 간섭의 영향을 받도록 아래 그림처럼 디자인을 했었다.

(시나리오 1)
S --- A === B === C --- D
                 ||
                 X
                 Y

위 그림에서 B와 X는 250m 미만이면서 같은 라디오 채널을 써서 서로간에 간섭이 생기도록 되어 있고, A와 C는 X로부터 250m 밖에 있도록 했다.
여기서 S에서 D까지 데이터를 전송하고, X가 Y에게 CBR 트래픽을 발생시키면서 B의 전달을 방해하는 시나리오이다.


이제 간섭의 영향을 받지 않는 환경을 만들었다.
(시나리오 2)
S === A --- B --- C === D
                 ||
                 X
                 Y

여기서 B는 X가 발생시키는 트래픽과 다른 라디오 채널을 쓰기 때문에, X로 인한 간섭 없이 데이터를 전달해 주어야 정상이다.
그런데, 실제로는 위의 명백하게 간섭이 발생하는 경우보다 도리어 결과 (end-to-end throughput)가 더 나쁘게 나왔다. -_-
뭥미...


알고 보니, ns-2에서 RTS/CTS를 주고받는 범위가 데이터의 transmission range와 다르게 정의되어 있었다.
일반적으로 RTS/CTS 등의 메세지로 간섭을 일으키는 범위는 데이터 전송범위의 2배~2.5배 정도 된다고 한다.
그래서 ns-2에서도 그 범위가 500m가 넘게 (정확히 얼마였는지 기억안남 ㅠ) 정의되어 있다는...

결국 A와 C도 알고보니 X의 간섭 범위 안에 들어 있었던 것이다. ㅠ_ㅠ
거리를 재조정해서 A와 X가 RTS/CTS로 인한 영향을 받지 않을 만큼 충분히 거리를 띄워놓았더니 그제서야 기대하던 결과가 나왔다.
나중에 다른 무선 간섭 실험을 할 때도 참고해야겠다..
반응형
블로그 이미지

Bryan_

,
반응형
OS: Ubuntu 8.04 desktop
ns 시뮬레이터 버전: 2.33

ns-2를 설치할 때에 기본적으로 필요한 라이브러리들을 점검해 보아야 한다.
libxt-dev, libxt6
libsm-dev, libsm6
libice-dev, libice6
libx11-dev, libxmu-dev


이 중에서 맨 처음 libxt-dev를 apt-get install로 설치하면 위 목록에서 거의 대부분이 같이 설치되는 것 같다.
ns-2 자체는 잘 설치가 되어서 문제없는 줄 알았지만 nam은 설치되지 않았다.
[NS-2디렉토리]/nam-1.13으로 가서 make를 했더니 아래와 같은 에러 발생:
xwd.c:87:29: error: X11/Xmu/WinUtil.h: No such file or directory
make: *** [xwd.o] Error 1


알고보니 libxmu-dev는 설치되지 않은 것을 확인했다.
libxmu-dev를 따로 설치해 주고, [NS-2디렉토리]/nam-1.13에서 make해주면 해결된다.

반응형
블로그 이미지

Bryan_

,
반응형
OS: Ubuntu 8.04.1 desktop
ns2 시뮬레이터 버전: 2.33

참고서적 [1]을 보고, ns-2.33에서 멀티 인터페이스/멀티 채널 부분을 보고 수정한 뒤,

$ make clean
$ make
를 실행했더니, 아래와 같은 에러가 뜨면서 중단되었다.

`.gnu.linkonce.t._ZN11taskPending10taskStatusEh' referenced in section `.rodata' of wpan/p802_15_4mac.o: defined in discarded section `.gnu.linkonce.t._ZN11taskPending10taskStatusEh' of wpan/p802_15_4mac.o

구글을 뒤져 봐도 정확한 원인을 모르겠다. 다만 해결방법은 추측성으로 gcc와 bash의 버전을 바꾸면서 컴파일에 성공했다는 정도로 적혀 있었다.
OS의 다른 환경은 그대로 두고 gcc 버전만 바꾸면서 테스트한 바로는, gcc-4.2, gcc-3.4.6, gcc-3.3.6 까지는 똑같은 에러가 발생했다. 아이러니하게도 주변 선배들 얘기로는 내가 테스트 안해본 gcc-3.3 이전 버전에서는 아마도 될 거라는... -_-

어쨌든 gcc의 버전에 상관없이 ns-2의 Makefile이 gcc를 디버그 모드로 동작하도록 했더니 문제없이 컴파일에 성공하였다.

디버그 모드로 make하는 방법은: ns-2가 설치된 디렉토리로 이동하여,
$ ./configure --enable-debug
$ make clean
$ make




* 참고서적
[1] 장영민 외, "ns-2 네트워크 시뮬레이터의 활용", 홍릉과학출판사
반응형
블로그 이미지

Bryan_

,
반응형

2년차가 되어 이제 본격적으로 연구를 시작하게 되었다.
1월 초부터 뭔가 이렇게 해보겠다, 저렇게 해보겠다 혼자 나름 생각하지만 잘 되지 않고 있다. ㅠ_ㅠ
지금까지 두 차례의 랩 세미나와 역시 두 차례의 랩 미팅에서 발표를 하였다. 그 세미나와 미팅에서, 여전히 내가 해보겠다는 연구는 대단히 광범위하고, 무엇이 문제인지 전혀 보이지 않는다는 것을 알게 되었다.

일단 내가 연구할 큰 줄기는 multi-radio 환경에서 네트워크를 잘 다뤄보자는 것이다.
큰 줄기에서 나름 구체화시켜 보려고 생각해본 것이, 여러 종류의 네트워크 인터페이스(Wi-Fi, Bluetooth, Zigbee, cellular network 등)에 의해 형성되는 여러 네트워크들 간에 interaction을 가능하도록 해 보고, 그 중 한 방법으로 여러 네트워크 인터페이스를 동시에 갖고 있는 mobile device들이 여러 네트워크들 속에서 뭔가 특별한 역할을 함으로써 그 interaction을 효과적으로 해줄 수 있을 거라는 등의 것들이었다.

위 생각들을 박사과정 선배님들한테 말하자마자 들은 결정적인 질문은 "여러 네트워크에서 네트워크가 의미하는 것이 무엇인가?"와 "여러 네트워크 간에 interaction해서 얻는 이득이 무엇인가? 적절한 시나리오를 얘기해 봐라"였다. 첫번째 질문에 대해서는 application의 필요에 의해 형성되는 일종의 group (하나의 Mobile Social Software)이라고 하였고, 두번째 질문에 대해서는 딱히 구체적인 예를 들 수가 없었다.
더군다나 내가 그자리에서 바로 생각나는 대로 말한 첫번째 질문의 대답은 두번째 질문을 더욱 어렵게 하는 대답이었다.

우리 연구실 선배님들이 일관되게 말하시는 '석사과정의 연구'는 다음과 같다.
1. 본인이 관심있는 주제를 정하고,
2. 그 주제에서 역시 관심있고 해결하고 싶은 시나리오를 정하고,
3. 그 시나리오와 비슷하거나 같은 환경에서 같은 문제를 해결하려고 한 논문들을 찾고,
4. 그중에서 key paper를 정하여 그 논문의 weak point를 찾고,
5. 자신의 scheme을 제시하여 evaluation을 통해 더 나음을 증명하는 것.

1번은 위에서 말했듯이 정해졌고, 2번은 여전히 구체화시키지 못하고 있음을 어제 랩세미나 발표를 하면서 알게 되었다.
3일 후인 다음주 월요일 랩미팅 시간에 교수님께서 proposal 형식으로 key paper를 잡고 문제 정의를 발표하라고 하셨지만, 결과적으로 지금 상황에서는 좀더 구체적인 시나리오가 없으므로 key paper를 찾을 상황이 전혀 아닌 것이다.

결국 별로 한 일이 없다는 얘기를 들을 가능성 90%이지만, 그렇다고 해서 내가 해결하고 싶어하는 것이 무엇인지도 모르면서 아무 논문이나 key paper로 잡을 수는 없는 노릇이다. 내가 정말로 해결해 보고 싶은 '구체적인' 시나리오가 무엇인지 계속 고민해 보자...



반응형
블로그 이미지

Bryan_

,