Là bộ mô phỏng đa giao thức phục vụ cho các nghiên cứu về sự làm việc
của mạng. N S 2 chứa các thư viện phong phú về các mô hình mạng. Khả năng
mô phỏng của NS2 bao gồm cả mạng có dây và không dây.
NS2 còn là phần mềm mã nguồn mở đang được quan tâm và phát triển bởi các nhà nghiên cứu trên toàn thế giới. NS2 được dùng rộng rãi trong việc nghiên cứu MANET, đặc biệt việc mở rộng chức năng mô phỏng MANET là mối quan tâm hàng đầu của của nhóm nghiên cứu MANET, tổ chức IETF [12].
v ề thiết kế chung, NS2 là bộ mô phỏng vận hành theo các sự kiện rời rạc (Discrete Event-Driven Simulator) [17]. Để thực hiện điều này, NS2 sử dụng hàng đợi chứa các sự kiện được sắp xếp theo thứ tự xảy ra.
Để tối ưu hóa việc chạy mô phỏng và mở rộng, NS2 sử dụng mô hình lập trình phân tách, hướng đối tượng gồm hai phần: c++ dùng để phát triển hạt nhân của bộ mô phỏng để làm giảm thời gian xử lý gói tin và các sự kiện là thời gian không tính vào thời gian mô phỏng; OTcl thực hiện việc định cấu hình và điều khiển mô phỏng.
NS2 co thể thỏa mãn các nhu cầu của người nghiên cứu mạng với các hồ trợ sau [19]:
• Khả năng trừu tượng hóa: Người nghiên cứu có thể nghiên cứu các giao thức mạng ở nhiều mức khác nhau.
• Khả năng tương tác mạng thực: Cho phép chương trình mô phỏng đang chạy tương tác với các nút mạng thực sự đang hoạt động.
• Khả năng tạo ngữ cảnh: Đ ể kiểm ch ứ n g các giao thức dưới các điều kiện mạng là rất quan trọng để đạt được các kết quả hợp lệ và có ích. NS2 hỗ trợ khả năng tạo tự động các mẫu lưu lượng, hình trạng mạng phức tạp và các sự kiện động như lỗi liên kết để tạo các ngữ cảnh mạng theo yêu cầu nghiên cứu.
• Khả năng trực quan hóa: Khi nghiên cứu cần các công cụ giúp hiểu được các hành vi phức tạp trong mô phỏng. NAM cho phép người nghiên cứu có thể hiển thị động, trực quan về giao thức và có thể dễ dàng gỡ rối các giao thức.
• Khả năng mở rộng được: NS2 cho phét mở rộng dễ dàng các chức năng mới và do đó cho phép thực hiện các nghiên cứu về các giao thức mới