Chương 4. ĐÁNH GIÁ BẰNG MÔ PHỎNG ẢNH HƯỞNG CỦA SỰ CHUYỂN ĐỘNG CỦA CÁC NÚT MẠNG ĐẾN HIỆU SUẤT CỦA MỘT SỐ GIAO THỨC ĐỊNH TUYẾN 4.1. Xác định các tham số hiệu suất cần đánh giá và cách thức phân tích kết quả mô phỏng 4.1.1. Các tham số hiệu suất cần đánh giá
Hiệu suất là khái niệm chỉ độ đo công việc mà hệ thống thực hiện được. Đối với lĩnh vực nghiên cứu mạng máy tính, hiệu suất bao gồm các độ đo thông dụng như: tính sẵn sàng, thông lượng, độ trễ và thời gian đáp ứng... Do còn nhiều giới hạn về tài nguyên nên các giao thức định tuyến trong mạng MANET cần phải đảm bảo việc sử dụng hiệu quả các tài nguyên hạn chế này. Chúng tôi sử dụng các độ đo sau để đánh giá hiệu suất hoạt động của các giao thức định tuyến khi các nút mạng thay đổi về hướng và tốc độ di chuyển:
-
Tỷ lệ phân phát gói tin thành công: Là tỷ lệ giữa số gói tin được phân phát thành công tới đích so với số gói tin được gửi đi nguồn phát.
-
Thời gian phản ứng của các giao thức định tuyến: Là thời gian tính từ thời điểm nút nguồn có nhu cầu truyền tới khi bắt đầu truyền dữ liệu.
-
Thông lượng: Là tổng dung lượng dữ liệu truyền đến đích thành công trong 1 đơn vị thời gian (Kbps,…).
4.1.2. Cách thức phân tích kết quả mô phỏng của NS-2 4.1.2.1. Cấu trúc tệp vết
Tệp vết là file dạng văn bản (text), mỗi dòng như một bản ghi (record), có cấu trúc như nhau, bao gồm một số trường phân cách nhau bởi ký tự trống (mã ASCII bằng 32). Cấu trúc một dòng của tệp vết thường có dạng:
r 160.093884945 _6_ RTR --- 5 tcp 1492 [a2 4 6 800] ------- [36:0 16777984:0 31 16777984] [1 0] 2 0
Tên các trường của một dòng tệp vết trên là: Event, Time, Node ID, Trace Name, Reason, Event Identifier, Packet Type, Packet Size, [Time To Send Data, Destination MAC Address, Source MAC Address, Type (ARP, IP)]. Ý nghĩa của các trường được giải thích tại bảng 4.
Bảng 3: Cấu trúc tệp vết
Event
|
Type
|
Value
|
Ý Nghĩa
|
Wireless Event
s: Send
r: Receive
d: Drop
f: Forward
|
%.9f %d (%6.2f %6.2f) %3s %4s %d %s %d [%x %x %x %x]
%.9f _%d_ %3s %4s %d %s %d [%x %x %x %x]
|
double
|
Time
|
Thời gian
|
int
|
Node ID
|
Chỉ số của nút
|
double
|
X Coordinate
|
Tọa độ trục x – Chỉ lưu lại nếu được log lại vị trí
|
double
|
Y Coordinate
|
Tọa độ trục y – Chỉ lưu lại nếu được log lại vị trí
|
string
|
Trace Name
|
Tên vết như: RTR, AGT,..
|
string
|
Reason
|
Lý do tạo ra sự kiện
|
int
|
Event Identifier
|
Số thứ tự gói tin
|
string
|
Packet Type
|
Kiểu gói tin: TCP, UDP, ACK
|
int
|
Packet Size
|
Kích thước gói tin
|
hexadecimal
|
Time To Send Data
|
Thời gian trông đợi gói tin được gửi xuống kênh truyền
|
hexadecimal
|
Destination MAC Address
|
Địa chỉ MAC của nút đích
|
hexadecimal
|
Source MAC Address
|
Địa chỉ MAC của nút nguồn
|
hexadecimal
|
Type (ARP, IP)
|
Kiểu của trường MAC
VD: 800 ETHERTYPE_IP
|
Phụ thuộc vào kiểu của gói tin mà cấu trúc tệp vết còn có thêm một số trường sau: ------- [Source IP Address: Source Port Number, Destination IP Address: Destination Port Number, TTL Value, Next Hop Address, If Any], [Sequence Number, Acknowledgment Number], Number Of Times Packet Was Forwarded, Optimal Number Of Forwards. Ý nghĩa của các trường này được giải thích tại bảng 5 bên dưới.
Bảng 4: Các trường thêm vào trong cấu trúc tệp vết phụ thuộc vào kiểu gói tin
Event
|
Type
|
Value
|
Ý Nghĩa
|
IP Trace
|
------- [%d:%d %d:%d %d %d]
|
|
int
|
Source IP Address
|
Địa chỉ IP nguồn
|
int
|
Source Port Number
|
Chỉ số cổng nguồn
|
int
|
Destination IP Address
|
Địa chỉ IP đích
|
int
|
Destination Port Number
|
Chỉ số cổng đích
|
int
|
TTL Value
|
Time To Live: Thời gian tồn tại của gói tin
|
int
|
Next Hop Address, If Any
|
Địa chỉ của nút kế tiếp gói tin sẽ chuyể tiếp tới.
|
TCP Trace
|
[%d %d] %d %d
|
|
int
|
Sequence Number
|
Số thứ tự
|
int
|
Acknowledgment Number
|
Số thứ tự của gói biên nhận
|
int
|
Number Of Times Packet Was Forwarded
|
Số lần gói tin được chuyển tiếp
|
int
|
Optimal Number Of Forwards
|
Số chuyển tiếp tối ưu
|
CBR Trace
|
[%d] %d %d
|
|
int
|
Sequence Number
|
Số thứ tự
|
int
|
Number Of Times Packet Was Forwarded
|
Số lần gói tin được chuyển tiếp
|
int
|
Optimal Number Of Forwards
|
Số chuyển tiếp tối ưu
|
Chi tiết các trường phụ thêm vào của các kiểu gói tin khác được nêu trong phần PHỤ LỤC.
4.1.2. Công cụ để phân tích và biểu diễn kết quả mô phỏng . Perl
Ban đầu, Perl (Practical Extraction and Report Language) là một ngôn ngữ lập trình được phát triển cho thao tác văn bản, sau này được phát triển để sử dụng cho một loạt các ứng dụng khác như: quản trị hệ thống, phát triển web, lập trình mạng, giao diện phát triển,…Ưu điểm vượt trội của Perl là nhỏ gọn, dễ sử dụng, hỗ trợ cả lập trình hướng đối tượng (OOP), được xây dựng hỗ trợ xử lý văn bản.
Sử dụng Perl
Để chạy Perl trên Linux, ta dùng lệnh sau:
Viết Script bằng perl, đặt dòng sau lên trên đầu trong Script
Sau đó chạy lệnh:
ví dụ : chmod 755 script.pl
Cú pháp cơ bản của Perl:
Một đoạn code Perl script hay một chương trình đều bao gồm nhiều các statements. Các statements này chỉ đơn giản được viết bằng các kiểu cách đơn giản trong script. Không nhất thiết phải có main() hoặc tương tự.
-
perl statements kết bằng dấu “ ; “
-
Ví dụ: print”Hello, I’m Tu”;
Sử dụng “#” để Comments trong Perl, ví dụ :
GNUPLOT
Gnuplot là một công cụ vẽ đồ thị gọn nhẹ và rất hữu dụng trên Linux. Gnuplot tỏ ra khó dùng lúc ban đầu, tuy nhiên, nếu nắm được các cú pháp cơ bản của nó, chúng ta sẽ thấy đây là một công cụ mạnh mẽ và đầy hiệu quả. Với chức năng tạo script để vẽ, việc tạo hoặc sửa đổi một đồ thị trở nên rất dễ dàng.
Gnuplot có thể nhận vào tệp văn bản (input file) có nhiều cột, lúc ấy cần chỉ ra hai cột cụ thể để lấy dữ liệu vẽ đồ thị. Gnuplot còn có thể nhận vào từ nhiều file và vẽ trên cùng một đồ thị, điều này rất thuận lợi cho việc so sánh và nghiên cứu.
Ví dụ: File đầu vào là: Time_of_connection_setup.data
STT DSDV AODV DSR
0 0,0045 0,6204 0,0333
5 1,1788 1,6365 1,4792
10 5,4950 1,4021 3,8303
15 5,0125 2,3528 3,4793
20 6,9357 1,4003 0,5594
Thiết lập định dạng cho bản vẽ và thực hiện vẽ đồ thị:
Chia sẻ với bạn bè của bạn: |