a) Giới thiệu NS-2
NS-2 ( Network Simulator phiên bản 2) là ch−ơng trình mô phỏng mạng theo ph−ơng pháp mô phỏng các sự kiện rời rạc. NS-2 hỗ trợ mô phỏng mạng có dây và không dây, TCP, UDP , các giao thức truyền thông điểm-đa điểm và định tuyến khác,.v.v. NS-2 đ−ợc viết bằng C++ và ngôn ngữ h−ớng đối t−ợng Tcl (Otcl: object-oriented tool command language).
NS-2 có một lịch sử khá dài, bắt nguồn từ các phần mềm REAL của UCB (1989) và NEST của Colombia (1992). Đến năm 1995, NS-2 đ−ợc phát triển trong dự án VINT (Virtual InterNet Testbed hay nền kiểm thử Internet ảo). VINT là dự án hợp tác giữa AT&T Reseach, Lawrence Berkeley National Laboratory, ETH TIK, Xerox PARC, UCB-Berkeley và USC/ISI. Hiện nay, Ns đang tiếp tục đ−ợc phát triển trong các dự án SAMAN và CONSER, cùng với sự hợp tác của nhiều nhà nghiên cứu và ACIRI. Những tổ chức đã đóng góp đáng kể vào NS-2 là UCB Daeledus, UMU Monarch và Sun MicroSystems.
So với các phần mềm mô phỏng mạng khác, NS-2 có những −u thế sau: - NS-2 có mã nguồn mở miễn phí.
- NS-2 có kiến trúc mở, tạo điều kiện thuận lợi cho việc mở rộng
- NS-2 đ−ợc phát triển từ các phần mềm nổi tiếng trên thế giới nh− REAL, NEST nên nó có những điểm mạnh và đã khắc phục đ−ợc những yếu điểm của các phần mềm này
- NS-2 hỗ trợ các tính năng cơ bản của mạng IP, từ đó có thể phát triển thêm các phần tử mạng.
- NS-2 có cấu trúc modul, rất thuận tiện cho việc nghiên cứu tìm hiểu và phát triển. Nhìn từ phía ng−ời sử dụng , NS-2 là ch−ơng trình biên dịch mã Otcl đ−ợc liên kết tới th− viện C++ . Các đối t−ợng cơ sở nh− tcp, CBR,..đ−ợc xây dựng trong C++. Đầu vào
NS-2 là tập mã lệnh Otcl , đầu ra là các tập tin mô phỏng tiến trình theo yêu cầu đ−ợc thể hiện trong tập lệnh Otcl.
Hình 3.1: Cấu trúc ch−ơng trình NS-2
Kết quả mô phỏng có thể quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam ( the Network Animator ), bằng đồ thị (sử dụng Xgraph) hoặc có thể đ−ợc xử lý bằng các tập lệnh tuỳ chọn. Với cấu trúc này, việc sử dụng NS-2 trở lên đơn giản hơn nhiều so với sử dụng trực tiếp C++ nh−ng vẫn có đ−ợc những tính năng của C++.
Với những đặc điểm trên, NS-2 thực sự là một công cụ phần mềm hữu ích cho việc học tập, nghiên cứu mạng thông tin, giúp cho việc thực hành mạng trở lên hiệu quả hơn.
b) Cơ chế hoạt động của phần mềm NS-2
Hoạt động của NS-2 đ−ợc chia thành hai phần là phần dữ liệu (đ−ợc xây dựng trong C++) và phần điều khiển (đ−ợc xây dựng trong Otcl). Để giảm thời gian xử lý gói và sự kiện, thời biểu sự kiện và các đối t−ợng thành phần mạng cơ bản trong phần số liệu đ−ợc viết và biên dịch bằng C++. Các đối t−ợng đ−ợc biên dịch này đ−ợc tạo sẵn và đ−ợc liên kết tới Otcl qua bộ thông dịch Otcl. Mỗi đối t−ợng C++ này đ−ợc điều khiển và đ−ợc thiết lập các tham số thông qua một đối t−ợng điều khiển t−ơng ứng trong Otcl. Các đối t−ợng C++ không cần điều khiển hoặc chỉ hoạt động nội tại trong phần C++ thì không cần liên kết đến Otcl. T−ơng tự, cũng có một số đối t−ợng (không nằm trong phần dữ liệu) có thể hoạt động hoàn toàn chỉ trong Otcl. Các đối t−ợng điều khiển trong Otcl đ−ợc ánh xạ 1-1 tới các đối t−ợng cần điều khiển trong C++. Nh− vậy, cấu trúc phân cấp các đối t−ợng này trong hai phần C++ và Otcl là t−ơng tự nhau. Quan hệ giữa C++ và Otcl đ−ợc minh họa trên hình 3.2.
Tập lệnh Otcl
( mã nguồn ) biên dịch Otcl Ch−ơng trình Kết quả mô phỏng
Các th− viện C++
Hình 3.2: Tính đối ngẫu giữa C++ và Otcl
Hình 3.3 chỉ ra kiến trúc NS-2. Trong kiến trúc này, ng−ời sử dụng (không phải ng−ời phát triển NS-2) ở vị trí góc d−ới bên trái. Dữ liệu đầu vào là tập lệnh Otcl đ−ợc phân tích bởi lớp Tcl. Việc thiết lập và chạy mô phỏng trong Tcl sử dụng các đối t−ợng trong th− viện Otcl. Thời biểu các sự kiện và hầu hết các thành phần mạng hoạt động trong C++ và đ−ợc liên kết tới Otcl. Việc này đ−ợc thực hiện bởi lớp tclcl.
Ch−ơng trình NS-2 có nhiều phiên bản chạy trên các hệ điều hành khác nhau và với các yêu cầu cài đặt khác nhau. Trong đồ án này, phiên bản ns-allinone-2.27, chạy trên Windows trong môi tr−ờng Cygwin/X đ−ợc sử dụng để tìm hiểu một số các tính chất của mạng Wireless Sensor. Cygwin/X cung cấp một giao diện ch−ơng trình ứng dụng (API) giống nh− hệ điều hành UNIX trên khuôn dạng Windows do NS-2 không chạy trực tiếp trên Windows.
Hình 3.3: Kiến trúc tổng quan của NS-2
Môi tr−ờng ns - 2 là công cụ hết sức linh hoạt trong việc nghiên cứu các đặc tính của mạng cảm biến không dây (Wireless Sensor network) vì nó có sẵn các mô hình cho mạng ad-hoc không dây, có ràng buộc về năng l−ợng. Trong ns - 2, một mạng Sensor
Thời biểu các sự kiện NS-2 Các thành phần mạng Tcl 8.0 Otcl tclcl
có thể đ−ợc xác định với nhiều tổ hợp các đặc tính nh− thực tế. Môi tr−ờng mạng di động trong ns - 2, cung cấp sự hỗ trợ lẫn nhau giữa các giao thức nh− hình 3.12
Hình 3.4: Các giao thức đ−ợc hỗ trợ trong NS-2 mô phỏng mạng không dây
Với cơ sở này, ta chỉ cần thêm vào NS-2 một số đối t−ợng và thuộc tính để mô phỏng mạng Sensor.