Kiến trúc của bộ mô phỏng NS2

Một phần của tài liệu Đánh giá hiệu suất của giao thức định tuyến trong mạng cảm biến không dây (Trang 65)

Kiến trúc trong ngôn ngữ lập trình

Ngôn ngữ lập trình trong NS2 được phân tách thành 2 phần: ngôn ngữ C++ được sử dụng để triển khai, thực hiện hạt nhân của bộ mô phỏng, bao gồm các giao thức và các thư viện NS2 mở rộng. Ngôn ngữ OTCL được sử dụng để định nghĩa, định cấu hình và điều khiển mô phỏng, bao gồm cả việc lựa chọn các dữ liệu đầu ra,…Các đối tượng được biên dịch trong C++ được tạo sẵn cho bộ thông dịch OTCL và tạo ra sự phù hợp giữa các đối tượng trong OTCL với các đối tượng trong C++. Theo cách đó, các đối tượng điều khiển của C++ được gắn cho OTCL.

Hình bên dưới mô tả về một ví dụ phân cấp đối tượng trong C++ và OTCL. Một điều chú ý trong hình này đó là các đối tượng trong C++ có sự liên kết với OTCL dựng lên một phân cấp, đó là một phân cấp đối tượng OTCL giống như C++.

Hình 3.2: Mối tương quan giữa C++ và OTCL  Kiến trúc tổng quát của NS2

Hình 3.3 bên dưới là kiến trúc tổng quát của NS2. Trong kiến trúc này, người sử dụng (không phải là người phát triển) đứng ở vị trí góc dưới bên trái, thiết kế và chạy các mô phỏng trong TCL sử dụng các đối tượng mô phỏng trong thư viện OTCL. Bộ lập lịch các sự kiện và hầu hết các thành phần của mạng được triển khai trên C++ và

có thể sử dụng qua OTCL thông qua liên kết OTCL được triển khai sử dụng TCLCL. Tất cả các thành phần trên tạo nên bộ mô phỏng NS2 – bộ thông dịch TCL mở rộng với các thư viện mô phỏng.

Hình 3.3: Kiến trúc tổng quát của NS2 .

Một phần của tài liệu Đánh giá hiệu suất của giao thức định tuyến trong mạng cảm biến không dây (Trang 65)