Trong tất cả các thí nghiệm, luận văn lựa chọn mô hình truyền thông CBR mà không sử dụng các mô hình truyền thông là các ứng dụng mô phỏng sử dụng TCP để gửi các gói tin. Vì TCP điều phối tải theo tình trạng mạng, có nghĩa là thời gian gửi gói tin thay đổi dựa trên khả năng truyền tải hiện tại của mạng. Do vậy, thời gian mỗi gói tin được tạo ra tại bên gửi và vị trí của node khi gửi các gói tin sẽ khác nhau giữa các giao thức, do vậy khó có thể thực hiện các so sánh giữa các giao thức với nhau.
Các tham số cố định:
Bảng 3.2. Các tham số cố định trong mô phỏng
Tham số mô phỏng Giá trị
Kích thước vùng mô phỏng (m x m) 1000 x 1000 Phạm vi truyền sóng vô tuyến (m) 250
Băng thông (Mbps) 2
Kích thước gói tin (byte) 512
Tốc độ gửi gói tin (packets/s) 4
Dạng truyền thông Cbr
Số lượng nguồn phát 10
Thời gian mô phỏng (s) 100
Giao thức định tuyến mô phỏng AODV, N-AODV
Để đánh giá hiệu năng của N-AODV so với AODV một cách toàn diện (ảnh hưởng của mật độ node, của vận tốc di chuyển các node đến hiệu năng), tác giả luận văn tiến hành các thực nghiệm trên một số tiêu chí như sau:
Trƣờng hợp các node di chuyển với vận tốc chậm:
Bảng 3.3. Các tham số mô phỏng khi vận tốc chuyển động chậm
Tham số mô phỏng Giá trị
Số node tham gia mô phỏng 10, 15, 20, 30, 40, 50
Thời gian tạm dừng (s) 10
Tốc độ node di chuyển (m/s) 2
Trƣờng hợp các node di chuyển với vận tốc nhanh:
Bảng 3.4. Các tham số mô phỏng khi vận tốc chuyển động nhanh
Tham số mô phỏng Giá trị
Số node tham gia mô phỏng 10, 15, 20, 30, 40, 50
Thời gian tạm dừng (s) 2
Trƣờng hợp các node di chuyển với vận tốc thay đổi:
Bảng 3.5. Các tham số mô phỏng khi vận tốc thay đổi
Tham số mô phỏng Giá trị
Số node tham gia mô phỏng 20
Thời gian tạm dừng (s) 0
Tốc độ node di chuyển (m/s) 10, 20, 30, 40, 50
Lần lượt áp dụng các giao thức AODV, N-AODV vào các ngữ cảnh mạng khác nhau ở trên. Bộ mô phỏng ghi nhận lại các hoạt động mạng diễn ra tại các lớp. Từ các ghi nhận này, ta đánh giá hiệu năng làm việc của các giao thức, chủ yếu là trên ứng dụng và lớp mạng. Các thí nghiệm và các đánh giá được thể hiện trong các phần sau, bao gồm thí nghiệm với mô hình Random Waypoint. Các nhận xét hiệu năng các giao thức được trình bày trong phần 3.3.4.
3.3.2. Kịch bản mô phỏng
Các bước viết mã kịch bản .tcl để thực thi mô phỏng mạng MANET:
Bƣớc 1: Tạo một thể hiện mô phỏng
set ns_ [new Simulator]
Bƣớc 2: Tạo file trace để lưu vết mô phỏng
set tracefd [open sampletrace.tr w] $ns_ trace-all $tracefd
Bƣớc 3: Tạo đối tượng topo
set topo [new Topography]
Bƣớc 4: Thiết lập không gian di chuyển cho các node
$topo load_flatgrid $val(x) $val(y)
Bƣớc 5: Tạo đối tượng GOD (Genaral Operations Director), đây là đối tượng được sử dụng để lưu trữ toàn bộ thông tin về trạng thái của môi trường, mạng, node… GOD được gọi sử dụng tại lớp MAC trong node.
set god_ [create-god $val(nn)]
Bƣớc 6: Cấu hình node
$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) \ -channel [new $val(chan)] \ -topoInstance $topo \
-agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON
Bƣớc 7: Tạo sự di chuyển cho node (đoạn mã sau mô tả sự di chuyển của node là không ngẫu nhiên)
for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node]
$node_($i) random-motion 0 # Disable random motion }
Bƣớc 8: Thiết lập vị trí cho node (trong trường hợp các node di chuyển không ngẫu nhiên) $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
Bƣớc 9: Thiết lập thời điểm 50s node 1 di chuyển về vị trí tương ứng tọa độ (25, 20) với tốc độ di chuyển 15m/s
$ns_ at 50.0 "$node_(1) setdest 25.0 20.0 15.0”
Bƣớc 10: Thiết lập luồng traffic giữa các node (đoạn mã sau thiết lập luồng cho node 0 và node 1)
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
Bƣớc 11: Thiết lập thời gian dừng khi mô phỏng kết thúc
for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at 150.0 "$node_($i) reset"; } $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 }
Bƣớc 12: Bắt đầu thực thi mô phỏng
puts "Starting Simulation...\n" $ns_ run
Do trong luận văn có sử dụng mô hình chuyển động ngẫu nhiên và mô hình lưu lượng mạng sinh tự động như đã đề cập ở trên, nên kịch bản tcl điều chỉnh lại như sau: 1) Thêm hai tham số mới vào file .tcl:
set val(sc) "đường dẫn đến file chứa kịch bản di chuyển" set val(cp) "đường dẫn đến file chứa thiết lập lưu lượng“
2) Trong các bước từ 1 đến 12 ở trên (trong file .tcl), những phần nào liên quan đến cấu hình di chuyển và lưu lượng, kết nối của các node thì ta sẽ bỏ hết và thay bằng hai câu lệnh:
source $val(sc) source $val(cp)