Multicast API

Một phần của tài liệu nghiên cứu chương trình mô phỏng mạng ns và các công cụ hỗ trợ, và cơ sở để áp dụng các bài toán ứng dụng trên ns để đánh giá tính khả thi và tối ưu của chúng trên mạng (Trang 59 - 62)

1. Mô phỏng các gói tin UDP/TCP

3.1 Multicast API

Multicast forwarding yêu cầu sự cải tiến các node và link trong tô pô.Do đó, người sử dụng phải định rõ các yêu cầu multicast tới lớp Simulator trước khi tạo ra tô pô>Sau đây là một trong hai cách:

set ns [new Simulator -multicast on]

hay

set ns [new Simulator] $ns multicast

Khi các mở rộng multicast được kích hoạt, các node sẽ được tạo ra với các classifiers và các replicators thêm vào cho multicast forwarding, và các link chứa các thành phần để gán nhãn giao diện vào cho các gói tin vào một node.

Một cơ chế multicast routing là cơ chế trong đó cây phân tán multicast đwocj tính toán trong mô phỏng .NS hỗ trợ 3 cơ chế tính toán định tuyến multicast :centralised, dense mode(DM) hay shared tree mode(ST).

Phương thức mrtproto{} trong lớp Simulator đặc tả cơ chế tính toán định tuyến cho centralised multicast routing, hay giao thức định tuyến mô tả chi tiết đưowcj dùng

Sau đây là ví dụ khai báo hợp lệ cho multicast routing trong ns:

set cmc [$ns mrtproto CtrMcast] ; # specify centralized multicast for all nodes

;# cmc is the handle for multicast protocol object

$ns mrtproto DM ; # specify dense mode multicast for all nodes

$ns mrtproto ST ; # specify shared tree mode to run on all nodes

Trong ví dụ trên CtrMcast trả về một handle có thể đưqợc dùng dể thêm cấu hình của centralised multicast routing.Các giao thức routing khác sẽ trả về chuỗi Null.Tất cả các node trong tô pô sẽ chạy instance cả cùng một giao thức.Các giao thức định tuyến multicast có thể chạy trên một node, nhưng trong trường hợp này người dùng phải định rõ giao thức nào sẽ đi vào giao diện.Khi đó mrtproto-iifs{} được dùng.

Các agent dùng thủ tục instance join-group{} và leave-group{}, trong lớp Node để nhập và rời các nhóm multicast.Các thủ tục này có hia tham số bắt buộc, đầu tiên là các ID của agent tương ứng và tham số thứ hai xác định địa chỉ nhóm.

Sau đây là một ví dụ cấu hình multicast

set ns [new Simulator -multicast on] ; # enable multicast routing

set group [Node allocaddr] ; # allocate a multicast address

set node0 [$ns node] ; # create multicast capable nodes

set node1 [$ns node]

$ns duplex-link $node0 $node1 1.5Mb 10ms DropTail

set mproto DM ; # configure multicast protocol

set mrthandle [$ns mrtproto $mproto] ; # all nodes will contain multicast protocol agents

set udp [new Agent/UDP] ; # create a source agent at node 0

$ns attach-agent $node0 $udp

set src [new Application/Traffic/CBR] $src attach-agent $udp

$udp set dst_addr_ $group $udp set dst_port_ 0

set rcvr [new Agent/LossMonitor] ; # create a receiver agent at node 1

$ns attach-agent $node1 $rcvr

$ns at 0.3 "$node1 join-group $rcvr $group" ; # join the group at simulation time 0.3 (sec)

3.1.1 Cấu hình giám sát Multicast

NS hỗ trợ một module giám sát multicast có thể ghi vết các hoạt động gói tin do người dùng định nghĩa.Module tính toán số lượng gói tin đi qua định kỳ và instance ra kết quả ra các file đặc tả.

attach{} kích hoạt một module giám sát để instance kết quả ra file

trace-topo{} ghép module giám sát vào các link

filter{} cho phép tính toán các packet header, trường trong header và giá trị của trường đó. Gọi filter{} lặp lại vớikết quả trong phép AND ở điều kiện lọc

print-trace{} Thông báo module giám sát để bắt đầu kết xuất dữ liệu. ptype() là một mảng toàn cục với tên loại gói tin(xem trong đầu ra của trace-all{}) và ánh xạ tới giá trị tương ứng.Một cáu hình đơn giản để lọc các gói tin CBR trong nhóm như sau:

set mcastmonitor [new McastMonitor]

set chan [open cbr.tr w] ; # open trace file

$mmonitor attach $chan1 ; # attach trace file to McastMoniotor object

$mcastmonitor set period_ 0.02 ; # default 0.03 (sec)

$mmonitor trace-topo ; # trace entire topology

$mmonitor filter Common ptype_ $ptype(cbr) ; # filter on ptype_ in Common header

$mmonitor filter IP dst_ $group ; # AND filter on dst_ address in IP header

Sau đây là một ví dụ đàu ra minh họa định dạng file (time, count): 0.16 0 0.17999999999999999 0 0.19999999999999998 0 0.21999999999999997 6 0.23999999999999996 11 0.25999999999999995 12 0.27999999999999997 12 3.1.2 Cấu hình đặc tả giao thức

Centralized Multicast: centralized multicast là một cơ chế thực hiện rải rác của multicast

tương tự như PIM-SM .Một cây chia sẻ gốc - rooted shared tree Rendezvous Point (RP) đwocj xây dựng cho nhóm multicast.Việc gửi thực sự cũng như việc kết hợp thông điệp ,… để thiết lập trạng thái tại các node là không được mô phỏng.Một agent tính toán tập trung được dùng để tính toán cây forwarding và thiết lập trạng thái multicast forwarding,<S, G> ở các node liên quan khi những receiver mới gia nhập nhóm.Các gói tin dữ liệu từ sender tới nhóm là unicast đối với RP.Chú ý rằng các gói tin dữ liệu từ người gửi là unicast đối với RP thậm chí khi không có receiver đối với nhóm.

Phương thức kích hoạt centralised multicast routing trong mô phỏng là: set mproto CtrMcast ; # set multicast protocol

set mrthandle [$ns mrtproto $mproto]

Thủ tục lệnh mrtproto{} trả về một handle tới đối tượng multicast protocol .Handle này có thể được dùng để điều khiển RP và boot-strap-router (BSR),chuyển đổi các loại tree-types cho một nhóm, từ các cây chia sẻ cho đến các cây đặc tả nguồn và tính toán lại đường định tuyến multicast

$mrthandle set_c_rp $node0 $node1 ; # set the RPs

$mrthandle set_c_bsr $node0:0 $node1:1 ; # set the BSR, specified as list of node:priority

$mrthandle get_c_rp $node0 $group ; # get the current RP ???

$mrthandle get_c_bsr $node0 ; # get the current BSR

$mrthandle switch-treetype $group ; # to source specific or shared tree

$mrthandle compute-mroutes ; # recompute routes. usually invoked automatically as needed

Chú ý rằng khi nào mạng thay đổi hay unicast routing thay đổi,compute-mroutes{} có thể được gọi để tính toán lại multicast routes. Tính năng tính toán lại ngay lập tức của các thuật toán tập trung có thể dẫn đến kết quả ngay trong hời gian định kỳ ngắn.

Dense Mode: giao thức Dense Mode (DM.tcl) là một sự thực thi của giao thức dense–

mode–like .Dựa vào giá trị của biến lớp DM CacheMissMode nó có thể chạy trong một hay hai chế độNếu CacheMissMode được thiết lập là pimdm (mặc định ), PIM-DM giống như luật forwarding sẽ được dùng.Như một lựa chọn, CacheMissMode cóthể được thiết lập là dvmrp (dựa vào DVMRP]). Sự khác nhau chính gữa hai phương thức là DVMRP duy trì quan hệ cha-con giữa các node để giảm số link khi các gói tin dữ liệu được quảng bá.Sự thực thi trên liên kết point-to-point như LAN và thích hợp với sự linh động của mạng (Các link up và down).Một vài node nhận dữ liệu cho một nhóm cụ thể không có các downstream receiver,gửi một prune upstream. Một prune message gây ra upstream node để khởi tạo trạng thái prune ở node

đó.Trạng thái prune ngăn chặn node dó gửi dữ liệu xuôi xuống cho nhóm đó tới node đã gửi thông điệp prune ban đầu trong khi trạng thái đang hoạt động.Trong khoảng thời gian mà trạng thái prune được kích hoạt, được cấu hình thông qua biến lớp DM, PruneTimeout.

Một cấu hình DM điển hình như sau:

DM set PruneTimeout 0.3 ; # default 0.5 (sec)

DM set CacheMissMode dvmrp ; # default pimdm

$ns mrtproto DM

Shared Tree Mode Là chế độ đơn giản ST.tcl, là một phiên bản của giao thức multicast

câychia sẻ - shared–tree multicast protocol. Mảng biến lớp RP_ được đánh chỉ mục bởi nhóm xác định trong đó node là RP đối với nhóm.

Ví dụ:

ST set RP_($group) $node0 $ns mrtproto ST

Khi mô phỏng multicast được khởi tạo, giao thức được tạo ra và cài đặt dóng gói các đối tượng tại node có các multicast sender, mở gói các đối tượng tại các RP và kết nối chúng.Để tham gia một nhóm, một node gửi một thông điệp graft tới RP của nhóm.Để rời khỏi nhóm, nó gửi mộtthông điệp prune message. Giao thức hiện nay không hỗ trợ sư thay đổi động và các LAN.

Bi-directional Shared Tree Mode BST.tcl là một phiên bản của bi–directional shared tree

protocol. Khi ở chế độ cây chia sẻ, các RP phải được cấu hình bằng cách dùng mảng lớp RP_.Giao thức hiện nay không hỗ trợ sư thay đổi động và các LAN

Một phần của tài liệu nghiên cứu chương trình mô phỏng mạng ns và các công cụ hỗ trợ, và cơ sở để áp dụng các bài toán ứng dụng trên ns để đánh giá tính khả thi và tối ưu của chúng trên mạng (Trang 59 - 62)

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

(70 trang)
w