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
댓글