Network Simulation 2

분류없음 | 1970/01/01 09:00 | adioshun

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 ) }

  • 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에 있는 코드들을 수정합니다.
      • 다른 파일들도 수정 가능하겠지만..그건 상황에 따라서 ^^

p.s  가끔 어떻게 ns2공부 하냐고 물어 보시는 분도 있는데..사실 저도 아는거 하나도 없고..똑같이 공부 하는 입장이라 뭐라고 말은 못드리고...일단은 일단은 tcl파일과 awk파일 모두 구해서 보라고 합니다. 그러면 여러 시나리오들도 짤수 있고, 결과값도 도출할수 있는거 같더군요..







1970/01/01 09:00 1970/01/01 09:00
Trackback address :: http://4ellene.net/tt/trackback/1257

Comments List

Write a comment.

[로그인][오픈아이디란?]