Mô hình Shadowing

Một phần của tài liệu Giao thức MAC điều khiển công suất trong mạng AD HOC (Trang 36)

Mô hình FreeSpace và mô hình phản xạ Two Ray Ground dự đoán nguồn năng lƣợng nhận nhƣ một chức năng tất định của khoảng cách. Cả hai trình bày dải truyền thông nhƣ một vòng tròn lí tƣởng. Trên thực tế, nguồn năng lƣợng nhận ở một khoảng cách nhất định là một giá trị ngẫu nhiên tại vì nhiều hiệu ứng truyền khác nhau, nó cũng đƣợc biết đến nhƣ hiện tƣợng pha-đing (fading), là hiê ̣n tƣợng biến đổi (giảm) cƣờng độ tín hiệu sóng mang. Trên thực tế, cả hai mô hình trên đều dự đoán giá trị trung bình của nguồn năng lƣợng nhận ở khoảng cách d. Một mô hình tổng quát và thƣờng đƣợc sử dụng hơn là mô hình Shadowing.

Pr, Pt: là công suất tín hiệu đƣợc nhận, truyền tƣơng ứng Gr, Gt: năng lực nhận, truyền của ăng tên

λ : bƣớc sóng d: khoảng cách

L: sự tiêu hao của hệ thống (L >=1)

ht và hr biểu diễn cho chiều cao của các ăng ten truyền và nhận tƣơng ứng

Bảng 3.1. Một vài giá trị đặc biệt của độ mất đƣờng dẫn p

Môi trƣờng p

Ngoài trời Không gian lí tƣởng 2

Các khu vực bị khuất 2.7 tới 5 Trong nhà Tầm nhìn thấy (thẳng) 1.6 tới 1.8

Bị che khuất 4 tới 6

Bảng 3.2. Một số giá trị đặc biệt của độ lệch hiệu ứng màn chắn (shadowing).

Môi trƣờng dB (dB)

Ngoài trời 4 tới 12

Văn phòng, khu vực cứng cáp 7 Văn phòng, khu vực mềm dẻo 9.6 Nhà máy, tầm nhìn thẳng 3 tới 6 Nhà máy, tầm bị khuất 6.8

Mô hình Shadowing bao gồm hai phần. Phần thứ nhất đƣợc biết đến nhƣ một mô hình mất năng lƣợng trên đƣờng truyền, điều đó cũng có thể dự đoán giá trị trung bình của nguồn năng lƣợng nhận ở khoảng cách d, đƣợc biểu thị bởi Pr(d). Nó sử dụng khoảng cách gần d0 nhƣ một tham chiếu. Pr(d) đƣợc tính toán liên quan tới Pr(d0) nhƣ sau:

        0 0 ) ( ) ( d d d P d P r r

β đƣợc gọi là hệ số mất trên đƣờng truyền, và nó thƣờng đƣợc xác định theo kinh nghiệm bởi các phƣơng pháp đo lƣờng. Từ phƣơng trình (3.1) chúng ta biết đƣợc rằng β =2 cho truyền dẫn trong FreeSpace. Bảng 3.1 đƣa ra một số giá trị đặc biệt của β. Giá trị lớn hơn phù hợp hơn với các tắc nghẽn và do đó làm gia tăng nhanh hơn giá trị trung bình của nguồn năng lƣợng nhận giống nhƣ khoảng cách trở nên lớn hơn. Pr(d0) có thể đựơc tính toán từ phƣơng trình (3.1).

Việc mất đƣờng dẫn thƣờng đƣợc đo bằng dB(deciBel). Từ phƣơng trình (3.4) chúng ta có                 0 0 log 10 ) ( ) ( d d d P d P dB r r

Phần thứ hai của mô hình phản xạ Shadowing là sự thay đổi của nguồn năng lƣợng nhận ở một khoảng cách nhất định. Nó là biến có giá trị ngẫu nhiên,

(3.4)

do vậy nó là phân phối Gauss nếu đƣợc đo bằng dB. Nói tóm lại, toàn bộ mô hình Shadowing đƣợc biểu diễn bởi

dB dB r r X d d d P d P                  0 0 log 10 ) ( ) ( 

Với XdB là biến ngẫu nhiên Gauss với giá trị trung bình là 0 và độ lệch chuẩn  dB, đƣợc gọi là độ lệch hiệu ứng chắn và cũng thu đƣợc thông qua các phƣơng pháp đo lƣờng. Bảng 3.2 chỉ ra một vài giá trị đặc biệt cúa nó.

Mô hình Shadowing mở rộng mô hình vòng tròn lí tƣởng để đạt tới mô hình thống kê: các nút có thể chỉ truyền thành công theo xác suất khi ở gần rìa của phạm vi truyền thông.

Mục đích mô hình Shadowing: Trƣớc khi sử dụng mô hình Shadowing, ngƣời sử dụng nên chọn các giá trị của hệ số mất trên đƣờng truyền và độ lệch hiệu ứng màn chắn chuẩn  dB tuỳ theo môi trƣờng mô phỏng.

# Đầu tiên phải thiết lập giá trị của mô hình hiệu ứng màn chắn.

Propagation/Shadowing set pathlossExp_ 2.0 ;hệ số mất đƣờng dẫn Propagation/Shadowing set std_db_ 4.0 ; độ lệch hiệu ứng màn chắn (dB) Propagation/Shadowing set dist0_ 1.0 ;khoảng cách tham chiếu (m) Propagation/Shadowing set seed_ 0 ;khởi đầu với RNG-Random number Genrator

$ns_ node-config -propType Propagation/Shadowing ;Cấu hình cho nút

Mô hình Shadowing tạo ra một số ngẫu nhiên khởi xƣớng đối tƣợng RNG. RNG có ba kiểu khởi tạo: Khởi tạo thô, khởi tạo xác định trƣớc (một thiết lập tốt của khởi tạo) và khởi tạo thông minh (hueristic). Các API trên chỉ sử dụng khởi tạo xác định trƣớc. Nếu một ngƣời sử dụng muốn khởi tạo bằng một phƣơng thức khác, API dƣới đây có thể đƣợc sử dụng.

set prop [new Propagation/Shadowing] $prop set pathlossExp_ 2.0

$prop set std_db_ 4.0 $prop set dist0_ 1.0

$prop seed <seed-type> 0

$ns_ node-config -propInstance $prop <seed-type> có thể là thô, xác định trƣớc hay heuristic.

3.1.6. Mô hình chuyển động của các nút mạng

Trong mô phỏng mạng Ad-hoc các mô hình di chuyển đóng một vai trò rất quan trọng. Nó thể hiện chính xác các ngữ cảnh có thể của mạng và góp phần quyết định việc đánh giá hiệu suất của các giao thức trƣớc khi mang ra triển khai thực tế. Đối với ma ̣ng không dây có hai loại mô hình di chuyển đƣợc sử dụng đó

là mô hình dƣ̣a trên vết (trace-based model) và mô hình tổng hợp (synthetic model). Mô hình dƣ̣a trên vết cung cấp cho ta thông tin chính xác, đặc biệt là khi nó có liên quan tới nhiều bên tham gia và có thời gian đủ dài. Tuy nhiên, mô hình tổng hợp là phù hợp hơn đối với mạng di động ngày nay. Mô hình tổng hợp cố gắng thể hiện hành vi của các nút di động bằng cách thống kê. Mỗi nút sẽ đƣợc gán một giải thuật nhằm ngẫu nhiên hóa quá trình di chuyển. Hai mô hình chuyển đô ̣ng tiêu biểu đã đƣợc tích hợp vào NS2 để mô phỏng các mạng Ad-hoc là: Random Waypoint và Random Walk.

3.1.6.1. Mô hình Random Waypoint

Mô hình Random waypoint lần đầu tiên đƣợc đề xuất bởi Johnson và Maltz. Ngay sau đó, nó đã trở thành một mô hình di động 'chuẩn' để đánh giá các giao thức định tuyến cho ma ̣ng Manet, vì tính đơn giản và tính sẵn sàng mở rộng. Tại mô hình này, ban đầu mỗi nút có một vị trí ngẫu nhiên trong khu vực mô phỏng và ở tại đó một khoảng thời gian tạm dừng. Khi hết quãng thời gian tạm dừng, nút chọn cho mình một đích ngẫu nhiên trong khu vực mô phỏng và chuyển động với tốc độ phân bố đồng đều giữa [speedmin, speedmax]. Khi tới vị trí mới nút dừng một khoảng thời gian trong khoảng [Pmin, Pmax] và sau đó tiếp tục lại quá trình.

Hình 3.3 Di chuyển một nút theo mô hình Random Waypoint

Để tạo ra các dấu vết nút của mô hình Random waypoint, công cụ setdest đƣuợc xây dƣ̣ng bởi nhóm CMU Monarch có thể đƣợc sử dụng. Công cụ này đƣợc đƣa vào sử dụng rộng rãi cho các mô phỏng mạng MANET bằng NS2 . Cấu trúc câu lê ̣nh của setdest ta ̣o tê ̣p ngƣ̃ cảnh nhƣ sau:

Tạo tệp tin di chuyển kiểu cũ

./setdest – v <1> -n <nodes> -p <pause_time> -M<max_speed> -t <simulation_time> -x <max X> -y <max Y>

Tạo tệp tin di chuyển kiểu mới

./setdest – v <2> -n <nodes> -s <speed_type> -m<min_speed> -M <max_speed> -t <simulation_time> -x <max X> -y <max Y>

3.1.6.2. Mô hình Random Walk

Mô hình di đô ̣ng Random Walk đƣợc Einstein mô tả toán học đầu tiên vào năm 1926 . Mô hình này mô phỏng chuyển động ngẫu nhiên của các thực thể trong cuộc sống tự nhiên. Nút di động di chuyển từ vị trí hiện tại tới vị trí mới bằng việc chọn ngẫu nhiên một hƣớng nằm trong khoảng [0, 180°] và tốc độ nằm trong khoảng [speedmin, speedmax]. Mỗi chuyển động diễn ra trong khoảng thời gian travel_time (thời gian di chuyển của nút trước khi thay đổi hướng và tốc độ) hoặc trong một khoảng cách hằng số và đặc biệt là không có

thời gian tạm dừng trƣớc khi nút mạng thay đổi hƣớng và tốc độ. Hình 3.4 thể hiện trực quan hóa quá trình di chuyển của tám nút mạng theo mô hình Random Walk.

Hình 3.4 Di chuyển của 8 nút theo mô hình Random Walk

Với mô hình chuyển động này thì tham số về sự thay đổi hƣớng di chuyển của nút có tính chất quyết định đến mức độ thay đổi của mạng. Nếu tham số này nhỏ, các nút di chuyển ngẫu nhiên trong phạm vi nhỏ, lúc này mạng đƣợc coi là mạng nửa tĩnh. Ngƣợc lại nếu tham số này lớn, mạng thay đổi trên phạm vi rộng hơn.

3.1.6.3 Mô hình random direction

Trong mô hình di đô ̣ng hƣớng ngẫu nhiên (random direction) mẫu, mỗi nút

đƣợc gán một hƣớng ban đầu, tốc độ và thời gian đi lại hữu hạn. Các nút sau đó di chuyển đến biên giới của khu vực mô phỏng theo hƣớng đó. Khi di chuyển đến ranh giới vùng mô phỏng, nút tạm dừng trong một thời gian nhất định, chọn một hƣớng góc (từ 0 đến 180 độ) và tiếp tục quá trình.

3.1.7 Tạo một nút di động (Mobile Node) [7, tr143]

MobileNode là đối tƣợng ns node cơ bản cùng với các chức năng thêm vào nhƣ sự chuyển đô ̣ng, khả năng truyền và nhận trên một kênh cho phép tạo nên nút di động (mobile). Lớp MobileNode có ngồn gốc từ lớp cơ sở Node. MobileNode là một đối tƣợng tách biệt. Tính năng mobile bao gồm chuyển đô ̣ng của nút, cập nhập vị trí định kỳ, duy trì đƣờng biên của đồ hình mạng đƣợc thực thi trong C++ trong khi tìm kiếm các thành phần của mạng bên trong của MobileNode (nhƣ các phân lớp, dmux, LL, Mac, Channel,…) đã đƣợc thực thi trong Otcl. Các chức năng và các thủ tục đƣợc mô tả trong phần này có thể đƣợc tìm thấy trong ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl, ~ns/tcl/mobility/dsdv.tcl, ~ns/tcl/mobility/dsr.tcl, ns/tcl/mobility/tora.tcl. Các ví

dụ minh hoạ có thể đƣợc tìm thấy trong ~ns/tcl/ex/wireless-test.tcl và ~ns/tcl/ex/wireless.tcl.

Trong khi ví dụ đầu tiên sử dụng một topo nhỏ chỉ có 3 node, ví dụ thứ hai thực thi trên mô ̣t cấu trúc 50 nút. Các tập lệnh này có thể đƣợc thực thi một cách đơn giản bằng cách gõ lệnh: $ns tcl/ex/wireless.tcl (or /wireless-test.tcl)

Có năm giao thức định tuyến ad-hoc hiện đƣợc hỗ trợ là DSDV, DSR, TORA và AODV và PUMA. Cơ sở để tạo ra một mobilenode đƣợc mô tả dƣới đây.

$ns_ node-config -Ad HocRouting $opt(Ad HocRouting) -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 OFF -agentTrace ON

-routerTrace OFF -macTrace OFF

Cấu hình của API ở trên cho một mobilenode với tất cả các giá trị của giao thức định tuyến adhoc-routing, ngăn xếp mạng, kênh, đồ hình (topography), mô hình truyền sóng, với định tuyến hữu tuyến trả về on hay off (yêu cầu cho kịch bản mạng không dây, có dây hỗn hợp) và vết tìm kiếm trả về on hay off tại các mức khác nhau (router, mac, agent).

Tiếp theo là phương pháp tạo ra các mobilenode:

for { set j 0 } { $j < $opt(nn)} {incr j} { set node_($j) [ $ns_ node ]

$node_($i) random-motion 0 ;Xóa tính năng di chuyển ngẫu nhiên }

Thủ tục trên tạo ra một đối tƣợng mobilenode (tách biệt), tạo ra một tác nhân định tuyến Ad Hoc-routing nhƣ đã đƣợc chỉ định, tạo ra ngăn xếp mạng bao gồm: lớp liên kết (link), giao diện hàng đợi, lớp mac và giao diện mạng với một ăng-ten, sử dụng để định nghĩa mô hình truyền sóng, nối liền các thành phần cấu thành này và kết nối ngăn xếp đến kênh. Mobilenode bây giờ trông giống nhƣ sơ đồ trong hình sau:

Hình 3.5 Một mobilenode theo chuẩn wireless của CMU Monarch mở rộng cho NS2

Cấu trúc mobilenode sử dụng cho giao thức định tuyến DSR hơi khác so với mobilenode đƣợc trình bày ở trên. Lớp SRNode đƣợc xuất phát từ lớp MobileNode. SRNode không sử dụng địa chỉ phân kênh (demux) hay các phân lớp và tất cả các gói tin nhâ ̣n đƣợc bởi node đƣợc truyền la ̣i cho các tác nhân định tuyến DSR theo mặc định. Tác nhân (Agent) định tuyến DSR hoặc là nhận packets cho chính nó bằng cách điều khiển trên cổng (port) dmux hoặc là chuyển tiếp packets nhƣ trên tuyến nguồn trong tiêu đề hay gửi ra tuyến yêu cầu và tuyến trả lời (reply) cho các packet mới. Mô hình của một SRNode đƣợc biểu diễn trong hình 3.6 dƣới đây

Hình 3.6 Một SRNode theo chuẩn wireless của CMU Monarchmở rộng cho NS2

3.1.8. Tạo sự chuyển động cho Node

Các Mobilenode đƣợc thiết kế để có thể mô phỏng sự di chuyển trong không gian ba chiều. Tuy nhiên cho đến phiên bản 2.35 hiê ̣n nay, tọa độ thứ 3 (trục Z) không đƣợc sử dụng. Đó là vì Mobilenode đƣợc giả định là để luôn trên mô ̣t đi ̣a hình bằng phẳng (flat) với tọa độ trục Z luôn luôn bằng 0. Vì vậy, mobilenode có toạ độ X, Y, Z(=0) và tọa độ đƣ ợc điều chỉnh liên tục khi node chuyển đô ̣ng. 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 này thƣờng tập trung trong một chuỗi các tâ ̣p tin 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 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 kích hoạt bất cứ khi nào vị trí của node ở tại thời gian đƣợc yêu cầu. Quá trình này có thể đƣợc kích hoạt 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 của mô ̣t tâ ̣p tin kịch bản chuyển động sử dụng các phƣơng thức API ở trên , 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 miền mô phỏng với 50 node hoạt động với tốc độ tối đa là 20m/s với thời gian mô phỏng là 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. Sự di chuyển của mobilenode đƣợc thực thi trong C++. Có thể xem các phƣơng pháp trong ~ns/mobilenode.{cc.h}, trong đó có chi tiết quá trình thực thi.

Topo của mobilenode (vùng chuyển độ ng của các nút ma ̣ng ) cần phải đƣợc định nghĩa . Nó cầ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, nhƣ sau:

set topo [new Topography]

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

opt(x) opt(y) là giới hạn theo tru ̣c hoành và tru ̣c tung đƣợc sử dụng trong trình mô phỏng. Quá trình hoạt động của mobilenode có thể đƣợc ghi la ̣i 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 ghi la ̣i sau mỗi 0.1 giây.

3.1.9. Ghi lại vết các sự kiện mô phỏng (vào file *.tr, *.nam)

Vết các sƣ̣ kiê ̣n liên quan đến viê ̣c truyền các gói tin trên tất cả các liên kết có thể đƣợc ghi vào tê ̣p (file) test.out (hoặc out.tr nhƣ trong ns-simple-trace.tr)

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

Vết các gói trên tất cả các liên kết trong định dạng nam $ns namtrace-all [open test.nam w]

Cũng có thể chỉ “trace” một số tham số, thí dụ: $ns trace-queue $n0 $n1

$ns namtrace-queue $n0 $n1

Một phần của tài liệu Giao thức MAC điều khiển công suất trong mạng AD HOC (Trang 36)

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

(61 trang)