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
Trang 1VIỆ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
Trang 2MỤC LỤC
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 2
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP 3
ABSTRACT OF THE THESIS 4
LỜI CẢM ƠN 5
DANH SÁCH CÁC HÌNH 6
DANH SÁCH CÁC BẢNG 7
DANH SÁCH TỪ VIẾT TẮT VÀ THUẬT NGỮ 8
LỜI MỞ ĐẦU 9
PHẦN I ĐẶT VẤN ĐỀ VÀ ĐỊNH HƯỚNG GIẢI PHÁP 11
Chương I Mô phỏng mạng và định tuyến không dây 11
1 Mô phỏng mạng là gì? 11
2 Vai trò định tuyến trong mạng cảm biến không dây 12
3 Ứng dụng của mạng cảm biến không dây 13
4 Bài toán định tuyến mạng cảm biến không dây 13
5 So sánh các công cụ thể hiện trực quan mô phỏng mạng hiện nay 16
Chương II: Công cụ mô phỏng mạng NS2 18
1 Giới thiệu công cụ NS2 18
2 Cơ chế hoạt động NS2 18
3 Các thành phần cơ bản của NS2 21
4 Định dạng của trace file 22
5 Nền tảng – Công cụ phát triển 24
6 Thư viện đồ họa để biểu diễn 24
PHẦN II CÁC KẾT QUẢ ĐẠT ĐƯỢC 25
Chương III Thiết kế hệ thống 25
3.1 Thiết kế tổng quan 25
3.2 Thiết kế chi tiết 37
KẾT LUẬN 47
TÀI LIỆU THAM KHẢO 48
PHỤ LỤC 49
Đánh giá hiệu năng một số công cụ mô phỏng mạng hiện nay 49
Trang 3PHIẾ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: khacpv@gmail.com
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ựcquan 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ỏngmạ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ỏngtrự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áccô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ăncủ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à chophép bảo vệ:
Hà Nội, ngày tháng năm 2013
Giáo viên hướng dẫn
TS Nguyễn Khanh Văn
Trang 4TÓ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.
Trang 5ABSTRACT 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.
Trang 6LỜ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ó đượcnhữ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ènluyệ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êncứ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ớicá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ốtcuộ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ấtnhiề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ặpphả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 sinhviê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ấtnhiề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
Trang 7DANH SÁCH CÁC HÌNH
Hình 1 Tìm đường đi trong mạng với hố 15
Hình 2 Giao diện Tkev và NAM 16
Hình 3 Công cụ NAM – biểu diễn quá trình mô phỏng mạng 18
Hình 4 Sự kiện được biểu diễn theo thời gian trong NS2 19
Hình 5 Quá trình mô phỏng các sự kiện 19
Hình 6 Cơ chế hoạt động của NS2 20
Hình 7 Sự tương ứng từ TCL tới C++ 20
Hình 8 Sơ đồ tổ chức các lớp cơ bản trong NS2 21
Hình 9 File trace: trace.tr 22
Hình 10 Các trường thông tin của file trace 22
Hình 11 Định dạng trace file dưới dạng XML 23
Hình 12 Thư viện Graphstream 24
Hình 13 Hệ thống mô phỏng mạng cảm biến không dây 25
Hình 14 Kiến trúc cơ bản của WiSSim Visualizer 28
Hình 15 Cơ chế lắng nghe sự kiện trong hệ thống WiSSim Visualizer 30
Hình 16 Biểu đồ phân tích trace file bằng Java và JNI 32
Hình 17 Cơ chế hoạt động của lớp ScheduledThreadPoolExecutor 35
Hình 18 Cơ chế gọi sự kiện 36
Hình 19 Cơ chế hoạt động của WiSSim Visualizer 38
Hình 20 Hệ thống WiSSim Visualizer 39
Hình 21 Các trường hợp mô phỏng 40
Hình 22 Trường hợp sử dụng: xem thông tin node/gói tin 41
Hình 23 Trường hợp sử dụng: theo vết gói tin 42
Hình 24 Trường hợp người dùng lựa chọn các cách biểu diễn khác nhau 43
Hình 25 Biểu đồ lớp hệ thống WiSSim Visualizer 44
Hình 26 Biểu đồ tuần tự cho quá trình mô phỏng 45
Hình 27 Giao diện chương trình WiSSim Visualizer 46
Hình 28 Cùng một topology mạng: số node: 16 50
Hình 29 Tỉ lệ mất gói tin trong quá trình thử nghiệm 51
Hình 30 Thời gian chạy mô phỏng với các công cụ 52
Hình 31 Tăng xác xuất drop gói tin 53
Hình 32 Kích thước bộ nhớ sử dụng của các công cụ 54
Hình 33 Bộ nhớ sử dụng và tỉ lệ hủy gói tin 54
Trang 8DANH SÁCH CÁC BẢNG
Bảng 1 Bảng so sánh hai công cụ thể hiện trực quan mô phỏng mạng 16
Bảng 2 Bảng các gói cơ bản trong hệ WiSSim Visualizor 29
Bảng 3 Các giao diện trong hệ WiSSim Visualizor 30
Bảng 4 Bảng yêu cầu chức năng 39
Trang 9DANH 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 Sự kiện, đại diện cho cách hành động của phần tử mạng
GraphStrea
m Thư viện vẽ đồ họa bằng ngôn ngữ Java
JSON/XML Tên 2 ngôn ngữ đặc tả dữ liệu thông dụng hiện nay
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 Tệp tin đầu ra của quá trình mô phỏng
WiSSim
Visualizor Tên hệ thống mà chúng tôi xây dựng.
WSN Wireless Sensor Network
Xgraph Thư viện cho phép vẽ đồ họa bằng ngôn ngữ C++
Trang 10LỜ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 đẩyhoạ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 (networksimulation version 2) đã giúp ích cho rất nhiều tổ chức, chính phủ trong việc nghiên cứucá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ămnhững công cụ đó đã phát triển đến mức độ hoàn chỉnh, đáp ứng được đa số nhu cầu củanhữ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ôngtin 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ộtkhó 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ớithự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ầuhế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épbiể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ủamạ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 ratrong 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 đặtcho ứng dụng của mình
Trang 11- 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 đọccũ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 độngcủ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ôngviệ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úngtô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ữacá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 đọctrong 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úcphâ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ườidùng thấy được quá trình hoạt động của công cụ như thế nào Từ đó những ngườiquan 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
Trang 12ví 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ớimạ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ácthiế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, tavẫ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ỏngmạ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 khidù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ộtmô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ớihạ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 đặtngoà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ắcphụ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ạicả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ệntượ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ôngtin 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
Trang 13+ 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ácthiế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ảinhờ 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ínhkhả 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ảosá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ạnnhư NS2, GloMoSim, NetSim, OMNeT++… Một công cụ mô phỏng mạng tốt là mộtcô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ậptrung 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ôithự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, NS2nổ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ủaNS2 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ốngNS2, 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ấtnhanh 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ộtcá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à sosá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ựachọ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 vaitrò 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à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
Trang 14mụ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ấtquan 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… Tuynhiê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ấpnê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 địnhtuyế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ứucá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 đượctậ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ầuphả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 đượcnhữ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ảnxuấ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ùngkhá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 đảmbả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ôngthườ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 trongbả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 đúngnữ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,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
Trang 15hiệ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ộtthờ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 tacũ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ớichỉ 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 ứngdụ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ạphơ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 độngdiễ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ậnthô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ớnnhấ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 sovớ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ộtkhô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 đặtcá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ộtdiệ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ácnode 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 đầucung 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ặtnă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ậnthô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ẽ ảnhhưở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 nodetrung 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ộtvấ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ủamì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 ứngdụ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ệnxuấ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ị
Trang 16hạ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ạngxuất hiện hố lớn ở giữa:
Hình 1 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ốngử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ượngthô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 quacô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ốtnhấ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ườidù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 khingườ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à fileTrace 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
Trang 175 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ệntrự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 2 Giao diện Tkev và NAM
Phương thức hoạt động Được tích hợp vào quá trìnhmô phỏng Tách riêng sau khi quá trìnhmô phỏng ngầm kết thúcTính dễ sử dụng Đẹp, Dễ sử dụng, trực quan Khó sử dụng, mất công họcThanh kéo thời gian
Không cho phép di chuyểnchạy đến thời điểm bất kỳtrong quá trình mô phỏng
Cho phép người dùng lựachọn thời điểm diễn ra sựkiện
Theo vết Chưa cho phép người dùngtheo vết gói tin
Người dùng có thể lựa chọn
1 gói tin và theo dõi đường
đi của nóLọc sự kiện
Không có cơ chế lọc các sựkiện, buộc người dùng phảitùy chỉnh trong code Chưa có cơ chế lọc sự kiệnLọc theo không gian Không thể chọn 1 số cácnode để tập trung quan sát Chưa có
Chạy lại quá trình mô
phỏng Phải chạy lại cả project Chỉ cần file trace là có thểchạy bất cứ lúc nàoKéo thả vị trí của node Không cho phép Cho phép
Chọn 1 vùng để xem
thông tin Không cho phép Không cho phép
Bảng 1: Bảng so sánh hai công cụ thể hiện trực quan mô phỏng mạng
Trang 18Từ 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ựcquan, 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ườiphâ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 đề địnhtuyến mạng
Trang 19Chươ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êntrong việc mô phỏng mạng, sau này những công cụ khác đã sinh ra cũng với ý tưởngchung 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 đã đượctích hợp
Hình 3 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ácnhau 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ậplịch trên trục thời gian này Hình vẽ sau mô tả cơ bản về quá trình đó:
Trang 20Hình 4 Sự kiện được biểu diễn theo thời gian trong NS2Cá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ứamộ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 đềunhau, 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 5 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ườidù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õicủ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++
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
Trang 21theo đú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 6 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 đầuvà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àythô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 đốitượ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áccô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:
Hình 7 Sự tương ứng từ TCL tới C++
Trang 22Cả 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ớpgiữ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:
Hình 8 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ữngphầ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ụ trongquá 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ôicũ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
Trang 234 Đị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:
Hình 9 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ạngnày, và chúng tôi đã làm) bao gồm các trường thông tin cơ bản sau:
Hình 10 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ạngnhư 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ântí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ụngcho 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,
Trang 24thuậ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 tracefile 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:
Hình 11 Định dạng trace file dưới dạng XMLThông tin trong trace file gồm 4 phần chính:
- Thông tin về toàn bộ mạng Thẻ <network>
- Thông tin về các node Thẻ <nodes>
- Thông tin về các gói tin(packet) Thẻ <packets>
- Thông tin về các sự kiện (event) Thẻ <events>
Trang 25Trong quá trình phân tích trace file, chúng tôi đã dựa trên thư viện SAX để phân tích.Việc này làm tối ưu quá trình phân tích, giảm dung lượng bộ nhớ sử dụng, không đòi hỏiquá trình lặp nhiều Từ đó tăng tốc độ phân tích trace file.
5 Nền tảng – Công cụ phát triển
Để ứng dụng của chúng tôi có khả năng mở rộng, dễ dàng phát triển hơn, chúng tôi
đã quyết định phát triển trên nền tảng Java Với tiêu chí: viết một lần, chạy mọi nơi nhưcủa Java, ứng dụng của chúng tôi chỉ cần nhận trace file đầu vào dưới dạng xml và cóthể hoạt động dưới mọi hệ điều hành, từ linux cho tới windows hay thậm chí trên các nềnmacos Chính vì vậy, ứng dụng sẽ dành cho tất cả những nhà đang nghiên cứu về lĩnhvực mạng Họ không cần quan tâm hệ thống hoạt động như thế nào, chỉ cần dựa vào kếtquả là có thể đánh giá thuật toán hoạt động đã tốt hay chưa
Chúng tôi sử dụng công cụ Netbean để phát triển Đây là một công cụ miễn phí chocác tổ chức, doanh nghiệp theo giấy phép GLU General Public Licence (GPL) v2 Đây làmột công cụ hỗ trợ thiết kế giao diện mạnh, thích hợp cho việc phát triển ứng dụng giaodiện của chúng tôi
6 Thư viện đồ họa để biểu diễn.
Chúng tôi đã lựa chọn thư viện GraphStream Thư viện này hỗ trợ tốt cho việc biểudiễn các node mạng, gói tin và sự truyền nhận các gói tin Đây là thư viện trong ngônngữ lập trình Java Một nền tảng mạnh mẽ và dễ sử dụng Ứng dụng hoàn toàn có thểchạy trên mọi nền tảng hệ điều hành Sau này chúng tôi có ý định mở rộng chạy trên cácthiết bị có tính di động cao: di động, tablet, surface…
Hình 12 Thư viện Graphstream
Trang 26PHẦN II CÁC KẾT QUẢ ĐẠT ĐƯỢC
Chương III Thiết kế hệ thống.
3.1 Thiết kế tổng quan.
Từ những vấn đề đã được nêu ra ở phần trên, chúng tôi đã đề xuất tự xây dựng công
cụ cho phép mô phỏng quá trình biểu diễn sự hoạt động của mạng Công cụ này đóng vaitrò là một phần trong bức tranh tổng quan về mô phỏng mạng Việc mô phỏng là mộtkhâu trong quá trình nghiên cứu, đánh giá và đề xuất các giải pháp về định tuyến trongmạng cảm biến không dây
Một bức tranh tổng quát về quá trình xây dựng các thành phần sẽ dễ hiểu hơn chongười đọc:
Hình 13 Hệ thống mô phỏng mạng cảm biến không dây
Hệ thống bao gồm 4 phần lớn bao quanh nền tảng cốt lõi NS2 Bốn công cụ nàyđảm nhiệm từng tác vụ riêng:
Phần 1: WiSSim Editor Công cụ hỗ trợ tạo kịch bản mô phỏng Người dùng cóthể tạo trạng thái mạng, khởi tạo các phần tử trong mạng Cài đặt các thuật toán địnhtuyến vào các node đó Gửi kết quả cho NS2 hoạt động Sau quá trình này, NS2 sinh ramột tệp tin gọi là trace file Trace file mô tả các hoạt động của mạng theo trình tự thờigian
Phần 2: WiSSim Visualizer Công cụ hỗ trợ đồ họa, biểu diễn trực quan quá trìnhhoạt động của mạng thông qua đồ họa sinh động Từ đó người dùng có thể đánh giá một
Trang 27cách khái quát chung, nhanh chóng về thuật toán định tuyến đã được cài đặt Trong nộidung đồ án, chúng tôi tập trung thể hiện về xây dựng engine cho thành phần số 2 này.
Phần 3: WiSSim Analyzer Công cụ hỗ trợ phân tích thống kê Công cụ này sẽđọc dữ liệu từ trace file, đưa ra các thông số của mạng Thống kê tỉ lệ, số lượng các đặctính của gói tin và node trong mạng (Ví dụ, tỉ lệ gói tin bị mất của một node)
Phần 4: WiSSim routing protocol library Công cụ hỗ trợ cài đặt giải thuật vàoNS2 Thông qua công cụ này mà người dùng có thể cài đặt thuật toán của họ mà khôngcần hiểu biết nhiều về nền tảng NS2 Từ đó làm giảm thời gian tìm hiểu công cụ và ngônngữ rất nhiều
3.2 Kiến trúc của hệ thống thể hiện trực quan WiSSim Visualizer
Để xây dựng một hệ thống có khả năng thể hiện trực quan tốt, người dùng có thểtương tác dễ dàng thì hệ thống phải đảm bảo những yêu cầu sau:
- Hệ thống phải hoạt động đúng Sự hoạt động của các phần tử trong mạng phảiđảm bảo diễn ra theo đúng quy định dữ liệu trong trace file Việc đánh giá tínhđúng đắn ở đây bao gồm 2 yếu tố: thông tin hoạt động của các phần tử trongmạng (sự kiện gửi/nhận gói tin…) và thông tin thời gian sự kiện đó xảy ra
- Hê thống phải đảm bảo về bộ nhớ và thời gian xử lý Hệ thống sử dụng bộ nhớmột cách tiết kiệm nhất, tránh các dữ liệu dư thừa Bởi số lượng các sự kiện là rấtlớn (tới hàng chục triệu sự kiện) nên chỉ cần 1 chút thông tin dư thừa sẽ có khảnăng bị nhân lên hàng chục triệu lần Tracefile đầu vào có dung lượng khá lớn (từvài chục tới vài trăm Mb với dữ liệu là văn bản thuần túy) nên việc đọc thông tinmất khá nhiều thời gian Chúng tôi đã thử nghiệm và lựa chọn một số phương ántối ưu cho quá trình đọc dữ liệu đầu vào này Thời gian hiện tại là hoàn toàn cóthể chấp nhận được
- Hệ thống phải đảm bảo dễ sử dụng, không mất nhiều thời gian để học Nhữngchức năng được chúng tôi thiết kế không ở quá sâu Chỉ cần một vài thao tác là cóthể thực hiện được Chúng tôi cố gắng sử dụng những hình ảnh mang tính gợi nhớ
và các phím tắt để người dùng sử dụng dễ dàng và nhanh chóng
Từ những yêu cầu cơ bản ở trên, chúng tôi đề xuất ra hệ thống dưới tên gọi “WiSSimVisualizer” có khả năng tái thể hiện trực quan quá trình hoạt động mạng với đầu vào
là trace file
Trong phạm vi đồ án, chúng tôi tập trung đề cập đến vấn đề xây dựng nền tảng
Engine phục vụ cho hệ thống WiSSim Visualizer.
Trang 28Về ý tưởng cơ bản, chúng tôi thiết kế theo cơ chế MVC (Model-Control-View) Vìvậy, WiSSim Visualizer bao gồm 4 phần cơ bản:
- WiObject: Cung cấp các đối tượng cơ bản thông qua các lớp (class) và giao diện
(interface) Các lớp cơ bản này đóng vai trò quan trọng trong việc xây dựng hệthống Đây chính là những đơn vị nhỏ nhất, những viên gạch đặt nền móng choviệc tái thể hiện mô phỏng mạng
- WiModel: thực hiện việc phân tích trace file thành các đối tượng, cung cấp dữ
liệu cho việc mô phỏng mạng Những dữ liệu này bao gồm thông tin về toàn bộmạng, thông tin về các node có trong mạng và thông tin các gói tin được vậnchuyển trong mạng Đó là những thông tin thể hiện tĩnh (mạng ở trạng thái tĩnh,chưa hoạt động) Ngoài ra, thông tin về các sự kiện cũng được lưu trữ (nhữngthông tin này thể hiện sự hoạt động của mạng, sự liên kết giữa các phần tử trongmạng với nhau) Người đọc sẽ hiểu chi tiết hơn ở phần sau
- WiEngine: điều khiển sự hoạt động của quá trình mô phỏng Mọi thao thao tác
liên quan tới dữ liệu để thể hiện đều được WiEngine thực hiện WiEngine có vaitrò lập lịch các sự kiện Từ dữ liệu đã được tổ chức, WiEngine sắp xếp các sựkiện đó, khởi tạo một cơ chế gọi sự kiện theo thời gian thực Các sự kiện biểudiễn quá trình hoạt động của các node trong mạng WiEngine đảm bảo tính hoạtđộng đúng đắn, chính xác của việc tái mô phỏng sự hoạt động trong mạng Ởtrong này, chúng tôi cài đặt một số cơ chế phức tạp mà chúng tôi sẽ trình bày ởngay dưới đây
- WiView: bao gồm 2 thành phần: phần thông tin văn bản (console) và phần đồ họa
(graphic) Đây là phần giao diện thể hiện trực quan và cho phép người dùng tươngtác Đây là phần người dùng trực tiếp tương tác, người dùng có thể nhìn thấy toàn
bộ trạng thái mạng, thông tin của các gói tin, các node trong mạng Đồng thời,người dùng có thể lựa chọn một số thông tin quan tâm để lọc các sự kiện liênquan tới các vấn đề đang được quan tâm đó Trong phạm vi đồ án, chúng tôi
không trình bày chi tiết phần này Người đọc có thể tham khảo đồ án “Module xử
lý đồ họa trong hệ Wissim – Hệ thống mô phỏng mạng cảm biến không dây”
của bạn Nguyễn Quốc Hoàng, Sinh viên K53, lớp Công nghệ phần mềm
Sự quan hệ giữa các thành phần trong hệ thống:
Nội dung chúng tôi trình bày đây được biểu diễn ở trong vùng thành phần Engine: