[간단한 ns2 시뮬레이션 법]
Tcl파일 작성
- tcl 파일은 시나리오 파일입니다. 단순히 노드가 몇개이고, 어디에 위치하고, 어떤프로토콜을 사용하여서 누구에게 데이터를 보낸다...등의 내용을 정의 합니다.
-
이때 자주 이동하고, 패킷 전송이 변경이 많을경우 [add-on]에 있는 Communication pattern / Movement pattern을 이용하여서 자동적으로 관련 내용을 컴퓨터가 입력하게 할수있습니다.
- http://www.4ellene.net/tt/1066
- 실행은 ns2 test.tcl 형식입니다.
- ns2 test.tcl을 수행하면 일반적으로 test.tr과 test.nam파일이 생성됩니다.
-
tcl파일에서 파일명과 생성 유무를 결정 지정합니다.
트레이스 파일(.tr) 분석하기
-
tr확장자를 가진 tr파일은 시간별로 패킷의 정보를 알려 줍니다.
+ 7.7684 2 1 ack 40 ------- 0 2.1 1.1 2 7 37.80 -122.40 40.90 -73.90
- 7.7684 2 1 ack 40 ------- 0 2.1 1.1 2 7 37.80 -122.40 40.90 -73.90
r 8.0176 2 1 ack 40 ------- 0 2.1 1.1 1 6 37.80 -122.40 40.90 -73.90
-
이 내용만 봐서는 뭐가 어떻게 된것인지 알수 없기에 awk나 다른 툴을 이용하여 패킷 전송률등을 구하게 됩니다.
-
tr포맷의 종류는 세가지(아마도) 버젼이 있습니다.
- tcl파일에서 어떤 tr포맷을 사용할지 지정합니다.
-
ex) $ns use-newtrace
-
다른 사람이 만든 awk가 버젼_1용으로 만들어 졌다면, 이 버젼을 맞추어야 합니다.
- http://www.4ellene.net/tt/1082?category=71
- http://www.4ellene.net/tt/1075
- http://imtl.skku.ac.kr/~hjlim99/ns2/%5b4_%b0%e1%b0%fa_awk_%b1%b8%c7%cf%b1%e2%5d/%5b%c6%ae%b7%b9%c0%cc%bd%ba%c6%f7%b8%cb%5d/NS-2_Trace_Formats.doc
- 실행은 cat test.tr
- 저는 tr파일의 용량이 크므로 윈도우로 다운 받아서 에디트뷰어 등으로 봅니다.
-
사실 tr파일을 볼일은 거의 없죠. 봐도 알수가 없으니 -_-;
nam이용하여 tr파일 보기
-
위 tr파일을 가지고 어떻게 패킷이 전송되는지 에니메이션으로 보여 줍니다. 아래 그림 같이요.
- 시뮬레이션 결과 분석할때는 거의 필요 없습니다.
-
일부 이 nam파일을 가지고 결과 분석을 하더군요
- http://www.4ellene.net/tt/1086
-
그냥 패킷 잘 가고 있나, 노드 위치는 설정은 잘되었나 정도입니다.
- 대부분 논문에 캡쳐 사진으로 활용을..
- 실행은 nam test.nam
결과 구하기(awk)
-
tr파일을 그냥 보기에는 어려움으로 필요한 정보만을 끄집어 내기 위하여 awk를 사용합니다.
- awk는 그냥 긴 tr파일 중에서 패턴을 정의 하여 나에게 필요한 내용만 끄집어 내는 것입니다.
- 간단한 예로..tr파일의 앞부분의 s, r은 패킷을 send하고 receive를 의미 하므로 tr파일에서 s로 된줄의 숫자(100줄)를 세고, r로 된 부분의 숫자(50줄)를 센후 r/s로 계산하면(50/100)하면 답이 0.5 이 나오죠. 다시 말하면 end-to-end 패킷 전송률이 50%인것입니다.
BEGIN {counter1 = 0; counter2 = 0;}
$1~/s/ && /_0_/ && /AGT/ { counter1 ++ }
$1~/r/ && /_29_/ && /AGT/ { counter2 ++ }
END { print ( counter2/counter1 ) }
$1~/s/ && /_0_/ && /AGT/ { counter1 ++ }
$1~/r/ && /_29_/ && /AGT/ { counter2 ++ }
END { print ( counter2/counter1 ) }
- tr파일을 이해하고, 사용자가 직접 awk를 짜거나, 이미 공개한 awk파일을 재 활용합니다.
- throughput 계산 awk 스크립트
- http://www.4ellene.net/tt/1085
- Trace2stats-throughput, average delay ,average jitter
- http://www.4ellene.net/tt/1065
- Routing Performance-전송률, 홉 카운트, 라우팅 오버헤드
- http://www.4ellene.net/tt/1078
- delay 계산
- http://www.4ellene.net/tt/1076
- Packet delivery fraction, End-End packet delivery time, routing load
- http://www.4ellene.net/tt/1077
- awk script : 7가지
- http://www.4ellene.net/tt/1074
- average, thestandard deviation, overhead
- http://www.4ellene.net/tt/1073
- 실행은 awk -f test.awk test.tr > test.txt
-
awk를이용하지 않고 GUI기반으로 결과값을 알려주는 툴도 있습니다.
- http://www.4ellene.net/tt/1180
- http://www.4ellene.net/tt/1153
-
awk를 이용하여 나온 값을 그래프로 표현 하고 싶다면 xgraph를 이용할수도 있습니다.
-
http://www.4ellene.net/tt/1189
[새로운 라우팅 프로토콜 구현]
- 위의 방법으로는 구현되어 있는 정석 TCP나 AODV프로토콜을 이용하여서 테스트만 가능하죠.
-
대부분의 논문작성시...
-
기존의AODV의 어느 부분을 수정하여서 성능을 향상 시켰다나
- 새로운 자신만의 라우팅 프로토콜을 구현 하여 성능 평가 하거나.
-
두개의 프로토콜을 비교 합니다.
-
ex) PMIPv6와 MIPv6의 성능 비교
- 이 경우 아직(제가 알기로) PMIPv6가 ns2에 구현되어 있지 않으므로 직접 구현해야 합니다.
- 새로운 라우팅 프로토콜 설계하려면..
- [1_메뉴얼] \ 내부동작...의 부분을 이해 하고.
-
[새로운 라우팅 프로토콜 구현]....부분을 보시면 될꺼 같습니다.
- 구현된 프로토콜(ex:AODV)을 제안 방식에 맞추어 수정 하고 싶다면...
-
ns2의 ns-allinone-2.31/ns-2.31/aodv에 있는 코드들을 수정합니다.
- 다른 파일들도 수정 가능하겠지만..그건 상황에 따라서 ^^
p.s 가끔 어떻게 ns2공부 하냐고 물어 보시는 분도 있는데..사실 저도 아는거 하나도 없고..똑같이 공부 하는 입장이라 뭐라고 말은 못드리고...일단은 일단은 tcl파일과 awk파일 모두 구해서 보라고 합니다. 그러면 여러 시나리오들도 짤수 있고, 결과값도 도출할수 있는거 같더군요..
p.s 그냥 짧은 지식으로 아는대로 주저리 적어 보았습니다. 내용가지고 너무 태클 말아 주세요^^
작성 : 20090216 by 임헌정
http://www.4ellene.net
관련 파일 : http://imtl.skku.ac.kr/~hjlim99/ns2/

Comments List