NS-2 (Network Solution 2) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và OTcl. NS-2 mô phỏng các chức năng và giao thức mạng có dây cũng như không dây (ví dụ: các thuật toán định tuyến, TCP, UDP).
Bốn lợi ích lớn nhất của NS-2 phải kể đến đầu tiên là:
Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại
Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng
Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể thực thi được trong thực tế
Khả năng mô phỏng nhiều loại mạng khác nhau
NS-2 là phần mềm mã nguồn mở và chạy ổn định trong cả 2 môi trường Windowns và Linux. NS-2 sử dụng 2 ngôn ngữ lập trình: ngôn ngữ lập trình hệ thống C++ và Ngôn ngữ kịch bản (OTcl - Object oriented Tool Command Language). NS-2 không chỉ hợp cho việc mô phỏng mà cho cả sự giả lập, điều này có nghĩa là nó có thể đưa chương trình mô phỏng vào trong mạng thực tế. Những đối tượng trong chương trình mô phỏng có khả năng đưa các lưu lượng thực vào trong chương trình mô phỏng và đưa một phần lưu lượng trong chương trình mô phỏng vào trong mạng thực tế.
Hạn chế của NS-2 là thêm mới và chỉnh sửa các thành phần là không dễ dàng do cấu trúc của NS-2 đã được định hình sẵn. Việc này có nghĩa là về khả năng kiểm tra các thuật toán hoặc mô phỏng các thuật toán mới của NS-2 không bằng được so
cũng khá chậm. Đối với người mới bắt đầu sử dụng thì cũng rất khó và mất rất nhiều thời gian để tiếp cận phần mềm.