Xây dựng kịch bản mô phỏng

Một phần của tài liệu Mô phỏng ảnh hưởng của quá trình đóng khối trong mạng obs (Trang 53 - 56)

Với các thông số giả định như trên. Việc mô phỏng sẽ xây dựng một kịch bản mô phỏng bằng cách tạo ra các đối tượng để mô phỏng. Và việc đầu tiên là tạo các node mạng.

Set i 1

While { $i <= 14 } {

Set c($i) [$ns ObsHybridNode $ncc $ndc ChannelScheduler/LAUCVF] Incr i

Nhưng dòng lệnh trên sẽ tạo ra 14 node mạng với cách đánh số là c(1), c(2),…,c(14); loại node là node kết hợp. Số kênh dữ liệu là ndc và số kênh điều khiển là ncc. Lập lịch biên theo kiểu LAUCVF.

Kế đến là thiết lập số lượng kênh dữ liệu và kênh điều khiển bằng các dòng lệnh sau:

Set ndc 1 ; một kênh dữ liệu Set ncc 1 ; một kênh điều khiển

Sau đó sẽ xây dựng các liên kết trong mạng góp phần tạo nên một topo mạng hoàn chỉnh.

$Ns duplex-obs-link $c(1) $c(2) $ncc $ndc 1100 ChannelScheduler/LAUCVF $ Ns duplex-obs-link $c(1) $c(3) $ncc $ndc 1600 ChannelScheduler/LAUCVF $Ns duplex-obs-link $c(1) $c(8) $ncc $ndc 2800 ChannelScheduler/LAUCVF $ Ns duplex-obs-link $c(2) $c(3) $ncc $ndc 600 ChannelScheduler/LAUCVF $ Ns duplex-obs-link $c(2) $c(4) $ncc $ndc 1000 ChannelScheduler/LAUCVF $ Ns duplex-obs-link $c(3) $c(6) $ncc $ndc 2000 ChannelScheduler/LAUCVF $ Ns duplex-obs-link $c(4) $c(5) $ncc $ndc 600 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(4) $c(11) $ncc $ndc 2400 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(5) $c(6) $ncc $ndc 1100 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(5) $c(7) $ncc $ndc 800 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(6) $c(10) $ncc $ndc 1200 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(6) $c(13) $ncc $ndc 2000 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(7) $c(8) $ncc $ndc 700 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(8) $c(9) $ncc $ndc 700 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(9) $c(10) $ncc $ndc 900 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(9) $c(12) $ncc $ndc 500 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(9) $c(14) $ncc $ndc 500 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(11) $c(12) $ncc $ndc 800 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(11) $c(14) $ncc $ndc 800 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(12) $c(13) $ncc $ndc 300 ChannelScheduler/LAUCVF $ns duplex-obs-link $c(13) $c(14) $ncc $ndc 300 ChannelScheduler/LAUCVF

Với các dòng lệnh trên tác giả đã tạo ra các liên kết trong mạng node các node tương ứng với mơ hình mạng NSFNET như hình 4.1. Các liên kết này đều là song hướng

duplex-obs-link và có cùng số lượng kênh điều khiển ncc cũng như kênh dữ liệu ndc. Các khoảng cách được tính bằng km tương ứng như topo mạng NSFNET. Còn giải

thuật lập lịch kênh là LAUCVF.

Sau khi tạo ra được một topo mạng tác giả sẽ thiết lập các thông số mạng giống như giả định ban đầu bằng các dòng lệnh sau:

Connector/ObsLink dc_bandwidth 10Gb; băng thông kênh dữ liệu Connector/ObsLink cc_bandwidth 10Gb; băng thông kênh điều khiển

Agent/Burstifier set max_db_size_ [expr 1250*$number]; đóng gói theo kiểu kích thước tối đa với number là số lượng gói tin trong 1 burst

Agent/Burstifier set bhp_size_ 64; thiết lập kích thước gói điều khiển là 64 byte

Agent/OXC switch_time 10us; thời gian chuyển mạch là 10us

Agent/Burstifier set max_segmentations_ 10; số lượng đoạn trong một burst Agent/Burstifier set min_segmentable_size_ 1250; kích thước nhỏ nhất của mỗi

đoạn

Agent/Burstifier set segmentation_ true; cho phép giải quyết xung đột bằng phân đoạn burst

Kế đến tác giả sẽ đưa lưu lượng có tải là 0.5 Erlang vào mạng. Cơng thức tính tải vào mạng được sử dụng là cơng thức tính tải được để cập đến trong chương 4.

set load 0.5 ; tải bằng 0.5 Erlang

Đưa lưu lượng tải vào mạng bằng các vòng lặp trong kịch bản. Lưu lượng đưa vào mạng theo phân phối Poisson.

set rate [expr $load*$ndc*[Connector/ObsLink dc_bandwidth]/$n_app]; tốc độ của mỗi luồng lưu lượng được tính ta từ tải đưa vào mạng

#k chỉ ra mức dịch vụ set k 0 while {$k < 2} { set i 1 while {$i <= 14} { set j 1 while {$j <= 14} { if {$i != $j} {

set Poi($i$j$k) [new Application/Traffic/Poisson]; lưu lượng phân phối poisson $Poi($i$j$k) set rate_ $rate

$Poi($i$j$k) set packetSize_ 1250 #creat udp to attach traffic

set udp($i$j$k) [$c($i) set burstifier_([$c($j) id]:$k)]; đặt lưu lượng trên tất cả các cặp node

$Poi($i$j$k) attach-agent $udp($i$j$k)

$udp($i$j$k) set-traffic-generator $Poi($i$j$k)

$ns at 0.0 "$udp($i$j$k) start"; cho phép bắt đầu chạy các lưu lượng khi mới chạy mô phỏng } incr j } incr i } incr k } (adsbygoogle = window.adsbygoogle || []).push({});

Trong đoạn code trên, k là số lượng mức dịch vụ được đưa vào mạng. Đặt k = 1 và k = 2 cho các trường hợp mô phỏng bên dưới.

Đến đây hoàn tất việc tạo ra topo mạng và đưa lưu lượng vào mạng. Bây giờ đến bước kế tiếp là chạy kịch bản mô phỏng.

Một phần của tài liệu Mô phỏng ảnh hưởng của quá trình đóng khối trong mạng obs (Trang 53 - 56)