Quá trình mô phỏng mạng MANET với NS2 [1]

Một phần của tài liệu LUẬN VĂN:ĐÁNH GIÁ CHI PHÍ TÌM ĐƯỜNG CỦA MỘT SỐ GIAO THỨC ĐỊNH TUYẾN TRONG MẠNG MANET doc (Trang 53 - 55)

Quá trình mô phỏng mạng MANET với bộ mô phỏng NS2 thông thường trải qua các bước như sau trong việc xây dựng tệp kịch bản:

4.3.2.1. Tạo bộ lập lịch các sự kiện

+ Tạo bộ lập lịch

set ns [new Simulator]

+ Lập lịch sự kiện

$ns at <time> <event>

+ Khởi động bộ lập lịch

$ns run

4.3.2.2. Ghi lại vết các sự kiện của mạng mô phỏng

+ Dò vết các gói tin trên tất cả các liên kết, xuất ra tệp test.out

$ns trace-all [open test.out w]

$ns namtrace-all [open test.nam w] + Cũng có thể chỉ “dò vết” một số tham số, thí dụ: $ns trace-queue $n0 $n1 $ns namtrace-queue $n0 $n1 4.3.2.3. Thiết lập mạng mô phỏng + Thiết lập topo mạng

set topo [new Topography]

$topo load_flatgrid $val(x) $val(y) set god_ [create-god $val(nn)]

4.3.2.4. Cấu hình nút di động

+ Cấu hình nút di động

$ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType [$val(chan)] \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace OFF

+ Khởi tạo vị trí ban đầu cho các nút

$node_(0) set X_ 5.0 $node_(0) set Y_ 2.0 $node_(0) set Z_ 0.0 $node_(1) set X_ 390.0 $node_(1) set Y_ 385.0 $node_(1) set Z_ 0.0

+ Thiết lập sự di chuyển cho nút di động

$ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0”

4.3.2.5. Tạo ra các nguồn sinh lưu lượng

+ Tạo lưu lượng

set tcp [new Agent/TCP] $tcp set class_ 2

set sink [new Agent/TCPSink] $ns_ attach-agent $node_(0) $tcp $ns_ attach-agent $node_(1) $sink

$ns_ connect $tcp $sink

set ftp [new Application/FTP] $ftp attach-agent $tcp

$ns_ at 10.0 "$ftp start"

+ Việc tạo lưu lượng có thể lấy từ tệp sinh lưu lượng của công cụ có sẵn trong bộ mô phỏng NS2

4.3.2.6. Xác định thời điểm dừng

for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at 150.0 "$node_($i) reset"; } (adsbygoogle = window.adsbygoogle || []).push({});

$ns_ at 150.0001 "stop"

$ns_ at 150.0002 "puts \"NS EXITING...\" ; $ns_ halt" proc stop {} { global ns_ tracefd nf $ns_ flush-trace close $tracefd close $nf }

Việc xác định thời gian dừng (hay thời gian mô phỏng cần thiết) là quan trọng bởi vì nếu như có kéo dài thời gian mô phỏng thêm thì độ chính xác của kết quả cũng không tăng thêm mà chi phí phải trả lại tăng tỉ lệ thuận với thời gian mô phỏng. Lý do là bởi quá trình mô phỏng sinh ra các tệp vết chiếm nhiều dung lượng ổ đĩa cứng. Người ta khuyến cáo rằng với mô phỏng mạng MANET thời gian mô phỏng thường khoảng vài trăm giây trở nên.

Một phần của tài liệu LUẬN VĂN:ĐÁNH GIÁ CHI PHÍ TÌM ĐƯỜNG CỦA MỘT SỐ GIAO THỨC ĐỊNH TUYẾN TRONG MẠNG MANET doc (Trang 53 - 55)