Phần mềm NS2(network simulation version 2) là chương trình mơ phỏng mã nguồn mở dành cho mục đích nghiên cứu, thực hiện mạng số liệu dựa trên chuyển mạch gói. Khơng chỉ là cơng cụ mơ phỏng, NS-2 cịn là chương trình có nhiều module hỗ trợ và một thư viện rất tiện ích cho việc mơ phỏng các sự kiện riêng lẻ. NS2 là chương mô phỏng hướng đối tượng được viết bằng hai ngơn ngữ lập trình C++ và OTcl, chúng hỗ trợ chặt chẽ cho nhau.
Hình 5.1. Kiến trúc thư mục cài đặt của NS2 và NAM trong môi trường Linux Trong số các thư mục con của ns-allinone-2.28 thì ns-2 là nơi chứa các file phục vụ cho mô phỏng (cả viết bằng C++ lẫn OTcl). Trong thư mục này, tất cả OTcl code và những kịch bản ví dụ đều chứa trong thư mục gọi là tcl và hầu hết được viết bằng C. Thư mục tcl có những thư mục con, trong số đó có thư mục lib chứa mã nguồn OTcl cho những thành phần cơ bản nhất và quan trọng nhất (agent, node, link, packet, address, routing,…).
Ns-lib. Tcl: Lớp mô phỏng và đa số các định nghĩa chức năng thành phần của nó ngoại trừ LAN, Web, và Multicast được chứa trong file này.
Ns-default. Tcl: Những giá trị mặc định cho các thong số cấu hình cho các thành phần mạng được chứa ở đây. Bởi vì nhiều thành phần mạng được bổ sung bằng C+ +, nên những thông số là những biến C++ tạo ra các giá trị cho OTcl qua chức năng liên kết OTcl.
Ns-packet. Tcl: Thành phần khởi tạo những định dạng header của gói được chứa trong file này. Khi tạo ra một gói header thì phải đăng kí header trong file này để tạo ra những xử lý khởi tạo.
Ở mức độ người sử dụng: Việc mô phỏng bắt đầu bằng việc nắm rõ các câu lệnh tạo đối tượng mơ phỏng từ đó xây dựng các kịch bản mơ phỏng Tcl. Sau khi tạo một kịch bản mô phỏng Tcl, việc chạy chương trình chỉ bằng lệnh trong terminal trong Linux.
TK8.4.5 OTcl tclcl Tcl8.4.5 ns-2.28 nam-1.19 t c l e x te st li b . . . . . . Các ví dụ Các kiểm tra Mã C++ Mã OTcl ns-allinone- 2.28 mca st
Ở mức độ người vừa phát triển vừa sử dụng: Việc phát triển phần mềm bắt đầu từ việc nắm rõ cấu trúc thư mục chính trong NS2 cùng với một số file quan trọng liên quan trọng liên quan đến đối tượng mới cần them vào. Khi người sử dụng tạo ra một chương trình mơ phỏng chạy trên nền NS2 cho riêng mình thì cũng có thể tạo đối tượng riêng cho mình, đó cũng là một ưu điểm của phần mềm NS2 mã nguồn mở.
Kiến trúc liên kết của NS2:
Một bộ phận chính khác trong NS-2 là link. Phần tử kết hợp này gồm ba phần chính: hàng đợi, delay và drophead-object. Hàng đợi quản lý thơng lượng các gói phát trên link. Phần tử delay giả lập trễ khi gói truyền trong link. Và drophead- object quản lý các gói bị rớt từ hàng đợi của link. Cấu trúc của link trong NS-2 được mơ tả như hình 5.2
Hình 5.2. Kiến trúc liên kết của NS2