Tạo sự chuyển động cho Node (Creating Node movements)

Một phần của tài liệu LUẬN VĂN:ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN pdf (Trang 75 - 77)

Mobilenode được thiết kế để chuyển động (move) trong 3 tọa độ của đồ hình mạng (topology). Tuy nhiên tọa độ thứ 3 (trục Z) không được sử dụng. Đó là vì Mobilenode được đề nghị để luôn luôn chuyển động trên mặt phẳng (flat) với tọa độ trục Z lúc nào cũng bằng 0. Vì vậy, mobilenode có toạ độ X, Y, Z(=0) mà tiếp tục được điều chỉnh khi node hoạt động (move). Có hai phương thức được đưa ra để hỗ trợ sự di chuyển trong các mobilenode.

Trong phương thức đầu tiên, vị trí bắt đầu của node và các đích sau này của nó có thể được thiết lập một cách rõ ràng. Những chỉ dẫn (directive) thường tập trung trong một chuỗi các file kịch bản di chuyển riêng biệt.

Vị trí bắt đầu và đích tương lai của mobilenode có thể được thiết lập bằng cách sử dụng API sau:

$node set X_ <x1> $node set Y_ <y1> $node set Z_ <z1>

$ns at $time $node setdest <x2> <y2> <speed>

Tại thời điểm $time giây, node sẽ bắt đầu chuyển động (moving) từ vị trí bắt đầu của nó là (x1,y1) chuyển tiếp sang đích (x2,y2) với tốc độ (speed) tính theo (m/s) xác định.

Trong phương thức này, node-movement-updates được nổ ra bất cứ vị trí nào của node ở tại thời gian được yêu cầu. Quá trình này có thể được gây ra bằng một dạng truy vấn (query) từ quá trình tìm kiếm một node lân cận để biết được khoảng cách giữa chúng, hoặc thiết lập đích chỉ dẫn mô tả ở trên để thay đổi hướng và tốc độ của node.

Một minh hoạ về sự chuyển động (movement) của chuỗi các file kịch bản chuyển động sử dụng các phương thức trên API, có thể được tìm thấy trong thư mục ~ns/tcl/mobility/scene/scen-670x670-50-600-20-0. Ở đây, 670x670 định nghĩa chiều dài và chiều rộng của topo với 50 node hoạt động với tốc độ tối đa là 20m/s với thời gian tạm dừng (pause) trung bình trong 600s. Các file chuyển động trong node có thể được sinh ra bằng cách sử dụng kịch bản tạo ra bởi CMU được tìm thấy trong ~ns/indep-utils/cmu-scen-gen/setdest.

Phương thức thứ hai sử dụng quá trình chuyển động ngẫu nhiên của node. Thường được sử dụng:

$mobilenode start: khởi động mobilenode với một vị trí ngẫu nhiên và thường cập nhập tuyến để thay đổi hướng và tốc độ của node. Giá trị đích và tốc độ được sinh ra ngẫu nhiên. Chúng ta đã không sử dụng phương thức thứ hai và đưa nó đến người dùng với khảo sát chi tiết. Quá trình họat động của mobilenode được thực thi trong C++. Hãy xem các phương pháp trong ~ns/mobilenode.{cc.h}chi tiết quá trình thực thi.

Không quan tâm đến các phương thức được sử dụng để sinh ra chuyển động cho node, topo của mobilenode cần phải được định nghĩa. Nó lên được định nghĩa trước khi tạo ra các mobilenode. Thông thường dạng topo phẳng (flat) được tạo ra dựa vào đặc tả chiều dài và chiều rộng của topo cơ sở sử dụng:

set topo [new Topography]

$topo load_flatgrid $opt(x) $opt(y)

opt(x) opt(y) là giới hạn được sử dụng trong trình mô phỏng. Quá trình họat động của mobilenode có thể được đưa vào (logged) bằng cách sử dụng thủ tục như sau:

proc log-movement {} {

global logtimer ns_ ns set ns $ns_

source ../mobility/timer.tcl Class LogTimer -superclass Timer LogTimer instproc timeout {} {

global opt node_;

for {set i 0} {$i < $opt(nn)} {incr i} { $node_($i) log-movement }

$self sched 0.1 }

set logtimer [new LogTimer] $logtimer sched 0.1

}

Trong trường hợp này, vị trí của mobilenode sẽ được đặt vào sau mỗi 0.1 giây.

Một phần của tài liệu LUẬN VĂN:ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN pdf (Trang 75 - 77)

Tải bản đầy đủ (PDF)

(94 trang)