Tải bản đầy đủ (.docx) (60 trang)

engine thể hiện trực quan đồ họa cho hệ mô phỏng wissim trong mạng cảm biến không dây

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 60 trang )

TRƯỜ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

ENGINE THỂ HIỆN TRỰC QUAN ĐỒ HỌA
CHO HỆ MÔ PHỎNG WISSIM TRONG
MẠNG CẢM BIẾN KHÔNG DÂY
Giáo viên hướng dẫn: TS.Nguyễn Khanh Văn
TS.Nguyễn Thanh Hùng
Sinh viên thực hiện: Phạm Văn Khắc
Lớp CNPM–K53

HÀ NỘI 06 – 2013


Đồ án tốt nghiệp

PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1. Thông tin về sinh viên
Họ và tên sinh viên:
Phạm Văn Khắc
Điện thoại liên lạc:
01689967593
Email:
Lớp: CNPM K53
Hệ đào tạo: Chính quy


Đồ án tốt nghiệp được thực hiện tại bộ môn công nghệ phần mềm.
Thời gian làm đồ án tốt nghiệp từ ngày 27/02/2013 đến ngày 31/05/2013.
2. Mục đích nội dung của đồ án tốt nghiệp
Áp dụng những kiến thức đã học và đã tìm hiểu vào việc xây dựng công cụ hỗ trợ trực
quan mạng cảm biến không dây. Tìm hiểu kiến trúc, hoạt động của nền tảng mô phỏng
mạng NS2. Quản lý dự án, phân tích thiết kế và xây dựng phần mềm hệ thống mô phỏng
trực quan cho mạng cảm biến không dây.
3. Các nhiệm vụ cụ thể của đồ án tốt nghiệp
− Tìm hiểu thực trạng áp dụng công cụ mô phỏng mạng hiện nay. Đánh giá các
công cụ đó, từ đó thiết kế xây dựng công cụ phục vụ việc mô phỏng cho dự án.
− Tìm hiểu về công cụ mô phỏng ns2 (cấu trúc, cơ chế mô phỏng, các thành phẩn,
cách cài đặt giao thức mới trên ns2)
− Đưa ra kiến trúc và phương thức xử lý thông tin kết quả từ việc mô phỏng. Từ đó
xây dựng hệ thống thể hiện trực quan mô phỏng mạng cảm biến không dây.
4. Lời cam đoan của sinh viên
Tôi là Phạm Văn Khắc cam kết đồ án tốt nghiệp là công trình nghiên cứu của bản thân
tôi dưới sự hướng dẫn của TS. Nguyễn Khanh Văn.
Các kết quả nêu trong đồ án tốt nghiệp là trung thực, không phải là sao chép toàn văn
của bất kỳ công trình nào khác.
Hà Nội, ngày 31 tháng 05 năm 2013
Tác giả ĐATN
Phạm Văn Khắc
5. Xác nhận của giáo viên hướng dẫn về mức độ hoàn thành của đồ án tốt nghiệp và cho
phép bảo vệ:
Hà Nội, ngày tháng năm 2013
Giáo viên hướng dẫn

2

Phạm Văn Khắc - 20081397


2

Lớp CNPM-K53


Đồ án tốt nghiệp
TS. Nguyễn Khanh Văn

3

Phạm Văn Khắc - 20081397

3

Lớp CNPM-K53


Đồ án tốt nghiệp

TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Từ lý thuyết tới thực tế là cả một quãng đường dài. Để ra được một sản phẩm
ứng dụng được, ổn định và hoạt động tốt đòi hỏi nhiều công sức của những người thực
hiện. Đồng thời không có nhiều ý tưởng thành công. Trong hàng loạt nguyên nhân dẫn
tới sự thất bại của các ý tưởng đó, một phần rất lớn là do việc chưa khảo sát và thử
nghiệm tốt. Hoặc những thử nghiệm chưa sát với thực tế.Riêng đối với lĩnh vực định
tuyến mạng, việc thử nghiệm trước khi cài đặt lại càng rất quan trọng. Chỉ một sai sót
nhỏ thôi cũng gây ra thiệt hại rất lớn. Bởi lẽ, khi ứng dụng một mô hình định tuyến
mạng yêu cầu phần cứng sản xuất hàng loạt, nguồn nhân lực để cài đặt và thời gian để
đi vào hoạt động ổn định là rất lâu. Để khắc phục vấn đề trên, có nhiều công cụ cho

phép mô phỏng mạng đã ra đời. Sự ra đời của các công cụ này đã tối ưu cho rất nhiều
tổ chức, chính phủ trong việc triển khai các mô hình mạng.
Trong số những công cụ đó, nổi bật lên là Network Simulator (NS2). Công cụ ra
đời từ năm 1989, ban đầu được gọi với tên REAL, sau này được phát triển bởi phòng thí
nghiệm của đại học Berkeley. NS2 đã thực sự trở thành một điểm tựa cho nhiều cơ quan
trong việc cài đặt thử nghiệm các giải pháp định tuyến mạng. NS2 đã là một công cụ
mạnh và là lựa chọn hàng đầu cho việc mô phỏng mạng. Tuy nhiên, NS2 mới chỉ hỗ trợ
tốt đối với mạng có dây. Lĩnh vực mạng không dây thì NS2 chưa thực sự hỗ trợ tốt.
Chính vì vậy, chúng tôi, những người làm dự án đã lựa chọn hướng phát triển dựa trên
nền tảng NS2, tập trung nghiên cứu, bù đắp những thiếu sót của công cụ. Từ đó tạo ra
sản phẩm vừa khắc phục được những hạn chế của NS2 và cho phép những người nghiên
cứu trong lĩnh vực mô phỏng mạng (đặc biệt là mạng định tuyến không dây) có thể
nghiên cứu một cách dễ dàng hơn khi tương tác với nền tảng này. Sản phẩm này bao
gồm 4 phần: phần tạo kịch bản mô phỏng, thư viện các giao thức, công cụ phân tích
đánh giá kết quả và công cụ hỗ trợ quan sát mạng. Trong phạm vi đồ án, mục tiêu đề
cập chính ở đây sẽ là công cụ hỗ trợ quan sát trong mạng cảm biến không dây.

4

Phạm Văn Khắc - 20081397

4

Lớp CNPM-K53


Đồ án tốt nghiệp

ABSTRACT OF THE THESIS
Nowadays, the field of researching on Wireless Sensor Network (WSN) is paid

attention by many researchers. Because not only is it largely applied but it also is
unexplored so much. At the present, WSN has been implemented popularly. We, who are
working on the filed of studying, would like to own a tool allowing to simulate the WSN
to serve our job. However, now we haven’t seen anything meet our needs the best, hence
we decided to create a toolkit to satisfy us. First of all, these tools should serve us and
then, the researchers on WSN all could use them. Since then, our tool will give the
benefit for the researching community in this field. We are trying our best to achieve the
most effective products and looking forward to their consideration and feedback to make
us work better.

5

Phạm Văn Khắc - 20081397

5

Lớp CNPM-K53


Đồ án tốt nghiệp

LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm ơn tới các thầy cô trong trường Đại học Bách khoa
Hà Nội cùng với Viện Công nghệ thông tin và Truyền thông đã giảng dạy để tôi có được
những kiến thức, kinh nghiệm từ lý thuyết tới thực tiễn trong quá trình học tập và rèn
luyện.
Đặc biệt, tôi muốn gửi lời cảm ơn chân thành tới TS. Nguyễn Khanh Văn và TS.
Nguyễn Thanh Hùng đã tận tình chỉ bảo và giúp đỡ tôi trong quá trình học tập, nghiên
cứu cũng như trong thời gian làm đồ án tốt nghiệp. Những ngày được làm việc cùng với
các thầy thực sự tôi đã học được rất nhiều, từ kiến thức tới cách làm việc và cách sống.

Những kiến thức đó sẽ là hành trang tôi mà tôi tiếp tục mang theo và sử dụng trong suốt
cuộc đời của mình. Tôi vẫn nhớ câu nói của thầy Khanh Văn về sự nghiêm túc trong
công việc: “việc viết tài liệu phải được nhìn lại nhiều lần, làm sao để như một cuốn sách
mà ai cũng có thể đọc được và ta có thể tự hào rằng đó là một tác phẩm mà do tự mình
viết ra”.
Những lời hướng dẫn nhiệt tình của thầy Thanh Hùng thực sự đã giúp cho tôi rất
nhiều để hoàn thành đồ án. Thầy đưa ra những giải pháp phù hợp cho từng vấn đề gặp
phải, cách làm việc khoa học, rõ ràng giúp cho công việc của tôi trôi chảy và đúng tiến
độ đã đề ra. Bên cạnh đó thầy luôn sẵn sàng chia sẻ những kinh nghiệm cho các sinh
viên như tôi để ngày một hoàn thiện hơn.
Tập thể lớp Công nghệ phần mềm K53 là một tập thể đoàn kết, luôn sẵn sàng
giúp đỡ lẫn nhau. Quá trình học tập cùng với các bạn bè thực sự đã giúp tôi trường thành
rất nhiều.
Cuối cùng tôi xin cảm ơn gia đình, bạn bè xung quanh đã luôn quan tâm, giúp đỡ
tôi trong quá trình học tập để hoàn thành đồ án tốt nghiệp này.

Hà Nội, ngày 31 tháng 05 năm 2013
Phạm Văn Khắc

6

Phạm Văn Khắc - 20081397

6

Lớp CNPM-K53


Đồ án tốt nghiệp


DANH SÁCH CÁC HÌNH

7

Phạm Văn Khắc - 20081397

7

Lớp CNPM-K53


Đồ án tốt nghiệp

DANH SÁCH CÁC BẢNG

8

Phạm Văn Khắc - 20081397

8

Lớp CNPM-K53


Đồ án tốt nghiệp

DANH SÁCH TỪ VIẾT TẮT VÀ THUẬT NGỮ
Từ viết tắt

Nghĩa tiếng Việt


Dest

Đích

Event
GraphStrea
m
JSON/XML

Sự kiện, đại diện cho cách hành động của phần tử mạng

NAM

Công cụ thể hiện trực quan mặc định của NS2

Node

Phần tử trong mạng

NS2

Network Simulator version 2

Otcl

Object – oriented Tool Command Language

Packet


Gói tin được truyền trong mạng

Sensor

Thiết bị cảm biến

Simulation

Quá trình mô phỏng

Source

Nguồn

TCL

Tool Command Language

Tkev

Thành phần thể hiện trực quan trong OMNet++

TraceFile
WiSSim
Visualizor
WSN

Tệp tin đầu ra của quá trình mô phỏng

Xgraph


Thư viện cho phép vẽ đồ họa bằng ngôn ngữ C++

Thư viện vẽ đồ họa bằng ngôn ngữ Java
Tên 2 ngôn ngữ đặc tả dữ liệu thông dụng hiện nay.

Tên hệ thống mà chúng tôi xây dựng.
Wireless Sensor Network

9

Phạm Văn Khắc - 20081397

9

Lớp CNPM-K53


Đồ án tốt nghiệp

LỜI MỞ ĐẦU
Từ đầu những năm 1990, sự xuất hiện của các công cụ mô phỏng mạng đã thúc đẩy
hoạt động nghiên cứu lý thuyết lên một tầm cao mới. Đặc biệt là công cụ NS2 (network
simulation version 2) đã giúp ích cho rất nhiều tổ chức, chính phủ trong việc nghiên cứu
các giải thuật định tuyến mạng ở thời kỳ đầu. Ngày nay, chúng ta đã trải qua hơn 20 năm
những công cụ đó đã phát triển đến mức độ hoàn chỉnh, đáp ứng được đa số nhu cầu của
những nhà nghiên cứu. Tuy nhiên, càng ngày, tính ứng dụng của việc vận chuyển thông
tin trong mạng lại đặt ra những vấn đề phức tạp hơn. Mỗi mục đích lại đi kèm với một
khó khăn trong việc cài đặt và triển khai. Lại càng khó khăn hơn khi đi từ lý thuyết tới
thực tế, khoảng cách đó vẫn còn xa bởi những công cụ hiện nay tuy đã cài đặt được hầu

hết các giao thức phổ biến, tuy nhiên một số vấn đề còn bất cập như:
-

Việc cài đặt một giải thuật mới khá là phức tạp và đòi hỏi một lượng lớn thời gian
vào việc tìm hiểu công cụ để sử dụng.
Quá trình thể hiện kết quả để đánh giá chưa thực sự là tốt. Chưa có một công cụ nào
có thể đáp ứng được hầu hết các nhu cầu cho việc đánh giá, phân tích những kết quả
mà thuật toán của họ mạng lại.

Chúng tôi đã nhận ra những bất cập đó và muốn góp phần rút ngắn quãng đường đi
từ lý thuyết tới đời thường. Chúng tôi đã quyết định xây dựng một công cụ cho phép
biểu diễn lại quá trình mô phỏng mạng với đầu vào là thuật toán của người dùng, đầu ra
là những đối tượng dưới dạng đồ họa, thể hiện một cách trực quan nhất sự hoạt động của
mạng. Từ đó, người dùng có thể đánh giá được kết quả của họ một cách nhanh nhất.
Bộ công cụ của chúng tôi xây dựng trên nền tảng NS2 bởi nền tảng vững chắc, bộ
giải thuật đầy đủ hơn cả so với các công cụ khác. Là một phần trong dự án lớn mà chúng
tôi sẽ xây dựng, đồ án này tập trung nghiên cứu về “Engine thể hiện trực quan đồ họa
cho hệ mô phỏng WiSSim trong mạng cảm biến không dây”. Trong phạm vi đồ án,
tôi sẽ trình bày về phần Engine của công cụ cho phép thể hiện trực quan kết quả đầu ra
trong quá trình mô phỏng thuật toán của người dùng.
Nội dung đồ án mà tôi thực hiện bao gồm những nội dung chính sau:
-

Tìm hiểu bộ công cụ nền tảng mô phỏng mạng NS2, cơ chế hoạt động cũng như
thành phần của nó. Từ đó đưa ra được hình mẫu cho hệ thống mà chúng tôi sẽ cài đặt
cho ứng dụng của mình.

10

Phạm Văn Khắc - 20081397


10

Lớp CNPM-K53


Đồ án tốt nghiệp
-

Phân tích và thiết kế hệ thống thể hiện trực quan mô phỏng mạng cảm biến không
dây. Đảm bảo hệ thống của chúng tôi thể hiện một cách đúng đắn, trực quan và dễ sử
dụng đối với những người sử dụng.

Cụ thể, đồ án này bao gồm 2 phần chính:
1. Phần I: Đặt vấn đề và định hướng giải pháp

Gồm 2 chương:
a. Mô phỏng mạng và định tuyến không dây. Chúng tôi sẽ giới thiệu cho người đọc các

khái niệm liên quan tới lĩnh vực định tuyến mạng không dây, đồng thời người đọc
cũng làm quen với ý tưởng xây dựng một công cụ cho phép mô phỏng các hoạt động
của mạng. Chúng tôi cũng đánh giá một số công cụ mô phỏng mạng hiện nay. Từ đó,
người đọc có thể hiểu được con đường mà chúng tôi đã chọn và mục đích của công
việc của chúng tôi.
b. Công cụ mô phỏng mạng NS2: Chúng tôi lựa chọn NS2 làm nền tảng phát triển cho
công cụ của mình. Kiến trúc của công cụ NS2, sự hoạt động của nó, những ý tưởng
mà chúng tôi đúc rút ra từ nền tảng này được áp dụng như thế nào cũng được chúng
tôi trình bày trong phần này.
2. Phần II: Kết quả đã đạt được


Bao gồm 2 chương:
a. Chương thứ nhất: Thiết kế hệ thống tổng quan. Kiến trúc WiSSim Visualizer hoạt

động như thế nào? Những thành phần mà chúng tôi đã xây dựng. Cơ chế liên kết giữa
các thành phần đó ra sao? Chúng tôi sẽ đưa tất cả những câu trả lời cho người đọc
trong phần này.
b. Chương thứ hai: Kiến trúc chi tiết và cài đặt. chương này bao gồm các sơ đồ thiết kế
chi tiết mà chúng tôi đã xây dựng. Người đọc có thể hiểu được sự hoạt động nhìn từ
góc độ của người dùng thông qua các lược đồ ca sử dụng. Chi tiết liên kết, cấu trúc
phân cấp của các lớp sẽ được biểu diễn qua sơ đồ lớp. Biểu đồ tuần tự sẽ cho người
dùng thấy được quá trình hoạt động của công cụ như thế nào. Từ đó những người
quan tâm có thể kế thừa, mở rộng các tính năng mà chúng tôi đã xây dựng. Từ đó
công cụ ngày càng hoàn thiện và mở rộng đáp ứng nhu cầu của người dùng.

11

Phạm Văn Khắc - 20081397

11

Lớp CNPM-K53


Đồ án tốt nghiệp

PHẦN I. ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP.
Chương I. Mô phỏng mạng và định tuyến không dây.
1. Mô phỏng mạng là gì?

Để hiểu rõ hơn khái niệm này, trước hết ta tìm hiểu sơ qua về mạng. Mạng ở đây

được hiểu với nghĩa là một tập hợp các thiết bị có khả năng kết nối, trao đổi thông tin
với nhau. Các thiết bị này có thể là máy tính, sensor… có khả năng phát và thu tín hiệu
từ các thiết bị khác. Trên thực tế, ta có thể dễ dàng liên tưởng tới mạng internet. Tuy
nhiên ví dụ này là khá bao quát. Trong phạm vi tài liệu này, chúng tôi chỉ muốn đề cập
tới mạng không dây, và các thiết bị hạn chế về khả năng lưu trữ thông tin, năng lượng
hoạt động, và khả năng giao tiếp giữa các thiết bị. Cụ thể, đối tượng nghiên cứu chính
cho đề tài này là các cảm biến (sensor).
Vậy mô phỏng mạng chính là biểu diễn quá trình hoạt động và giao tiếp giữa các
thiết bị trong một mạng, thông qua các công cụ mà không cần phải cài đặt trực tiếp, ta
vẫn có thể hình dung được sự hoạt động của các phần tử trong mạng và toàn bộ mạng
đó. Chính vì vậy, ta có thể hiểu ngay được tác dụng của việc mô phỏng mạng. Mô phỏng
mạng sẽ đem lại những lợi ích sau:
+ Không phải mất quá nhiều chi phí cho việc sản xuất, cài đặt và kiểm tra khi
dùng mạng thật. Rõ ràng ta chỉ việc tạo ra các “thiết bị ảo” rồi đặt chúng ở trong một
môi trường có các điều kiện gần giống ngoài thực tế. Và ta có thể biết chúng sẽ hoạt
động ra sao trong môi trường thực. Tất nhiên việc mô phỏng không thể nào hoàn toàn
đúng 100% như khi cài đặt thật. Nhưng ta có thể chấp nhận một sự sai khác trong giới
hạn cho phép.
+ Tránh được nhiều rủi ro, hay thậm chí có thể khảo sát tốt hơn so với cài đặt
ngoài thực tế. Ta có thể lường trước được các rủi ro có thể xảy ra và thử nghiệm khắc
phục theo nhiều cách. Từ đó, kết quả tốt nhất sẽ được áp dụng vào thực tế, tránh những
sự cố không mong muốn xảy ra hoặc ta đã có phương án đối phó khi sự cố nào đó xảy
ra. Đồng thời, việc hoạt động đối với các thiết bị thật sẽ phụ thuộc rất nhiều yếu tố ngoại
cảnh, mà ta chỉ quan tâm tới một số yếu tố ngoại cảnh nhất định, khi đó sẽ xảy ra hiện
tượng nhiễu và quá nhiều thông tin dư thừa. Từ đó sẽ rất khó khăn cho việc quan sát và
kiểm tra kết quả. Trong môi trường mô phỏng, ta hoàn toàn có thể lược bỏ đi các thông
tin không liên quan, việc khảo sát sẽ tập trung, chính xác hơn rất nhiều.
12

Phạm Văn Khắc - 20081397


12

Lớp CNPM-K53


Đồ án tốt nghiệp
+ Tiết kiệm thời gian, nhân lực. Khi ta muốn thay đổi trạng thái, thông tin của các
thiết bị, ta không cần phải làm với từng thiết bị, không phải tốn nhiều nhân lực thực
hiện. Khi mô phỏng, ta chỉ cần thay đổi một vài thông số là đã có thể đạt yêu cầu đề ra.
+ Đánh giá kết quả một cách rõ ràng. Chẳng hạn, khi bạn có một giao thức mới.
Bạn muốn biết giao thức đó so với các giao thức đã có sẵn như thế nào? Khi đó bạn phải
nhờ tới công cụ mô phỏng mạng. Công cụ cho bạn thấy được với cùng điều kiện như
nhau, mạng mới hoạt động tốt hơn so với mạng cũ nhiều hay ít. Việc triển khai có tính
khả thi hay không?
+ Một lợi ích quan trọng không kém là đối với trường hợp khảo sát số lượng lớn.
Bạn không thể nào thử nghiệm từ hàng ngàn tới chục ngàn thiết bị được. Rất khó khảo
sát và thu thập thông tin. Khi đó bạn phải nhờ tới công cụ mô phỏng mạng. Số lượng bạn
có thể khảo sát là rất lớn. Thậm chí lên tới hàng triệu thiết bị bạn vẫn có thể khảo sát
được.
Hiện nay có rất nhiều công cụ cho phép thực hiện việc mô phỏng mạng. Chẳng hạn
như NS2, GloMoSim, NetSim, OMNeT++… Một công cụ mô phỏng mạng tốt là một
công cụ có khả năng thể hiện các tính chất của mạng giống với thực tế nhất. Từ đó,
những người nghiên cứu có thể đánh giá chính xác, thuận tiện. Mỗi công cụ đều tập
trung tới những mảng cụ thể và có những ưu nhược điểm riêng. Tại thời điểm chúng tôi
thực hiện dự án, 2 công cụ phổ biến nhất hiện tại chính là NS2 và OMNet++. Hai công
cụ này chính là ví dụ điển hình về mô phỏng mạng. Trong số những công cụ này, NS2
nổi bật hơn cả bởi tính lâu đời, kèm theo là cộng đồng phát triển đông đảo. NS2 ra đời từ
năm 1989 – công cụ ra đời sớm nhất, đến nay, bộ thư viện các giao thức đã rất đầy đủ.
NS2 đã hỗ trợ sẵn các giao thức phổ biến hiện nay. Đồng thời, khả năng tùy biến của

NS2 là rất cao, người dùng có thể cài đặt giao thức mới, can thiệp vào sâu trong hệ thống
NS2, tùy chỉnh các thông số theo mục đích cụ thể của dự án. Hơn nữa, NS2 chạy rất
nhanh bởi nền tảng ở dưới chính là C++., đồng thời người dùng có thể điều chỉnh một
cách dễ dàng thông qua ngôn ngữ kịch bản TCL. Ở phần sau, chúng tôi có tìm hiểu và so
sánh hai công cụ phổ biến nhất này. Dựa vào những kết quả so sánh đó chúng tôi đã lựa
chọn NS2 làm công cụ phát triển.
2. Vai trò định tuyến trong mạng cảm biến không dây.

Ở trên, mỗi thiết bị (sensor) đã nhắc đến xem như một phần tử ở trong mạng. Riêng
đối với lĩnh vực mạng, mỗi phần tử đó được gọi là một node. Mỗi node này sẽ đóng vai
trò thu thập thông tin, gửi/nhận thông tin với các node khác trong mạng. Từ đó, thông tin
mà mỗi node thu được sẽ gửi về cho một node trung tâm. Tùy theo mục đích cụ thể mà
13

Phạm Văn Khắc - 20081397

13

Lớp CNPM-K53


Đồ án tốt nghiệp
thông tin các node thu thập sẽ khác nhau. Nhưng có một điểm chung giữa các dự án với
mục đích khác nhau ấy, chính là việc trao đổi thông tin giữa các node trong mạng. Việc
định tuyến mạng sẽ quyết định dòng chảy thông tin sẽ đi theo hướng nào? Điều này là
rất quan trọng bởi vì chính những đặc tính của node. Đối tượng node mà chúng ta đang
đề cập chính là các sensor. Sensor có ưu điểm là gọn nhẹ, giá thành rẻ và tốn ít năng
lượng. Sensor thích hợp cho các nhiệm vụ đo đạc, cần một lượng thông tin lớn. Hiện
nay, sensor đã được áp dụng trong các lĩnh vực địa lý, sinh học, điện tử, hóa chất… Tuy
nhiên với hạn chế về năng lượng, tính ổn định và khả năng lưu trữ - xử lý thông tin thấp

nên việc truyền nhận thông tin đối với các sensor này gặp nhiều khó khăn. Từ đó, chúng
ta cần tối ưu quá trình hoạt động của các sensor để đạt hiệu suất cao nhất. Bài toán định
tuyến trong mạng cảm biến không dây sinh ra để giải quyết vấn đề đó.
3. Ứng dụng của mạng cảm biến không dây.

Mạng cảm biến không dây được ứng dụng nhiều trong các lĩnh vực nghiên cứu và
quân sự. Một số ví dụ có thể kể ra là theo dõi hoạt động của các sinh vật. Khi nghiên cứu
các một số loài vật, ta cần biết được thói quen sinh hoạt của chúng. Chẳng hạn, một số
loài động vật sắp tuyệt chủng, để bảo vệ và giữ được các cá thể còn lại, ta cần biết được
tập tính của chúng. Hoặc khi nghiên cứu về các dư chấn động đất tại một vùng địa lý nào
đó, ta cũng có thể đặt các sensor cảm biến đo độ rung chuyển. Từ các kết quả thu được ta
có thể dự báo kết quả trong tương lai. Riêng đối với lĩnh vực quân sự, thông tin yêu cầu
phải luôn được cập nhật, chính xác và thay đổi liên tục. Từ các sensor ta có thể thu được
những trạng thái bất thường của môi trường khi có biến cố. Vấn đề càng nghiêm trọng
đối với những vùng chiến sự, thắng thua chỉ trong gang tấc. Còn đối với lĩnh vực sản
xuất, công nghệ cao, chẳng hạn ta cần thu thập nhiệt độ bề mặt của tường tại các vùng
khác nhau trong lò phản ứng hạt nhân. Mọi sự thay đổi sẽ liên tục cập nhật và luôn đảm
bảo giải quyết kịp thời khi có sự cố xảy ra.
4. Bài toán định tuyến mạng cảm biến không dây.

Một câu hỏi cũng được đặt ra là: tại sao không áp dụng các thuật toán định tuyến đã
có trước đây? Mặc dù những phương pháp đó đã được đánh giá là hiệu quả, hay đã được
áp dụng từ rất lâu rồi, tuy nhiên ta cũng cần phải hiểu là mỗi bài toán sẽ gặp một vấn đề
khác nhau, đặc biệt là trong lĩnh vực mạng không dây. Chẳng hạn, với các mạng thông
thường hiện nay, các phần tử trong mạng lưu dữ liệu về một bảng thông tin ở các phần tử
xung quanh. Khi muốn gửi thông tin tới đâu, node đó chỉ việc kiểm tra thông tin trong
bảng định tuyến đó rồi lựa chọn một số node để gửi. Nhưng vấn đề sẽ không còn đúng
nữa khi mà các node thường xuyên di chuyển (chẳng hạn các sensor gắn trên động vật)
hay khi chúng không hoạt động liên tục (sensor hoạt động dựa trên năng lượng ánh sáng,
14


Phạm Văn Khắc - 20081397

14

Lớp CNPM-K53


Đồ án tốt nghiệp
ban đêm sẽ hoạt động yếu hơn)… Khi đó, những node đó không thể gửi hoặc nhận tín
hiệu. Như vậy, nếu ta lưu một bảng định tuyến ở các node xung quanh thì sẽ không còn ý
nghĩa nữa. Tại một thời điểm, node A có thể là node lân cận của node B, nhưng tại một
thời điểm khác (có thể hai thời điểm rất gần nhau) node A không còn liên lạc gì tới node
B được nữa. Chính vì việc kết nối phụ thuộc rất nhiều điều kiện như vậy, nên chúng ta
cũng cần xác định thuật toán nào nên được áp dụng cho bài toán cụ thể.
Để việc tính toán trở nên đơn giản và tính ứng dụng rộng rãi, chúng tôi hiện tại mới
chỉ nghiên cứu việc mô phỏng mạng trên không gian phẳng (2 chiều). Bởi lẽ tính ứng
dụng cấp thiết của việc mô phỏng 2 chiều là lớn hơn rất nhiều trong không gian 3 chiều.
Đồng thời, đó cũng là bước cơ sở để chúng tôi phát triển lên việc mô phỏng phức tạp
hơn sau này.
Không gian mạng biểu diễn phải bao quát được toàn bộ không gian các hoạt động
diễn ra. Chúng tôi lựa chọn một không gian hình chữ nhật. Do chỉ có hoạt động gửi nhận
thông tin giữa các node nên không gian mô phỏng mạng chính là hình chữ nhật bao lớn
nhất bao quát được toàn bộ tất cả mạng. Chính vì kích thước của các node trong mạng so
với kích thước của toàn bộ không gian mạng là rất nhỏ (phạm vi nghiên cứu trên một
không gian lớn và số lượng node rất nhiều) nên chúng tôi biểu diễn mỗi node mạng như
một điểm trên một không gian phẳng. Thông tin để biểu diễn node bao gồm tọa độ (x-y)
và năng lượng (energy) của node đó. Khi triển khai trong môi trường thực tế, việc đặt
các node có thể là ngẫu nhiên hoặc cố ý. Đối với trường hợp rải các node mạng trên một
diện tích rộng (ví dụ như đo thông số thời tiết trên một cánh đồng) thì ta phải trải đều các

node trên diện tích đó. Như vậy tọa độ của các node có thể coi là ngẫu nhiên. Việc mô
phỏng cũng phải đảm bảo được với điều kiện tương tự như vậy. Năng lượng ban đầu
cung cấp cho mỗi node có thể gần xấp xỉ nhau (trong quá trình sản xuất hàng loạt với số
lượng lớn các sensor), Vì vậy, ban đầu chúng ta có thể coi các node đồng đều về mặt
năng lượng. Trong quá trình hoạt động, do các điều kiện môi trường mà mỗi node sẽ bị
tiêu hao năng lượng khác nhau. Một node bị mất năng lượng sẽ không thể gửi nhận
thông tin tới các node khác, cũng như khả năng thu thập thông tin. Việc này sẽ ảnh
hưởng tới các node khác, mỗi node phải dựa vào thuật toán định tuyến đã được cài đặt
để quyết định gửi thông tin cho node nào còn đang hoạt động và có thể về được tới node
trung tâm mà không gây tắc nghẽn. Rõ ràng đây là một bài toán phức tạp và hiện nay
đang được nhiều nhà nghiên cứu đề xuất nhiều giải pháp khác nhau.
Những đề tài về mạng cảm biến không dây là khá nhiều. Lý do chính là đây là một
vấn đề lớn và còn nhiều vấn đề chưa được khai thác. Để thực hiện tốt hơn công việc của
mình, chúng tôi đã giới hạn phạm vi nghiên cứu từ đó làm tăng chất lượng và tính ứng
dụng của sản phẩm. Chúng tôi tập trung nghiên cứu bài toán định tuyến với điều kiện
15

Phạm Văn Khắc - 20081397

15

Lớp CNPM-K53


Đồ án tốt nghiệp
xuất hiện hố trong mạng. Với tình huống này, các node mạng giao tiếp với nhau sẽ bị
hạn chế hơn. Tuy nhiên tính thực tế lại rất cao vì điều kiện ngoại cảnh sẽ không bao giờ
thuận lợi cho việc truyền tin. Hình vẽ sau mô tả ví dụ việc tìm đường đi trong một mạng
xuất hiện hố lớn ở giữa:


Hình Tìm đường đi trong mạng với hố.
Ở hình vẽ trên, ta coi node Dest là trung tâm nhận thông tin. Node Source muốn
gửi thông tin vừa thu thập được cho node Dest. Trong mạng xuất hiện một hố lớn ở giữa.
Khi đó việc truyền tin phải đảm bảo thông tin về được đến Dest, thời gian và lượng
thông tin vận chuyển tiết kiệm nhất.
Công cụ mà chúng tôi xây dựng giúp cho những người nghiên cứu cài đặt thuật toán
mà họ đề xuất. Đồng thời biểu diễn kết quả đầu ra một cách trực quan nhất. Thông qua
công cụ của chúng tôi, những người nghiên cứu có thể thấy ngay được thuật toán đó đã
đạt được mục đích của họ chưa. Nếu chưa, cần cải tiến thêm những gì để đạt hiệu quả tốt
nhất. Công cụ này cho phép giảm thời gian nghiên cứu phát triển, không yêu cầu người
dùng quá phụ thuộc vào công cụ NS2 – được đánh giá là không dễ sử dụng. Trong phạm
vi đồ án, chúng tôi chỉ trình bày phần mô phỏng kết quả do công cụ NS2 sinh ra. Sau khi
người nghiên cứu cài đặt thuật toán nào đó, thiết kế file kịch bản TCL (bằng việc sử
dụng công cụ kéo thả trực quan của chúng tôi), NS2 sẽ sinh ra một tệp tin gọi là file
16

Phạm Văn Khắc - 20081397

16

Lớp CNPM-K53


Đồ án tốt nghiệp
Trace. File trace sẽ là đầu vào cho quá trình mô phỏng, thể hiện trực quan những hoạt
động giữa các node trong mạng.
5. So sánh các công cụ thể hiện trực quan mô phỏng mạng hiện nay

Dưới đây là bảng so sánh các đặc tính hỗ trợ của hai công cụ thể hiện trực quan mô
phỏng mạng thông dụng nhất: NAM (thể hiện trực quan cho NS2) và Tkev (Thể hiện

trực quan cho OMNet++). Chi tiết của việc so sánh các công cụ mô phỏng NS2 và
OMNet++ có thể xem thêm trong phần phụ lục.

Hình Giao diện Tkev và NAM
Đặc tính

Tkev
Được tích hợp vào quá trình
mô phỏng
Đẹp, Dễ sử dụng, trực quan
Không cho phép di chuyển
chạy đến thời điểm bất kỳ
trong quá trình mô phỏng

NAM
Tách riêng sau khi quá trình
Phương thức hoạt động
mô phỏng ngầm kết thúc
Tính dễ sử dụng
Khó sử dụng, mất công học
Cho phép người dùng lựa
Thanh kéo thời gian
chọn thời điểm diễn ra sự
kiện
Người dùng có thể lựa chọn
Chưa cho phép người dùng
Theo vết
1 gói tin và theo dõi đường
theo vết gói tin
đi của nó

Không có cơ chế lọc các sự
Lọc sự kiện
kiện, buộc người dùng phải Chưa có cơ chế lọc sự kiện
tùy chỉnh trong code
Không thể chọn 1 số các
Lọc theo không gian
Chưa có
node để tập trung quan sát
Chạy lại quá trình mô
Chỉ cần file trace là có thể
Phải chạy lại cả project
phỏng
chạy bất cứ lúc nào
Kéo thả vị trí của node
Không cho phép
Cho phép
17

Phạm Văn Khắc - 20081397

17

Lớp CNPM-K53


Đồ án tốt nghiệp
Chọn 1 vùng để xem
Không cho phép
thông tin


Không cho phép

Bảng : Bảng so sánh hai công cụ thể hiện trực quan mô phỏng mạng.

18

Phạm Văn Khắc - 20081397

18

Lớp CNPM-K53


Đồ án tốt nghiệp
Từ bảng trên, chúng tôi rút ra một số nhận xét như sau:
-

Mỗi công cụ đều có điểm mạnh: Tkev hướng tới tính dễ sử dụng, với đồ họa trực
quan, còn NAM cho phép người dùng có thể tương tác nhiều hơn.
Tkev không thể hoạt động độc lập và đó là hạn chế lớn, trong khi đó, NAM có thể
hoạt động với file trace đầu vào duy nhất.
Những tính năng hỗ trợ người dùng của NAM là rất cần thiết với những người
phân tích kết quả.

Thông qua những kết quả trên chúng tôi đã quyết định tích hợp những ưu điểm của
cả hai công cụ và khắc phục những hạn chế của các công cụ đó, từ đó đảm bảo tính dễ sử
dụng và trở thành công cụ hỗ trợ đắc lực cho những người nghiên cứu về các vấn đề định
tuyến mạng.

19


Phạm Văn Khắc - 20081397

19

Lớp CNPM-K53


Đồ án tốt nghiệp

Chương II: Công cụ mô phỏng mạng NS2
1. Giới thiệu công cụ NS2

Công cụ mô phỏng mạng NS2 ra đời từ năm 1989. NS2 chính là công cụ đầu tiên
trong việc mô phỏng mạng, sau này những công cụ khác đã sinh ra cũng với ý tưởng
chung mà NS2 đặt nền móng. Cũng chính bởi tính lịch sử của nó mà hiện nay, bộ thư
viện các giải thuật định tuyến, các giao thức có dây và không dây hiện nay đều đã được
tích hợp.

Hình Công cụ NAM – biểu diễn quá trình mô phỏng mạng.
NS2 mô phỏng sự hoạt động của mạng theo trục thời gian. Mỗi hoạt động được mô tả
bởi một sự kiện (event). Những sự kiện này có tương ứng với một loại hoạt động khác
nhau. Sự kiện liên quan tới gói tin, tới node hoặc các loại sự kiện khác.
2. Cơ chế hoạt động NS2

Quá trình mô phỏng được diễn ra theo một trục thời gian. Những sự kiện được lập
lịch trên trục thời gian này. Hình vẽ sau mô tả cơ bản về quá trình đó:
20

Phạm Văn Khắc - 20081397


20

Lớp CNPM-K53


Đồ án tốt nghiệp

Hình Sự kiện được biểu diễn theo thời gian trong NS2
Các sự kiện này được sắp xếp theo trục thời gian. Như vậy, mỗi một sự kiện đã chứa
một biến thời gian tại thời điểm nó xảy ra. Các sự kiện này phải đảm bảo được các yếu
tố sau:
-

-

Mỗi một sự kiện phải chứa một giá trị thời gian, cho biết sự kiện đó xảy ra tại thời
điểm nào. Sự kiện là tuần tự, tức là sự kiện sau có thời gian lớn hơn sự kiện trước
đó.
Các sự kiện diễn ra rời rạc. Khoảng cách giữa các sự kiện có thể sẽ không đều
nhau, lúc nhiều lúc ít.
Trong quá trình mô phỏng, sự kiện được gọi lần lượt. Sẽ không có hiện tượng sự
kiện sau lại được gọi trước. Mặc dù có những trường hợp sự kiện này sinh ra một
sự kiện khác như dưới đây:

Hình Quá trình mô phỏng các sự kiện.
Người dùng có thể tương tác với NS2 qua hai phương thức. Cách thứ nhất, người
dùng có thể sử dụng ngôn ngữ TCL để tương tác với NS2. Đây là một ngôn ngữ kịch bản
dễ học, ngắn gọn. Cách thứ hai là người dùng có thể trực tiếp chỉnh sửa ở sâu trong lõi
của NS2. Việc này đòi hỏi tốn nhiều công sức và cần một hiểu biết sâu về ngôn ngữ C+

+.

21

Phạm Văn Khắc - 20081397

21

Lớp CNPM-K53


Đồ án tốt nghiệp
Trong hệ thống NS2 duy trì một lớp có vai trò lập lịch. Lớp này sẽ chi phối toàn
bộ thời gian của quá trình mô phỏng. Tất cả các việc sắp xếp các sự kiện, gọi các sự kiện
theo đúng thời gian mô phỏng đều do lớp Schedule đảm nhiệm. Cũng từ mô hình này mà
chúng tôi đã áp dụng vào trong ứng dụng mô phỏng của mình. Một lớp chuyên có vai trò
lập lịch và gọi các sự kiện theo đúng thời gian mô phỏng của chúng.
Cơ chế làm việc của NS2 với hai ngôn ngữ TCL và C++ như sau:

Hình Cơ chế hoạt động của NS2
Ta có thể thấy sự ánh xạ từ ngôn ngữ TCL tới C++. Từ một tệp tin kịch bản đầu
vào (ngôn ngữ Tcl) sẽ tương ứng với các đối tượng C++ được sinh ra. Việc ánh xạ này
thông qua một cơ chế trung gian chính là các đối tượng OTcl. NS2 sẽ dựa vào các đối
tượng sinh ra bởi ngôn ngữ C++ và thực hiện quá trình mô phỏng. Kết quả cuối cùng sẽ
là Trace File. Tệp tin trace file sẽ được các công cụ hỗ trợ phân tích và mô phỏng. Các
công cụ này sẽ cung cấp cho người dùng một cách trực quan nhất kết quả của quá trình
mô phỏng. Ở hình vẽ trên, 2 công cụ được đề cập tới chính là NAM và Xgraph.
Sự ánh xạ từ ngôn ngữ TCL tới C++ được mô tả rõ qua hình vẽ sau:

22


Phạm Văn Khắc - 20081397

22

Lớp CNPM-K53


Đồ án tốt nghiệp

Hình Sự tương ứng từ TCL tới C++
Cả hai ngôn ngữ đều chứa các lớp đối tượng. Có một sự tương ứng giữa một số lớp
giữa hai ngôn ngữ. Sự kế thừa, bao đóng của các đối tượng cũng được giữ nguyên và
giống nhau ở cả hai ngôn ngữ này.
3. Các thành phần cơ bản của NS2

Hệ thống NS2 rất phức tạp. Hệ thống này bao gồm với hơn trăm lớp cơ bản. Trong
đó lại được chia thành hai khối: khối điều khiển và khối dữ liệu. Với khối điều khiển,
khối này có vai trò tạo và thực thi quá trình mô phỏng. Từ dữ liệu đầu vào, khối này xử
lý, đưa ra kết quả đầu ra. Khối thứ hai, khối dữ liệu, đóng vai trò là các đối tượng dữ liệu
cơ sở phục vụ cho quá trình mô phỏng. Để có một cái nhìn tổng quát hơn, người đọc có
thể xem trong hình sau:

23

Phạm Văn Khắc - 20081397

23

Lớp CNPM-K53



Đồ án tốt nghiệp

Hình Sơ đồ tổ chức các lớp cơ bản trong NS2
Ở đây ta để ý là tất cả các lớp con liên quan tới mạng, phục vụ trong quá trình mô
phỏng đều là lớp con của lớp NsObject. Lớp này mang một ý nghĩa: đại diện cho những
phần tử mạng. Việc tổ chức này rất thuận lợi cho phát triển sau này. Khi hệ thống quá
lớn và người dùng tự định nghĩa những lớp của riêng họ, những lớp nào phục vụ trong
quá trình hoạt động mô phỏng mạng đều bắt buộc phải kế thừa từ NsObject. Chúng tôi
cũng dựa trên phương thức này mà cũng xây dựng một lớp chung trong ứng dụng mô
phỏng riêng.
4. Định dạng của trace file.

Đầu vào của quá trình mô phỏng trực quan cho người dùng chính là trace file. Chính
vì vậy, file trace càng nhiều dữ liệu thì việc mô phỏng càng diễn ra thuận lợi. NS2 cơ bản
đã định nghĩa file trace riêng. Công cụ mô phỏng trực quan chính là NAM. Công cụ này
được tích hợp sẵn trong NS2, sử dụng thư viện Xgraph để vẽ.
Một ví dụ về file trace:

24

Phạm Văn Khắc - 20081397

24

Lớp CNPM-K53


Đồ án tốt nghiệp


Hình File trace: trace.tr
Đây là file mặc định mà NS2 quy định (chúng ta hoàn toàn có thể thay đổi định dạng
này, và chúng tôi đã làm) bao gồm các trường thông tin cơ bản sau:

Hình Các trường thông tin của file trace.
Chẳng hạn, ký hiệu đầu tiên có thể là ‘+’ ‘-‘ ‘r’ hay ‘d’ biểu diễn loại của sự kiện.
-

Trace/Enque: + : gói tin được cho vào hàng đợi
Trace/Deque - : gói tin được lấy ra khỏi hàng đợi.
Trace/Drop: d : gói tin bị hủy
Trace/Recv: r : gói tin được nhận ở 1 node.

Các trường khác người đọc có thể tham khảo thêm trong cuốn sách giới thiệu về NS2:
“Introduction to Network Simulator NS2” trong phần phụ lục.
Trong quá trình tìm hiểu, chúng tôi đã nhận thấy rằng nếu để nguyên định dạng
như NS2 quy định, trace file sẽ gây khó khăn cho người đọc và muốn phát triển mở
rộng. Chúng tôi cũng nhận thấy rằng hiện nay có 2 loại định dạng phổ biến, đó là JSON
và XML. Hai ngôn ngữ đặc tả này thông dụng và được hỗ trợ bởi nhiều thư viện phân
tích. Chính vì vậy chúng tôi đã quyết định lựa chọn 1 trong 2 ngôn ngữ này để sử dụng
cho file trace của mình.Và chúng tôi quyết định lựa chọn XML bởi tính dễ đọc, dễ hiểu,
thuận lợi cho việc phân tích dữ liệu. Đồng thời khi phân tích trace file với dữ liệu lớn,
hiệu năng vẫn được đảm bảo. Ở phần sau chúng tôi có nói về hiệu năng phân tích trace
file với số lượng các node khác nhau.
Sau đây là định dạng của trace file mà chúng tôi quy định:

25

Phạm Văn Khắc - 20081397


25

Lớp CNPM-K53


×