NS2 là phần mềm mô phỏng mạng đƣuo ̣c điều khiển theo các sự kiện riêng rẽ hƣớng đối tƣợng, đƣợc phát triển tại đại học Califonia, Berkely. NS2 viết bằng ngôn ngữ C++ và OTcl. Trong đó, C++ dùng để viết các thành phần cốt lõi , ít cần phải thay đổi , cần hoa ̣t đô ̣ng có tốc đô ̣ ca o, có chức năng xử lí dữ liệu và các thao tác về gói tin. Còn Octl đƣợc sử dụng để định dạng cấu hình mô phỏng, điều khiển mô phỏng. Mục đích của NS-2 là tạo ra một môi trƣờng giả lập cho việc nghiên cứu, kiểm tra, thiết kế các giao thức, các kiến trúc mới, so sánh các giao thức và tạo ra các mô hình mạng phức tạp. Phiên bản thứ nhất của NS đƣợc phát triển vào năm 1995 và phiên bản thứ hai ra đời năm 1996. NS-2 là phần mềm mã nguồn mở có thể chạy đƣợc trong môi trƣờng Linux và Window.
Hình 3.1 Mô hình tổng quan bộ mô phỏng ns2
Xem (hình 3.1) sƣ̉ du ̣ng NS 2, ngƣời dùng l ập trình bằng ngôn ngữ kịch bản OTcl. Ngƣời dùng có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tƣợng mới trong Otcl. Những lớp này khi đó sẽ đƣợc biên dịch cùng với mã nguồn gốc. Kịch bản OTcl có thể thực hiện những việc sau:
+ Khởi tạo Bộ lập lịch sự kiện
+ Thiết lập tô-pô mạng dùng các đối tƣợng Thành phần mạng
+ Báo cho nguồn traffic khi nào bắt đầu truyền và ngƣng truyền packet trong Bộ lập lịch sự kiện
Bộ lập lịch sự kiện trong NS2 thực hiện những việc sau:
+ Tổ chức bộ định thời mô phỏng
+ Huỷ các sự kiện trong hàng đợi sự kiện
Phụ thuộc vào mục đích của ngƣời sƣ̉ du ̣ng đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể đƣợc lƣu trữ vào các tệp vết sự kiện (trace file).
+ Tê ̣p vết cho nam ( file.nam) đƣợc dùng cho công cụ minh hoạ mạng bằng đồ ho ̣a Nam
+ Tê ̣p vết da ̣ng file.tr đƣợc dùng cho ngƣời nghiên cƣ́u tƣ̣ phân tích và kết xuất theo các yêu cầu của mình