Chủ đề: "Mô phỏng mạng bằng công cụ NS2"
Như ở bài 1 chúng ta đã cùng nhau tạo ra 1 Topo mạng bao gồm: nguồn, đích, các kết nối, đường truyền, hàng đợi...Nhưng mô hình bạn xây dựng vẫn chưa thực hiện được chức năng mô phỏng quá trình gửi dữ liệu. Để thực hiện được điều này ta thêm dòng code dưới đây bên dưới câu lệnh khai báo chiều dài hàng đợi:
Tài liệu tham khảo tiếng Việt về mô phỏng trong NS2:
-> Tài liệu 1: Tải về
-> Tài liệu 2: Tải về
Bài 3: Cách vẽ đồ thị bằng công cụ Xgraph bằng công cụ NS2
-> Download file chạy .tcl và file .awk của Project này:
-> Download file .awk: Tải về
-> Download file .tcl: Tải về
Click Yes nếu bạn cảm thấy bài viết này hữu ích.- Thanks!
Như ở bài 1 chúng ta đã cùng nhau tạo ra 1 Topo mạng bao gồm: nguồn, đích, các kết nối, đường truyền, hàng đợi...Nhưng mô hình bạn xây dựng vẫn chưa thực hiện được chức năng mô phỏng quá trình gửi dữ liệu. Để thực hiện được điều này ta thêm dòng code dưới đây bên dưới câu lệnh khai báo chiều dài hàng đợi:
#Tham
so tien trinh toi nguon s1 lambda1 = 100.0
set
lambda1 100.0
#Tham
so tien trinh phuc vu m1 = lambda / d
#trong
do d =0,8
set
m1 120.0
#Tham
so tien trinh toi nguon s2 lambda2 = 100.0
set
lambda2 100.0
#Tham
so tien trinh phuc vu m2
set
m2 120.0
#Tham
so tien trinh toi nguon s3 lambda3 = 100.0
set
lambda3 100.0
#Tham
so tien trinh phuc vu m3
set
m3 120.0
#
Tien trinh toi co khoang thoi gian den tuan theo phan bo ham mu
set
InterArrivalTime1 [ new RandomVariable/Exponential]
$InterArrivalTime1 set avg_ [expr
1/$lambda1]
#
Tien trinh phuc vu co toc do tuan theo phan bo ham mu
set
pktSize1 [ new RandomVariable/Exponential]
$pktSize1
set avg_ [ expr 100000.0/(8*$m1)]
#
Thu tuc bat dau gui du lieu
proc
sendpacket1 {} {
global ns tcp1 InterArrivalTime1
pktSize1 flag1
set time [$ns now]
if [expr $flag1 == 0] {
$ns at [
expr $time + [$InterArrivalTime1 value]]
"sendpacket1"
set bytes [ expr round
([$pktSize1 value])]
$tcp1 send $bytes
}
}
#
Tien trinh toi co toc do tuan theo phan bo ham mu
set
InterArrivalTime2 [ new RandomVariable/Exponential]
$InterArrivalTime2 set avg_ [expr 1/$lambda2]
#
Tien trinh phuc vu co toc do tuan theo phan bo ham mu
set
pktSize2 [ new RandomVariable/Exponential]
$pktSize2 set avg_ [ expr 100000.0/(8*$m2)]
#
Thu tuc bat dau gui du lieu
proc
sendpacket2 {} {
global ns tcp2 InterArrivalTime2
pktSize2 flag2
set time [$ns now]
if
[expr $flag2 == 0] {
$ns at [
expr $time + [$InterArrivalTime2 value]]
"sendpacket2"
set bytes [ expr round ([$pktSize2 value])]
$tcp2 send $bytes
}
}
#
Tien trinh toi co toc do tuan theo phan bo ham mu
set
InterArrivalTime3 [ new RandomVariable/Exponential]
$InterArrivalTime3 set avg_ [expr 1/$lambda3]
#
Tien trinh phuc vu co toc do tuan theo phan bo ham mu
set
pktSize3 [ new RandomVariable/Exponential]
$pktSize3 set avg_ [ expr 100000.0/(8*$m3)]
#
Thu tuc bat dau gui du lieu
proc
sendpacket3 {} {
global ns tcp3 InterArrivalTime3
pktSize3 flag3
set time [$ns now]
if [expr $flag3 == 0] {
$ns at [
expr $time + [$InterArrivalTime3 value]]
"sendpacket3"
set bytes [ expr round
([$pktSize3 value])]
$tcp3 send $bytes
}
}
Đồng thời ngay trước câu lệnh thiết lập thời gian mô phỏng các bạn thêm dòng lệnh:
$ns
at 0.0 "sendpacket1"
$ns
at 0.0 "sendpacket2"
$ns
at 0.0 "sendpacket3"
Lưu lại file BTL.tcl và chạy thì ta được mô hình sau:
-> Tài liệu 1: Tải về
-> Tài liệu 2: Tải về
Bài 3: Cách vẽ đồ thị bằng công cụ Xgraph bằng công cụ NS2
-> Download file chạy .tcl và file .awk của Project này:
-> Download file .awk: Tải về
-> Download file .tcl: Tải về
Chú ý: Để máy tính hoạt động trơn tru và được bảo dưỡng tự động thường xuyên, các bạn nên cài một số phần mềm chăm sóc hệ thống. Mình đã và đang sử dụng phần mềm chăm sóc hệ thống Glary Utilities Pro và thấy rất tốt, các bạn có thể Download và cài đặt bản full có kèm theo Key (serial) đầy đủ ( đã test) rất đơn giản tại đây: Tải về
- Để bảo vệ máy tính tốt hơn chống lại các phần mềm gián điệp, virus độc hại mà không ngốn quá nhiều tài nguyên máy tính ngay cả ở chế độ hoạt động và chế độ chờ, mình khuyến nghị các bạn cài đặt và sử dụng phần mềm diệt Virus Avast internet security( Kèm theo key/Serial đã test): Tại đây
Click Yes nếu bạn cảm thấy bài viết này hữu ích.- Thanks!
cảm ơn bạn nhiều.đúng lúc đang cần
ReplyDeletecam on anh!!! chuc a luon thanh cong trong cuoc song.
ReplyDeletecác bạn cho mình hỏi là tại sao khi mình viết code lưu ở định dạng tenfile.tcl rồi ở lưu ngoài window, nhưng khi copy dán đoạn code vào trong ubutun ko được hả các bạn , hay là 2 hệ điều hành này ko cho phép lẫn nhau . ctrl + c ko được
ReplyDeleteBạn có thể dùng USB làm phương tiện để trung chuyển!
Deletemở file code ns2 sao vay xin chi dum
ReplyDeleteBạn nên tham khảo một chút về tập lệnh trong Linux đã nhé( Google nhiều lắm). Trước tiên bạn sẽ phải tạo và lưu project của mình ở một thư mục nào đó. Giả sử file BTL.tcl của mình được tạo nằm thư mục: Home/ArganSv/Project , để thức hiện chạy file này bạn thực hiện hai công việc sau:
Delete1. Mở cửa sổ dòng lệnh Terminal và gõ mở thư mục chứa file cần chạy: cd Home/ArganSv/Project
2. Chạy file BTL.tcl bằng cách gõ lệnh ns BTL.tcl
mình cài ns2 trên win 7 bạn oi minh cài bằng Cygwin nên làm xong mô phỏng có file nam va file ns nhưng bung file nam bằng notepd ko dc
Deletemình đang làm về đánh giá hiệu suất tcp trong manet, mình muốn đánh giá hiệu suất của tcp-door so với tcp chuẩn, hiện tại mình đang mắc phần viết code và mô phỏng nó, bạn có thể chỉ dùm mình viết code mô phỏng nó như thế nào được không?
ReplyDeletebạn có tài liệu hướng dẫn mô phỏng các giao thức cải thiện hiệu suất tcp trong mạng manet không cho mình xin?
ReplyDeletegmail của mình là hoale.dtvt@gmail.com
Delete+9999999999
ReplyDeletecam on rat nhieu
+9999999999
ReplyDeletecam on rat nhieu
Bạn có thể hướng dẫn mình demo 1 số kỹ thuật xác thực trong mạng MANET dùng công cụ NS2 này được không .. Tks bạn nhiều.
ReplyDeletethanh bạn nhiều
ReplyDeletediennd@ubuntu:~$ ns BTL.tcl
ReplyDeletens: sendpacket1: wrong # args: should be {_o10 message ?args...?}
while executing
"$InterArrivalTime1"
invoked from within
"if [expr $flag1==0] {
$ns at [expr $time + [$InterArrivalTime1]] "sendpacket1"
set bytes [expr round ([$pktSize1 value])]
$tcp1 s..."
(procedure "sendpacket1" line 4)
invoked from within
"sendpacket1"
Minh add cai nay vao chuong trinh nhu o bai 1 thi thay bao loi nay? Cac ban co biet do la loi gi khong chi cho minh cach sua voi!!!
Mình đang cần mô phỏng mạng bằng ns2 mà không mô phỏng được, bạn Thứ Lễ hay bạn nào giúp mình với, mình cảm ơn nhiều.
ReplyDeleteMail của mình: vinhnv.sicom@gmail.com
SĐT: 0973 313 893
Mình cảm ơn và hậu tạ. Hi, mình đang cần rất gấp
This comment has been removed by the author.
ReplyDeleteRất cảm ơn những kiến thức của bạn
ReplyDeleteMình đang cần làm bài tập điều kiện và thi cuối kỳ
Đề bài:
Câu 1: Sử dụng công cụ jperf để đo hiệu năng của 1 mạng LAN, 1 mạng WiFi với mô hình như sau:
- 1 luồng TCP
- 2 luồng TCP
- 1 luồng TCP + UDP với tốc độ 1Mbps, 10Mbps, 30Mbps
Mỗi mô hình như trên thay đổi tham số:
Window size (100KB, 500KB) , MTU= 500, 1K, 2K.
Yêu cầu mỗi thí nghiệm phải có nhận định của tác giả.
Câu 2: Đề tài cuối kỳ (thay cho thi cuối kỳ)
Thực hiện Bài tập thực hành NS-2 trong file Bai tap thuc hanh NS-2.
Đề tài cuối kỳ là chạy được mô phỏng (phải hiểu được) từ bài 8 đến bài 10 trong file trên.
Chân thành cảm ơn và hậu tạ
Name: Mr. Tuấn
Phone: 0933.397.428
Email: tuananh84pt@gmail.com
Mình đang mô phỏng chương trình Tính độ Trễ Wlan nhưng sao khi chạy file tcl thì file ou1.tr và out2.tr không chạy trên xgraph, còn file out0.tr và out50ms.tr thì chạy được. Mong các bạn giúp Mình kiểm tra code thử. thank!
ReplyDelete#Mã nguồn chương trình tính độ trễ kênh voice theo tải. File: vwqos.tcl
#----------------Khởi tạo thông số------------------------------------------------------
global opt
set opt(chan) Channel/WirelessChannel
set opt(prop) Propagation/TwoRayGround ;# mô hình truyền sóng
set opt(netif) Phy/WirelessPhy
set opt(mac) Mac/802_11
set opt(ifq) Queue/DropTail/PriQueue ;# interface queue
set opt(ll) LL ;# link layer
set opt(ant) Antenna/OmniAntenna
set opt(x) 1000
set opt(y) 1000
set opt(ifqlen) 50 ;# length of queues
set opt(tr) wcwqos2.tr ;# trace file
set opt(tr1) wcwqos21.tr
set opt(namtr) wcwqos2.nam ;# sim file
set opt(namtr1) wcwqos21.nam
set opt(nn) 20 ;# numnode
set opt(adhocRouting) DSDV
set opt(cp) ""
set opt(sc) "../mobility/scene/scen-20-test" ;# tạo vị trí các node
set opt(stop) 2000 ;# thời gian dừng chương trình
set num_wired_nodes 2
set num_bs_nodes 2
#khởi tạo theo dõi
set f0 [open out0.tr w]
set f1 [open out1.tr w]
set f2 [open out2.tr w]
set f3 [open out50ms.tr w]
proc init {} {
global f0 f1 f2 f3
set f0 [open out0.tr w]
set f1 [open out1.tr w]
set f2 [open out2.tr w]
set f3 [open out50ms.tr w]
}
#Other default settings---thong so tang link-----------------------------
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0
# ---------------------chế độ hàng đợi--------------------------------------
Queue/DropTail/PriQueue set Prefer_Routing_Protocols 1
#unity gain, omni-directional antennas
#set up the antennas to be centered in the node and 1.5 meters above it
Antenna/OmniAntenna set X_ 0
Antenna/OmniAntenna set Y_ 0
Antenna/OmniAntenna set Z_ 1.5
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
#wireless-phy.cc
#Initialize the SharedMedia interface with parameters to make
#it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/WirelessPhy set CPThresh_ 10.0 ;#threshold physical,
Phy/WirelessPhy set CSThresh_ 1.559e-11 ;#connection pattern
Phy/WirelessPhy set RXThresh_ 3.652e-10
Phy/WirelessPhy set Rb_ 2*1e6
Phy/WirelessPhy set Pt_ 0.2818
Phy/WirelessPhy set freq_ 914e+6 ;#freq being used
Phy/WirelessPhy set L_ 1.0
#-pl -std -Pt -fr -Gt -Gr -L -ht -hr -d0 -r -m
# ----------------------------------------------------------------------------------
set ns_ [new Simulator]
$ns_ node-config -addressType hierarchical
$ns_ color 0 Blue
$ns_ color 1 green
$ns_ color 2 Red
# ----------------------thiết lập các miền kế thừa-----------------------------
AddrParams set domain_num_ 3 ;#thiet lap 3 domain, hai wireless, mot wired.
lappend cluster_num 2 1 1 ;#so luong cluster trong moi domain ;#(wired,wireless,wireless)
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 1 1 4 1 ;#so luong node cua moi cluster
AddrParams set nodes_num_ $eilastlevel
set tracefd [open $opt(tr) w]
$ns_ trace-all $tracefd
set namtracefd [open $opt(namtr) w]
phần tiếp theo của chương trình, mong các bạn giúp dùm.
ReplyDelete#----------theo doi traffic ca wireless va wireline.--------------------------
$ns_ namtrace-all-wireless $namtracefd 800 600
#------------------------tạo topo mang-----------------------------------------
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
# god needs to know the number of all wireless interfaces
#General Operations Director (GOD) +
set god_ [create-god [expr $opt(nn) +$num_bs_nodes + $num_wired_nodes ]]
#create wired nodes, domain=0
#each cluster each node in just one domain
set temp {0.0.0 0.1.0}
for {set q 0} {$q < $num_wired_nodes} {incr q} {
set W($q) [$ns_ node [lindex $temp $q]]
$W($q) color "#66660000ffff"
}
$W(0) set X_ 00.0
$W(0) set Y_ 100.0
#------------------------config BS node------------------------------------------
$ns_ node-config -adhocRouting $opt(adhocRouting) \
-llType $opt(ll) \
-macType $opt(mac) \
-ifqType $opt(ifq) \
-ifqLen $opt(ifqlen) \
-antType $opt(ant) \
-propInstance [new $opt(prop)] \
-phyType $opt(netif) \
-channel [new $opt(chan)] \
-topoInstance $topo \
-wiredRouting ON \
-agentTrace ON \
-routerTrace ON \
-macTrace ON
#$mobilenode start
set temp {1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.0.10 1.0.11
1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.17 1.0.18 1.0.19 1.0.20 1.0.21 }
#domain.cluster.node for fist wireless domain
set BS(0) [$ns_ node [lindex $temp 0]] ;#gan cho bs(0)1.0.0
set BS(1) [$ns_ node 2.0.0] ;#gan cho bs(1)2.0.0
$BS(0) random-motion 1
$BS(1) random-motion 1
$BS(0) color "#ffff00000000"
$BS(1) color "#ffff00000000"
$ns_ at 0.0 "$BS(0) label BS(0)"
$ns_ at 0.0 "$BS(1) label BS(1)"
#$ns_ initial_node_pos $BS(0) 100 ;#khoi tao kich thuoc cua node
#$ns_ initial_node_pos $BS(1) 100
#-----------configure for mobilenodes--------------
ReplyDelete$ns_ node-config -wiredRouting OFF\-wirelessRouting ON
#tao cac mobile node- co dia chi ke thua tu cac station cua no, chi thi trang thai ket noi #do tram nao quan ly
for {set j 0} {$j < $opt(nn)} {incr j} {
set node_($j) [ $ns_ node [lindex $temp [expr $j+1]] ] $node_($j) base-station [AddrParams addr2id [$BS(0) node-addr]]
$node_($j) random-motion 1
}
#create links between wired and BS nodes
$ns_ duplex-link $W(0) $W(1) 11Mb 2ms DropTail ;#delay 2ms
$ns_ duplex-link $W(1) $BS(0) 11Mb 2ms DropTail ;#
$ns_ duplex-link $W(1) $BS(1) 11Mb 2ms DropTail
#create the performance for 4 node
$ns_ duplex-link-op $W(0) $W(1) orient down
$ns_ duplex-link-op $W(1) $BS(0) orient left-down
$ns_ duplex-link-op $W(1) $BS(1) orient right-down
#khoi tao vi tri cho cac node, kich co cua cac node wireless
for {set q 0} {$q < $opt(nn)} {incr q} {
$ns_ initial_node_pos $node_($q) 20;#try to positor
$node_($q) color "#33339999"
$ns_ at 0.0 " $node_($q) color #33339999f "
}
#-------Define a 'finish' procedure----------------
proc finish {} {
global f0 f1 f2 f3 numnode t qe i pktsdelay delaychan loadper sim_interval
#Close the output files
close $f0
close $f1
close $f2
puts "so luong node la $numnode"
puts "so luong tong packet tre vuot qua 50ms : $t"
#so luong pkts tre cua moi kenh trong tung khoang sim
for {set k 0} { $k < $numnode} { incr k } {
puts "so luong packet tre vuot qua 50ms channel$k: $pktsdelay($k)"
}
for {set k1 0} { $k1 < $sim_interval} { incr k1 } {
puts "tai mang trong moi khoang thoi gian mo phong thu $k1 = $loadper($k1)"
puts "num of channel delay not precede 50ms qe($k1)= $qe($k1)"
puts $f3 " $loadper($k1) [expr $numnode - $qe($k1)]"
}
close $f3
puts "so i luc nay $i"
puts "num of channel delay not precede 50ms delaychan= , $delaychan"
if {$i< $numnode} {puts "so luong packet tre vuot qua 50ms channel$i: $pktsdelay($i)" }
#Execute NAM on the trace file
exec nam wcwqos2.nam
#Call xgraph to display the results
exec xgraph out0.tr -geometry 600x400 -t "timedelay " -x "secs" -y "secs" -m &
#exec xgraph out1.tr -geometry 800x400 -t "bandwith" -x "secs" -y "kbps" &
#exec xgraph out2.tr -geometry 800x200 -t "npkts" -x "secs" -y "pkts" &
#exec xgraph out50ms.tr -geometry 600x400 -bd "green" -t "number of voice channel with delay 50ms" -x "Load(%)" -y "nvoicechannel" -m &
exec xgraph out50ms.tr -geometry 600x400 -bd "green" -t "so luong kenh voice thoa delay <50ms" -x "Load(%)" -y "nvoicechannel" -m &
exit 0
}
#Define a procedure that attaches a UDP agent to a previously created node
ReplyDelete#'node' and attaches an Expoo traffic generator to the agent with the
#characteristic values 'size' for packet size 'burst' for burst time,
#'idle' for idle time and 'rate' for burst peak rate. The procedure connects
#the source with the previously defined traffic sink 'sink' and returns the
#source object.
proc attach-expoo-traffic { node sink size burst idle rate } {
#Get an instance of the simulator
set ns_ [Simulator instance]
#Create a UDP agent and attach it to the node
set source [new Agent/UDP] ;#using udp protocol
$ns_ attach-agent $node $source
#Create an Expoo traffic agent and set its configuration parameters
set traffic [new Application/Traffic/Exponential]
$traffic set packetSize_ $size ;#the constant size of the packets generated
$traffic set burst_time_ $burst ;#the average “on” time for the generator
$traffic set idle_time_ $idle ;#the average“off”time for the generator
$traffic set rate_ $rate ;#the sending rate during“on”times
;#ttl--> time to live, default = 32
;#dung cho traffic khong day, Wlan
#Attach traffic source to the traffic generator
$traffic attach-agent $source
#Connect the source and the sink
$ns_ connect $source $sink
return $traffic
}
#-----------------------------------------------------------------------------------------
set numnode 20 ;# so luong node
set start_rate 0.0 ;# thoi gian bat dau mo phong
set time_sim 20.0 ;# khoang mo phong
set load 0.0 ;# tai mang
set num_chan 0 ;#so kenh thoa man
set delay 0.0
for {set i 0} {$i < $numnode} {incr i} {
set sink($i) [new Agent/LossMonitor]
$ns_ attach-agent $W(0) $sink($i)
}
#kiem tra thoa man timedelay = 50ms,100ms
proc delaycheck { i timedelay LM startsim endsim} {
global M1 f0 f1 f2 maxdelay mindelay sink5 sink0 sink1 sink2 t pktsdelay1
global pktsdelay delaychan sumband
#Get an instance of the simulator
set ns_ [Simulator instance]
#Set the time after which the procedure should be called again
set time 0.01
#puts "kiem tra lan thu $i"
set bw0 [$LM set lastPktTime_ ]
#set bw1 [$LM set bytes_]
#set bw2 [$LM set npkts_]
#Get the current time
set now [$ns_ now]
#Calculate the bandwidth (in MBit/s) and write it to the files
# puts $f0 "$now [expr [expr $now - $bw0]/$time]"
if {$bw0 > 0} {
puts $f0 "$now [expr $now - $bw0]"
}
#puts $f1 "$now [expr $bw1/$time*8/1000000]"
#puts $f2 "$now [expr $bw2]"
puts "$now $bw0 [expr [expr $now - $bw0]*1000 ]"
if { ($now <= $endsim)& ([expr $now - $bw0] >= $timedelay) & ($bw0 > $startsim )} {
incr t
incr pktsdelay($i)
#puts "so luong packet tre vuot qua 50ms channel$i: $pktsdelay($i)"
set intervaldelay [expr $now - $bw0]
#puts "*** $now---- $bw0 ----- $intervaldelay *** "
}
#Reset the bytes_ values on the traffic sinks
$LM set lastPktTime_ 0
$LM set bytes_ 0
$LM set npkts_ 0
#Re-schedule the procedure
if { ($now <= $endsim)} {
$ns_ at [expr $now+$time] "delaycheck $i $timedelay $LM $startsim $endsim"
}
}
# -----------------lap lich mo phong----------------------------------------------------
ReplyDeleteproc segment-sim {start stop size ontime idle rate} {
global ns_ numnode node_ sink
for {set i 0} {$i < $numnode} {incr i} {
set source($i) [attach-expoo-traffic $node_($i) $sink($i) $size $ontime $idle $rate]
$ns_ at $start "$source($i) start"
$ns_ at $stop "$source($i) stop"
}
}
#------------tinh so kenh delay trong moi khoang thoi gian mo phong-----------
proc ndelaychan {numnode so } {
global pktsdelay qe
for {set i1 0 } {$i1 < $numnode } {incr i1 } {
if { $pktsdelay($i1) >0.0 } { incr qe($so) }
puts "num of channel delay not precede 50ms at sim oder $so = , $qe($so) "
}
}
set sim_interval 8 ;#so lan thuc hien mo phong theo tai
set start 0 ;# thoi gian bat dau
set T_sim 20.0 ;# khoang thoi gian
set end $T_sim
set rate 64000.0 ;# toc do cua cac kenh
set size 252 ;#kich co packet
set ontime 2 ;# thoi gian on cua nguon
set idle 1 ;# thoi gian off cua nguon
set t 0 #tong so packet tre
set delaychan 0 # so kenh tre trong moi lan thuc hien
for {set l 0} {$l < $sim_interval } { incr l} {
set qe($l) 0
$ns_ at $start "reset"
segment-sim $start $end $size $ontime $idle $rate
for {set i 0 } {$i < $numnode } {incr i } {
set pktsdelay($i) 0
#if {[delaycheck $i 0.05 $sink($i) $start $end]== 1 } { incr numchan};
delaycheck $i 0.05 $sink($i) $start $end
}
set sumband($l) [expr $rate*2/3*$i]
set loadper($l) [expr $sumband($l)/11000000*100]
$ns_ at $end " ndelaychan $numnode $l ";
set start [expr $start + $T_sim + 5.0]
set end [expr $start + $T_sim]
set rate [expr $rate + 64000 ]
}
#--------------------------------------------------------------------------------------
#Start logging the received bandwidth
$ns_ at [expr $end + 1.0] "finish" ;# thoi diem dung
$ns_ at 0.0 "init"
#---------reset lai nhung bo dem goi delay---------------------------------------
proc reset {} {
global numnode pktsdelay
for {set i 0 } {$i < $numnode } {incr i } {
set pktsdelay($i) 0
}
}
# Define node movement model
puts "Loading scenario file..."
source $opt(sc)
#-------------------------dung bien dich--------------------------------------------
for {set p 0} {$p < $opt(nn) } {incr p} {
$ns_ at $opt(stop).0000010 "$node_($p) reset";
}
$ns_ at $opt(stop).0000010 "$BS(0) reset";
$ns_ at $opt(stop).1 "puts \"NS EXITING...\" ; $ns_ halt"
puts "Starting Simulation..."
$ns_ run
Mn cho hoi lamda xac dinh nhu nao vay :D
ReplyDeletebạn cho mk hỏi là câu lệnh khai bái chiều dài hàng đợi là ntn vậy? Mk gõ code như trên nhưng n báo lỗi chỗ lambda
ReplyDeletebạn cho mk hỏi là câu lệnh khai bái chiều dài hàng đợi là ntn vậy? Mk gõ code như trên nhưng n báo lỗi chỗ lambda
ReplyDelete