Network Simulation 2
- 요청하는 분들이 있으셔서 제가 가지고 있는 ns2과련 문서들을 홈페이지에 올려 놓았습니다.
- http://imtl.skku.ac.kr/~hjlim99/ns2/
-
급하신 분은 아래 빨간 문서들만 먼저 읽어 보길 추천 합니다.
- 나름대로 문서를 분류하였지만, 주관적으로 분류 하여서 엉뚱한 폴더에 있는 파일들도 많이 있습니다.
- 중복되는 자료들도 있습니다. (특히, ns2 매뉴얼)
-
저작권(??)에 위반되는 내용도 있을수 있습니다. 인터넷 자료를 허락없이 받은 자료도 많아서요 그런 파일들은 연락 주세요. 삭제 할께요.
- 블로그에 있는 내용들은 그냥 링크를 달아 놓겠습니다. http://www.4ellene.net/tt/category/71
20090207 임헌정
hjlim99@imtl.skku.ac.kr
adioshun@4ellene.net
폴더 내용 설명
[ 파일 목차 : http://imtl.skku.ac.kr/~hjlim99/ns2/ ]
- [0_설치] : ns2 설치 방법에 대한 문서.(일반설치, 시그윈, Mobiwan) /ns_2설치.pdf
- Mobiwan설치
-
[1_메뉴얼] : 기본 내용 및 전체 사용법에 대한 문서
-
[추천] 메뉴얼_소스수정 : 동영상과 예제 파일로 전반적 내용 설명
-
내부동작 : ns2의 내부 동작을 설명한 문서
- [문서_추천] 동국대_CNEL_소스분석
- ns2-200407
-
추천_창원대 문서_5회: 예제 코드와 함께 설명한 문서
-
quick-tutorial : 영문, ns2 for the impatient, 소스코드와 함께 설명
-
[3_tcl예제] : tcl코드 참고 파일들
- 예제_한글
-
add-on : tcl작성시 활용할 Communication pattern / Movement pattern 설명
- tcl 파일들
-
[ns2_tcl] : /ns-allinone-2.31/ns-2.31/tcl/test에 들어 있는 파일
-
[4_결과_awk_구하기] : awk파일들
-
[트레이스포맷] : awk에 활용할 트레이스 포맷에 대한 설명
-
ns2measure : GUI로 쉽게 결과값을 알수 있게 하는 툴
-
trace2stats_v05b : 순간 지터값, 순간 Throughput을 구 할수 있는 awk
-
[5_NAM]
-
ext-nam : 기본 nam을 확장한 버젼
-
[새로운 라우팅 프로토콜 구현] : ns2를 수정하기 원할시 참고할 문서
- 설명_구현
- Ping프로그램 짜보기
-
[프로그램_확장] : ns2의 기능을 확장해주는 패치등(현재 내용없음)
-
[etc] : 분류하지 못한 파일 및 ns2관련 논문들
- [Tcl] : tcl 메뉴얼/ tcl_tk메뉴얼_한글.doc
- 기타 성능평가 툴
[간단한 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줄)를 센후 s/r로 계산하면(100/50)하면 답이 50이 나오죠. 다시 말하면 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파일을 재 활용합니다.
- http://www.4ellene.net/tt/1085
- http://www.4ellene.net/tt/1187
- http://www.4ellene.net/tt/1078
- http://www.4ellene.net/tt/1076
- http://www.4ellene.net/tt/1077
- http://www.4ellene.net/tt/1074
- http://www.4ellene.net/tt/1073
- http://www.4ellene.net/tt/1065
- 실행은 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에 있는 코드들을 수정합니다.
- 다른 파일들도 수정 가능하겠지만..그건 상황에 따라서 ^^

Comments List