Có thể thấy được cấu trúc của NS-2 qua hình vẽ sau [9,15]:
Hình 5.1 Cấu trúc của NS-2
- Đầu vào là kịch bản mô phỏng hay chương trình mô phỏng (viết bằng otcl) - Bộ thông dịch hướng đối tượng (Tcl interpreter) với thư viện các sự kiện được lập lịch, các đối tượng mạng…
- Kết quả trả về dùng cho nghiên cứu (sử dụng XGRAPH, GNUPLOT, các ngôn ngữ Awk, Perl hay bộ hiển thị đồ họa mạng mô phỏng NAM (Network Animator)
Để thiết lập và chạy một mô phỏng, người dùng viết kịch bản bằng OTCL để khởi tạo bộ lập lịch sự kiện (Event Scheduler), thiết lập cấu trúc mạng bằng việc sử dụng thư viện các đối tượng mạng, thiết lập các đối tượng phát và thu dữ liệu (các nút mạng, giao thức…), thời gian bắt đầu cũng như kết thúc của việc phát dữ liệu vào mạng. Người dùng có thể lựa chọn chính sách quản lý hàng đợi tại các nút mạng, cũng như đưa các mô hình sinh lỗi vào các đường truyền. Hình sau là kiến trúc tổng thể của NS-2.
Hình 5.2 Kiến trúc của NS-2
Trong bộ chương trình mô phỏng mạng NS-2, chương trình mô phỏng NS-2 là thành phần chính, được tích hợp các mô hình lưu lượng hay được sử dụng trong nghiên cứu. Các ứng dụng phổ biến khác cũng được tích hợp trong NS-2 như WEB, FTP, Telnet… Các giao thức như TCP, UDP, SCTP cũng được NS-2 hỗ trợ rất tốt. Nhiều thuật toán định tuyến phổ biến trong các mạng có dây
và không dây cũng như các môi trường vật lý khác nhau đã và sẽ được đưa vào bộ mô phỏng NS-2.
Thành phần thứ hai là các công cụ hiển thị thực quan NAM và XGRAPH. Nam là công cụ hiển thị cho phép người dùng thấy được hình ảnh trực quan của các đối tượng tham gia mô phỏng cũng như các hoạt động cụ thể của chúng, sự chuyển động của các gói số liệu trên mạng. XGRAPH là một ứng dụng có khả năng vẽ đồ thị trong không gian hai chiều, dựa trên dữ liệu nhận vào từ các file dạng text, do chương trình mô phỏng sinh ra. Người nghiên cứu thường sử dụng XGRAPH để hiển thị các kết quả nhận được dưới dạng đồ thị và các kết quả này có thể được lưu lại phục vụ cho các chương trình khác. NAM và XGRAPH đều sử dụng tệp vết (trace file) làm input, là tệp chứa thông tin vết các sự kiện trong thời gian tiến hành chạy mô phỏng. Ngoài ra, người dùng có thể dùng các công cụ khác như các ngôn ngữ Awk, Perl hoặc Tcl để xử lý tệp kết quả này phục vụ cho mục đích nghiên cứu [5,9,15,16].