در این بخش، یک اسکریپت OTcl ساده از شبیه سازی نرم افزار NS2 نشان داده شده و عملکرد هر سطر توضیح داده‏ شده است.

این مثال نشان دهنده یک اسکریپت Otcl می باشد که پیکربندی شبکه ساده‌ای را ایجاد کرده و سناریوی شبیه سازی شکل زیر را اجرا می کند.

نکته : در این مجموعه آموزش NS2، نرم افزار NS2 در سطوح مقدماتی و متوسط آموزش داده می شود.

این مجموعه خودآموز آنلاین آموزش NS2 به مرور تکمیل می شود و استفاده از آن برای استفاده فردی رایگان است.

برای آموزش NS2 به صورت مستقیم و یا حضوری و همچنین آموزش NS2 در سطح پیشرفته با ما تماس بگیرید.

برای اجرای این شبیه سازی، فایل ns-simple.tcl را دانلود کرده و در خط فرمان، ns ns-simple.tcl را تایپ نمایید.

توپولوژی شبکه ساده و سناریوی شبیه سازی
شکل: توپولوژی شبکه ساده و سناریوی شبیه سازی

همانطور که در شکل بالا نشان داده شده است، این شبکه دارای چهار گره می‏باشد (n0, n1, n2, n3).

پیوندهای دو طرفه میان n0 و n1 وn1 و n2 پهنای باند 2Mbps  و تاخیر 10ms دارند.

پیوند دو طرفه بین n2 و n3 دارای پهنای باند 1.7Mbps و تاخیر 20ms می‏باشد.

هر گره از یک صف DropTail بطول حداکثر 10 استفاده می‏کند.

بین عامل tcp که به نود n0 متصل شده و عامل sink که به نود n3 متصل شده یک نشست برقرار شده است.

بطور پیش فرض، حداکثر اندازه بسته ای که یک عامل tcp می تواند تولید نماید، 1Kbyte می‏باشد.

عامل sink، به ازای بسته های دریافتی، بسته های ACK تولید کرده و برای فرستنده ارسال می‏کند.

یک عامل udp که به نود n1 وصل شده است، به عامل null متصل به n3 مرتبط شده و نشستی بین این دو بر قرار گردیده است.

یک عامل null فقط بسته ها را دریافت می کند (ACK نمی فرستد).

یک مولد ترافیک ftp و یک مولد ترافیک cbr بترتیب به عاملهای tcp و udp متصل شده، مولد cbr برای تولید بسته ‏هایی به حجم 1Kbyte با نرخ  1Mbps پیکربندی شده است.

مولد cbr تنظیم شده تا درثانیه 0.1 شروع به ارسال بسته کند و در ثانیه 4.5 توقف نماید و مولد ftp برای شروع در ثانیه 0.1 و توقف در ثانیه 4.0 تنظیم شده ‏است.

در قسمت های بعدی این مجموعه آموزش NS2 بخش های مختلف اسکریپت OTcl زیر توضیح داده می شوند

 
#Create a simulator object
set ns [new Simulator]
 
#Define different colors for data flows (for NAM)
$ns color 1 Blue
$ns color 2 Red
 
#Open the NAM trace file
set nf [open out.nam w]
$ns namtrace-all $nf
 
#Define a 'finish' procedure
proc finish {} {
        global ns nf
        $ns flush-trace
        #Close the NAM trace file
        close $nf
        #Execute NAM on the trace file
        exec nam out.nam &
        exit 0
}
 
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
 
#Create links between the nodes
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
 
#Set Queue Size of link (n2-n3) to 10
$ns queue-limit $n2 $n3 10
 
#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
 
#Monitor the queue for link (n2-n3). (for NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5
 
 
#Setup a TCP connection
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
 
#Setup a FTP over TCP connection
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
 
 
#Setup a UDP connection
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
 
#Setup a CBR over UDP connection
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
 
 
#Schedule events for the CBR and FTP agents
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
 
#Detach tcp and sink agents (not really necessary)
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
 
#Call the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
 
#Print CBR packet size and interval
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
 
#Run the simulation
$ns run
 

مثال یک اسکریپت OTcl ساده برای شبیه سازی با نرم افزار NS2

نوشتن دیدگاه


 

آموزش های گام به گام

آموزش زبان برنامه نویسی Tcl

آموزش نرم افزار SUMO برای شبیه سازی ترافیک شهری

سمینار خانه های هوشمند برای دوران پیری

سمینار خانه های هوشمند برای دوران پیری

ادامه مطلب...

سمینار خانه های هوشمند برای دوران پیری

سمینار خانه های هوشمند برای دوران پیری

ادامه مطلب...

سمینار خانه های هوشمند برای دوران پیری

سمینار خانه های هوشمند برای دوران پیری

ادامه مطلب...

سمینار پردازش زبان طبیعی

سمینار پردازش زبان طبیعی
سمینار پردازش زبان طبیعی

ادامه مطلب...