Tổng quan chƣơng trình mô phỏng mạng NS2

Một phần của tài liệu Giải pháp đảm bảo chất lượng dịch vụ trên mạng IP, đánh giá và so sánh hiệu quả đảm bảo QoS của Diffserv và Intserv (Trang 68)

4.2.1.1 Giới thiệu chung

NS (Network Simulator) là hệ thống mô phỏng mạng, đặc biệt là các giao thức điều khiển hoạt động của mạng, phát triển tại đại học Berkeley và viện công nghệ thông tin ISI (Information Science Institute), có khả năng mô phỏng nhiều kiểu mạng IP khác nhau. Nó mô phỏng việc thực hiện các giao thức mạng nhƣ TCP, UDP, các nguồn dữ liệu FTP, Telnet, Web, CBR và VBR, có cơ chế quản lí hàng đợi router nhƣ DropTail, RED và CBR.

NS2 là một bộ mô phỏng sự kiện rời rạc, có thứ tự, ngƣời sử dụng có thể thay đổi cấu hình và mở rộng mô hình mạng rất dễ dàng bằng cách lập trình thêm vào một số mô-đun chƣơng trình. NS2 dựa trên hai ngôn ngữ: một bộ mô phỏng hƣớng đối tƣợng, đƣợc viết bằng C++, và một bộ thông dịch OTcl (phần mở rộng hƣớng đối tƣợng của Tcl), đƣợc dùng để thực hiện các đoạn mã kịch bản của ngƣời dùng.

Một công cụ khác đƣợc phát hành cùng với NS là Network Animator (NAM). Công cụ này cung cấp hình ảnh đồ họa về sự chuyển động của các nút trong mạng mô

phỏng và truyền thông giữa chúng. Đây là một công cụ rất có ích để tìm lỗi trong mã nguồn của giao thức.

Trong thí nghiệm mô phỏng của luận văn, chúng tôi sử dụng công cụ NS2 phiên bản NS - 2.34.

4.2.1.2 Mô hình NS2

Dƣới góc độ của ngƣời dùng, một hệ thống mô phỏng NS2 đƣợc mô hình hóa nhƣ sau:

Hình 4.1. Mô hình NS2 đơn giản

Từ mô hình trên có thể thấy, NS2 sử dụng ngôn ngữ Otcl với thƣ viện bao gồm các đối tƣợng: Bộ lập lịch các sự kiện; thƣ viện đối tƣợng các thành phần mạng và các modul thiết lập mạng. Nói cách khác, để sử dụng NS2, ta phải lập trình trên ngôn ngữ Otcl. Để cài đặt và chạy chƣơng trình mô phỏng mạng bằng NS, ta phải viết Script trên ngôn ngữ Otcl, lập lịch cho các sự kiện, thiết lập cấu hình mạng (topo mạng) bằng cách sử dụng các đối tƣợng thành phần mạng, triệu gọi các hàm thƣ viện, báo cho các nguồn dữ liệu biết khi nào thì bắt đầu và kết thúc việc truyền gói tin trên mạng. Khi muốn tạo một đối tƣợng mạng mới, có thể viết mới một đối tƣợng hoặc bằng cách liên kết các đối tƣợng mạng đã có sẵn trong thƣ viện. Việc gắn kết đối tƣợng tạo nên đối tƣợng mới chính là điểm mạnh của NS2.

NS2 sử dụng cả ngôn ngữ C++ và ngôn ngữ Otcl. NS2 hỗ trợ cấu trúc lớp kiểu phân cấp trong C++ (đƣợc gọi là cấu trúc lớp biên dịch), và một cấu trúc lớp tƣơng tự trong ngôn ngữ Otcl (gọi là cấu trúc lớp thông dịch). Hai cấu trúc lớp phân cấp này có quan hệ chặt chẽ với nhau, dƣới góc độ ngƣời sử dụng (không phải ngƣời lập trình phát triển NS), có tƣơng ứng 1-1 giữa lớp trong cấu trúc lớp biên dịch và lớp trong cấu trúc lớp thông dịch Sơ đồ sau là ví dụ về sự phân cấp trong C++ và Otcl:

Mỗi ngôn ngữ đƣợc sử dụng với mục đích riêng. Otcl có thể đƣợc sử dụng: - Trong việc cấu hình, cài đặt và các công việc thực hiện “một lần”

- Chỉnh sửa các đối tƣợng C++ đã có sẵn Và sử dụng C++ cho:

- Khi làm các công việc đòi hỏi xử lý từng gói tin của luồng dữ liệu - Khi phải thay đổi các hành vi của các lớp C++ đã tồn tại

Có thể hình dung tổ chức của NS qua sơ đồ sau:

Hình 4.3. Kiến trúc của NS

Sơ đồ kiến trúc của NS, nói chung có thể coi ngƣời dùng nhƣ đang đứng ở góc dƣới bên trái, thiết kế và chạy hệ mô phỏng bằng ngôn ngữ Tcl và sử dụng các đối tƣợng Otcl trong thƣ viện. Bộ lập lịch các sự kiện và hầu hết các đối tƣợng thành phần mạng đều đƣợc viết bằng C++, và có thể triệu gọi từ Otcl thông qua giao tiếp tclcl, cả hệ thống kết hợp lại thành NS.

Sơ đồ mô hình NS đơn giản cũng chỉ ra, khi kết thúc quá trình mô phỏng, ns có thể sinh ra một hay nhiều text file chứa số liệu chi tiết phục vụ cho việc phân tích quá trình mô phỏng, hoặc cũng có thể là đầu vào cho hệ mô phỏng bằng đồ hoạ (Network Animator : NAM).

Hình 4.4 sẽ mô tả sự hoạt động của NS thông cua 3 mức, nhƣ chúng ta thấy có mức khung cảnh, mức Script và cuối cùng là ngôn ngữ C++. Tất cả những công việc của NS đều thông qua các Script của NS để gọi các hàm của C++ ở mức dƣới cùng.

4.2.1.3 Cấu trúc của tệp bám vết

Dữ liệu ra sau khi mô phỏng với NS-2 thƣờng đƣợc lƣu trong một tệp, tệp này đƣợc gọi là tệp dấu vết (trace file). Tệp dấu vết chứa thông tin về các sự kiện của gói tin xảy ra trong suốt thời gian mô phỏng theo từng tầng: tầng MAC, tầng mạng, tầng giao vận.

Khi bám vết trong một tệp ASCII đầu ra, tệp bám vết có tên mở rộng .tr đƣợc tổ chức thành 12 trƣờng. Ý nghĩa của các trƣờng là:

Hình 4.5. Các trường của tệp bám vết

1. Trƣờng đầu tiên là kiểu sự kiện. Đƣợc đƣa ra bằng một trong 4 biểu tƣợng r, +, -, d lần lƣợt tƣơng ứng với nhận (ở đầu ra của kênh truyền), đã xếp vào hàng, đã ra khỏi hàng và bị loại.

2. Đƣa ra thời điểm xảy ra sự kiện

3. Đƣa ra nút đầu vào của kênh truyền mà sự kiện xảy ra ở đó 4. Đƣa ra nút đầu ra của kênh truyền mà sự kiện xảy ra ở đó 5. Đƣa ra kiểu gói tin (nhƣ CBR hay TCP)

6. Đƣa ra kích thƣớc gói tin 7. Một vài cờ

8. Đây là mã nhận dạng luồng (fid) IPv6 mà một ngƣời sử dụng có thể đặt cho môic dòng ở tập lệnh Otcl đầu vào.

9. Địa chỉ nguồn đƣa ra dƣới dạng “node.port” 10. Địa chỉ đích.

11. Số thứ tự gói tin của giao thức lớp mạng. 12. Mã nhận dạng duy nhất của gói tin.

4.2.1.4 Nguồn phát sinh lưu lượng

NS hỗ trợ bốn loại nguồn phát sinh lƣu lƣợng [18]:

1. EXPOO_Traffic: tạo lƣu lƣợng dựa vào một phân phối On/Off theo hàm mũ. Các gói tin đƣợc gửi đi với tốc độ xác định trong suốt quãng thời gian on, và không có gói tin nào đƣợc gửi trong khoảng thời gian off. Khoảng thời gian on và off đƣợc tạo ra theo phân phối hàm mũ. Kích thƣớc các gói tin không thay đổi.

2. POO_Traffic: tạo lƣu lƣợng dựa vào phân phối On/Off Pareto. Loại này tƣơng tự phân phối theo hàm mũ trừ khoảng thời gian on/off đƣợc thực hiện theo phân phối pareto.

3. CBR_Traffic: tạo lƣu lƣợng với tốc độ không đổi đƣợc định sẵn. Kích thƣớc gói tin là cố định nhƣng có thể chọn các giá trị khác nhau. Ngoài ra, một bộ tạo số

ngẫu nhiên có thể đƣợc kích hoạt, để thay đổi khoảng thời gian các gói tin khởi hành trong một phạm vi nhất định.

4. TrafficTrace: là nguồn lƣu lƣợng đƣợc ghi lại dƣới dạng vết của một nguồn lƣu lƣợng đến từ mạng thật.

Một phần của tài liệu Giải pháp đảm bảo chất lượng dịch vụ trên mạng IP, đánh giá và so sánh hiệu quả đảm bảo QoS của Diffserv và Intserv (Trang 68)