Kiến trúc của NS-2

Một phần của tài liệu Đánh giá hiệu năng mạng không dây theo chuẩn (Trang 81)

NS là bộ mô phỏng hướng sự kiện viết bằng C++, với một trình thông dịch OTcl (Object Oriented Tool Command Language) giao tiếp với người sử dụng. Để giảm thời gian xử lý gói tin và thời gian xử lý sự kiện, bộ lập lịch sự kiện và các đối tượng mạng cơ bản trong đường truyền dữ liệu được viết và dịch bằng C++. Những đối tượng được biên dịch này sẽ được kết nối tới bộ thông dịch OTcl qua trình liên kết OTcl. Trình liên kết này sẽ tạo ra các đối tượng OTcl tương ứng với mỗi đối tượng trong C++. Các hàm và biến trong đối tượng C++ chuyển thành các hàm và biến trong đối tượng OTcl tương ứng. Do đó, việc điều khiển các đối tượng C++ có thể được thực hiện trong ngôn ngữ mô phỏng OTcl. Các lớp trong C++ được tổ chức dưới dạng cây phân cấp, và tạo ra tương ứng trong OTcl. Hai cây phân cấp này có mối quan hệ chặt chẽ với nhau, với một lớp trong cây phân cấp thông dịch OTcl thì cũng có một lớp tương ứng trong cây phân cấp biên dịch. Đỉnh của cây phân cấp OTcl là TclObject. Người sử dụng tạo ra những đối tượng mô phỏng mới thông qua trình thông dịch OTcl, những đối tượng này được thiết lập tự động thông qua các phương thức được định nghĩa trong lớp TclClass. Chúng ta có thể thay đổi các tham số cho các đối tượng mô phỏng thông qua các phương thức được định nghĩa trong lớp TclObject. (tham khảo tài liệu [29])

Hình 35 Sự tương đồng giữa C ++ và OTcl

NS sử dụng hai ngôn ngữ là vì hai lý do. Thứ nhất, các giao thức mô phỏng yêu cầu một ngôn ngữ lập trình hệ thống có thể làm việc hiệu quả với các thao tác trên byte, các header của gói tin và cài đặt các giải thuật thực hiện trên các tệp dữ liệu lớn. Với nhiệm vụ này thì tốc độ xử lý là quan trọng, còn thời gian thay đổi chương trình và thực hiện mô phỏng ít quan trọng hơn. Thứ hai, phần lớn công việc nghiên cứu về mạng là thay đổi các tham số mô phỏng, thực hiện cấu hình mạng, hoặc thăm dò nhanh một số trường hợp được cho là có khả năng. Trong trường hợp này, thời gian lặp đi lặp lại quan trọng hơn. C++ chạy nhanh hơn nhưng khi thay đổi thì chậm hơn, nên C++ thích hợp cho việc cài đặt chi tiết các giao thức và các đối tượng mạng. OTcl chạy chậm hơn nhưng có thể thay đổi rất nhanh, thích hợp cho việc cấu hình mô phỏng.

Quy trình thực hiện mô phỏng từ góc nhìn ngƣời dùng:

Từ góc nhìn của người dùng, NS là bộ thông dịch script OTcl chứa bộ lập lịch các sự kiện mô phỏng, thư viện đối tượng các thành phần mạng, thư viện mô-đun thiết lập mạng. Để mô phỏng với NS, người nghiên cứu phải viết kịch bản bằng ngôn ngữ OTcl được gọi là chương trình mô phỏng hay kịch bản mô phỏng. Chương trình mô phỏng sẽ khởi tạo bộ lập lịch các sự kiện, thiết lập cấu hình mạng mô phỏng sử dụng các đối tượng mạng và các hàm thiết lập mạng trong thư viện, lập lịch cho các nguồn lưu lượng bắt đầu và kết thúc truyền tin…

Khi mô phỏng kết thúc, NS sinh ra một hay nhiều tệp tin kết quả dưới dạng văn bản chứa chi tiết dữ liệu mô phỏng. Dữ liệu sinh ra trong quá trình thực hiện mô phỏng được sử dụng để phân tích, đánh giá hệ thống mạng, hoặc làm input cho một công cụ hiển thị thông tin mô phỏng như NAM (Network Animator). NAM phân tích dữ liệu và cho thấy thông tin một cách trực quan về thông lượng, các gói bị mất trên mỗi đường truyền, topo mạng dưới dạng đồ họa, ….

Để phân tích, đánh giá được các tham số hiệu suất cần thiết từ các thông tin mà NS kết xuất ra tệp tin vết, người nghiên cứu thường phải dùng thêm một số công cụ dùng để vẽ đồ thị (như XGRAPH, gnuplot,...) và công cụ để tổng hợp các dữ liệu trong các tệp tin vết. Các ngôn ngữ Awk, PERL, hoặc Tcl thường được sử dụng để làm việc này.

4.1.2 Môi trƣờng mô phỏng

Môi trường mô phỏng trong NS-2 được điều khiển thông qua việc sử dụng một kịch bản TCL điều khiển mô phỏng chính. Kịch bản này chứa đầy đủ thông tin chi tiết về các file đầu vào/đầu ra khác nhau cũng như vô số các tham số cụ thể dành cho mô phỏng.

Mã nguồn TCL được chia thành 3 file chính:

- File kịch bản (Scenario File): File kịch bản chứa các mẫu chuyển động của các nút.

- File lưu lượng (Traffic File): Điều khiển lưu lượng giữa các nút trong kịch bản.

- File chương trình chính (Main Program File): File chương trình chính chỉ định các thiết lập chung cho việc thực hiện mô phỏng. Các tham số bao gồm: giao thức nào sẽ được mô phỏng, tên và vị trí của dữ liệu ra sau khi thực hiện mô phỏng (trace file), tên và vị trí của file trực quan hóa (visualization file) (dành cho NAM).

4.1.3 Kịch bản mô phỏng

Trong phần này, tôi giới thiệu mô hình chuyển động của các nút di động, sử dụng công cụ setdest để tạo ra kịch bản theo các tham số mà người dùng chỉ định. Một số tham số như sau:

 Số lượng nút (number of nodes): Số lượng các nút trong kịch bản. Chú ý rằng không phải tất cả các nút này đều thực sự gửi hoặc nhận tin (traffic), điều này được chỉ định bởi file lưu lượng (traffic file).

 Thời gian mô phỏng (simulation time): Thời gian tồn tại (Tuổi thọ) của kịch bản.

 Tốc độ tối đa: Tốc độ chuyển động tối đa của một nút, theo đơn vị m/s.

 Thời gian tạm dừng (pause time): Thời gian mà một nút sẽ ở tại vị trí hiện tại trước khi chuyển động. Tham số này điều khiển tỷ lệ di động (mobility) trong mạng. Thời gian tạm dừng bằng 0 cho biết chuyển động là liên tục; thời gian tạm dừng bằng tổng thời gian mô phỏng sẽ dẫn đến kết quả không có chuyển động nào.

Setdest sử dụng một mô hình điểm đến ngẫu nhiên (random waypoint model), bắt đầu bằng việc các nút “chạy lung tung” một cách ngẫu nhiên trong phạm vi của kịch bản. Mỗi nút chờ trong một khoảng thời gian tạm dừng trước khi chọn ngẫu nhiên một điểm đến (way-point) nào đó. Sau đó, các nút sẽ chuyển động về phía đích đến mới với tốc độ nằm trong đoạn [0, tốc độ tối đa]. Khi các nút đến được đích đến mới của chúng, chúng lại tiếp

tục chờ trong khoảng thời gian tạm dừng, sau đó lặp lại quá trình chuyển động như trên.

Ví dụ về chạy setdest với các thông số sau:

./setdest -n <num_of_nodes> -p <pausetime> -s <maxspeed> -t <simtime>

-x <maxx> -y <maxy> > <outdir>/<scenario-file>

4.1.4 Tệp dấu vết (Trace files)

Dữ liệu ra sau khi mô phỏng với NS-2 thường được lưu trong một tệp, tệp này được gọi là tệp dấu vết (trace file). Tệp dấu vết chứa thông tin về các sự kiện của gói tin xảy ra trong suốt thời gian mô phỏng theo từng tầng: tầng AC, tầng mạng, tầng giao vận.

Sau khi mô phỏng thành công, tệp dấu vết sẽ chứa các thông tin chi tiết về những gì xảy ra và xảy ra khi nào. Có thể thực hiện rất nhiều phân tích khác nhau dựa vào file này.

Như đã nói trước đây, bộ mô phỏng NS-2 là mã nguồn mở. Điều này có nghĩa là trong trường hợp cần thiết, muốn tăng lượng thông tin trong file dấu vết hoàn toàn có thể sửa đổi mã nguồn của NS-2 để thực hiện điều này.

4.2 Triển khai mô phỏng và các kết quả

Để tìm hiểu mạng không dây theo chuẩn IEEE 802.15.3, trong phần này sẽ giới thiệu mục đích mô phỏng, mô hình và các thông số mô phỏng, các phương pháp định tuyến, đồng thời trình bày kết quả mô phỏng, phân tích và đánh giá kết quả thực hiện.

4.2.1 Mục đích mô phỏng

Đánh giá hiệu suất mạng, thông qua các tham số hiệu suất cụ thể, bao gồm: tỉ lệ phân phát gói, Tỉ lệ kết nối thành công, Hiệu suất truyền của chuẩn 802.15.3 với các cơ chế sử dụng trong mạng với trường hợp 2 node. tiếp theo là đánh giá hiệu suất của 802.15.3 cùng với các cơ chế trên trong môi trường đa node để xem xét tác động của yếu tố đa node đến việc hiệu suất thực thi. Cuối cùng là so sánh hiệu suất của chuẩn 802.15.3 so với các chuẩn 802.15.4 và 802.11 để thấy được giá trị của việc sử dụng băng tần siêu rộng (UWB) trong chuẩn 802.15.3 so với các chuẩn cá nhân khác và chuẩn mạng chung.

4.2.2 Mô hình và các thông số mô phỏng a) Mô hình: a) Mô hình:

Định nghĩa các kịch bản: Bao gồm các mô-đun lựa chọn các giao thức định tuyến, các phương thức kết nối, lập lịch các sự kiện ví dụ như khởi đầu trạm điều khiển, trạm làm việc trong mạng, các kiểu lan truyền, hàng đợi, beacon …

Để so sánh hiệu suất thực thi, với mong muốn đánh giá được hiệu suất của chuẩn 802.15.3, bởi vậy tôi thực hiện trên 2 node, bên nhận và bên gửi, sau đó là đưa thêm các node khác để xem tác động của các điểm lên hiệu suất thực thi của chúng.

Hình 37 dưới đây là mô hình được sử dụng trong việc đánh giá hiệu suất. Trong đó các node mạng được đánh số là 0, 1,…,n; node 0 là trạm điều khiển (PNC), các node còn lại là trạm làm việc (DEV). Để tạo ra nguồn lưu lượng UDP, ở node 1 thiết bị sẽ truyền một luồng Video Mpeg-4 đến thiết bị ở trên node 0, Loss Monitor (Giám sát mất mát) có thể giám sát các packet đang được truyền, cũng như các packet bị mất, được cấu hình như sơ đồ sau:

LossMonitor 1 0 ... n UDP Mpeg-4 node Traffic source agent

Hình 37: Mô hình mạng của chuẩn 802.15.3

b)Mô hình hàng đợi

Một hàng đợi đầu ra của node được thực thi như một phần của đối tượng simplex link (liên kết 1 chiều). Các packet ra khỏi hàng đợi sẽ được chuyển đến đối tượng Delay để thực thi trì hoãn liên kết. Các packet bị drop (bị bỏ) khỏi hàng đợi sẽ được gửi đến Agent/Null và bị huỷ tại đây. Cuối cùng, đối tượng Thời gian tồn tại TTL tính giá trị TTL cho từng packet và cập nhật giá trị TTL mới. Hàng đợi trong các mô phỏng này là: Queue/DropTail/PriQueue (Khởi tạo hàng đợi ưu tiên chứa các đỉnh chờ duyệt).

1 0 Simplex Link Queue Link:: entry Delay TTL Agent/Null Hình 38: Mô hình hàng đợi c) Các thông số :

Tỉ lệ phân phát gói (Packet delivery ratio): Là tỉ lệ giữa các gói nhận được

trên gói truyền đi trong phân tầng MAC.

Trễ chặng (Hop delay): Thời gian truyền một gói từ một trạm đến một

trạm láng giềng gọi là một “trễ chặng”, bao gồm t hời gia n t h ự c hiện toàn bộ các quá trình cần thiết (thời gian chờ cũng như là thời gian truyền), Thời gian này được tính trung bình trên toàn bộ quá trình thực hiện từ lúc bắt đầu đến lúc kết thúc thời gian thực hiện mô phỏng. Nó không những được dùng để đo khả năng truyền dữ liệu mà còn là thông số chỉ thị gián tiếp khả năng của tầng MAC. Tầng MAC phải điều khiển các gói từng bước từng bước một. Vì vậy “trễ chặng” càng lớn thì chứng tỏ hiệu quả của MAC càng nhỏ.

Tỉ lệ kết nối thành công (successful association rate): Là tỉ lệ kết nối thành công giữa các trạm làm việc với trạm điều khiển trên tổng số các trạm muốn kết nối với trạm điều khiển.

Hiệu suất truyền (Association efficency): Số lần thực hiện liên kết thành công trên số lượng trung bình mà các trạm dự định truyền.

4.2.3 Thiết lập mô phỏng

Mô hình truyền thông: Các kết nối truyền UDP/MPEG4, UDP/CBR (Constant Bit Rate) được thiết lập giữa các node 0 và 1,..n. Trong đó, node 0 là trạm điều khiển (PNC), các node còn lại là trạm làm việc (DEV). Để tạo ra nguồn lưu lượng UDP, ở node 1 thiết bị sẽ truyền một luồng Video Mpeg-4 đến thiết bị ở trên node 0, Loss Monitor (Giám sát mất mát) có thể giám sát các packet đang được truyền, cũng như các packet bị mất như trên hình 38. Đoạn lệnh thiết lập như sau:

set udp0 [new Agent/UDP] $udp0 set fid_ 1

set vdo0 [new Application/Traffic/MPEG4] $vdo0 set initialSeed_ $vdo_seed

$vdo0 set rateFactor_ $vdo_rate_factor $vdo0 attach-agent $udp0

$ns_ attach-agent $node(1) $udp0 set sink0 [new Agent/LossMonitor] $ns_ attach-agent $node(0) $sink0 $ns_ connect $udp0 $sink0

Đoạn mã trên tạo agent UDP và gắn vào node(1) bằng thủ tục attach-agent. Tạo ra agent LossMonitor, hoạt động như một traffic sink và gắn vào node(0). Hai agent được nối lại bằng phương thức connect.

LossMonitor (Giám sát mất mát) có thể giám sát các packet đang được truyền, cũng như các packet bị mất. Một thủ tục có thể được lập lịch để kiểm tra xoay vòng LossMonitor sau khoảng 0.1 giây và lưu lại thông tin throughput (thông lượng).

Trong hệ thống mô phỏng này, tôi trình bày đến 2 loại lưu lượng là MPG4, CBR khi sử dụng nhiều nút.

- Tốc độ bit cố định CBR

Đối tượng lưu lượng CBR tạo lưu lượng theo tốc độ đã định trước. Packet có kích cỡ nhất định. Mã OTcl để thực thi nguồn lưu lượng CBR như sau:

$cbr($i) set packetSize_ $cbr_pkt_size([expr $i + 1]) $cbr($i) set interval_ $cbr_pkt_interval([expr $i + 1]) $cbr($i) attach-agent $udp([expr $i + $nvdo])

$ns_ at $start_time "$cbr($i) start"

$ns_ at $traffic_end_time "$cbr($i) stop" Các tham số:

• start: bắt đầu gửi packet theo các tham số cấu hình • stop: ngừng gửi packet

• PacketSize_: cỡ cố định của packet được tạo trong mô phỏng này là 500,1000

• rate_: tốc độ truyền.

• interval_: (tuỳ chọn) khoảng cách thời gian giữa các gói 1ms

Giá trị bandwidth (băng thông) là 100Mb. queue_type (kiểu hàng đợi) là: Queue/DropTail/PriQueue (Khởi tạo hàng đợi ưu tiên chứa các đỉnh chờ duyệt).

Môi trường mô phỏng: Môi trường mô phỏng được sử dụng là NS – 2.28, NS-2.1b9. Bộ mô phỏng NS – 2.28 đã được hỗ trợ một vài mô hình mạng không dây, ví dụ như: mạng được thực hiện theo chuẩn IEEE802.11, và IEEE 802.15 WPAN, NS2-1.b9 cho 802.15.3.

Mô phỏng đã được thực hiện trên máy tính để bàn với Intel Pentium IV processor, 1.8GHz, 256RAM, NS - 2.28 và NS-21b9.

Lý do, không sử dụng các phiên bản mới hiện nay như ns-2.34 bởi các chuẩn này chỉ được hỗ trợ trong các phiên bản ns-2.28 (đối với chuẩn 802.15.4) và ns-21b9 (đối với chuẩn 802.15.3), do đó chỉ trong các phiên bản này mới tích hợp một số hàm chức năng và các thông số cần thiết để mô phỏng được 2 chuẩn này, tất nhiên đối với mạng không dây phổ biến 802.11 có thể sử dụng bất kỳ phiên bản mới nào vì các phiên bản của ns-2 đều hỗ trợ các chuẩn không dây chung.

Để đánh giá hiệu suất của chuẩn 802153 chúng ta xem khả năng truyền tải của 802.15.3 qua mô phỏng, đối với chuẩn 802.15.3 chúng có 4 cơ chế cho việc truyền tải mpeg, tạo lịch hàng đợi, ta xem xét đến 4 cơ chế này như sau:

(1) Mô phỏng 1: Mô phỏng mạng 802.15.3 sử dụng bộ lập lịch hàng đợi dạng chuẩn (standard): WRR (Weighted Round Robin).

Hàng đợi theo thuật toán WRR: cơ chế này sử dụng nhiều hàng đợi khác nhau, các hàng đợi đều được phục vụ theo lượt. Điểm mấu chốt của cơ chế này là các hàng đợi được gắn một trọng số khác nhau, số lượng gói tin được phục vụ trong một lượt bằng với trọng số được gán cho hàng đợi đó.

Với mô phỏng 1, ta có các thông số như sau:

- Mô hình tương tự như hình 38 nhưng chỉ gồm có 2 node 0, 1. Trong đó, node 0 là trạm điều khiển (PNC), node 1 là trạm làm việc (DEV). Để tạo ra nguồn lưu lượng UDP, ở node 1 thiết bị sẽ truyền một luồng Video Mpeg-4 đến thiết bị ở node 0.

- Hàng đợi Queue/DropTail/PriQueue (hàng đợi ưu tiên chứa các đỉnh chờ duyệt) chứa lưu lượng UDP truyền luồng Video MPG4 từ nguồn node(1).

- Agent UDP và gắn vào node(1).

- Agent Loss Monitor, hoạt động như một traffic sink và gắn vào node(0). Loss Monitor (Giám sát mất mát) có thể giám sát các packet đang được truyền, cũng như các packet bị mất.

- Giá trị bandwidth (băng thông) và delay (trì hoãn) tương ứng có thể là 100Mb và 0.1ms. NS-2 hỗ trợ nhiều giá trị queue_type (kiểu hàng đợi) như RED, Drop Tail… Trong các mô phỏng này, tôi sử dụng kiểu hàng đợi Drop Tail như hình 39. Như vậy, ở phía Node (0) sẽ nhận được các gói tin từ hàng đợi Queue/DropTail/PriQueue đặt ở bên node (1).

Các tham số:

• start: bắt đầu gửi packet theo các tham số cấu hình là 1ms • stop: ngừng gửi packet traffic_end_time là: 11ms

• PacketSize_: cỡ cố định của packet được tạo trong mô phỏng này là 1Mb.

Một phần của tài liệu Đánh giá hiệu năng mạng không dây theo chuẩn (Trang 81)

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

(107 trang)