Đồ án được thực hiện nhằm 2 mục tiêu chính sau: - Tìm hiểu các thông số đo lường hiệu năng giao thức định tuyến, xây dựng một công cụ đo lường tự động với độ chính xác cao, giao diện dễ
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
──────── * ───────
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
NGÀNH CÔNG NGHỆ THÔNG TIN
PHÁT TRIỂN CÔNG CỤ PHÂN TÍCH HIỆU NĂNG GIAO THỨC ĐỊNH TUYẾN MẠNG KHÔNG DÂY VÀ CÀI ĐẶT GIẢI THUẬT
TÌM ĐƯỜNG GOAL TRÊN NS2
Sinh viên thực hiện : Giáo viên hướng dẫn:
HÀ NỘI 05 – 2013
Trang 2LỜI CẢM ƠN
Trước tiên con xin cảm ơn bố mẹ và anh trai Bùi Thái Sơn đã vất vả chăm sóc, độngviên, tạo mọi điều kiện để con có thể hoàn thành đồ án tốt nghiệp này
Em xin gửi lời cảm ơn chân thành đến các thầy cô giáo Viện Công Nghệ Thông Tin
và Truyền Thông đã tận tình giảng dạy chỉ bảo em trong quá trình học tập Nhữngkinh nghiệm các thầy cô truyền thụ là hành trang tốt cho em có thể vững bước trêncon đường tương lai
Em xin cảm ơn sâu sắc đến TS Nguyễn Khanh Văn, ThS Nguyễn Phi Lê đã giúp
đỡ em rất nhiều trong quá trình hoàn thành đồ án tốt nghiệp Phương pháp nghiêncứu, suy nghĩ, giải quyết vấn đề của thầy cô là những kinh nghiệm quý báu mà em
sẽ luôn ghi nhớ, và duy trì thực hiện
Cảm ơn các anh, các bạn trong phòng bảo mật, Công ty An Ninh Mạng Bkav đã tạođiều kiện thuận lợi cho em trong thời gian thực hiện đồ án
Cuối cùng, xin gửi lời cảm ơn đến tập thể lớp Công Nghệ Phần Mềm K53, các bạn
bè đã quan tâm, đóng góp ý kiến và giúp đỡ tôi trong quá trình học tập, nghiên cứu
và hoàn thành đồ án tốt nghiệp này
Hà Nội, ngày 29 tháng 5 năm 2013
Bùi Văn Trường
Trang 3MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
LỜI CẢM ƠN 3
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 7
ABSTRACT OF THESIS 8
DANH MỤC HÌNH ẢNH 9
DANH MỤC BẢNG BIỂU 11
DANH MỤC TỪ VIẾT TẮT 12
PHẦN I: ĐẶT VẤN ĐỀ 13
CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 13
1.1 Mạng cảm biến không dây 13
1.2 Mô phỏng, giả lập mạng 13
1.2.1 Tầm quan trọng của quá trình mô phỏng 13
1.2.2 Mô phỏng mạng 14
1.3 Tổng quan về bộ công cụ hỗ trợ mô phỏng WiSSim 15
1.4 Giới thiệu đề tài 16
1.4.1 Vấn đề đặt ra 16
1.4.2 Lựa chọn giải pháp 18
1.4.3 Tóm tắt kết quả đã thực hiện được 18
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 19
2.1 NS2 19
2.1.1 Giới thiệu chung 19
2.1.2 Kiến trúc NS2 20
2.2 Thông tin file theo vết (trace file) của hệ thống 23
PHẦN II CÁC KẾT QUẢ ĐẠT ĐƯỢC 28
CHƯƠNG 3 XÂY DỰNG BỘ PHÂN TÍCH DỮ LIỆU HIỆU NĂNG GIAO THỨC ĐỊNH TUYẾN (ANALYZER) 29
3.1 Giới thiệu công cụ phân tích WiSSim Analyzer 29
3.1.1 Quá trình phân tích hiệu năng 29
3.1.2 Giới thiệu chung về WiSSim Analyzer 29
3.1.3 Vai trò của WA 30
3.2 Các thông số về hiệu năng mạng cảm biến không dây 30
3.2.1 Thời gian ngủ của nút mạng (Sleep period) 30
3.2.2 Thông lượng giữa 2 nút mạng (end-to-end data throughput) 31
Trang 43.2.3 Thời gian trễ truyền tin giữa 2 nút mạng(Delay) 31
3.2.4 Hiệu suất truyền tin (Efficency) 31
3.2.5 Hop-count trung bình (Average hop-count) 31
3.2.6 Năng lượng (Energy) 32
3.2.7 Độ dài hàng đợi gói tin còn lại của nút (Buffer queue length) 32
3.2.8 Thời gian sống của mạng (network lifetime) 32
3.3 Mô hình hóa yêu cầu 32
3.3.1 Quá trình phân tích các thông số 32
3.3.2 Yêu cầu chức năng xem tổng thể mạng 35
3.4 Công nghệ và thư viện hỗ trợ phát triển 35
3.4.1 Qt framework 35
3.4.2 Thành phần đồ họa trong Qt framework 35
3.4.3 Công nghệ trích xuất file excel, cvs từ ứng dụng Qt 36
3.4.4 Công nghệ lưu lại dữ liệu làm việc 37
3.4.5 Công nghệ vẽ biểu đồ 2D, 3D 38
3.5 Giải pháp thiết kế 40
3.5.1 Thiết kế tổng thể 40
3.5.2 Thiết kế module phân tích 41
3.5.3 Thiết kế module vẽ biểu đồ 42
3.5.4 Thiết kế module trích xuất dữ liệu 43
3.5.5 Thiết kế chức năng xem tổng thể mạng 43
3.6 Đặc tả các ca sử dụng 44
3.7 Thiết kế 51
3.7.1 Thiết kế ca sử dụng 51
3.7.2 Thiết kế lớp 53
3.8 Cài đặt 55
3.9 Kiểm thử 56
CHƯƠNG 4 CÀI ĐẶT VÀ ĐÁNH GIÁ GIAO THỨC ĐỊNH TUYẾN GOAL 57
4.1 Giới thiệu thuật toán GOAL 57
4.1.1 Mục đích của giao thức 57
4.1.2 Điểm mạnh, các vấn đề giải quyết được 57
4.1.3 Một số thuật ngữ được sử dụng 58
4.1.4 Nội dung giao thức GOAL 59
4.2 Giải pháp cài đặt giao thức 60
4.2.1 Cài đặt giải thuật tìm biên hố BOUNDHOLE 61
4.2.2 Cài đặt giải thuật DCC1, DCC2 61
Trang 54.2.3 Cài đặt thuật toán Graham’s scan – tìm đa giác lồi theo hình thức tập trung 61
4.2.4 Cài đặt giải thuật Greedy Forwarding 62
4.2.5 Tích hợp GOAL vào NS2 62
CHƯƠNG 5 THỬ NGHIỆM 63
5.1 Kết quả thử nghiệm 63
5.2 Phân tích các thông số hiệu năng 63
5.3 Đánh giá chung thuật toán 67
PHẦN 3 KẾT LUẬN 68
PHỤ LỤC 69
A Phụ lục Thiết kế 69
B Qt Framework 75
C Phục lục thuật toán 77
D Một số testcase cho WA 80
TÀI LIỆU THAM KHẢO 85
Trang 6TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Mạng cảm biến không dây là một thế hệ mạng mới, với tiềm năng ứng dụng to lớn,
nó đang nhận được sự quan tâm rất nhiều từ cácchuyên gia Một lớp bài toán đặt ra
là phát triển các giao thức định tuyến hiệu quả cho mạng này Để đánh giá đượchiệu quả, cần có bộ thông số chuẩn, và công cụ phân tích giúp so sánh các giao thứcvới nhau
NS2 là nền tảng mô phỏng mạng phổ biến hiện nay Nó có thể đáp ứng được hầuhết các yêu cầu đặt ra với mạng cổ điển như: mạng có dây, mạng không dây thôngthường Tuy nhiên, với các thế hệ mới như: mạng cảm biến không dây, mạng vệtinh, thì các giao thức tìm đường được nó hỗ trợ lại rất ít Do đó, cần có một bộ thưviện giải thuật tìm đường cho mạng cảm biến không dây để người dùng có nhiềulựa chọn hơn khi mô phỏng
Đồ án được thực hiện nhằm 2 mục tiêu chính sau:
- Tìm hiểu các thông số đo lường hiệu năng giao thức định tuyến, xây dựng
một công cụ đo lường tự động với độ chính xác cao, giao diện dễ sử dụng,cung cấp đầy đủ các chức năng phân tích như: tính toán, vẽ biểu đồ, xuất dữliệu nhiều khuôn dạng và hoạt động tốt trên nhiều hệ điều hành
- Tìm hiểu, cài đặt giao thức định tuyến GOAL (Geographic Routing with
Constant Stretch in Large Scale Sensor Networks with Holes) trên nền tảngNS2 Dựa trên cộng cụ xây dựng được, đánh giá hiệu năng của giao thức
Cụ thể hơn, đồ án được chia làm 3 phần như sau:
Phần 1: Gồm hai chương Phần này nêu những vấn đề đặt ra với mạng cảm biến
không dây, và định hướng giải quyết của tác giả
Chương 1: Khái quát chung về mạng cảm biến không dây, quá trình giả lập mạng,
các vấn đề đặt ra và hướng giải quyết
Chương 2: Sơ lược về NS2, thông tin tập tin theo vết định dạng mới.
Phần 2: Nội dung chính của đồ án Phần này nêu lên những kết quả đạt được trong
quá trình thực hiện đồ án, được trình bày trong ba chương 3, 4, 5
Chương 3:Xây dựng công cụ phân tích dữ liệu hiệu năng mạng Analyzer dựa trên
các thông số hiệu năng tiêu chuẩn do tổ chức The Internet Society đưa ra
Chương 4: Cài đặt giao thức định tuyến GOAL trên nền tảng mô phỏng NS2 Đánh
giá chung về thuật toán
Chương 5: Thử nghiệm, phân tích hiệu năng giao thức định tuyến GOAL bằng công
cụ Analyzer
Trang 7Phần 3: Nêu lên những vấn đề giải quyết được, còn tồn tại và hướng đi trong tương
lai của đồ án
ABSTRACT OF THESIS
Wireless Sensor Network is a research field which attracts the concern of many scientists
in over the world because of its important application in real life There is a group of problems in this area, focuses on the routing protocols, in which the researchers use simulation platform to run and evaluate their proposed protocols However, the performance evaluation of a routing algorithm is quite complicated, because there is no toolkit can accomplish most of its requirements.
NS2 is a popular simulation platform, is highly regarded in the research community because of the ease, architecture closely and a large developer commumity But with the new generation networks such as WSN, the NS2 is restricted by the amount of the existing routing protocols, making it difficult for users to compare the different algorithms.
The graduation thesis focuses on two parts as follows:
Trang 8DANH MỤC HÌNH ẢNH
Hình 1 Sơ đồ tổng quan về hệ WiSSim 15
Hình 2 Các công cụ mô phỏng mạng được sử dụng trong các bài báo của ACM (2000 – 2004) 20
Hình 3 Kiến trúc cơ bản của ns2 21
Hình 4 Cấu trúc phân cấp ns2 22
Hình 5 Ví dụ về chuỗi sự kiện trong mô phỏng theo sự kiện 23
Hình 6 Trace file 27
Hình 7 Kiến trúc Graphics View framework 36
Hình 8 Đồ thị kết quả của gnuplot 39
Hình 9 Biểu đồ được tạo bởi qcustomplot 40
Hình 10 Thiết kế tổng thể WiSSim Analyzer 40
Hình 11 Thiết kế tổng quan module phân tích dữ liệu 42
Hình 12 Thiết kế tổng quan chức năng vẽ biểu đồ 3D 42
Hình 13 Thiết kế tổng thể module xuất dữ liệu 43
Hình 14 Thiết kế module Xem tổng thể mạng 43
Hình 15 Biểu đồ use case tổng quan 51
Hình 16 Biều đồ use case Load Input File 52
Hình 17 Biểu đồ usecase Export Results 52
Hình 18 Biểu đồ usecase Analyze Data 53
Hình 19 Biểu đồ gói mô hình phân tích 54
Hình 20 Biểu đồ lớp nút mạng 54
Hình 21 Biểu đồ lớp gói tin 55
Hình 22 Biểu đồ thành phần Core Analyzer 55
Hình 23 Hình mô tả các định nghĩa, thuật ngữ trong GOAL 58
Hình 24 Đa giác lồi lớn giữa s và t 60
Hình 25 Mô tả bước 5 của giải thuật chuyển tiếp gói tin 60
Hình 26 Các góc cực 62
Hình 27 Tổng quan về mạng giả lập 64
Hình 28 Thời gian ngủ của các nút trong mạng 65
Hình 29 Thông lượng từ vùng 10 đến vùng 11 65
Hình 30 Sự biến thiên năng lượng của toàn mạng 66
Hình 31 Số liệu phân tích hop-count giữa 2 vùng 10 và 11 66
Hình 32 Biểu đồ trình tự usecase new session 69
Hình 33 Biểu đồ trình tự use case Load new trace file 70
Hình 34 Biểu đồ trình tự use case Load saved data 71
Hình 35 Biểu đồ trình tự use case Phân tích Sleep period 72
Hình 36 Biểu đồ trình tự phân tích Throughput 73
Hình 37 Giao diện phân tích throughput 74
Hình 38 Giao diện phân tích Sleep Period 74
Hình 39 Kiến trúc Qt Framework 75
Trang 9Hình 40 Thuật toán DCC1 77 Hình 41 Thuật toán DCC2 78 Hình 42 Ví dụ về định tuyến sai của giao thức Greedy Forwarding 79
Trang 10DANH MỤC BẢNG BIỂU
Bảng 1.Thông tin tổng quan về mạng 24
Bảng 2.Thông tin các nút mạng 24
Bảng 3 Thông tin về header gói tin 24
Bảng 4 Thông tin về các trường trong một header 24
Bảng 5 Thông tin về dữ liệu của gói tin 24
Bảng 6 Thông tin về gói tin 25
Bảng 7 Thông tin nhóm sự kiện Send/Forward/Receive 25
Bảng 8 Thông tin nhóm sự kiện Drop 26
Bảng 9 Thông tin nhóm sự kiện Sleep/Wake 26
Bảng 10 Thông tin nhóm sự kiện Move 26
Bảng 11 Tốc độ phân tích trace file của WiSSim Analyzer 63
Bảng 12 Tốc độ tải file dữ liệu của WiSSim Analyzer 63
Trang 11DANH MỤC TỪ VIẾT TẮT
kịch bản Tcl
cảm biến không dây
NS2)
phỏng WiSSim
Sensor Networks with Holes – giao thức định tuyến địa lý với
độ dài đường đi cố định trong mạng cảm biến diện rộng
cảm biến không dây
Trang 12PHẦN I: ĐẶT VẤN ĐỀ
CHƯƠNG 1: ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1.1 Mạng cảm biến không dây
Mạng cảm biến không dây là một thế hệ mạng mới, được tạo nên từ các cảm biếnkhông dây (wireless sensor) Các cảm biến có chức năng nhất định (ví dụ theo dõinhiệt độ tại lò phản ứng, mức nước, hay các nhiệm vụ phức tạp như phát hiện xâmnhập…), và cần phải chuyển thông tin thu nhận được cho nhau, hoặc đến nơi điềukhiển
Ứng dụng của mạng cảm biến không dây ngày một quan trọng, phong phú Chúngđược sử dụng trong nhiều lĩnh vực, trong đó có an ninh quốc phòng (theo dõi địch,phát hiện xâm nhập…), cảnh báo thiên tai (theo dõi mực nước tại các sông, suối,nơi hay xảy ra lũ lụt, tốc độ gió của bão…), giải tỏa ùn tắc giao thông (gắn sensortrên các phương tiện giao thông để theo dõi lưu lượng, phát hiện nơi tắc đường )
Có nhiều ứng dụng quan trọng như vậy, tuy nhiên, các sensor lại có khá nhiềunhược điểm như: phạm vi kết nối hạn chế (bán kính nhỏ),giới hạn về năng lượng,chất lượng cảm biến (do ở những vị trí khó khăn, sau khi triển khai cảm biến, khó
có thể thay thế được), topo mạng thường xuyên thay đổi (do các cảm biến có thể dichuyển được) Trong quá trình hoạt động, nếu giải thuật tìm đường không tốt, có thểdẫn đến ở một vài vị trí của mạng, nút mạng tại đó hoạt động quá tải, dẫn đến hếtnăng lượng, dần dần có thể tạo nên một vùng không có sóng; trong khi một số vị tríkhác, cảm biến lại không được sử dụng
Vì thế, cần phải có một giao thức định tuyến hiệu quả để khắc phục những sự cốtrên, duy trì độ ổn định của mạng
Với những yêu cầu trên, có 2 vấn đề cần giải quyết, đó là:
- Đánh giá hiệu năng giải thuật tìm đường trên mạng
- Xây dựng, cài đặt một số giải thuật tìm đường trong mạng cảm biếnkhông dây
1.2 Mô phỏng, giả lập mạng
1.2.1 Tầm quan trọng của quá trình mô phỏng
Mô phỏng là quá trình rất quan trọng trong hầu hết các ngành khoa học, nghiên cứu
và ứng dụng Nó giúp giảm chi phí, thiệt hại, hậu quả không đáng có trong quá trìnhthử nghiệm hệ thống gây ra Mặt khác, không phải nghiên cứu nào cũng có thể triển
Trang 13khai trên thực tế ngay được.Vì thế, đôi khi, mô phỏng đóng vai trò là con đườngduy nhất để đạt được kết quả nghiên cứu Ví dụ như nghiên cứu sao hỏa, các nhàkhoa học cần mô phỏng môi trường để thiết bị hoạt động, từ đó có căn cứ để điềuchỉnh các thống số thiết bị sao cho phù hợp, chuẩn bị cho việc đưa chúng lên thăm
dò ở môi trường thật Một ví dụ khác đó là xây nhà, ở những vùng ít xảy ra thiên taithì công việc này có vẻ đơn giản Tuy nhiên, có thể thấy, tại Nhật Bản, nơi mà độngđất xảy ra thường xuyên, thì đây lại là một vấn đề nóng, dành được nhiều sự quantâm Người ta cần xây dựng môi trường giả lập các tác động từ thiên nhiên, sử dụngvật liệu, kiến trúc…rồi thử nghiệm, đánh giá mức độ an toàn, sau đó mới có thể thicông công trình
Tuy nhiên, quá trình này cũng có khá nhiều yêu cầu khắt khe, nhược điểm:
thật, để kết quả chính xác Điều này tương đối khó, đòi hỏi chuyên giaphải có kiến thức sâu sắc về môi trường thật và công cụ mô phỏng
điểm nào đó con người chưa có đủ thông tin về nó) Ví dụ như môitrường tại một ngôi sao cách rất xa trái đất
xác nhận mô hình trong môi trường giả lập cũng đòi hỏi nỗ lực khôngnhỏ
Mặc dù có những nhược điểm như vậy nhưng giả lập vẫn là một công cụ được sử
dụng rộng rãi trong nghiên cứu khoa học
1.2.2 Mô phỏng mạng
Môi trường mạng ngày càng phức tạp Và khái niệm mạng không còn chỉ tồn tạitrong lĩnh vực máy tính, mà nó đã lan rộng ra nhiều lĩnh vực khác, như mạng cảmbiến không dây, mạng vệ tinh… Kèm theo đó, phát triển những thuật toán tìmđường hiệu quả đang là vấn đề cấp thiết với thế hệ mạng mới này Để cài đặt mộtthuật toán trên mạng thật đòi hỏi một chi phí không nhỏ, không phải ở đâu cũng cóđiều kiện để thực hiện, hơn nữa, đó là một sự lãng phí
Vì thế, các nhà khoa học, các công ty chuyên về lĩnh vực này đã xây dựng nên cáccông cụ mô phỏng mạng rất hiệu quả Có thể kể đến như: NS2, OpNET, OMNET++… Trong đó, NS2 (Network Simulator 2) là một công cụ rất phổ biến, được pháttriển bởi trường đại học UC Berkely, từ những năm 1990 Với thế mạnh là mãnguồn mở, dễ sử dụng, và có cộng đồng phát triển đông đảo, nó dần trở thành mộtcông cụ phổ biến nhất trong nghiên cứu, mô phỏng mạng NS2 được viết trên nềntảng là ngôn ngữ C++ và OTcl (Object-oriented Tcl), 2 ngôn ngữ cơ bản và dễ sửdụng C++ dùng để thực thi phần kiến trúc bên trong (như các nút mạng, liên kết,
Trang 14giải thuật tìm đường…), OTcl đóng vai trò là một thành phần cấu hình mạng, nútmạng, giả lập (định dạng thông tin vào ra hệ thống…) Với những kiến thức cơ bản
về mạng, lập trình C++, OTcl, người sử dụng có thể dễ dàng thao tác với cả phần lõi(qua mã nguồn) và phần kịch bản mô phỏng để tạo nên môi trường mô phỏng củamình Ngoài ra, một ưu điểm nữa đó là tài liệu sử dụng của công cụ này rất đầy đủ(tài liệu từ nhà phát triển và từ bên thứ 3)
NS2 cung cấp rất nhiều các giao thức truyền thông ở nhiều tầng khác nhau như:tầng ứng dụng (HTTP, FTP…), tầng giao vận (TCP, UDP), tầng mạng (các giaothức định tuyến AODV, DSR, DSDV…), tầng MAC (Ethernet, chuẩn 802.11…)
Với các mạng có dây và một số mạng không dây truyền thống, NS2 hỗ trợ khá tốt,
do đã có những bộ giao thức chuẩn, tuy nhiên với mạng cảm biến không– một thế
hệ mạng tương đối mới, có nhiều ứng dụng trong các lĩnh vực quan trọng – thì cácgiao thức do nó hỗ trợ lại tỏ ra hạn chế
1.3 Tổng quan về bộ công cụ hỗ trợ mô phỏng WiSSim
Hình 1 Sơ đồ tổng quan về hệ WiSSim
Để đáp ứng yêu cầu về giả lập mạng không dây nói chung, mạng cảm biến khôngdây nói riêng, nhóm nghiên cứu đã đề xuất xây dựng bộ công cụ chuyên dụng cho
mô phỏng định tuyến không dây, với các tính năng bậc cao, phát triển trên nền tảngNS2, đó là bộ công cụ WiSSim
Hệ WiSSim sẽ có bốn khối chính như sau:
Trang 15- Công cụ tạo kịch bản mô phỏng (WiSSim Editor): Hỗ trợ người sử dụng
(NSD) tạo và biên tập kịch bản mô phỏng thông qua một giao diện ngườidùng (GUI) đơn giản, dễ hiểu
- Công cụ tái hiện quá trình hoạt động của mạng (WiSSim Visualizer): Từ
đầu ra là các file theo vết (trace files) sau khi thực hiện mô phỏng sửdụng NS2, công cụ thể hiện lại quá trình hoạt động của mạng, giúp người
sử dụng quan sát, hình dung một cách trực quan toàn bộ quá trình môphỏng xảy ra Công cụ này hữu ích khi nhà nghiên cứu muốn kiểm tracác hoạt động trong mạng có diễn ra như mình mong muốn, giải thuậtchạy có đúng như lý thuyết hay không
- Công cụ phân tích kết quả mô phỏng (WiSSim Analyzer): Công cụ phân
tích trace files để lấy ra các số liệu cần thiết cho việc thống kê, đánh giá,giúp người sử dụng đánh giá được hiệu quả của giao thức định tuyếnđược mô phỏng.Đối với nghiên cứu, việc đánh giá, phân tích đóng vai tròquan trọng Công cụ này sẽ đáp ứng hầu hết những yêu cầu của ngườidùng về pha phân tích, cung cấp số liệu chính xác, biểu đồ trực quan, vàtrích xuất kết quả dễ dàng
- Thư viện các giải thuật định tuyến cho mạng cảm biến không dây
(WiSSim Routing Protocol Library): Vung cấp cho người dùng các giao
thức định tuyến phổ biến trong mạng Các giao thức được cài đặt sẽ giúpngười sử dụng thực hiện mô phỏng mạng với nhiều giao thức, qua đó cócác so sánh khách quan giữa các thuật toán với nhau
Trong đó, hai modules WiSSim Analyzer và WiSSim Routing Protocol Library làcác thành phần sẽ được tác giả thực hiện trong đồ án
1.4 Giới thiệu đề tài
1.4.1 Vấn đề đặt ra
Phân tích hiệu năng giao thức định tuyến trong mạng cảm biến không dây là quátrình trích xuất, tổng hợp các thông số khác nhau, để đưa ra những kết luận về hiệunăng, ví dụ như thời gian ngủ, biến thiên năng lượng của nút mạng, tốc độ truyềntin Việc phân tích có thể dựa trên số liệu kết quả của pha mô phỏng
Sau quá trình mô phỏng, để phân tích hiệu năng của mạng, người dùng gặp phảinhững vấn đề như:
- Không biết căn cứ vào những thông số nào để đánh giá, vì hiện có rấtnhiều tiêu chuẩn, cách tính khác nhau cùng tồn tại Mỗi tiêu chuẩn nàyhướng đến một mục đích đánh giá khác nhau, gây khó khăn cho NSD
Trang 16- Công việc phân tích bằng tay phức tạp Kết quả của quá trình giả lập làfile theo vết Nó cung cấp các số liệu rất đầy đủ về quá trình hoạt độngcủa mạng giả lập Tuy nhiên không có số liệu nào để đánh giá hiệu năngmột cách trực tiếp Thay vào đó, người dùng cần tự tổng hợp, tính toán.Với những giả lập lớn (thời gian dài, nhiều nút mạng…) thì tính toánbằng tay tương đối khó khăn.
- Phân tích số liệu cần phải đưa ra một báo cáo tổng quan, dễ hiểu Đó làcác biểu đồ 2D, 3D, hình ảnh Để làm việc này, cần phải sử dụng nhiềucông cụ khác nhau như: excel, xgraph, Matlab… Mỗi công cụ đều cóđiểm mạnh riêng Nhưng với NSD mới, đối diện với một loạt các công
cụ mới, phối hợp sử dụng chúng cũng tạo ra khó khăn nhất định
- Các yêu cầu nâng cao như: theo dõi năng lượng tại một vùng mạng nào
đó, đo lường thông lượng từ vùng này đến vùng khác, hay xem tổngquan về mạng khi phân tích dữ liệu… thì hiện tại chưa có một công cụnào cung cấp những chức năng này
Với các yêu cầu nêu trên, đòi hỏi cần xây dựng một công cụ hỗ trợ người dùng phântích dữ liệu, thay thế công việc thủ công phức tạp này Công cụ cần đơn giản hóaquá trình phân tích dữ liệu mô phỏng mạng, thực hiện một cách tự động, dễ dàngkiểm tra tính chính xác của kết quả, dễ sử dụng, dễ hiểu, thực hiện được hầu hết cáccông việc trong pha phân tích Nó cần hoạt động được trên nhiều hệ điều hành khácnhau, đặc biệt là Linux, vì NS2 hoạt động tốt nhất trên nền tảng này
Công cụ này cũng cần đảm bảo các tính chất sau:
- Tính chính xác: đây là điều tối quan trọng, vì mục tiêu hướng đến của
nó là dành cho việc tính toán số liệu trong nghiên cứu khoa học Cầnphát hiện ra những trường hợp tính toán dữ liêu có lỗi, sai lệch Cácthông số sai lệch này cần đo đếm được, và thông báo đến người dùng
- Tính kế thừa: Công cụ cần phát triển sao cho có thể dễ dàng mở rộng,cung cấp cho người dùng một giao diện lập trình, tương tác ngày mộthoàn thiện hơn
- Khả năng tích hợp: Dễ dàng tích hợp với các công cụ khác trong bộcông cụ mô phỏng WiSSim
Một bài toán nữa đó là xây dựng, cài đặt giao thức định tuyến trên công cụ môphỏng Người dùng cần hiểu rõ cơ chế hoạt động của giao thức, cách cài đặt, tíchhợp, sử dụng giao thức trong môi trường giả lập Điều này gây ra những vấn đềnhư:
- Khi xây dựng một giao thức mới, muốn so sánh hiệu quả của nó vớigiao thức nào đó Họ muốn có ngay giao thức đó để đánh giá, chứ
Trang 17không muốn phải tự mình cài đặt Vì công việc này tiêu tốn thời giankhông nhỏ
- Công việc chỉnh sửa các thông số trong công cụ mô phỏng khi cài đặtmột giao thức phức tạp, gây khó khăn cho người mới sử dụng
Do đó, cần có một bộ thư viện các giao thức định tuyến, hỗ trợ người dùng môphỏng một cách dễ dàng, tiết kiệm thời gian, công sức
- Hiểu về mạng cảm biến không dây, các thuộc tính đặc trưng của nó
- Hiểu cách cài đặt một giải thuật định tuyến Biết cách tích hợp vào NS2
- Hiểu rõ các thông số đo lường hiệu năng mạng không dây Phân tíchđược các thông số này bằng tay, từ đó nêu lên cách làm tự động
- Hiểu rõ các công cụ trung gian liên quan đến nghiệp vụ phân tích (ví dụ:công cụ vẽ biểu đồ)
- Lựa chọn nền tảng Qt C++ để phát triển công cụ Công cụ xây dựng trênnền tảng này sẽ hoạt động tốt trên các hệ điều hành khác nhau, giao diệnđơn giản, dễ sử dụng
- Nắm chắc những thành phần lập trình có liên quan đến việc xây dựngứng dụng như: đồ họa, vẽ biểu đồ…
1.4.3 Tóm tắt kết quả đã thực hiện được
Trong quá trình là việc, tác giả đã đạt được những kết quả sau:
- Tìm hiểu và cài đặt giải thuật tìm đường mạng cảm biến không dây
như đã nói trên
- Tìm hiểu, phân tích các thông số đánh giá hiệu năng mạng không dây
- Xây dựng thành công công cụ phân tích dữ liệuWiSSim Analyzer hỗ trợngười dùng
- Thử nghiệm đánh giá hiệu năng giao thức trên công cụ đã xây dựng
Chi tiết sẽ được làm rõ trong chương 3, 4, 5 của đồ án
Trang 18CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 NS2 [12]
2.1.1 Giới thiệu chung
Công cụ giả lập, mô phỏng ra đời giúp ích rất nhiều cho các nhà nghiên cứu, cáccông ty phát triển sản phẩm của mình Quá trình giả lập giúp họ tiết kiệm chi phí,thời gian, công sức so với việc thử nghiệm trên thực tế Trong khuôn khổ đồ án này,tác giả sẽ tập trung vào các công cụ mô phỏng mạng
Hiện nay, có rất nhiều nền tảng mô phỏng mạng khác nhau như: ns2, GloMoSim,NetSim, OMNeT++ Mỗi công cụ này đều có điểm mạnh riêng, phù hợp với từngyêu cầu nghiên cứu.Thông thường, các công cụ này chủ yếu dựa trên cơ chế mô
phỏng phụ thuộc thời gian (Time-Dependent Simulation), bao gồm:mô phỏng theo
thời gian (Time-Driven Simulation) và mô phỏng theo sự kiện (Event-Driven
Simulation) Ở 2 kiểu này, quá trình mô phỏng, các sự kiện diễn ra dựa theo thứ tự
thời gian Đối với mô phỏng theo thời gian, đặc điểm trên là dễ hiểu, tuy nhiên với
mô phỏng theo sự kiện, đặc điểm trên thể hiện ở hai điểm mấu chốt sau đây:
với một mốc thời gian bằng hoặc lớn hơn so với thời gian của sự kiệnhiện tại
thời gian nhỏ nhất trong danh sách sự kiện Mô phỏng không bao giờđược nhảy vượt thứ tự thời gian tới các sự kiện xảy ra sau
Trong các nền tảng mô phỏng thông dụng, nhóm đặc biệt chú ý tới NS2 Nền tảngNS2 hỗ trợ cho cả Linux và Windows, có ý tưởng từ năm 1989 và được phát triển
bởi UC Berkeley vào năm 1995 NS2 là một nền tảng mô phỏng theo sự kiện
(Discrete-Event Simulation) Lợi thế của nền tảng này đó là đây là một nền tảng mở,
được viết chủ yếu bằng C++ cho mô phỏng nhẹ nhàng, nhanh chóng và kết quảđáng tin cậy Những lợi ích đầu tiên có thể kể đến của NS2 là:
trong thực tế hoặc thử nghiệm thực tế bất cập về nhiều mặt (thời gian, chiphí, nhân lực…)
NS2 hỗ trợ rất tốt để mô phỏng hầu hết các mạng có dây (WAN, LAN…) và một sốmạng không dây NS2 cung cấp thư viện các giao thức rất phong phú ở tất cả các
Trang 19lớp mạng Từ các giao thức điều khiển truy cập (MAC), các giao thức định tuyếnmạng có dây như Dijkstra; các giao thức định tuyến mạng Ad hoc, Manet nhưAODV, DSR; các giao thức chuyển vận như UDP, TCP; các giao thức ứng dụngtầng cao như FTP, TelNet, http, CBR, VBR; các kỹ thuật hàng đợi như DropTail,RED.
Bên cạnh đó, nền tảng này được cộng đồng hỗ trợ và phát triển rất tốt, người sửdụng theo đó sẽ dàng tìm hiểu, học hỏi khi gắp vướng mắc trong quá trình sử dụng
Có nhiều tài liệu chi tiết có thể xem như hướng dẫn sử dụng mà người dùng có thểdùng để sẵn sàng tra cứu khi cần thiết Một số diễn đàn về ns2 hoạt động rất sôi nổi,các câu hỏi thắc mắc được giải đáp nhanh chóng và thấu đáo
Hình 2 là đồ thị dạng bánh thống kê mức độ phổ biến của các nền tảng mô phỏngmạng được sử dụng trong các bài báo của ACM từ năm 2000 tới năm 2004 Theo
đó, nền tảng ns2 (ns2 – viết tắt của network simulation version 2) chiếm 45%, làmột trong những nền tảng mô phỏng thông dụng nhất hiện nay
Hình 2 Các công cụ mô phỏng mạng được sử dụng trong các bài báo của ACM
(2000 – 2004)
2.1.2 Kiến trúc NS2
Kiến trúc cơ bản của NS2 được mô tả ở hình 3 Người sử dụng muốn mô phỏngtrong NS2 phải viết kịch bản mô phỏng dưới dạng ngôn ngữ Tcl (Tool CommandLanguage) Đặc điểm của Tcl là một ngôn ngữ đơn giản, dễ học, dễ sử dụng Kịchbản mô phỏng là đầu vào của NS2 Những nội dung được trình bày trong một kịchbản mô phỏng bao gồm:
node, hạ tầng mạng, giao thức truyền tin, các tham số cần thiết)
thúc…)
Trang 20NS2 gọi lệnh thực thi quá trình mô phỏng bằng dòng lệnh:
Hình 3 Kiến trúc cơ bản của ns2
NS2 sử dụng hai ngôn ngữ lập trình: ngôn ngữ kịch bản (Otcl – Object-orientedTool Command Language) và ngôn ngữ lập trình hệ thống (C++) Lý do NS2 cần
sử dụng đến hai ngôn ngữ là vì mục đích tối ưu hoạt động cho bộ mô phỏng Mộtmặt, các cài đặt chi tiết cho các giao thức, các đối tượng trong bộ mô phỏng yêu cầumột ngôn ngữ lập trình hệ thống để có thể tính toán hiệu quả các byte, các tiêu đềpacket và các thuật toán thực thi đang chạy trên một tập dữ liệu lớn Với chức năngnày, tốc độ thời gian chạy thực (run-time speed) là quan trọng trong khi thời gianxoay vòng (turn-around time) thì ít quan trọng hơn (thời gian xoay vòng bao gồmthời gian chạy mô phỏng, thời gian tìm lỗi, sửa lỗi thời gian biên dịch và thời gianchạy lại) Mặt khác, khi người sử dụng thực hiện việc mô phỏng mạng, họ thườngrất quan tâm tới việc thay đổi các tham số trong giao thức hoặc các thay đổi nhỏ vềmặt cấu hình, đồng thời cần kết quả nhanh chóng của nhiều trường hợp mô phỏngkhác nhau Trong tác vụ này thì thời gian lặp (iteration time) lại quan trọng hơn
Trang 21Các thành phần trong NS2 có thể được phân thành 4 loại cơ bản dựa vào chức năng
cơ bản của chúng:
Các đối tượng mô phỏng (Simulation-related Objects): kiểm soát thời
gian mô phỏng và quản lý toàn bộ thời gian mô phỏng Các đối tượng
mô phỏng quan trọng bao gồm các events, handlers, Scheduler vàSimulator
Các đối tượng mạng (Network Objects): có nhiệm vụ gửi, nhận, tạo và
hủy các đối tượng liên quan tới gói tin Các đối tượng này đều được kếthừa từ lớp NsObject
Các đối tượng liên quan tới gói tin (Packet-related Objects): bao gồm
các loại gọi tín khác nhau được truyền trên mạng
Các đối tượng hỗ trợ (Helper Objects): các đối tượng này không trực
tiếp tham gia vào vấn đề truyền tin Tuy nhiên, chúng có vai trò hỗ trợ
để hoàn thành mô phỏng Ví dụ, một module định tuyến tính toánđường đi từ node nguồn tới node đích
Cấu trúc phân cấp các lớp của ns2 là rất lớn với hơn 100 classes C++ và cấu trúc dữliệu struct Các thành phần chính, cơ bản của ns2 có thể được mô tả bởi một phầncủa cấu trúc phân cấp như ở Hình 4
Hình 4 Cấu trúc phân cấp ns2Như đã đề cập, NS2 là một nền tảng mô phỏng theo sự kiện Cụ thể, mỗi một sựkiện chứa thời gian thực thi, một tập các tác vụ, và một liên kết tới sự kiện khác.Các sự kiện này kết nối với nhau tương tự như danh sách liên kết đơn và hình thànhmột chuỗi sự kiện trên dòng thời gian của quá trình mô phỏng Khi mô phỏng bắtđầu, các sự kiện trong chuỗi được thực hiện tuần tự từ trái qua phải (theo thứ tự thờigian) Hình 5 mô tả rõ quá trình này Trong Hình 5, trong lúc thực thi sự kiện 1 (tại
Trang 22thời gian time = 0.9) phát sinh sự kiện 5 cần được thực hiện lúc time = 3.7, khi đó
sự kiện 5 được chèn vào chuỗi sự kiện theo đúng thứ tự thời gian, tức ngay trước sựkiện 3 (time = 5) mặc dù sự kiện 3 được lên lịch trước Khi đó, sự kiện 5 sẽ đượcthực thi trước sự kiện 3 Bởi vậy cơ chế này có tính rời rạc: các sự kiện được sắpxếp không liên quan đến nhau mà chỉ được dựa vào thời gian gắn với sự kiện đó
Hình 5 Ví dụ về chuỗi sự kiện trong mô phỏng theo sự kiện
2.2 Thông tin file theo vết (trace file) của hệ thống
Như đã trình bày trong phần 2.1, đầu ra quá trình giả lập trên NS2 là tập tin theovết Tuy nhiên, trace file ban đầu của NS2 gây ra những vấn đề sau:
- Cung cấp nhiều thông tin, nhưng ở định dạng mà con người không hiểuđược.Vì thế gây khó khăn cho công việc kiểm tra tính chính xác của sốliệu
- Việc kiểm tra số liệu của quá trình phân tích, vì người kiểm tra phải rấtkhó khăn để làm việc với nó
- Không có đầy đủ các thông số cần thiết cho quá trình phân tích (ví dụnhư Labels (vùng nút mạng), queue length (độ dài hàng đợi gói tin),range (mức phủ sóng của nút mạng)…)
Vì vậy, nhóm nghiên cứu đã quyết định phát triển một phiên bản trace file mới, dựatrên cấu trúc XML, trực quan, dễ hiểu, có thể thêm vào những thông tin cần thiếtcho các quá trình phân tích, thể hiện trực quan… Và để thực hiện điều này, nhómcần chỉnh sửa mã nguồn của NS2
Với định dạng mới này, NSD dễ dàng kiểm tra thông tin phân tích và thông tin sẵn
có trong quá trình giả lập
Các thông tin trong trace file mới như sau:
Trang 231 Width Độ rộng của vùng mô phỏng
Bảng 1.Thông tin tổng quan về mạng
Bảng 3 Thông tin về header gói tin
Bảng 5 Thông tin về dữ liệu của gói tin
Trang 245 Dest-id Id nút đích nhận tin
Bảng 6 Thông tin về gói tin
Thông tin về các sự kiện trong giả lập Có 7 loại sự kiện: Send, Forward, Receive,
Drop, Sleep, Wake, Move; được chia làm 4 nhóm như sau:
kiện
Bảng 7 Thông tin nhóm sự kiện Send/Forward/Receive
Bảng 8 Thông tin nhóm sự kiện Drop
Trang 251 Time Thời gian diễn ra sự kiện
Bảng 9 Thông tin nhóm sự kiện Sleep/Wake
Bảng 10 Thông tin nhóm sự kiện Move
Ví dụ về định dạng file trace mới:
Hình 6 Trace file
Trang 27PHẦN II CÁC KẾT QUẢ ĐẠT ĐƯỢC
Nội dung chính thực hiện được trong đồ án:
dây Công cụ này cho phép người dùng thao tác dễ dàng với nhữngthông số đánh giá hiệu năng mạng, với cả các thành phần về hình ảnh(đồ thị, tổng quan về mạng), và thành phần bảng biểu
dựng
Trang 28
-CHƯƠNG 3 XÂY DỰNG BỘ PHÂN TÍCH DỮ LIỆU HIỆU NĂNG
GIAO THỨC ĐỊNH TUYẾN (ANALYZER)
3.1 Giới thiệu công cụ phân tích WiSSim Analyzer
3.1.1 Quá trình phân tích hiệu năng
Quá trình phân tích hiệu năng mạng được thực hiện như sau:
- Tìm các thành phần đánh giá hiệu năng mạng
- Thu thập số liệu trong quá trình thử nghiệm hoặc giả lập mạng
- Tìm cách tính toán hiệu năng từ số liệu thu được
- Tính toán, vẽ đồ thị kết quả và đưa ra kết luận
Pha phân tích có thể thực hiện bằng tay ở mọi công đoạn Tuy nhiên, thực hiện thủcông đôi khi gặp nhiều khó khăn Vì lượng thông tin do mạng tạo ra rất lớn, rời rạc Ngoài ra, để phân tích những yêu cầu nâng cao như phân tích thông lượng giữa 2vùng mạng, với tập kết quả của quá trình thử nghiệm – giả lập, NSD cần:
- Tìm tất cả những nút thuộc vùng gửi (nhận) tin Vùng có thể là vùng địa
lý, vùng một số nút mạng được theo dõi (vùng bất kỳ)
- Ghi lại toàn bộ các gói tin trong quá trình gửi – nhận giữa những nútmạng thuộc 2 vùng này Các thông tin quan trọng như: id gói tin, thờigian hoàn thành gửi tin, kích thước gói tin Độ phức tạp của công việcnày khá lớn nếu làm thủ công NSD cần duyệt qua tất cả các gói tin, đểxác định những gói do vùng phát gửi đi, theo dõi id gói tin trong các sựkiện, kiểm tra xem gói tin có đến được đích không (có thể do tắc nghẽnmạng, không tìm được đường đi…mà gói tin bị tắc ở đâu đó), và thờigian vùng nhận nhận được
- Tập hợp thông tin của các quá trình trên, tính toán thông lượng tươngứng, đưa ra thông lượng trung bình, độ lệch chuẩn, thông lượng lớn nhất,nhỏ nhất Và vẽ biểu đồ hiển thị kết quả trực quan NSD cần dùng mộtvài công cụ như: excel, matlab…để vẽ biểu đồ thể hiện
- Lọc những gói tin nằm trong thời gian phân tích
Những khó khăn trên đã dẫn đến nhu cầu cần dùng công cụ phân tích tự động hỗ trợngười dùng các thao tác này
3.1.2 Giới thiệu chung về WiSSim Analyzer
Công cụ WiSSim Analyzer là một trong 4 thành phần của bộ công cụ mô phỏngWiSSim do nhóm phát triển (Mục 1.3, chương 1) Công cụ này được tạo ra với mụcđích giúp người dùng phân tích hiệu năng giao thức định tuyến mạng không dây
Trang 29một cách tự động Những yêu cầu của mạng cảm biến rất khắt khe, do đó, các thông
số phân tích cần chính xác, cho người dùng một cái nhìn tổng quan nhất về hệthống, thông số mạng
Nó cung cấp những chức năng chính sau:
không dây
Và đảm bảo các yêu cầu phi chức năng:
3.1.3 Vai trò của WA
Có thể thấy pha phân tích kết quả là một trong những bước rất quan trọng của quátrình nghiên cứu nói chung Nhờ có phân tích mà người ta mới có thể đưa ra đượcđánh giá, nhận xét, so sánh
Với dữ liệu lớn, công việc này lại càng phức tạp Con người không thể tự mình làmhết được công việc này Do đó, cần đến một công cụ tự động Dữ liệu trong mạng
vô cùng phức tạp, phong phú Vì vậy, khi phân tích dữ liệu trong mạng, cần có mộtcông cụ như vậy WiSSim Analyzer được thiết kế để tạo cho người dùng sự dễ dàngtrong thao tác, chính xác trong xử lý, tính toán
3.2 Các thông số về hiệu năng mạng cảm biến không dây
Đánh giá hiệu năng mạng MANET (Mobile Ad-hoc Network) rất được chú ý trongthời gian gần đây, vì những ứng dụng phong phú của nó.Do đó, tổ chức The Internet
định hiệu năng một cách chính xác nhất Sau đây là các thông số:
3.2.1 Thời gian ngủ của nút mạng (Sleep period)
Nút mạng không hoạt động liên tục, để tránh việc tiêu thụ năng lượng dẫn đến cạnkiệt Sau một khoảng thời gian nhất định (tùy vào mô hình năng lượng) không traođổi thông tin, và tùy vào giải thuật, nút mạng sẽ thực hiện hành vi “ngủ” Việc đánhgiá thời gian ngủ của nút mạng rất quan trọng Nó cho biết giải thuật có hiệu quả
Trang 30hay không Vì một phần công việc của giao thức tìm đường là điều tiết thời gianngủ của nút mạng
3.2.2 Thông lượng giữa 2 nút mạng (end-to-end data throughput)
Thông số này giúp đánh giá thông lượng giữa các nút mạng, từ đó người phân tíchbiết được tại những nút mạng nào, thông lượng quá lớn, quá nhỏ… để điều chỉnhgiao thức cho phù hợp Công thức tính thông lượng như sau:
T ổ ng t h ờ i giantruy ề n tin
3.2.3 Thời gian trễ truyền tin giữa 2 nút mạng(Delay)
Tương tự như throughput, thời gian trễ trên đường truyền cũng là một thông số cầnđược quan tâm Nó cho biết độ ổn định, tốc độ của đường truyền Thời gian trễ càngngắn, thì đường truyền càng tốt
Thời gian trễ được tính từ khi gói tin truyền đi, đến khi nút mạng đích nhận được
3.2.4 Hiệu suất truyền tin (Efficency)
Truyền tin trong mạng không phải lúc nào cũng thuận lợi, nơi nhận có thể nhận hếtthông tin mà nơi truyền gửi đi Khi truyền, có thể xảy ra các sự cố như: mất gói tin,gói tin bị lỗi… dẫn đến hiệu suất truyền tin bị giảm Do đó, cần phải đo lường thông
số này Đơn vị tính là phần trăm (%)
Hiệu suất truyền tin được đánh giá dựa trên một số phương pháp sau:
- Trung bình của số dữ liệu truyền đi (bit)/số dữ liệu nhận được (bit): giúpđánh giá độ ổn định của mạng Nếu số trung bình này càng gần 100%, tức
là hầu hết tin gửi đi đều nhận được một cách nguyên vẹn; và ngược lại
- Trung bình của các dữ liệu điều khiển được truyền đi (bit)/dữ liệu nhậnđược (bit) Cách đánh giá này cho biết hiệu quả của giao thức mạng được
sử dụng Càng dùng nhiều dữ liệu điều khiển, thì gói tin càng lớn, và càngmất thời gian, xử lý ở từng nút Do đó sẽ không hiệu quả
3.2.5 Hop-count trung bình (Average hop-count)
Hop-count là một thuật ngữ chỉ các nút trung gian trong quá trình truyền tin Nhữngnút mạng cách xa nhau thường không thể truyền tin trực tiếp, mà phải qua một sốnút mạng khác Các nút mạng trung gian này được chọn bởi giải thuật tìm đường.Mỗi nút mạng trên đường đi, khi nhận được gói tin đều phải xử lý để chuyển đếnnút tiếp theo Do đó, thời gian xử lý không phải nhỏ Giải thuật tìm đường tốt sẽđưa ra danh sách các nút trung gian tối ưu
Trang 31Việc đánh giá thông số này giúp người phân tích biết được một giải thuật có hiệuquả hay không, so sánh dễ dàng với một giải thuật khác.
3.2.6 Năng lượng (Energy)
Năng lượng là vấn đề cơ bản của các nút mạng cảm biến không dây Với nguồnnăng lượng hạn chế, nếu giao thức mạng không hiệu quả, nó sẽ nhanh chóng làmcạn kiệt tài nguyên này
Thông số này giúp đánh giá quá trình biến đổi năng lượng của nút mạng khi hoạtđộng Từ đó xác định nguồn năng lượng thích hợp, giao thức tối ưu cho mạng
3.2.7 Độ dài hàng đợi gói tin còn lại của nút (Buffer queue length)
Khi một nút mạng nhận được gói tin, nó sẽ đặt gói tin vào hàng đợi để xử lý (phòngtrường hợp có quá nhiều gói tin) Tuy nhiên hàng đợi này có hạn, nên nếu quá nhiềugói tin đến một lúc, nút mạng không xử lý kịp sẽ dẫn đến tình trạng tràn hàng đợi,
và một số gói tin bị hủy
Tuy trường hợp trên ít xảy ra, tuy nhiên, cần đánh giá thông số này, đề phòng tìnhhuống xấu xảy ra, các gói tin quan trọng bị mất, hoặc một nút mạng bị quá tải
3.2.8 Thời gian sống của mạng (network lifetime)
Theo thời gian, các nút mạng dần hết năng lượng và không hoạt động được nữa.Việc hết năng lượng này tùy thuộc nhiều vấn đề: do phần cứng thiết bị, thời tiết…tuy nhiên, ở đây ta chỉ xét trường hợp nút hết năng lượng do các hoạt động trao đổithông tin
Thời gian sống của của mạng được định nghĩa là khoảng thời gian từ khi mạng hoạtđộng, đến khi có quá x (%) nút mạng không hoạt động nữa Trong đó, x là phầntrăm do người phân tích đưa ra theo tiêu chí nào đó
3.3 Mô hình hóa yêu cầu
3.3.1 Quá trình phân tích các thông số
Ứng với thông tin có được trong trace file (Xem thêm phần II, chương 2), pha phântích được thực hiện như sau:
a Chức năng tính thời gian ngủ của nút mạng
Thời gian ngủ của nút mạng được tính từ khi nút phát ra sự kiện Sleep, đến khi nútmạng xử lý một gói tin, hoặc phát ra sự kiện Wake Thời gian ngủ này phụ thuộcvào giải thuật tìm đường, mô hình năng lượng được sử dụng
Trang 32Do đó, để phân tích được thời gian ngủ của một nút mạng, cần đọc các sự kiệnSleep, ghi nhớ thời gian diễn ra, và khi gặp một sự kiện khác (Wake, Send,Receive…) thì tính là nút đã thức.
Để tính thời gian ngủ của một vùng, hay toàn bộ mạng, cần tìm các nút mạng thuộcvùng đó và tính tổng thời gian ngủ của từng nút
Trực quan hơn, sau khi phân tích, đưa ra số liệu ở bảng biểu, cần có một biểu đồ thểhiện những quãng thời gian trên Ngoài ra, cần tính các thông số quan trọng khácnhư: thời gian ngủ trung bình, lớn nhất, nhỏ nhất, và độ lệch chuẩn
Các nút mạng có thể được chia thành từng vùng (có thể là từng vùng địa lý đượcxác định từ trước, hoặc các vùng biên hố mạng – được xác định trong quá trình thựcthi giải thuật
Trong chương trình phân tích, nó phải có khả năng cho phép người dùng lọc kết quảtheo từng nút mạng, theo từng vùng (hay còn gọi là nhãn) và theo thời gian
b Chức năng tính thông lượng mạng
Một nút mạng phát ra sự kiện Send khi gửi đi một gói tin Khi nút đích nhận đượcgói tin, nó cũng phát ra sự kiện Receive
Công thức tính thông lượng mạng như đã trình bày ở trên
Như vậy, để tính thông lượng giữa 2 nút mạng, cần biết kích thước gói tin và tổngthời gian truyền tin
Khi 1 nút phát ra sự kiện Send, sẽ có các trường như trong Bảng 7 Trong đó, cầnlưu ý id nút gửi, thời gian, id gói tin, và id nút đích Lần theo id gói tin, sẽ biết đượckích thước của nó Khi nút đích nhận được tin, ta lấy thời gian tương ứng của sựkiện này Từ đó tính được thông lượng giữa 2 nút
Tương tự, nếu người dùng yêu cầu thông lượng giữa 2 vùng mạng, trước tiên, tìmcác nút mạng thuộc vùng gửi và vùng nhận tương ứng, sau đó tính thông lượng nhưtrên
Công cụ phân tíchcần đưa ra các thông số: thông lượng trung bình, phương sai, giátrị lớn nhất, nhỏ nhất Nếu quan tâm đến thông lượng trong một khoảng thời giannào đó, công cụ cũng cung cấp tính năng lọc trong khoảng thời gian tương ứng
c Chức năng tính thời gian trễ của gói tin
Tương tự như tính thông lượng, thời gian trễ của gói tin tính từ khi gói tin được gửi
đi, đến khi nó đến đích Chức năng này tương tự với tính thông lượng Tuy nhiên,
nó đóng vai trò quan trọng khi xem xét hiệu quả, tốc độ truyền tin, vì thông lượng
Trang 33được tính bởi công thức trên, đôi khi nó không phản ánh được thời gian truyền ngắnhay dài (vì còn phụ thuộc vào kích thước gói tin).
d Chức năng tính hiệu năng truyền tin
Để tính được hiệu năng truyền tin trong mạng, cần tổng hợp các thông tin về gói tin
bị hủy, kích thước phần dữ liệu gói tin và phần điều khiển gói tin (header)
Như mô tả trong phần II, chương 2, có 2 cách đánh giá hiệu năng truyền tin Để tínhtheo mỗi cách này, cần sử dụng những thông tin khác nhau:
đánh giá này, cần biết số gói tin bị hủy trên đường đi, và tổng số gói tin truyềnđược
(bit): Theo dõi kích thước phần header gói tin, kích thước của cả gói tin
Như vậy, để đánh giá hiệu năng truyền tin, cần tổng hợp các thông tin trên củanhững gói tin liên quan, hoặc của toàn bộ gói tin trong quá trình truyền
e Chức năng tính sự biến thiên năng lượng
Mỗi sự kiện phát ra, đều chứa thông tin về năng lượng hiện tại của nút mạng đó(Xem thêm II, Chương 2) Để tính sự biến thiên năng lượng của nút mạng, cần thuthập tất cả những thông tin kể trên Thông tin này rất nhiều, do đó, cần vẽ biểu đồthể hiện quá trình biến đổi này, giúp người dùng dễ hình hơn
Với vùng mạng, hoặc toàn bộ mạng, cần liệt kê các nút mạng thuộc vùng đó, và tínhtoán quá trình như trên
f Chức năng tính hop-count
Trong quá trình gửi tin, gói tin có thể qua nhiều nút trung gian trước khi đến đượcđích Khi gói tin đến mỗi nút trung gian, nút sẽ phát ra sự kiện Forward ứng với góitin đó Mỗi nút này được gọi là một hop
Tính hop-count là tính số nút trung gian Hopcount gắn với từng gói tin Do đó, khimột gói tin được gửi đi, cần theo dõi xem có bao nhiêu sự kiện forward gói tin đó(căn cứ theo trường packet-id trong sự kiện này)
Thông tin này cần được lưu kèm theo gói tin, để dễ dàng xử lý
g Chức năng tính sự biến thiên của Buffer length
Buffer length (hay Queue length) được nhắc đến như là độ dài hàng đợi gói tin
Trang 34Nhóm sự kiện Send/Receive/Forward, và Drop đều có chứa thông tin về Bufferlength Sự biến thiên của Buffer length ở 1 nút mạng được tính bằng cách lấy toàn
bộ buffer length của nó Sau đó, vẽ biểu đồ thể hiện trực quan sự biến thiên này
h Chức năng tính thời gian sống của mạng
Những mạng khác nhau, với những yêu cầu khác nhau, một nút sẽ được định nghĩathế nào là không hoạt động nữa Ví dụ như hết năng lượng (năng lượng bằng 0), haykhông thể thực hiện chức năng chính của mình vì mức năng lượng nhỏ hơn 1ngưỡng nào đó…
Do đó, chức năng này đòi hỏi phải tùy chỉnh được định nghĩa mức năng lượng nhỏnhất
Khi quét file đầu vào, thông tin năng lượng sẽ được ghi lại, so sánh với mức này
Từ đó, kết luận nút mạng có còn hoạt động hay không, và lần hoạt động cuối cùngcủa nó là khi nào
Để tính tổng thời gian của mạng, một thông số cần định nghĩa nữa, là phần trăm nútmạng không hoạt động nữa – tức tổng số nút mạng không hoạt động/toàn bộ nútmạng
Công việc sau đó là đếm số nút mạng được đánh dấu hết năng lượng, và chia chotổng số nút mạng
3.3.2 Yêu cầu chức năng xem tổng thể mạng
Trong quá trình phân tích, đôi khi người dùng muốn có cái nhìn tổng quan về mạng,hoặc kiểm tra vị trí, xem nhanh các thông tin về nút mạng Do đó, chức năng nàycần đảm bảo các yêu cầu sau:
bình…)
3.4 Công nghệ và thư viện hỗ trợ phát triển
WiSSim Analyzer được thiết kế để chạy trên nhiều hệ điều hành khác nhau, do đó,môi trường phát triển, các thư viện được sử dụng cần đáp ứng yêu cầu này Trongquá trình phát triển, tác giả đã lựa chọn những công nghệ sau:
3.4.1 Qt framework
Trang 35Với thế mạnh là đa nền tảng, phát triển theo mô hình MVC, và dựa trên C++, Qt
framework được sử dụng rất rộng rãi trong các phần mềm Chi tiết về nền tảng này
xin xem thêm trong phụ lục B của đồ án
3.4.2 Thành phần đồ họa trong Qt framework
WiSSim Analyzer cần cho người dùng xem một cách tổng thể về mạng mô phỏng
Do đó, thành phần đồ họa được phát triển với mục đích này
Hình 7 Kiến trúc Graphics View framework
Đi kèm với Qt là thành phần đồ họa Graphics View Nó cung cấp rất nhiều chứcnăng hữu ích như: tạo, vẽ đồ họa 2D, hỗ trợ hiệu ứng zoom, xoay…
Thành phần QGraphicsScene cung cấp một giao diện cho việc quản lý số lượng lớnthành phần đồ họa 2D Nó đóng vai trò là container (thành phần chứa) các đối tượng
đồ họa cơ bản (QGraphicsItem)
QGraphicsView cung cấp một widget cho việc hiển thị các thành phần thuộcQGraphicsScene
QGraphicsItem là đối tượng cơ bản của đồ họa 2D trong Graphics View framework
Nó mang đến cho người dùng nhiều cơ chế quản lý đối tượng như: định nghĩa vị trí,phát hiện đụng độ, và các phương thức vẽ, tương tác với đối tượng
Người dùng có thể dễ dàng kế thừa các thành phần trên để tạo một mô hình 2D theo
ý muốn
Để sử dụng Graphics View framework, cần làm những bước sau:
- Tạo một đối tượng QGraphicsScene, QGraphicsView Sau đó đưa đối
tượng QGraphicsScene vào QGraphicsView để chuẩn bị cho việc hiển
thị
- Tạo các đối tượng QGraphicsItem theo ý muốn Người dùng có thể kế
thừa từ lớp này để vẽ các thành phần của mình
- Thêm những đối tượng QGraphicsItem vừa tạo vào QGraphicsScene
Trang 36- Đưa QGraphicsView ra một cửa sổ để hiển thị.
3.4.3 Công nghệ trích xuất file excel, cvs từ ứng dụng Qt
Với những thành phần có cấu trúc như gói tin, thông tin nút mạng, kết quả phântích, thì chúng hoàn toán có thể được xuất ra dữ liệu dạng bảng này
Hiện tại có rất nhiều thư viện hỗ trợ công việc này Tuy nhiên, chúng có nhữngnhược điểm sau:
- Tích hợp phức tạp
- Yêu cầu chi phí bản quyền
- Nhiều chức năng không cần thiết với ứng dụng hiện tại
Do đó, tác giả đã tìm hiểu và cài đặtcông nghệ trích xuất file excel thông qua thaotác với cơ sở dữ liệu
- Trên hệ điều hành Windows, Microsoft đã cung cấp sẵn driver để kết nối
đến cơ sở dữ liệu excel có tên {Microsoft Excel Driver (*.xls)} Do đó,
chỉ cần tìm cách tương tác với driver này là có thể tạo, chỉnh sửa đượcfile excel
Chuỗi kết nối cơ sở dữ liệu có dạng:
QString connectionString = QString ( "DRIVER={Microsoft Excel
Driver (*.xls)};DSN=''; FIRSTROWHASNAMES=1;
READONLY=FALSE;CREATE_DB=\"%1\";DBQ=
%2" ) arg (pathToExcelFile) arg (pathToExcelFile);
- Sau khi kết nối đến cơ sở dữ liệu các sheet bằng câu lệnh tạo bảng thôngthường, với tên bảng là tên Sheet cần tạo
sSql= QString ( "CREATETABLE[%1](" ).arg( sheetName );
- Điền các thông tin về trường trong bảng, tương ứng với các cột củasheet
- Khi quá trình tạo bảng thành công, ta sẽ thêm dữ liệu vào bảng với câulệnh INSERT:
sSql= QString ( "INSERTINTO[%1](…) VALUES (:data0, :data1…)" ).arg( sheetName );
- Trong thành phần làm việc với cơ sở dữ liệu của Qt có một cơ chế, đó là
binding Các trường :data0, :data1…ở trên sẽ được gắn với những dữ
liệu cụ thể Do đó, không cần phải viết lại câu lệnh này ở mỗi lần thêm
dữ liệu (insert), mà chỉ cần thay đổi dữ liệu gắn với chúng
query.bindValue( QString ( ":data0" ), QVariant (node->getId()));
query.bindValue( QString ( ":data1" ), QVariant (( double )node->X()));
3.4.4 Công nghệ lưu lại dữ liệu làm việc
Trang 37Dữ liệu phiên làm việc hiện tại được phân tích, tổng hợp từ rất nhiều dữ liệu thô Cụthể, trong ứng dụng này, dữ liệu thô lấy từ trace file Quá trình phân tích, tổng hợpnày sẽ tiêu tốn thời gian tỉ lệ thuận với kích thước file đầu vào Do đó, cần pháttriển một cơ chế cho phép lưu lại phiên làm việc, để tiết kiệm thời gian cho ngườidùng.
Để làm việc này, tác giả đã sử dụng công nghệ Serialize Đây là một công nghệ chophép chuyển dữ liệu từ bộ nhớ xuống lưu trữ trong tập tin, hoặc đưa sang kênhtruyền tin
Với các kiểu dữ liệu cơ bản, Qt hỗ trợ công nghệ này Tuy nhiên, những dữ liệuphức tạp do người dùng định nghĩa, thì người dùng cần thêm mã nguồn để làm việc.QDataStream là một lớp thuộc Qt framework, cho phép chuyển dữ liệu từ vùng nhớthành một dòng dữ liệu (stream) Cơ chế này hoạt động tốt giữa các hệ điều hànhkhác nhau Ví dụ, dữ liệu được serialize từ chương trình trên Windows có thể đọcđược trên Linux
Để có thể serialize một kiểu dữ liệu tự định nghĩa, cần thực hiện công việc sau:
- Trong mã nguồn, cần chuyển toàn bộ những gì cần lưu trữ (khôi phục)
Sau đó, có thể kết hợp với các cấu trúc dữ liệu phức tạp khác (như QVector,QHash…)
3.4.5 Công nghệ vẽ biểu đồ 2D, 3D
Trang 38Công việc vẽ biểu đồ từ các dữ liệu rời rạc của quá trình phân tích tương đối phứctạp Do đó, trong khuôn khổ đồ án, tác giả đã sử dụng công cụ vẽ 3D có sẵn để làmcông việc này, đó là Gnuplot.
Gnuplot là một phần mềm vẽ biểu đồ rất thông dụng trong nghiên cứu khoa học Vàhiện nay, nó đã hỗ trợ đa nền tảng Biểu đồ kết quả của phần mềm này rất chínhxác, đẹp, và tương tác dễ dàng Nó hỗ trợ rất nhiều loại biểu đồ khác nhau Bao gồm
cả 2D và 3D Gnuplot còn cung cấp một ngôn ngữ kịch bản, tạo sự tiện dụng, dễdàng cho người dùng
- Dễ dàng trích xuất kết quả ra file ảnh
Với phạm vi điều khoản sử dụng, tác giả đã chỉnh sửa một số thành phần để phù
hợp hơn với yêu cầu
Để làm việc với thư viện này, cần những thao tác sau:
Trang 39- Tích hợp mã nguồn vào ứng dụng.
- Chuẩn bị thành phần (vị trí) trên giao diện để đặt biểu đồ vào
- Cấu hình các thông số như: tọa độ lớn nhất, nhỏ nhất của trục, đặt tên đồ thị, tên trục, cài đặt các sự kiện (chuột, bàn phím)…
- Chuyển dữ liệu biểu đồ vào thư viện
- Vẽ đồ thị
Hình ảnh do thư viện tạo ra:
Hình 9 Biểu đồ được tạo bởi qcustomplot
3.5 Giải pháp thiết kế
3.5.1 Thiết kế tổng thể
WiSSim Analyzer được chia làm 3 gói như sau:
Trang 40Hình 10 Thiết kế tổng thể WiSSim AnalyzerWiSSim Analyzer được chia thành 3 gói chính như sau:
liệu quét được vào mô hình phân tích, và phân tích dữ liệu Trong gói này,
có 2 modules chính và tập các mô hình dữ liệu sau:
o Analysis Models: Chứa các mô hình phân tích dữ liệu Các môhình này được thiết kế để lưu trữ một cách hợp lý, sao cho truyxuất, phân tích dữ liệu nhanh nhất
o Input files processing module: Thực hiện quét file đầu vào (baogồm file trace và data file), trích xuất dữ liệu thô, đưa vào môhình phân tích Analysis Models
o Analysis Module: Tổng hợp, phân tích dữ liệu từ mô hình dữliệu khi có yêu cầu
o Drawing Modules: thực hiện vẽ biểu đồ thể hiện số liệu
dạng dữ liệu khác nhau (hình ảnh, file excel) Có 2 modules chính của gói:
o Export Chart Modules: cho phép người dùng xuất dữ liệu hìnhảnh ra file