Hình 3.1 cho ta thấy kiến trúc cơ bản của NS2. Ngƣời dùng sẽ sử dụng lệnh ns cùng với tham số đi kèm là tên file script mô phỏng. Thông thƣờng sau khi chạy mô phỏng, ngƣời dùng sẽ sử dụng file trace đƣợc tạo ra để vẽ đồ thị hoặc tạo mô phỏng trực quan.
Hình 3.1. Kiến trúc cơ bản của NS2
TclCL Đối tượng mô phỏng Đối tượng mô phỏng C++ OTcl Lệnh shell chạy NS2 (ns) Mã mô phỏng Tcl File kết quả mô phỏng - Trace NAM (mô phỏng trực quan) Xgraph (vẽ biểu đồ, đồ thị)
Hai ngôn ngữ chính trong NS2 là C++ và OTcl (Object-Oriented Tool Command Language). Trong khi C++ tạo ra các mô tả bên trong cho các đối tƣợng mô phỏng thì OTcl thiết lập mô phỏng bằng cách liên kết và cấu hình các đối tƣợng cũng nhƣ lập lịch cho các sự kiện rời rạc. C++ và OTcl đƣợc liên kết với nhau bằng TclCL. Một biến trong OTcl ánh xạ vào một đối tƣợng C++ đƣợc gọi là một tham chiếu. Về bản chất, một tham chiếu là một biến chuỗi trong miền OTcl và nó không chứa bất kỳ một hàm nào. Các hàm này đƣợc định nghĩa trong đối tƣợng C++ đƣợc nó ánh xạ tới. Trong miền OTcl, một tham chiếu hoạt động nhƣ một điểm truy cập để tƣơng tác với ngƣời dùng và các đối tƣợng OTcl khác. Thủ tục và biến có thể đƣợc định nghĩa trong một tham chiếu để để thực hiện các tƣơng tác. Chú ý rằng trong một lớp miền OTcl, thủ tục thành viên đƣợc gọi là thủ tụcinstproc và biến thành viên đƣợc gọi là biến instvar.
NS2 cung cấp một số lƣợng lớn các đối tƣợng C++ đã đƣợc xây dựng sẵn. Ta nên sử dụng các đối tƣợng C++ này trong khi thiết lập trình mô phỏng bằng cách sử dụng mã lệnh Tcl (script). Tuy nhiên, những ngƣời dùng cấp cao có thể thấy các đối tƣợng C++ này chƣa phù hợp với nhu cầu của họ. Trong tình huống này, họ cần phải phát triển các đối tƣợng C++ của chính mình và sử dụng giao tiếp cấu hình OTcl để đƣa các đối tƣợng này vào sử dụng.
Sau khi thực hiện một mô phỏng, NS2 kết xuất kết quả dƣới dạng text hoặc mô phỏng trực quan. Để dịch và biểu diễn kết quả mô phỏng trực quan, ngƣời ta sử dụng 2 công cụ là NAM (Network AniMator) và Xgraph. Một phần kết quả dạng text có thể đƣợc trích ra nhằm phục vụ cho các phân tích sâu hơn về kết quả mô phỏng.