Mỗi khi nút Sensor thực hiện một hành động như nhận một tín hiệu cảm biến, thu hoặc phát các gói tin vô tuyến, xử lý tín hiệu, nguồn năng lượng dự trữ của nút đó sẽ bị khấu trừ theo công
Trang 1: PHẦN MỀM MÔ PHỎNG NĂNG LƯỢNG CHO MẠNG WIRELESS
SENSOR
3.1 Mô hình hoá mô phỏng
Trên cơ sở phân tích bài toán mô phỏng và xác định rõ mục tiêu và kế hoạch, việc mô hình hoá mô phỏng nhằm trừu tượng hoá hệ thống thực bằng mô hình khái niệm, một tập các quan hệ toán học và logic liên quan đến các thành phần và cấu trúc của hệ thống Việc xây dựng mô hình là cực kì quan trọng Mô hình được xây dựng càng chi tiết và tổng quát thì mô phỏng càng gần thực tế Ngoài ra, tính hiệu quả và khả năng mở rộng, tức là có thể
sử dụng làm nền để phát triển thêm, của mô hình cũng rất được quan tâm Ngoài ra, vì việc xây dựng một mô hình chi tiết, tổng quát cho toàn hệ thống là rất khó thực hiện nên thường việc mô hình hoá sẽ tập trung vào các vấn đề cần quan tâm trong hệ thống, các phần khác chỉ cần đảm bảo mức độ chính xác trong các ảnh hưởng của chúng tới hệ thống
3.1 Mô hình nguồn năng lượng
Mô hình nguồn được xây dựng trên cơ chế khấu trừ năng lượng Một nút Sensor có ba thành phần tiêu thụ năng lượng chính là thiết bị cảm biến, thiết bị thu phát vô tuyến và bộ
xử lý với các cơ chế tiêu thụ năng lượng khác nhau Các thành phần này lại có thể hoạt động ở các trạng thái khác nhau với tốc độ tiêu thụ năng lượng khác nhau Mô hình nguồn năng lượng cung cấp khả năng mô phỏng trạng thái nguồn năng lượng của nút Ban đầu, mỗi nút Sensor được định cấu hình với một khối năng lượng xác định Mỗi khi nút Sensor thực hiện một hành động như nhận một tín hiệu cảm biến, thu hoặc phát các gói tin vô tuyến, xử lý tín hiệu, nguồn năng lượng dự trữ của nút đó sẽ bị khấu trừ theo công suất được định nghĩa trước cho từng thành phần Khi nút Sensor không có hành động nào, năng lượng sẽ được khấu trừ theo công suất rỗi (Idle power)
Với các mạng Sensor hiện nay, nhất là với các mạng không có khả năng tìm nguồn năng lượng bên ngoài, ví dụ như sử dụng các tấm pin mặt trời thì tuổi thọ của nguồn năng lượng
là yếu tố quyết định thời gian tồn tại của mạng Do đó, các thuật toán và giao thức được sử dụng cho mạng Sensor đều phải chú ý đến hiệu quả sử dụng nguồn năng lượng Với việc
mô hình hoá nguồn năng lượng cho nút Sensor, môi trường mô phỏng cung cấp khả năng khảo sát hiệu quả sử dụng nguồn năng lượng của các thuật toán, các giao thức và các cách
Trang 2tổ chức, triển khai nút khác nhau được áp dụng cho mạng Sensor Mô hình này còn cung cấp một số cơ chế khấu trừ nguồn trong thực tế đã được kiểm chứng bằng thực nghiệm
3.3 Thiết kế phần mềm mô phỏng mạng Wireless Sensor
Trong thiết kế phần mềm (còn được gọi là chuyển đổi mô hình), mô hình mô phỏng được phát triển bằng một ngôn ngữ lập trình nào đó Trong đồ án này, việc mô phỏng mạng Sensor được thực hiện trên phần mềm mô phỏng mạng NS-2 đã mở rộng cho môi trường mạng Sensor Do đó, phần tiếp theo sẽ trình bày về phần mềm NS-2 và phần mở rộng NRL’Sensorsim trên NS-2 cho mô phỏng mạng Sensor
3.3.1 Phần mềm NS-2
a) Giới thiệu NS-2
NS-2 ( Network Simulator phiên bản 2) là chương trình mô phỏng mạng theo phương pháp mô phỏng các sự kiện rời rạc NS-2 hỗ trợ mô phỏng mạng có dây và không dây, TCP, UDP , các giao thức truyền thông điểm-đa điểm và định tuyến khác,.v.v NS-2 được viết bằng C++ và ngôn ngữ hướng đối tượng Tcl (Otcl: object-oriented tool command language)
NS-2 có một lịch sử khá dài, bắt nguồn từ các phần mềm REAL của UCB (1989) và NEST của Colombia (1992) Đến năm 1995, NS-2 được phát triển trong dự án VINT (Virtual InterNet Testbed hay nền kiểm thử Internet ảo) VINT là dự án hợp tác giữa AT&T Reseach, Lawrence Berkeley National Laboratory, ETH TIK, Xerox PARC, UCB-Berkeley và USC/ISI Hiện nay, Ns đang tiếp tục được phát triển trong các dự án SAMAN
và CONSER, cùng với sự hợp tác của nhiều nhà nghiên cứu và ACIRI Những tổ chức đã đóng góp đáng kể vào NS-2 là UCB Daeledus, UMU Monarch và Sun MicroSystems
So với các phần mềm mô phỏng mạng khác, NS-2 có những ưu thế sau:
- NS-2 có mã nguồn mở miễn phí
- NS-2 có kiến trúc mở, tạo điều kiện thuận lợi cho việc mở rộng
- NS-2 được phát triển từ các phần mềm nổi tiếng trên thế giới như REAL, NEST nên nó
có những điểm mạnh và đã khắc phục được những yếu điểm của các phần mềm này
- NS-2 hỗ trợ các tính năng cơ bản của mạng IP, từ đó có thể phát triển thêm các phần tử mạng
Trang 3Tập lệnh Otcl ( mã nguồn )Chương trình biên dịch Otcl Kết quả mô phỏng
Các thư viện C++
NS-2
- NS-2 có cấu trúc modul, rất thuận tiện cho việc nghiên cứu tìm hiểu và phát triển
Nhìn từ phía người sử dụng , NS-2 là chương trình biên dịch mã Otcl được liên kết tới thư viện C++ Các đối tượng cơ sở như tcp, CBR, được xây dựng trong C++ Đầu vào NS-2 là tập mã lệnh Otcl , đầu ra là các tập tin mô phỏng tiến trình theo yêu cầu được thể hiện trong tập lệnh Otcl
Hình 3.1: Cấu trúc chương trình NS-2
Kết quả mô phỏng có thể quan sát bằng hình ảnh mô tả trực quan với ứng dụng Nam ( the Network Animator ), bằng đồ thị (sử dụng Xgraph) hoặc có thể được xử lý bằng các tập lệnh tuỳ chọn Với cấu trúc này, việc sử dụng NS-2 trở lên đơn giản hơn nhiều so với sử dụng trực tiếp C++ nhưng vẫn có được những tính năng của C++
Với những đặc điểm trên, NS-2 thực sự là một công cụ phần mềm hữu ích cho việc học tập, nghiên cứu mạng thông tin, giúp cho việc thực hành mạng trở lên hiệu quả hơn
b) Cơ chế hoạt động của phần mềm NS-2
Hoạt động của NS-2 được chia thành hai phần là phần dữ liệu (được xây dựng trong C+ +) và phần điều khiển (được xây dựng trong Otcl) Để giảm thời gian xử lý gói và sự kiện, thời biểu sự kiện và các đối tượng thành phần mạng cơ bản trong phần số liệu được viết và biên dịch bằng C++ Các đối tượng được biên dịch này được tạo sẵn và được liên kết tới Otcl qua bộ thông dịch Otcl Mỗi đối tượng C++ này được điều khiển và được thiết lập các tham số thông qua một đối tượng điều khiển tương ứng trong Otcl Các đối tượng C++ không cần điều khiển hoặc chỉ hoạt động nội tại trong phần C++ thì không cần liên kết đến Otcl Tương tự, cũng có một số đối tượng (không nằm trong phần dữ liệu) có thể hoạt động hoàn toàn chỉ trong Otcl Các đối tượng điều khiển trong Otcl được ánh xạ 1-1 tới các đối tượng cần điều khiển trong C++ Như vậy, cấu trúc phân cấp các đối tượng này trong hai
Trang 4Thời biểu các sự kiện NS-2
Các thành phần mạng
Tcl 8.0
Otcl
tclcl
phần C++ và Otcl là tương tự nhau Quan hệ giữa C++ và Otcl được minh họa trên hình 3.2
Hình 3.2: Tính đối ngẫu giữa C++ và Otcl
Hình 3.3 chỉ ra kiến trúc NS-2 Trong kiến trúc này, người sử dụng (không phải người phát triển NS-2) ở vị trí góc dưới bên trái Dữ liệu đầu vào là tập lệnh Otcl được phân tích bởi lớp Tcl Việc thiết lập và chạy mô phỏng trong Tcl sử dụng các đối tượng trong thư viện Otcl Thời biểu các sự kiện và hầu hết các thành phần mạng hoạt động trong C++ và được liên kết tới Otcl Việc này được thực hiện bởi lớp tclcl
Chương trình NS-2 có nhiều phiên bản chạy trên các hệ điều hành khác nhau và với các
yêu cầu cài đặt khác nhau Trong đồ án này, phiên bản ns-allinone-2.27, chạy trên
Windows trong môi trường Cygwin/X được sử dụng để tìm hiểu một số các tính chất của mạng Wireless Sensor Cygwin/X cung cấp một giao diện chương trình ứng dụng (API) giống như hệ điều hành UNIX trên khuôn dạng Windows do NS-2 không chạy trực tiếp trên Windows
Trang 5Lớp ứng dụngCBRFTPTelnet Lớp giao vậnTCPUDP Lớp vật lýCác kiểu phát vô tuyến với suy giảm bậc 4 : trong không gian tự do, mặt đất hai tia, bóng phủ.Antent độ lợi đơn Lớp mạngDSDVDSRTORAAODVOLSR Lớp liên kết số liệu802.11TDMASMAC
Hình 3.3: Kiến trúc tổng quan của NS-2
Môi trường ns - 2 là công cụ hết sức linh hoạt trong việc nghiên cứu các đặc tính của
mạng cảm biến không dây (Wireless Sensor network) vì nó có sẵn các mô hình cho mạng
ad-hoc không dây, có ràng buộc về năng lượng Trong ns - 2, một mạng Sensor có thể
được xác định với nhiều tổ hợp các đặc tính như thực tế Môi trường mạng di động trong
ns - 2, cung cấp sự hỗ trợ lẫn nhau giữa các giao thức như hình 3.12
Hình 3.4: Các giao thức được hỗ trợ trong NS-2 mô phỏng mạng không dây
Với cơ sở này, ta chỉ cần thêm vào NS-2 một số đối tượng và thuộc tính để mô phỏng
mạng Sensor
3.3.2 Cơ sở phát triển mô phỏng mạng Sensor trên nền NS-2
Cơ sở duy nhất còn thiếu trong NS-2 cho mô phỏng mạng Sensor là việc định nghĩa một
"Phenomenon" (hiện tượng) Ví dụ như chất hoá học, âm thanh, các đối tượng này có thể
di chuyển và kích hoạt các Sensor ở gần qua một kênh như phẩm chất không khí hay rung
động mặt đất Khi một Sensor phát hiện tín hiệu từ một hiện tượng trong kênh này, Sensor
sẽ phản ứng tuỳ theo ứng dụng được định nghĩa bởi người sử dụng NS-2 Các ứng dụng
này sẽ quy định việc Sensor làm gì khi phát hiện ra hiện tượng mục tiêu Ví dụ, Sensor có
thể định kỳ gửi thông báo đến một số điểm thu thập số liệu nếu nó còn tiếp tục phát hiện
thấy hiện tượng, hoặc có thể làm một số việc phức tạp hơn như công tác với các Sensor lân
Trang 6cận để có được thông tin cụ thể chi tiết hơn về hiện tượng trước khi cảnh báo người giám sát về một hiện tượng giả định Mỗi mạng Sensor có một ứng dụng duy nhất như giám sát động đất, môi trường, Phần mở rộng NS-2 cung cấp các khả năng trình diễn các ứng dụng Sensor Với các ứng dụng này, chúng ta có thể nghiên cứu hoạt động của cơ sở hạ tầng mạng dưới các điều kiện khác nhau Cơ sở của việc xây dựng mô hình mạng Sensor trong NS-2 được minh hoạ trong hình 3.5
Hình 3.5: Cơ sở xây dựng mô hình mạng Sensor sử dụng NS-2
Mô hình trình diễn của các hiện tượng trong NS-2 được xác định với các gói quảng bá được chuyển qua một kênh được chỉ định Phạm vi ảnh hưởng của hiện tượng là tập hợp các nút có thể nhận được các gói Phenom quảng bá trên kênh này Mô hình này sẽ tuân theo quảng bá bất cứ kiểu phát và truyền nào (không gian tự do, mặt đất 2 tia hay bóng phủ, bao gồm cả các cấu hình nút hiện tượng Các kiểu phát này phủ sóng theo dạng gần tròn nhưng các hình dạng khác cũng có thể có được bằng cách thay đổi phạm vi của các gói Phenon và di chuyển một cách thích hợp một tập các nút hiện tượng phát cùng kiểu Việc phát quảng bá các gói Phenom được hoàn thành nhờ "giao thức định tuyến Phenom", quảng bá các gói Phenom với tốc độ xung xác định Khi một gói Phenom được nhận bởi một nút trên kênh Phenomenon (kênh hiện tượng), một thông báo về sự kiện này
sẽ được chuyển đến ứng dụng Sensor của nút đó
3.3.3 Các định dạng mới trong NS-2
Giả sử có các nút hiện tượng (Phenomenon) kích hoạt các nút Sensor, lưu lượng các nút Sensor tạo ra mỗi khi phát hiện thấy hiện tượng phụ thuộc vào chức năng của mạng Ví dụ, các mạng thiết kế để để hiệu chỉnh đích bằng hiệu ứng năng lượng sẽ tạo ra nhiều lưu lượng Sensor đến Sensor hơn mạng thiết kế để cung cấp cho giám sát viên các dữ liệu chưa qua xử lý Chức năng này phụ thuộc vào ứng dụng của Sensor và phụ thuộc vào đặc tính lưu lượng kết hợp với mạng được mô phỏng Đối tượng và chức năng được định nghĩa trong các file sau:
Trang 7- Phenom / Phenom.cc, h: Chứa giao thức định tuyến Phenom sử dụng cho việc phát
tín hiệu từ các hiện tượng Nó bao gồm các tham số cho tốc độ xung và kiểu hiện tượng (Bụi cabon, động đất mạnh, động đất nhẹ, tiếng ồn hay loại chung) Các kiểu này được đặt tên để nhận dạng các nguồn hiện tượng trong file trace (đầu ra mô phỏng) Tốc độ xung là tham số duy nhất điều khiển việc phát tín hiệu từ một hiện tượng
Hình 3.6: Hình ảnh mô tả mạng Sensor (được lấy từ ứng dụng NAM trong NS-2) với 25 trạm Sensor được triển khai theo hình lưới trên diện vuông, 20 nút Phenomenon (mô tả đám mây khí gas-hiện tượng cần cảm biến) di động và một trạm thu thập số liệu (ở góc trên bên phải) Các nút sẫm màu (màu đỏ) là các nút đang cảm biến được hiện tượng, các nút nhạt màu (màu xanh lá cây) là các nút không quan sát thấy hiện tượng Các vòng tròn
to mô tả việcphát sóng tín hiệu của các nút.Cáckhối nhỏ màu đen biểu thị các gói tin trong
mạng.
- Senso nets-NRL / Senso agent.cc, h: định nghĩa các agent Sensor, các agent là điểm
cuối, nơi các gói thuộc lớp mạng được tạo ra và phân tách, xử lý Các nút Sensor sử dụng một tác nhân Sensor liên kết đến kênh Phenomenon để tiếp nhận các gói tin Phenom và sử dụng một tác nhân TCP hay UDP để liên kết đến kênh của mạng vô
Trang 8tuyến để tạo các gói tin được gửi đi từ ứng dụng Sensor Các tác nhân Sensor hoạt động như một ống dẫn, qua đó các gói tín Phenom được nhận và xử lý bởi các ứng dụng Sensor Các tác nhân Sensor không thực sự quan tâm đến nội dung của gói Phenom, nó chỉ đơn giản đánh dấu các gói nhận được và chuyển đến ứng dụng Sensor Agent này được định nghĩa trong Sensor agent.cc
- Sensornets-NRL / Sensorapp.cc, h : ứng dụng Sensor được định nghĩa trong file này
tận dụng màu nút và tạo ra các thông báo Sensor để chỉ ra nút tương ứng phát hiện ra hiện tượng ( 4 biến môi trường có thể được sử dụng là: SILENT_PHENOMENON, DISABLE_COLORS, MESG_SIZE và TRANSMIT_FREQ) Cụ thể, khi nút đang nhận gói Phenom, ứng dụng này thay đổi màu nút thành đỏ, kích thoạt một biến toàn cục "alarm" và gửi một thông báo Sensor (MESG_SIZE byte) đến nút sink (nút thu thập số liệu) của kết nối UDP, TCP sau mỗi chu kỳ là TRANSMIT_FREQ giây Khi một nút không nhận được một Phenom packet trong thời gian chờ (SILENT_PHENOMENON giây), thì màu nút trở về màu xanh lá cây Nếu màu nút được yêu cầu để biểu thị mức năng lượng thay vì trạng thái cảnh báo Sensor thì ứng dụng bị tắt với việc đặt DISABLE_COLOR
- Sensornets-NRL / Phenom_packet.h: File này định nghĩa cấu trúc gói Phenom Có 5
kiểu hiện tượng (CO, HEAVY GEO, LIGHT GEO, SOUND, and TEST -PHENOMENON) tương ứng với cacbon monoxide (chất carbon monoxide CO), Heavy Seismic actyvity (động đất mạnh), Light Seismic activy (động đất nhẹ), Audible Sound (âm thanh), sime Phenomenon (kiểu chung) Các kiểu này có thể được sử dụng mô phỏng với nhiều nút hiện tượng và có thể dễ dàng nhận ra và phân biệt với các hiện tượng khác
mà nút Sensor phát hiện, bằng cách nhìn vào file trace
3.3.4 Thay đổi trong NS-2
Hình 3.7 ra sơ đồ cây NS - 2 mở rộng mô phỏng mạng Sensor với các bổ sung (nhánh bên phải) và hiệu chỉnh (nhánh bên trái)
Các chỉnh sửa trong NS-2 được thực hiện trong các file sau :
- Trace / cmu-trace.cc, h: Lớp CMUTrace được sử dụng để in các phần quan trọng của
một gói vào file trace Vì phần mở rộng sử dụng kiểu gói mới cho các hiện tượng nên cần phải định dạng gói tương ứng trong file này
Trang 9- Tcl / lib / ns-lib.tcl: Thành phần này trình bày về cấu hình nút được chỉ ra trong tập lệnh
NS-2 Phần mở rộng sử dụng kiểu nút mới (các nút Sensor và Phenomenon) Vì thế, đã thêm vào một số điểm vào chức năng định cấu hình nút (node-configure) để phù hợp với các kiểu này
Hình 3.7: Sơ đồ bổ sung và chỉnh sửa NS-2
NS-2.27/
Trang 10- Tcl / lib / ns-mobilenode.tcl: Trong NS-2, dung lượng sẵn có cho việc lập mạng không
dây đa kênh được sử dụng để phát các loại tín hiệu hiện tượng khác nhau Bằng việc sử dụng kênh riêng cho các hiện tượng, ta có thể mô phỏng môi trường vật lý riêng cho từng loại hiện tượng như trong thực tế Như vậy, các nút Sensor cần 2 giao diện: một với kênh 802.11 và một với kênh Phenom Khả năng đa giao diện ("Multi - homed") được bổ xung trong ns-mobilnode.tcl
- Common / packet-h: Mỗi gói trong ns -2 được liên kết với một kiểu riêng tuỳ thuộc vào
giao thức tương ứng như TCP, ARP, AODV, FTP, v.v Vì giao thức phát tín hiệu hiện tượng là mới nên phải định nghĩa kiểu gói tương ứng trong file tiêu đề packet.h
- Mac/ Wireless-phy.cc: ns -2 có gồm mô hình năng lượng cho các nút không dây được
sử dụng để nghiên cứu lợi ích của các kỹ thuật duy trì năng lượng khác nhau Như việc nghỉ hoạt động hay tận dụng các mật độ mạng tối ưu Mô hình này gồm các đặc tính chỉ ra các yêu cầu công suất của các gói phát và nhận hay trạng thái rỗi trong thời gian mạng không hoạt động tích cực Việc cảm biến hiện tượng là một quá trình có thể tiêu thụ năng lượng tại một tốc độ khác, nên đây là vấn đề quan trọng cần xem xét Trong mac / Wireless-phy.cc cung cấp khả năng chỉ ra công suất tiêu thụ của các nút trong khi cảm biến các hiện tượng
Một số sửa đổi khác được thực hiện ở mac / mac.cc, tcl / lib / ns-namsupp.tcl và queue / priqueue.cc Một số sửa chữa trong thủ tục định màu nút, bổ sung kiểu gói Phenom vào tổ
chức NS-2 được thực hiện để đơn giản hoá giao diện đến kênh Phenomenon trên nút Sensor
3.4 Thiết lập mã lập trình mô phỏng
3.4.1 Thiết lập kênh hiện tượng và kênh dữ liệu
Các nút Phenomenon sẽ phát trên một kênh khác với các nút Sensor để tránh sự tranh chấp tại lớp vật lý Mọi nút Phenomenon cần định cấu hình trên cùng một kênh ngay cả khi chúng phát từ các kiểu hiện tượng khác nhau Lệnh sau thiết lập kênh vô tuyến và kênh của các hiện tượng (Kênh Phenomenon):
set chan 1 [new $val(chan)]
set chan 2 [new $val(chan)]