본문 바로가기
3. 개발 관련/정리 :: issue 와 resovle

NS2 설치(ns-allinone-2.33 in FC6) 및 간단한 예제

by kyuho.choi 2009. 7. 9.
728x90
반응형

NS-2(Network Simulator-2)

NS-2 최신 버전 설치하기

1. download ns-allinone-2.33
2. mkdir /NS2
3. mv ns-allinone-2.33 /NS2/
4. cd /NS2 
5. tar -xvzf ns-allinone-2.33
6. cd ns-allinone-2.33
7. ./install

환경변수 설정 및 적용

vim ~/.bash_profile 추가 내용

NS=/NS2/ns-allinone-2.33
export PATH=$PATH:$NS/bin:$NS/tcl8.4.18/unix:$NS/tk8.4.18/unix
export LD_LIBRARY_PATH=$NS/otcl-1.13:$NS/lib
export TCL_LIBRARY_PATH=$NS/tcl8.4.18/library

~/.bash_profile 적용

source ~/.bash_profile


시뮬레이터 테스트


./validate  (유효성 테스트 명령이지만 실행하지 않음 - 오랜 시간 검사)

cd /NS2/ns-allinone-2.33/ns-2.33/tcl/ex/
ns nam-example.tcl

실행확인

NS2 튜토리얼
http://www.isi.edu/nsnam/ns/tutorial/index.html


샘플 코드 작성 및 테스트


vim example.tcl

# 송신 노드 n0와 수신 노드 n1을 생성하고, 
# 이 들에 대하여 초당 100,000 bytes의 UDP datagram 패킷을  
# CBR(constant Bit Rate)로 전송하는 시뮬레이션

set ns [new Simulator] 
#시뮬레이션 오브젝트
set nf [open out.nam w] 
#nam trace data를 저장할 파일을 wirte open
$ns namtrace-all $nf  
#trace 지정
proc finish {} {
        global ns nf
        $ns flush-trace
 #Close the trace file
        close $nf
 #Execute nam on the trace file
        exec nam out.nam &
        exit 0
}
set n0 [$ns node] #노드 생성
set n1 [$ns node]
$ns duplex-link $n0 $n1 1Mb 10ms DropTail    
#SFQ : 큐가 꽉찬 경우 인자 삽입 불가능
set udp0 [new Agent/UDP] 
#UDP 에이전트 생성
$ns attach-agent $n0 $udp0 
#n0 노드에 udp0 에이전트 부착
set cbr0 [new Application/Traffic/CBR] 
#cbr -> Constant Bit Rate 고정 전송형 트래픽
$cbr0 set packetSize_ 500 
# 500bytes
$cbr0 set interval_ 0.005 
# 0.005sec 200*500
$cbr0 attach-agent $udp0 
set null0 [new Agent/Null] 
$ns attach-agent $n1 $null0
$ns connect $udp0 $null0  
$ns at 0.5 "$cbr0 start"     
# at time event 
$ns at 4.5 "$cbr0 stop"
$ns at 5.0 "finish"
$ns run

 

실행 방법

ns example.tcl

728x90
반응형

댓글