NS (Network Simulator) là bộ mô phỏng mạng theo sự kiện rời rạc được phát triển ở trường đại học Berkely bang California đầu tiên bắt nguồn từ dự án VINT được bộ quốc phòng Mỹ cấp kinh phí phát triển. NS được phát triển từ bộ mô phỏng REAL của S. Keshav từ năm 1989, còn REAL thì bắt nguồn từ bộ mô phỏng NEST. Các phiên bản NS version 2 ra đời sau năm 1997 và từ đó người ta thường gọi bộ mô phỏng là NS-2. NS-2 được viết trên hai ngôn ngữ hướng đối tượng là C++ và OTcl. C++ được sử dụng để xây dựng phần nhân của bộ mô phỏng để đảm bảo tốc độ thực hiện cao và thay đổi. OTcl được sử dụng để xây dựng phần giao tiếp với người sử dụng (shell), giúp người sử dụng dễ dàng thiết lập cấu hình mạng, lựa chọn giao thức truyền thông, thiết lập các nguồn sinh lưu lượng, các mô hình sinh lỗi v.v.
Hình 3.4. Mô hình bộ mô phỏng NS-2
NS-2 là kịch bản hướng đối tượng, bộ thông dịch nó chứa bộ lập lịch các sự kiện (Event Scheduler) và thư viện đối tượng các thành phần mô phỏng mạng (Network Component Object), thư viện module thiết lập mạng. Nói cách khác, người dùng NS lập trình bằng ngôn ngữ kịch bản OTcl lập lịch các sự kiện trên một đồ hình mạng cụ thể sau đó chạy mô phỏng mạng, thông qua trình thông dịch trong NS-2 để đưa kết quả ra 2 loại tệp chính: đó là tệp vết (trace file), có tên mở rộng là *.tr, ghi lại tất cả các sự kiện mạng. Loại tệp thứ hai có tên mở rộng là *.nam, có khuôn dạng tương tự tệp vết, được sử dụng
làm đầu vào cho chương trình hiển thị kết quả mô phỏng dưới dạng đồ hoạ là chương trình NAM.
NS được cải tiến và mở rộng không ngừng, trung bình cứ 6 tháng người ta lại đưa ra một phiên bản mới, trong đó đã sửa chữa các khiếm khuyết được cộng đồng sử dụng phát hiện và bổ sung thêm một số khả năng mô phỏng mới. Phiên bản đầu tiên được giới thiệu và sử dụng rộng rãi là NS-2.1b2, phiên bản mới nhất, tính đến giữa năm 2008 là NS-2.34. Ngày nay, cộng đồng sử dụng NS-2 gồm hàng nghìn trường đại học, viện nghiên cứu, công ty… và hàng vạn người trên thế giới. Các kết quả nghiên cứu bằng NS-2 là đáng tin cậy và được cộng đồng nghiên cứu về mạng thừa nhận.