3.4.8. Các công cụ hỗ trợ phân tích và hiển thị kết quả mô phỏng
Với tệp vết ghi lại các sự kiện trong mạng có cấu trúc được định nghĩa rõ ràng, người phân tích có thể xử lý và kết xuất thông tin bằng mọi công cụ có thể, thí dụ các ngôn ngữ lập trình hoặc các phần mềm chuyên dụng. Dưới đây là một số phần mềm và ngôn ngữ thường được sử dụng:
Grep( Global Regular Expression Parser)
Grep một lệnh trong Unix|Linux. Grep là một bộ lọc, nó tìm và hiển thị (hoặc kết xuất kiểu pipling) các dòng trong input có chứa mẫu ký tự (pattern) mà người sử dụng chỉ ra.
Awk
Awk là một ngôn ngữ lập trình được sáng tạo bởi 3 người là Alfred Aho, Peter Weinberger, và Brian Kernighan. Chương trình gawk được tích hợp trong Linux là ứng dụng GNU của ngôn ngữ lập trình Awk. Awk được thiết kế để xử lý thông tin chứa trong file hoặc thông tin do chương trình khác đưa ra truyền cho nó theo kiểu đường ống (pipe). Sức mạnh của Awk được thể hiện ở:
- Hiển thị một phần hay toàn bộ file, có thể trích chọn để hiển thị dòng, cột hoặc trường theo các tiêu chuẩn được chỉ rõ.
- Có thể phân tích văn bản để tính tần xuất các word,..
- Chuẩn bị các báo cáo đưa ra có định dạng, dựa trên các thông tin của file - Lọc văn bản theo một cách thức rất mạnh.
- Thực hiện tính toán trên các thông tin số trong file. Perl (Practical Extraction and Report Language)
Perl là một ngôn ngữ lập trình và là chương trình ứng dụng tự do, được phát triển bởi Larry Wall. Perl đi kèm với các phiên bản của Linux và chính perl cũng được hoàn thiện qua nhiều phiên bản.
Perl là một chương trình ứng dụng rất mạnh, kết hợp các đặc điểm của awk, grep, sed và C. Chương trình viết cho perl thực hiện cũng tương tự như shell script và cũng được gọi là script. Phần mềm soạn thảo GNU Emacs có “perl mode” để soạn thảo perl script.
Gnuplot
Gnuplot có thể chạy trên cả Windows và trên Unix|Linux. Gnuplot có thể nhận input là file văn bản có nhiều cột, khi đó cần chỉ ra 2 cột để lấy số liệu vẽ đồ thị. Gnuplot còn có thể nhận input từ nhiều file và vẽ trên một đồ thị, điều này rất thuận lợi cho việc so sánh các kết quả cần nghiên cứu.
Xgraph
Xgraph là phần mềm ứng dụng để vẽ đồ thị, luôn luôn đi kèm với NS. Input của nó là một hoặc một số file dạng văn bản, trên mỗi dòng là cập số liệu có dạng “x y” cho một điểm trên đồ thị.
Trace graph
Tác giả của Trace graph là Jaroslaw Malek. Đây là một phần mềm mã nguồn mở tự do, có khả năng phân tích và hiển thị kết quả mô phỏng khá tốt (input là tệp vết).
CHƢƠNG 4. KẾT QUẢ THỰC NGHIỆM ĐÁNH GIÁ HIỆU SUẤT GIAO THỨC ĐỊNH TUYẾN CỦA MẠNG WSN
4.1. Phát biểu bài toán
Mục tiêu chính trong các mạng không dây thường là cung cấp được chất lượng dịch vụ và hiệu quả băng thông lớn khi các nút mạng di chuyển. Ngược lại, trong mạng WSN, việc bảo tồn năng lượng được coi là quan trọng hơn so với hiệu suất của mạng. Do đó, các giao thức định tuyến được thiết kế cho các mạng truyền thống hiện nay không áp dụng được cho các mạng WSN.
Trong mạng WSN, nguồn năng lượng đa phần được lấy từ pin nên rất hạn chế. Do đó năng lượng cần phải được sử dụng một cách có hiệu quả. Chính vì vậy, một trong những mục tiêu quan trọng nhất của các giao thức định tuyến cho mạng WSN là phải lựa chọn con đường đi tốt nhất sao cho giảm thiểu được tổng năng lượng cần thiết để định tuyến các gói tin trên mạng và tối đa hóa thời gian sống của tất cả các nút. Mặt khác, các giao thức định tuyến này còn phải có khả năng tập trung và tổng hợp dữ liệu hiệu quả, phân phối tiêu hao năng lượng đồng đều để tránh hiện tượng thắt nút cổ chai ở một hay một số vị trí cụ thể.
Các giao thức định tuyến phân bậc đã được chứng minh là tiết kiệm năng lượng đáng kể và có hiệu suất tốt hơn khi so sánh với các giao thức trong kiến trúc phẳng với phạm vi mạng có kích thước lớn. Ý tưởng chính của các giao thức định tuyến trong loại phân bậc đó là giảm thiểu luồng lưu lượng gửi về BS. Tuy nhiên, quá trình hình thành các nhóm sẽ đòi hỏi thêm các chi phí trong việc cấu thành nhóm, lựa chọn nút đứng đầu và duy trì nhóm. Vì vậy, các phương thức cấu thành nhóm khác nhau cũng sẽ dẫn tới hiệu quả của các giao thức trong nhóm phân bậc cũng khác nhau.
Thông qua đó, tác giả luận văn này thực hiện bài toán đánh giá hiệu suất của giao thức định tuyến trong nhóm phân bậc dựa trên yếu tố nghiên cứu là phương thức cấu thành nhóm. Các giao thức được tác giả lựa chọn làm mô phỏng đó là : LEACH, LEACH-C, Static-Cluster và PEGASIS.
4.2. Các độ đo đƣợc sử dụng để đánh giá
Với bài toán được đặt ra ở trên, tác giả xác định được 3 độ đo chính cần thực hiện để đáp ứng mục tiêu của bài toán, đó là : thời gian sống của mạng, mức năng lượng tiêu thụ và lượng dữ liệu gửi về BS. Trong đó, các độ đo được định nghĩa như sau :
Thời gian sống của mạng được định nghĩa là thời gian mạng tồn tại. Tùy theo các ứng dụng cụ thể mà thời gian mạng tồn tại được tính theo các cách thức khác nhau. Tuy nhiên, trong luận văn này, tác giả định nghĩa thời gian sống của mạng là khoảng thời gian từ khi nút mạng bắt đầu hoạt động cho đến khi nút cuối cùng trong mạng ngừng hoạt động hay nói cách khác nó được biểu diễn là tỷ lệ nút mạng còn sống theo thời gian.
Mức năng lượng tiêu thụ được tính là tỷ lệ tổng năng lượng tiêu thụ của toàn mạng theo thời gian (Tỷ lệ giữa tổng năng lượng tiêu thụ của toàn mạng theo khoảng thời gian mô phỏng)
Lượng dữ liệu gửi về BS được định nghĩa là tỷ lệ lượng dữ liệu được gửi về BS theo thời gian.
4.3. Thực nghiệm mô phỏng
Môi trường sử dụng để đánh giá hiệu năng của các giao thức định tuyến là trên công cụ NS2, phiên bản ns-allinone-2.34, chạy trên hệ điều hành CentOS 5.
4.3.1. Chuẩn bị
Để tiến hành mô phỏng các giao thức đặt ra, tác giả sử dụng phần mở rộng NS cho giao thức LEACH được triển khai trong dự án MIT uAMPS (MIT’s project).