PHẦN II - giải thuật
-
Upload
nga-doan-thi -
Category
Documents
-
view
148 -
download
0
Transcript of PHẦN II - giải thuật
PHẦN II: MÔ TẢ GIẢI THUẬT – CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ
GIẢI THUẬT
CHƯƠNG 3: GIỚI THIỆU GIAO THỨC OPEAS:
Cùng thuộc nhóm giao thức định tuyến phân cấp nhưng giao thức OPEAS có
nhưng ưu điểm cải tiến hơn so với 2 giao thức MLEACH VÀ ARPEES về việc sử
dụng bản tin điều khiển, lựa chọn tuyến đường tối ưu. Giải thuật OPEAS với
mong muốn tối ưu năng lượng cho hoạt động định tuyến của mạng cảm biến không
dây dựa trên việc tối ưu năng lượng trong pha truyền.
1. Vấn đề đặt ra của giải thuật là:
Tiết kiệm năng lượng tiêu thụ: để tiết kiệm năng lượng tiêu thụ trên toàn
mạng, giao thức áp dụng mô hình định tuyến phân nhóm hướng sự kiện.
Giao thức chỉ thực định tuyến khi các nút cảm biến phát hiện có sự kiện xảy
ra trong mạng. Bên cạnh đó, sử dụng hiệu quả các bản tin điều khiển nhằm
tối ưu tài nguyên mạng.
Cân bằng tải: giao thức thực hiện phân phối năng lượng sử dụng cho việc
thu thập, xử lý và định tuyến về trạm gốc trên nhiều nút cảm biến khác nhau.
Tuyến đường tối ưu: việc tìm kiếm tuyến đường tối ưu vừa đảm bảo hiệu
quả cho việc truyền dữ liệu, vừa giúp tiết kiệm năng lượng. Thông thường,
tuyến đường tối ưu là tuyến đường có tổng số nút trung gian hoặc chi phí
tuyến đường nhỏ.
Khả năng thích nghi: trong mạng cảm biến không dây bên cạnh sự suy
giảm tín hiệu không dây, một số nút trong mạng dừng hoạt động do lỗi phần
cứng hay hết năng lượng gây nên sự thay đổi về topo mạng. Như vậy, giao
thức định phải duy trì được hoạt động trong khi topo mạng có sự thay đổi
liên tục hoặc xuất hiện các liên kết lỗi.
Sử dụng hiệu quả năng lượng: tuyến đường truyền tải được chọn bởi giao
thức định tuyến có ảnh hưởng đến hiệu năng của toàn mạng về độ trễ, khối
lượng dữ liệu thu được và khả năng tiết kiệm năng lượng. Do đó giao thức
định tuyến cần xem xét tới yếu tố tài nguyên về năng lượng, bộ nhớ, băng
thông, khả năng xử lý là có hạn và tập trung vào việc tiết kiệm năng lượng
sử dụng cho toàn mạng.
2. Mô hình mạng cảm biến và mô hình sóng vô tuyến sử dụng nghiên cứu
giải thuật:
2.1 Mô hình mạng cảm biến:
Tất cả các nút cảm biến trong mạng là đồng nhất, có nghĩa là các nút cảm
biến tương đương nhau về khả năng xử lí, truyền tín hiệu, mức năng lượng
ban đầu. Mỗi nút cảm biến có khả năng quản lí được nguồn năng lượng còn
lại của mình.
Các nút cảm biến giao tiếp với nhau qua sóng vô tuyến, có khoảng truyền
dữ liệu xác định. Nếu như khoảng cách từ nút cảm biến đến trạm gốc lớn
hơn khoảng truyền dữ liệu thì nút cảm biến không thể truyền dữ liệu trực
tiếp về trạm gốc, mà phải qua các nút trung gian.
Một trạm gốc được đặt ở vị trí cố định có nhiệm vụ thu thập, tổng hợp
các thông tin cảm biến được tại các nút mạng. Khác với các nút cảm biến,
trạm gốc có năng lượng không giới hạn và có khả năng liên lạc tới tất cả các
nút trong mạng cảm biến.
Một trong những vấn đề quan trọng trong giải thuật định tuyến là ước
lượng khoảng cách của nút mạng với trạm gốc cũng như giữa các nút mạng
với nhau. Trên một nút mạng có thể lắp đặt modul GPS cho phép xác định
chính xác vị trí tuy nhiên giải pháp này không đem lại hiệu quả về mặt kinh
tế vì chi phí cho một modul GPS là khá đắt với một mạng cảm biến gồm
hàng trăm tới hàng nghìn nút mạng. Một công nghệ khác cho phép ước
lượng khoảng cách là công nghệ RSSI (Received signal strength indication)
cho phép ước lượng khoảng cách. Khi một nút cảm biến nhận được tín hiệu,
nút cảm biến sẽ xác định được khoảng cách của nút đã truyền tín hiệu với
chính mình dựa vào độ suy hao năng lượng tín hiệu. Ưu điểm của RSSI là
đơn giản, dễ cài đặt cho nút cảm biến cũng như giá thành hợp lí. Trong mô
hình mạng đề cập trong bài báo này, chúng ta sẽ sử dụng RSSI để xác định
khoảng cách giữa các nút cảm biến và giữa nút cảm biến với trạm gốc.
Một frame được định nghĩa là một vòng truyền dữ liệu về nhóm trưởng.
Một round được định nghĩa là n lần truyền frame từ nhóm trưởng về trạm
gốc.
2.2 Mô hình sóng vô tuyến:
Tại các nút cảm biến, quá trình truyền, nhận dữ liệu tiêu tốn nhiều năng
lượng nhất, so với các quá trình cảm nhận thông tin, xử lí tính toán. Do đó,
trong giao thức đề nghị, em tập trung chủ yếu vào vấn đề giảm số lượng bản
tin điểu khiển, tìm kiếm tuyến đường tối ưu nhằm kéo dài thời gian sống cho
mạng, đồng thời bỏ qua sự tiêu thụ năng lượng trong các quá trình cảm nhận
thông tin từ môi trường, xử lí tính toán trên mỗi nút cảm biến.
Khi một nút cảm biến truyền dữ liệu, năng lượng tiêu thụ là:
ETx (k , d )={kEelec+kE fs d2 , d≤d0
kEelec+kE fs d4 , d>d0 (4)
Khi nút cảm biến nhận được dữ liệu, năng lượng tiêu thụ là:
ERx (k )=kEelec (5)
Với d là khoảng cách truyền dữ liệu, d0 là hằng số khoảng cách có giá
trị tùy thuộc vào môi trường. Eelec là năng lượng dùng gửi nhận k bit dữ liệu.
Efs là năng lượng khuếch đại tín hiệu truyền dẫn.
Hình 2.2: Mô hình năng lượng sóng vô tuyến
3. Nội dung giải thuật:
Giao thức định tuyến đề nghị bao gồm 3 pha giống như các giao thức định
tuyến phân nhóm khác. Bao gồm: pha khởi tạo, pha thành lập nhóm và xác định
nhóm trưởng, pha chọn nút trung gian và truyền dữ liệu.
3.1 Pha khởi tạo:
Mục đích của pha này là các nút cảm biến trong mạng thiết lập các giá trị
ban đầu của mình. Trạm gốc có khả năng phủ sóng toàn mạng, sẽ quảng bá bản tin
BS_INFO. Các nút mạng nhận được bản tin BS_INFO này, dựa vào độ suy hao
năng lượng để xác định khoảng cách từ nó đến trạm gốc.
3.2 Pha thành lập nhóm và lựa chọn nhóm trưởng
Pha thiết lập nhóm của OPEAS hoạt động giống như giao thức ARPEES. Tại thời
điểm bắt đầu, các nút cảm biến đang ở trạng thái sleep (trạng thái ngủ) để tiết kiệm
năng lượng. Khi có sự kiện xảy ra trong mạng, các nút cảm biến trong vùng ảnh
hưởng của sự kiện sẽ phát hiện được sự kiện, chuyển từ trạng thái sleep sang trạng
thái kích hoạt. Các nút cảm biến sẽ tiến hành đo đạc thuộc tính đã được chỉ định
cảm biến. Nếu như giá trị nhân tố cảm biến cao hơn mức ngưỡng định trước, các
nút sẽ thực hiện thuật toán để phân nhóm và chọn nhóm trưởng. Các nút sẽ quảng
báo bản tin STATUS_INFO tới các nút hàng xóm. Bản tin này bao gồm định danh
của nút, mức năng lượng còn lại và lượng thông tin cảm biến được từ sự kiện:
STATUS_INFO{ID(i),E(i),I(i)}
Với ID là định danh của nút, E(i) là mức năng lượng còn lại, I(i) là lượng tin
cảm biến được từ sự kiện. Sau đó các nút cảm biến sẽ đặt một bộ đếm thời gian t1.
Trong khoảng thời gian này các nút mạng trong vùng sự kiện sẽ nhận được bản tin
STATUS_INFO từ các hàng xóm của mình, và thực hiện hàm chọn nhóm trưởng
công thức (2) với X là tập các nút cảm biến kích hoạt trong sự kiện.
Sau thời gian t1, nút có giá trị hàm FCH lớn nhất sẽ được thiết lập làm nhóm
trưởng. Sự kiện xảy ra trong vùng không lớn lắm, do vậy thông tin cảm biến được
trên các nút khác nhau không nhiều. Nếu để từng nút truyền dữ liệu cảm biến được
về trạm gốc có thể gây ra việc dư thừa thông tin, lãng phí tài nguyên trong mạng.
Việc chọn ra nhóm trưởng có nhiệm vụ thu thập, tổng hợp thông tin cho cả nhóm
giải quyết được vấn đề nêu trên.
Lúc này, nhóm trưởng sẽ lưu giữ ID của tất cả các nút cảm biến trong nhóm
của mình, và lập một lịch TDMA để sắp xếp cho từng nút thành viên trong nhóm
gửi dữ liệu về nhóm trưởng theo khe thời gian. Chức năng của lịch là tránh việc
xung đột trong truyền tải dữ liệu cũng như đồng bộ hóa giữa các nút bên trong
nhóm. Các nút còn lại tự đặt mình làm nút thành viên và chờ đợi để nhận lịch
TDMA từ nhóm trưởng. Với lịch đã được sắp xếp, các nút thành viên sẽ gửi dữ
liệu cảm biến được về cho nhóm trưởng theo khe thời gian định sẵn.
Lưu đồ minh họa quá trình nêu trên:
Hình 3.1.1 Mô tả thuật toán chọn nhóm trưởng
Việc chọn nhóm trưởng đảm bảo nút cảm biến có năng lượng còn lại lớn
nhất và là nút thu nhận được lượng tin từ sự kiện nhiều nhất.
Hình 3.2.2 Minh họa quá trình lựa chọn nhóm trưởng
Hình 3.2.2 minh họa việc hình thành nhóm dựa trên sự kiện và thuật toán lựa
chọn nhóm trưởng. Trong Hình 3.2.2a, nút từ n1 đến n9 xác định sự kiện và chuyển
sang trạng thái hoạt động sau đó quảng bá các bản tin STATUS_INFO để trao đổi
thong tin. Ở 3Hình 3.2.b chúng ta chỉ minh họa nút n2 và n5 quảng bá dữ liệu. Hình
3.2.2 c: nút n5 trở thành nhóm trưởng và quảng bá bản tin về lịch TDMA tới các
nút trong mạng. Hình 3.2.2 d: các thành viên trong nhóm lần lượt gửi dữ liệu cảm
biến về nhóm trưởng theo những khe thời gian sắp xếp trong lịch.
Thuật toán ở đây đảm bảo nút với mức năng lượng còn lại lớn nhất và gần
nhất với sự kiện xảy ra được lựa chọn làm nhóm trưởng. Thêm nữa chúng ta chỉ sử
dụng một loại bản tin để tạo nhóm và chọn nhóm trưởng. Do đó có thể làm giảm số
lượng các bản tin điều khiển giúp giảm lượng dữ liệu truyền tải từ các nút tới nhóm
trưởng (sẽ được mô tả ở pha sau) bởi nhóm trưởng là nút ở gần sự kiện và đã thu
thập được sẵn nhiều dữ liệu hơn các nút ở xa sự kiện.
3.3 Pha lựa chọn nút trung gian và truyền dữ liệu
Pha truyền dữ liệu bao gồm ba hoạt động chính:
a) Thu thập dữ liệu bên trong nhóm:
Sử dụng lịch TDMA, mỗi nút thành viên chuyển các thông tin cảm biến tới
nhóm trưởng trong khe thời gian truyền dữ liệu đã được định trước. Bên cạnh đó
để tiết kiệm năng lượng là tắt bộ thu nhận khi không trong quá trình truyền tải.
Nhóm trưởng bắt buộc phải liên tục nhận dữ liệu từ các nút trong nhóm. Một vấn
đề cốt lõi ở đây là các nút cảm biến được nhóm lại thành nhóm bao quanh sự kiện:
việc truyền tải sẽ tiêu tốn mức năng lượng thấp nhất do khoảng cách giữa nhóm
trưởng và các nút cảm biến là nhỏ.
Một vấn đề khác ở đây là độ ưu tiên của mỗi nút trong lịch TDMA. Như đã
đề cập trước đó, mỗi nhóm trưởng có thông tin về mô tả dữ liệu trong bản tin của
tất cả các nút khác thuộc nhóm. Nhờ đó nó có thể sắp xếp thứ tự và khoảng thời
gian cho từng nút truyền tải dữ liệu. Nút cảm biến được nhiều dữ liệu dữ liệu sẽ
truyền tải trước với nhiều khe thời gian hơn các nút khác. Theo sự sắp xếp này, tất
cả các nút sẽ được phân khe thời gian nhất định để cảm biến môi trường và truyền
tải dữ liệu cảm biến về nhóm trưởng.
b) Thực hiện thu thập dữ liệu
Năng lượng dùng trong xử lý dữ liệu ít hơn rất nhiều so với năng lượng để
truyền tải dữ liệu. Do đó việc thu thập dữ liệu bằng cách xử lý cục bộ là rất quan
trọng để tối thiểu hóa năng lượng sử dụng. Để tránh việc truyền tải dữ liệu dư thừa,
nhóm trưởng thực hiện việc tổng hợp dữ liệu từ dữ liệu thu thập được, và theo đó
giảm lượng dữ liệu thô cần gửi tới trạm gốc. Dữ liệu sẽ được nén, cùng với các
thông tin được yêu cầu bởi trạm gốc, được truyền tới trạm gốc theo kiểu đa chặng
(multi-hop).
Việc tổng thu thập, tổng hợp trong nhóm là rất quan trọng để tối ưu hóa
năng lượng. Để tránh việc truyền tải dữ liệu dư thừa, nhóm trưởng thực hiện việc
tổng hợp dữ liệu từ dữ liệu thu thập được tại các nút thành viên, theo đó giảm
lượng dữ liệu thô gửi tới trạm gốc. Dữ liệu sau khi được tổng hợp sẽ được nén lại,
nhằm tối ưu về băng thông cho toàn mạng, sau đó sẽ được truyền về trạm gốc theo
kiểu multi-hop.
Để lựa chọn nút chuyển tiếp dữ liệu, đầu tiên nhóm trưởng sẽ quảng bá bản
tin REQUEST_RELAY tới tất cả các nút trong phạm vi phủ sóng của nó. Nội dung
bản tin REQUEST_RELAY bao gồm:
REQUEST_RELAY{IDCH, d(CH,BS),flag}
Trong đó IDCH là định danh nút nhóm trưởng đang tìm kiếm nút trung gian
RelayNút; d(CH,BS) là khoảng cách từ nút trung gian đến trạm gốc; flag là mã yêu
cầu bản tin reply, có giá trị mặc định là 0. Mỗi nút cảm biến trong mạng luôn biết
được khoảng cách từ nó đến trạm gốc như đã trình bày ở trên.
Tất cả các nút nhận được bản tin REQUEST_RELAY sẽ xác định giá trị cosα,
với α là góc tại nhóm trưởng trong tam giác tạo bởi ba điểm nhóm trưởng, nút
trung gian và trạm gốc. Giá trị cosα được xác định bởi công thức:
cos α=d (CH , j)2+d (CH , BS)2−d ( j , BS)2
2 d (CH , j)d (CH , BS) (6)
Trong đó d(CH,j), d(CH,BS), d(j,BS) là khoảng cách từ nhóm trưởng đến nút
ứng viên, khoảng cách từ nhóm trưởng đến trạm gốc, và khoảng cách từ nút ứng
viên đến trạm gốc. Nếu cosα<0, tương đương α>90⁰, nút nhận được bản tin
REQUEST_RELAY sẽ không gửi trả lại bản tin ACK_RELAY. Nếu cosα>0, tương
đương α<90⁰, nút cảm biến sẽ thực hiện hàm lựa chọn lựa chọn nút trung gian
(RelayNode) FRN, rồi gửi trả lại giá trị của hàm FRN cho nhóm trưởng thông qua
bản tin ACK_RELAY.
Hình 3.3 Ví dụ quá trình lựa chọn nút trung gian
Thuật toán tối ưu hơn so với giao thức ARPEES khi ở ARPEES tất các nút
trong vùng phủ sỏng của nhóm trưởng đều gửi trả lại ACK_RELAY dẫn tới việc
tiêu hao năng lượng. Trong một số trường hợp có thể gây ra lặp trong mạng, có
trường hợp lựa chọn các nút chuyển tiếp nằm xa trạm gốc hơn.
Hàm FRN có ý nghĩa như chi phí ước lượng trên tuyến đường từ nhóm trưởng
về trạm gốc đi qua nút trung gian j. Giá trị hàm lựa chọn RelayNode được xác định
như sau:
FRN ( j )=sin α j+d ( j ,BS )d (CH , j )
+Emax
K .Eres( j)MinFRN ( j )→Re layNode (7)
Với Eres(j) là năng lượng còn lại của nút cảm biến j, Emax là năng lượng tối đa
của nút cảm biến . K là các tham số có thể thiết lập của giải thuật, thể hiện trọng số
của yếu tố năng lượng trong hàm đánh giá FRN. Nút có giá trị hàm FRN nhỏ nhất sẽ
được lựa chọn làm nút trung gian (RelayNode). Nút trung gian là nút trung gian để
chuyển dữ liệu từ nhóm trưởng về trạm gốc, do đó cần thỏa mãn các yêu cầu sau:
Nút trung gian phải là nút mạng có năng lượng còn lại lớn.
Nút trung gian phải nằm ở vị trí gần trạm gốc, điều có có nghĩa nút có
khoảng cách đến nhóm trưởng là lớn và khoảng cách đến trạm gốc nhỏ.
Tuyến đường đa chặng truyền dữ liệu về trạm gốc phải gần như là đường
thằng.
Lựa chọn nút trung gian có giá trị hàm FRN nhỏ nhất thỏa mãn được các yêu cầu
trên. Việc lựa chọn hàm đánh giá là hết sức quan trọng đối với việc định tuyến
trong mạng không dây. Nếu hàm đánh giá chỉ dựa trên khoảng cách để lựa chọn
nút trung gian, tuyến đường lựa chọn sẽ là tuyến đường ngắn nhất về trạm gốc.
Tuy nhiên, việc liên tục lựa chọn các nút gần nhất làm nút trung gian sẽ làm năng
lượng của các nút này giảm xuống nhanh cho đến hết năng lượng, dẫn tới mất cân
bằng năng lượng trong mạng.
Ví dụ như trong Hình 3., nút nhóm trưởng n1 sẽ quảng bá bản tin
REQUEST_RELAY cho tất cả các nút hàng xóm. Nút n1, n2, n3 nhận được bản tin,
thực hiện việc xác định góc α. Nút n4 có góc α>90⁰, do đó nó sẽ gửi trả bản tin
ACK_RELAY. Nút n2, n3 có α<90⁰, sẽ gửi trả lại bản tin ACK_RELAY mang theo
giá trị hàm FRN. Nút n1 nhận được bản tin ACK_RELAY, xác định được n3 có giá trị
hàm FRN min, chọn n3 làm nút trung gian để gửi dữ liệu.
Việc hạn chế việc gửi lại bản tin ACK_RELAY của các nút mạng có góc
α>90⁰ sẽ giúp chống lặp cho mạng, hạn chế trường hợp lựa chọn nút trung gian có
khoảng cách đến trạm gốc xa hơn khoảng cách từ nhóm trưởng đến trạm gốc. Bên
cạnh đó, việc này còn giúp tiết kiệm năng lượng cho quá trình gửi lại bản tin
ACK_RELAY.
Trong trường hợp không tìm thấy nút trung gian có góc α<90⁰, nhóm trưởng
sẽ quảng bá bản tin REQUEST_RELAY nhưng giá trị flag thiết lập bằng 1, yêu cầu
tất cả các nút nhận được yêu cầu phải gửi lại bản tin ACK_RELAY.
Hình 3.4 Mô tả thuật toán lựa chọn nút trung gian
Tuyến đường từ nhóm trưởng về đến trạm gốc sẽ phải đi qua nhiều nút trung
gian. Để tìm kiếm next hop, các nút trung gian tự coi mình như nhóm trưởng và
thực hiện cơ chế tìm kiếm tuyến đường như trên, cho đến khi nào tìm được đường
về trạm gốc.
CHƯƠNG 4: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ HIỆU NĂNG CỦA
GIAO THỨC SO VỚI CÁC GIAO THỨC KHÁC CÙNG LOẠI
Giao thức OPEAS được cài đặt thành công trên công cụ OMNeT++. OMNeT+
+ là công cụ mô phỏng mạng mã nguồn mở, khả năng mô phỏng mạng, được sử
dụng rộng rãi. Các module mô phỏng được thiết kế hướng đối tượng và được lập
trình băng ngôn ngữ C++, thuận tiện cho người lập trình mô phỏng. Bên cạnh đó,
OMNeT++ hỗ trợ giao diện đồ họa cũng như các công cụ để phân tích, đánh giá
kết quả mô phỏng. Tôi cũng cài đặt thêm một số giao thức định tuyến cho mạng
cảm biến không dây khác như MLEACH, ARPEES để so sánh với giao thức đang
tìm hiểu.
4.1 Giới thiệu chung về công cụ mô phỏng OMNET++:
OMNeT++[20] là viết tắt của cụm từ Objective Modular Network Testbed in
C++. OMNeT++ là một ứng dụng cung cấp cho người sử dụng môi trường để tiến
hành mô phỏng hoạt động của mạng. Mục đích chính của ứng dụng là mô phỏng
hoạt động mạng thông tin, tuy nhiên do tính phổ cập và linh hoạt của nó, OMNeT+
+ còn được sử dụng trong nhiều lĩnh vực khác như mô phỏng các hệ thống thông
tin phức tạp, các mạng kiểu hàng đợi (queueing networks) hay các kiến trúc phần
cứng...
OMNeT++ cung cấp sẵn các thành phần tương ứng với các mô hình thực tế.
Các thành phần này (còn được gọi là các module) được lập trình theo ngôn ngữ C+
+, sau đó được tập hợp lại thành những thành phần hay những mô hình lớn hơn
bằng một ngôn ngữ bậc cao (NED). OMNeT++ hỗ trợ giao diện đồ hoạ, tương ứng
với các mô hình cấu trúc của nó đồng thời phần nhân mô phỏng (simulation kernel)
và các module của OMNeT++ cũng rất dễ dàng nhúng vào trong các ứng dụng
khác.
Các thành phần chính của OMNeT++:
Thư viện phần nhân mô phỏng (simulation kernel)
Trình biên dịch cho ngôn ngữ mô tả hình trạng (topology description
language) - NED (nedc)
Trình biên tập đồ hoạ (graphical network editor) cho các file NED (GNED)
Giao diện đồ hoạ thực hiện mô phỏng, các liên kết bên trong các file thực
hiện mô phỏng (Tkenv)
Giao diện dòng lệnh thực hiện mô phỏng (Cmdenv)
Công cụ (giao diện đồ hoạ) vẽ đồ thị kết quả vector ở đầu ra (Plove)
Công cụ (giao diện đồ hoạ) mô tả kết quả vô hướng ở đầu ra (Scalars)
Công cụ tài liệu hoá các mô hình
Các tiện ích khác
Các tài liệu hướng dẫn, các ví dụ mô phỏng...
4.1.1 Mô hình mô phỏng trong OMNeT++
4.1.1.1 Cấu trúc phân cấp module
Một mô hình trong OMNeT++ bao gồm các module lồng nhau có cấu trúc
phân cấp. Độ sâu của của các module lồng nhau là không giới hạn, điều này cho
phép người sử dụng có thể biểu diễn các cấu trúc logic của các hệ thống trong thực
tế bằng các cấu trúc mô hình. Các module trao đổi thông tin với nhau thông qua
việc gửi các message. Các message này có thể có cấu trúc phức tạp tuỳ ý. Các
module có thể gửicác message này theo hai cách, một là gửi trực tiếp tới địa chỉ
nhận, hai là gửi đi theo một đường dẫn được định sẵn, thông qua các cổng và các
kết nối. Các module có thể có các tham số của riêng nó. Các tham số này có thể
được sử dụng để chỉnh sửa các thuộc tính của module và để biểu diễn cho topology
của mô hình.
Các module ở mức thấp nhất trong cấu trúc phân cấp đóng gói các thuộc
tính. Các module này được coi là các module đơn giản, và chúng được lập trình
trong ngôn ngữ C++ bằng cách sử dụng các thư viện mô phỏng.
Mỗi mô hình này thường biểu diễn cho một hệ thống mạng. Module mức
cao nhất trong cấu trúc phân cấp được gọi là module hệ thống. Module này có thể
chứa các module con, các module con cũng có thể chứa các module con của riêng
nó. Độ sâu phân cấp đối với các module là không giới hạn, điều này cho phép
người sử dụng có thể dễ dàng biểu diễn một cấu trúc logic của một hệ thống trong
thực tế bằng cấu trúc phân cấp của OMNeT++.
Cấu trúc của mô hình có thể được mô tả bằng ngôn ngữ NED của OMNeT++
Hình 4.1 – Cấu trúc module NED
4.1.1.2 Message, cổng, liên kết
Các module trao đổi thông tin bằng việc gửi các message. Trong thực tế,
message có dạng khung (frame) hoặc là các gói tin (packet) được truyền đi trong
mạng. Các message có thể có cấu trúc phức tạp tuỳ ý. Các module đơn giản có thể
gửi các message đi một cách trực tiếp đến vị trí nhận hoặc gửi đi theo một đường
dẫn định sẵn thông qua các cổng và các liên kết.
“Thời gian mô phỏng địa phương” (local simulation time) của một module
tăng lên khi module nhận được một message. Message có thể đến từ một module
khác hoặc đến từ cùng một module (message của chính bản thân module - self-
message được dùng để thực hiện bộ định thời).
Cổng (gate) là các giao tiếp vào ra của module. Message được gửi đi qua các
cổng ra và được nhận vào thông qua các cổng vào.
Mỗi kết nối (connection) hay còn gọi là liên kết (link) được tạo bên trong
một mức đơn trong cấu trúc phân cấp của các module: bên trong một module kết
hợp, một kết nối có thể được tạo ra giữa các cổng tương ứng của hai module con,
hoặc giữa cổng của module con với cổng của module kết hợp.
4.1.1.3 Tham số
Các module có thể các tham số.Các tham số này có thể được đặt giá trị trong
các file NED hoặc các file cấu hình ompnetpp.ini. Các tham số này có thể được
dùng để thay đổi các thuộc tính của các module đơn giản hoặc dùng để biểu diễn
cho topology của mô hình.
Các tham số có thể có kiểu là chuỗi, số học, giá trị logic hoặc cũng có thể
chứa cây dữ liệu XML (XML data tree). Các biến kiểu số trong các biểu thức có
thể nhận giá trị từ các tham số khác, gọi hàm, sử dụng các biến ngẫu nhiên từ các
nguồn phân tán hoặc nhận giá trị trực tiếp được nhập vào bởi người sử dụng.
Các tham số có kiểu số có thể được dùng để cấu hình topology rất dễ dàng.
Nằm trong các module kết hợp, các tham số này có thể được dùng để chỉ ra số
module con, số cổng giao tiếp và cách các kết nối nội bộ được tạo ra.
4.1.2 Xây dựng và chạy thử mô hình mô phỏng
Một mô hình OMNeT++ bao gồm những phần sau:
Ngôn ngữ mô tả topology - NED (file có phần mở rộng .ned): mô tả cấu
trúccủa module với các tham số, các cổng... Các file .ned có thể được viết
bằng bấtkỳ bộ soạn thảo hoặc sử dụng chương trình GNED có trong
OMNeT++.
Định nghĩa cấu trúc của các message (các file có phần mở rộng .msg):
Ngườisử dụng có thể định nghĩa rất nhiều kiểu messsage và thêm các trường
dữ liệucho chúng. OMNeT++ sẽ dịch những định nghĩa này sang các lớp C+
+ đầy đủ.
Mã nguồn của các module đơn giản. Đây là các file C++ với phần mở rộnglà
.h hoặc .cc.
Hệ thống mô phỏng cung cấp cho ta các thành phần sau:
Phần nhân mô phỏng. Phần này chứa code để quản lý quá trình mô phỏng
vàcác thư viện lớp mô phỏng. Nó được viết bằng C++, được biên dịch và
đượcđặt cùng dạng với các file thư viện (các file có phần mở rộng là .a
hoặc .lib).
Giao diện người sử dụng. Giao diện này được sử dụng khi thực hiện quá
trìnhmô phỏng, tạo sự dễ dàng cho quá trình sửa lỗi, biểu diễn
(demonstration)hoặc khi thực hiện mô phỏng theo từng khối (batch
execution of simulations).Có một vài kiểu giao diện trong OMNeT++,
tất cả đều được viết bằng C++ được biên dịch.
Chương trình mô phỏng được xây dựng cho các giao thức định tuyến trong mạng
cảm biến sử dụng để so sánh ở phần sau bao gồm các thành phần cơ bản:
File wsn.ned mô tả các module trong mô hình mạng
Các file mã nguồn Sensor.h, Sensor.cpp, BaseStation.h , BaseStation.cpp
xử lý hoạt động các module simple được khai báo trong wsn.ned
File RoutingDef.h khai báo các hằng số được sử dụng trong chương trình
bao gồm: giá trị kiểu số phân loại các gói tin, độ dài các loại bản tin…
File Message.msg khai báo các loại gói tin và các trường dữ liệu nằm trong
mỗi bản tin.
File omnetpp.ini khai báo các tham số đầu vào cho mô phỏng như kích
thước mạng, số nút cảm biến, mức năng lượng ban đầu, giới hạn truyền tải,
giới hạn cảm biến…
File WSN.sca lưu các kết quả đầu ra của chương trình như tổng năng lượng
toàn mạng sau mỗi vòng, mức năng lượng của mỗi nút, thời gian sống của
mạng, tổng số gói tin gửi đi…Dữ liệu đầu ra có dạng bảng và có thể lọc theo
tên hay theo module ghi ra kết quả đó. Dữ liệu có thể được chuyển sang các
chương trình như Excel hay Mathlab để thực hiện thao tác tính toán tổng
hợp hay vẽ đồ thị mô tả.
Sau đây là mô tả chi tiết về cấu trúc của hai thành phần quan trọng nhất trong cấu
trúc một chương trình mô phỏng OMNeT++.
4.1.2.1 File mô tả topo mạng wsn.ned
Ngôn ngữ NED được sử dụng để mô tả topology của một mô hình trong
OMNeT++. NED sử dụng phương pháp mô tả module hoá. Điều này có nghĩa
là một mạng có thể được mô tả như một tập hợp các mô tả thành phần (các
kênh, các kiểu module đơn giản hay kết hợp). Các kênh, các kiểu module đơn
giản và kết hợp được sử dụng để mô tả một mạng nào đó có thể được sử dụng
lại khi mô tả một mạng khác.
Nội dung file wsn.ned khai báo lần lượt các module như sau
simple module Sensor: module đơn đại diện cho các nút cảm biến
simple module BaseStation: module đơn đại diện cho trạm gốc
module mạng WSN : bao gồm một module đơn BaseStaion và một tập hợp
các module đơn Sensor với số lượng lấy từ file tham số đầu vào
omnetpp.ini
Mỗi module đơn sẽ bao gồm các khai báo cơ bản như sau:
khai báo các tham số: vị trí xpos, ypos – của module BS là cố định còn của
module Sensor là ngẫu nhiên trong khoảng nhỏ hơn kích thước mạng, tham
số giới hạn truyền tải, giới hạn cảm biến, mức năng lượng, chuỗi hiển thị…
khai báo các cổng: mỗi module đơn sẽ có một tập hợp cổng đầu vào in[] và
một tập hợp cổng đầu ra out[]
Module mạng WSN bao gồm các submodule đã nói ở trên, trong khai báo module
mạng WSN cũng tiến hành gán giá trị cho các tham số của từng submodule thường
là lấy từ khai báo giá trị tham số trong file omnetpp.ini
4.1.2.2 Các file mã nguồn
Các file mã nguồn bao gồm Sensor.h, Sensor.cpp,
BaseStation.h,BaseStation.cpp. Mã nguồn được viết trên ngôn ngữ C++ để xây
dựng các lớp tương ứng mới các simple module khai báo trong file wsn.ned. Nội
dung các file này lâp trình cách thức thực hiện các sự kiện của mỗi module, hay
nói khác đi là thực hiện các hoạt động (behaviour) của mô hình.Các module
Sensor và BaseStation là các lớp kế thừa từ lớpcSimpleModule trong thư viện của
OMNeT++.
Cấu trúc mã nguồn của mỗi module gồm có các hàm chính như sau:
void initialize(): đây là hàm khởi tạo của lớp. Trong quá trình khởi tạo,
OMNeT++ sẽ xây dựng mạng: nó tạo ra các module đơn và các module kết
hợp (compound module). Sau đó kết nối chúng theo các khai báo và định
nghĩa trong file NED, đồng thời với đó là khai báo và gán giá trị cho các
biến của module.
void handleMessage(cMessage *msg): hàm này được gọi khi trong quá
trình xử lý sự kiện. Như vậy hầu hết hoạt động của hệ thống được mô phỏng
sẽ được lập trình trong các hàm này. Hàm handleMessage() sẽ được nhân
mô phỏng (simulation kernel) gọi khi module nhận được một gói tin.
void finish():Hàm finish() được gọi khi quá trình mô phỏng kết thúc thành
công. Ngoài ra, một ứng dụng chủ yếu của hàm này còn là thu thập các
thống kê về quá trình mô phỏng. Trong hàm finish() của mỗi module thường
thực hiện việc ghi thông tin dữ liệu thường là giá trị hiện thời của các tham
số vào file kết quả wsn.sca.
Hình dưới đây cho chúng ta hình ảnh quá trình xử lý khi mô hình
được xây dựng và hoạt động.
Hình 4.2 Lược đồ xây dựng và chạy một chương trình mô phỏng OMNeT++
4.2 Mô phỏng giải thuật OPEAS:
Chương trình mô phỏng được xây dựng bao gồm các thành phần chính sau:
Mô tả topo mạng – file network.net
Nội dung file network.net khai báo các module trong mạng cảm biến
Module Sensor: module đại diện cho các nút cảm biến, bao gồm các thuộc
tính cơ bản vị trí xpos, ypos, năng lượng còn lại energy, trạng thái hiện tại status,
tập hợp các cổng đầu vào in[] và các cổng đầu ra out[].
Moduel BaseStation: module đại diện cho trạm gốc thu thập dữ liệu, có vị
trí được đặt cố định tại tọa độ (400,610)
Module WSN: gồm nhiều module đơn Sensor và một module đơn
BaseStation
Thiết lập cấu hình chạy mô phỏng – file omnetpp.ini
Là file quy định giá trị cho các tham số với từng lần chạy mô phỏng, bằng
cách sử dụng file omnetpp.ini, có thể tiến hành chạy mô phỏng với các kích thước
mạng, năng lượng ban đầu của các nút cảm biến, loại giao thức (MLEACH,
ARPEES hay OPEAS) khác nhau.
Các file mã nguồn BaseStation.cpp và Sensor.cpp
Chứa mã nguồn được viết bằng ngôn ngữ C++ để xây dựng cách thức hoạt
động của từng module BaseStation hay module Sensor. Các module Sensor và
BaseStation là các lớp kế thừa từ lớp cSimpleModule trong thư viện của OMNeT+
+.
Ghi lại giá trị các thông số đo đạc – file General-0.sca
Là file ghi lại giá trị bất kì tham số mà người sử dụng mong muốn. Trong
phần mô phỏng của mình, em sẽ sử dụng file này để lưu lại mức năng lượng từng
nút cảm biến, số nút còn năng lượng sau mỗi vòng, tỉ lệ gói tin bị lỗi.
Dưới đây là hình ảnh minh họa topo mạng trong môi trường OMNeT++.
Hình 4.3 Mô hình mạng cảm biến không dây gồm 100 nút, diện tích 500x500 m2
1.1 Các thông số đầu vào mô phỏng
Sau khi cài đặt thành công chương trình mô phỏng, em tiến hành chạy mô
phỏng với bảng tham số như sau:
Bảng 4.1 Bảng tham số mô phỏng
Tham số Giá trị
Năng lượng ban đầu 1 J
Kích thước bản tin dữ liệu 500 byte
Kích thước bản tin điều khiển 25 byte
Số frame trong một round 5
Efs 10pJ/bit/m2
Số gói dữ liệu trong một vòng 15
Mô phỏng mạng cảm biến trong diện tích 800x600 m2, gồm 200 nút cảm
biến được phân bố đồng đều. Năng lượng ban đầu của mỗi nút cảm biến là 1J. Các
nút cảm biến được xem là nút chết khi nó tiêu thụ hết 90% năng lượng. Các nút
cảm biến hết năng lượng sẽ không tham gia vào các hoạt động của mạng. Thiết lập
bản tin dữ liệu kích thước 500 byte, lớn hơn nhiều so với bản tin điều khiển 25
byte. Các tham số năng lượng dùng để gửi nhận k bit dữ liệu E elec, năng lượng
khuếch đại tín hiệu truyền dẫn Efs có giá trị lần lượt là 50nJ/bit và 10pJ/bit/m2. Số
lần nhóm trưởng truyền dữ liệu về trạm gốc là 15 lần/round.
Bên cạnh đó, em cũng cài đặt các giao thức MLEACH, ARPEES để tiến
hành so sánh với giao thức OPEAS. Các giao thức ARPEES, MLEACH, OPEAS
thực hiện phân nhóm và lựa chọn nhóm trưởng theo các phương thức khác nhau,
do đó để đánh giá chính xác hiệu quả năng lượng trong pha truyền em chỉ thực
hiện tình toán năng lượng sử dụng trong hoạt động tìm kiếm tuyến đường và
truyền dữ liệu về trạm gốc mà bỏ qua năng lượng tiêu thụ trong quá trình thiết lập
nhóm và bầu chọn nhóm trưởng.
1.2 Các thông số đầu ra
Giao thức OPEAS tập trung vào tối ưu năng lượng trong mạng qua đó giúp
cân bằng năng lượng, kéo dài thời gian sống cho mạng, cải thiện tỉ lệ lỗi gói tin. Để
đánh giá được các yếu tố trên, em lựa chọn đo các thông số:
Số nút còn năng lượng sau mỗi vòng.
Mức năng lượng của từng nút trên toàn mạng sau số vòng nhất định.
Tổng năng lượng còn lại của mạng.
Tỉ lệ bản tin lỗi
1.3 Đánh giá hiệu năng
1.3.1 Sự ảnh hưởng của tham số K
Với giao thức OPEAS, tham số K trong hàm đánh giá thể hiện trọng số của
yếu tố năng lượng. Để đạt hiệu quả về năng lượng, ta tiến hành chạy mô phỏng
trong 300 round với K=1,10,20,30. Khi các nút còn nhiều năng lượng, sự ảnh
hưởng của tham số K đến tổng năng lượng toàn mạng là không nhiều. Sự khác
nhau chỉ thể hiện rõ từ round 250 đến round 350. Đồ thị bên dưới thể hiện năng
lượng còn lại của toàn mạng trong 50 round cuối:
250 255 260 265 270 275 280 285 290 295 300130000
132000
134000
136000
138000
140000
142000
144000
146000
148000
150000
ARPEES
K=1
K=10
K=20
K=30
Round
Resid
ual E
nerg
y (J)
Hình 4.4 Năng lượng toàn mạng với các hàm đánh giá khác nhau
Từ đồ thị ta thấy, nếu giá trị K nhỏ, hàm đánh giá phần nhiều dựa trên năng
lượng. Khi đó tuyến đường lựa chọn sẽ có xu hướng đi theo hình ziczac, từ đó làm
tăng độ dài quãng đường đến trạm gốc, gây tiêu tốn năng lượng. Khi giá trị K quá
lớn K>30, hàm đánh giá chủ yếu dựa vào khoảng cách và không dựa trên năng
lượng, từ đó làm năng lượng phân bố không đồng đều. Cần lựa chọn giá trị K thích
hợp, đảm bảo cân bằng năng lượng và lựa chọn tuyến đường không bị zigzac. Từ
đồ thị trên, ta thấy giá trị K=20 cho kết quả tối ưu nhất, năng lượng còn lại của
mạng là nhiều nhất.
Khi giá trị của K tăng lên, hệ số của yếu tố năng lượng trong hàm đánh giá
giảm, giúp lựa chọn tuyến đường ngắn tiết kiệm năng lượng nhưng lại làm mất cân
bằng năng lượng trong mạng. Bảng dưới đây ghi lại round xảy ra nút chết đầu tiên
với từng hàm đánh giá.
Bảng 4.2 Bảng thống kê sự kiện xuất hiện nút hết năng lượng đầu tiên
First Node
Death
ARPEE
S
293
K=1 306
K=10 268
K=20 248
K=30 212
Từ bảng 4.2, ta nhận thấy khi giá trị K tăng lên, số round xuất hiện First
Node Death giảm, chứng tỏ mạng sự cân bằng năng lượng trong mạng giảm. Do
đó, cần lựa chọn giá trị K sao cho mối quan hệ giữa năng lượng tiết kiệm và cân
bằng năng lượng ở mức hợp lý. Từ đồ thị và bảng trên, giá trị K=20 có tổng năng
lượng lên toàn mạng cao nhất và thời điểm xảy ra First Node Death ở mức vừa
phải.
1.3.2 Sự phân bố năng lượng trong mạng
Tiếp theo, thiết lập giá trị K=20, cho thực hiện mô phỏng cùng với các giao
thức MLEACH và ARPEES, tiến hành đo năng lượng của các nút cảm biến tại
round 60. Ta có đồ thị sau:
0 20 40 60 80 100 120 140 160 180 2000
200000
400000
600000
800000
1000000 MLEACH ARPEES OPEAS
Nút ID
Nút
's En
ergy
(J)
Hình 4.5 Phân bố năng lượng của 200 nút mạng sau 60 round
Trên đồ thị, trục hoành biểu thị ID của từng nút cảm biến. Trục tung biểu thị
năng lượng còn lại của từng nút. Ta thấy giao thức tại round 60, giao thức
MLEACH đã xuất hiện 8 nút hết năng lượng, trong khi đó các nút còn 90% năng
lượng là khá nhiều. Chứng tỏ năng lượng trong mạng phân bố không đều. Nguyên
nhân ở đây là MLEACH lựa chọn các nút trung gian gần trạm gốc nhất để truyền
dữ liệu, làm cho năng lượng tiêu hao tập trung chủ yếu tại các nút này, dẫn đến
việc nhanh chóng hết năng lượng. Trong khi hai giao thưcs ARPEES và OPEAS có
cơ chế giúp phân bố năng lượng thông qua việc đưa tham số năng lượng còn lại
vào hàm đánh giá lựa chọn nút trung gian. Sau 60 round, ARPEES và OPEAS
chưa có nút nào bị hết năng lượng, số lượng các nút còn 20%- 70% là khá nhiều.
Kết quả mô phỏng đã chứng minh ARPEES và OPEAS là tối ưu hơn trong việc
giải quyết bài toán phân phối năng lượng và từ đó làm tăng hiệu năng hoạt động
của toàn mạng.
1.3.3 Năng lượng còn lại trong toàn mạng
Cho mô phỏng chạy đến khi một phần ba số nút trong mạng bị hết năng
lượng, tiến hành đo tổng năng lượng trên toàn mạng, ta thu được biểu đồ sau:
0 50 100 150 200 250 30060000000
80000000
100000000
120000000
140000000
160000000
180000000
200000000
MLEACHARPEESOPEAS
Round
Resid
ual E
nerg
y (J)
Hình 4.6 Tổng năng lượng trên toàn mạng khi 1/3 số nút hết năng lượng
Trên đồ thị, trục hoành biểu thị số round mà mô phỏng có thể chạy, trục tung
biểu thị năng lượng còn lại của 200 nút cảm biến. Từ biểu đồ ta thấy, với cùng một
vòng (round), năng lượng trên toàn mạng của OPEAS luôn cao hơn hai giao thức
còn lại. Bởi vì OPEAS đã hạn chế được số bản tin quảng bá tìm kiếm tuyến đường,
nguyên nhân gây mất nhiều năng lượng. Trong vùng phủ sóng của một nút cảm
biến có rất nhiều nút hàng xóm, đồng thời tuyền đường từ nhóm trưởng về trạm
gốc lại đi qua rất nhiều hop, do vậy tổng số bản tin ACK_RELAY tiết kiệm được
rất nhiều, giúp tối ưu năng lượng và băng thông cho mạng. Bên cạnh đó, từ đồ thị
cho thấy OPEAS có thể chạy tới 300 round thì 1/3 số nút trong mạng mới hết năng
lượng, chứng tỏ OPEAS kéo dài thời gian sống cho mạng hơn.
1.3.4 Số nút còn năng lượng sau 160 rounds
Vì giao thức MLEACH chỉ chạy được đến round thứ 160 nên ta sẽ thực hiện
ghi nhận lại số nút còn năng lượng của từng giao thức từ thời điểm bắt đầu cho đến
round 160.
0 20 40 60 80 100 120 140 160130
140
150
160
170
180
190
200
MLEACH
ARPEES
OPEAS
Round
Num
ber o
f aliv
e nú
t
Hình 4.7 Số nút mạng còn năng lượng sau 160 round
So sánh số nút mạng còn sống (chưa hết năng lượng) sau 160 round, OPEAS
có 183 nút cảm biến còn năng lượng, trong khi đó với ARPEES là 144 và
MLEACH là 132. Chứng tỏ giao thức OPEAS tối ưu năng lượng hơn hai giao thức
còn lại.
1.3.5 Tỷ lệ lỗi truyền
Để minh họa cho việc cân bằng năng lượng ảnh hưởng đến độ tin cậy của
mạng cảm biến. Em tiến hành đo tỉ lệ bản tin lỗi, tỉ lệ bản tin lỗi được đo bằng cách
chia tỉ lệ số bản tin dữ liệu không đến được trạm gốc trên tổng số bản tin gửi đi từ
nhóm trưởng. Kết quả thu được thể hiện trên đồ thị hình 4.8:
MLEACH
ARPEES
OPEAS
0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%
95%
97%
99%
PacketLoss SuccessPacket
Hình 4.8 Tỉ lệ bản tin lỗi
Việc để nút cảm biến hết năng lượng làm giảm tính liên kết trong mạng, khi
có sự kiện xảy ra tại một vùng mà các nút cảm biến quanh vùng đó đã hết năng
lượng thì thông tin của sự kiện không thể truyền về trạm gốc. Chứng tỏ việc cân
bằng năng lượng rất quan trọng với mạng cảm biến không dây, giúp giữ được tính
liên kết trong mạng. Từ biểu đồ ta thấy, MLEACH có tỉ lệ bản tin thất lạc cao nhất,
sau đó đến ARPEES và OPEAS. Chứng tỏ phân bố năng lượng đồng đều trong
mạng giúp truyền dữ liệu tin cậy hơn trong mạng cảm biến không dây.
Trên đây là những ghi nhận của em khi tiến hành chạy mô phỏng ba giao
thức MLEACH, ARPEES, OPEAS. Kết quả mô phỏng cho thấy giao thức định
tuyến mới tiết kiệm được năng lượng, và qua đó kéo dài thời gian sống cho mạng,
cải thiện tỉ lệ mất gói tin.
KẾT LUẬN
Sau một quá trình nghiên cứu, đồ án của em đã được hoàn thành dưới sự
hướng dẫn tận tình và quý báu của TS. Ngô Quỳnh, cùng với đó là sự giúp đỡ nhiệt
tình từ các bạn trong nhóm nghiên cứu mạng cảm biến.
Đồ án đã trình bày được cái nhìn tổng quan về mạng cảm biến không dây
nói chung và các giao thức định tuyến cho mạng cảm biến. Qua đó ta có thể thấy
các giao thức định tuyến phân nhóm theo sự kiện vượt trội hơn về khả năng tiết
kiệm năng lượng và giảm thiểu dữ liệu dư thừa trong mạng. Với những ưu điểm
như vậy em quyết định đi vào nghiên cứu các giao thức định tuyến phân nhóm theo
sự kiện và tìm hiểu sâu về giao thức OPEAS để đưa ra những đánh giá hiệu năng
cụ thể có sức thuyết phục về mặt ứng dụng.
Do thời gian có hạn cùng với trình độ bản thân còn hạn chế nên thuật toán
chưa thực sự hoàn thiện và chưa thử nghiệm trên nhiều mô hình mạng với kích
thước và mật độ nút mạng khác nhau. Trong tương lại gần, em mong sẽ phát triển
giải pháp để tối ưu hơn với nhiều loại mô hình mạng khác nhau đồng thời có thể
cài đặt thử nghiệm trên thiết bị phần cứng để thu được kết quả hoạt động của giao
thức trong thực tế.
TÀI LIỆU THAM KHẢO
[1] Luis Javier García Villalba, Ana Lucila Sandoval Orozco, Alicia Triviño
Cabrera and Cláudia Jacy Barenco Abbas, “Routing Protocol in Wireless
Sensor Network” , 2009 IEEE
[2] Marjan Radi, Behnam Dezfouli, Kamalrulnizam Abu Bakar and Malrey Lee,
“Multipath Routing in Wireless Sensor Networks: Survey and Research
Challenges”, 2012 IEEE.
[3] Swades De, Chunming Qiao and Hongyi Wu, “Meshed Multipath Routing:
An Efficient Strategy in Sensor Networks”, 2003 IEEE.
[4] Debnath Bhattacharyya , Tai-hoon Kim and Subhajit Pal, “A Comparative
Study of Wireless Sensor Networks and Their Routing Protocols” , 2010.
[5] Jamal N. Al-Karaki, Ahmed E. Kamal, “Routing Techniques In Wireless
Sensor Networks: A Survey” , December 2004 IEEE
[6] Shio Kumar Singh, M P Singh, D K Singh, “A Survey of Energy-Efficient
Hierarchical Cluster-Based Routing in Wireless Sensor Networks”, Int. Journal
of Advanced Networking and Applications, Volume: 02, Issue: 02, Pages: 570-
580 (2010)
[7] W. R. Heinzelman, J. Kulik and H. Balakrishnan, “Adaptive protocol for
information dissemination in wireless sensor networks”, Proc. Fifth Annual
ACM/IEEE Internation Conference on Mobile Computing and Networking
(MobiCom), Aug 1999.
[8] D. Braginsky, D. Estrin, “Rumor routing algorithm for sensor networks”,
Proceedings of the First Workshop on Sensor Networks and Applications
(WSNA), Atlanta, GA, October 2002.
[9] K. Sohrabi et al., “Protocols for self-organization of a wireless sensor
network”, IEEE Personal Communications 7 (5) (2000) 16–27.
[10] K. Akkaya, M. Younis, “An energy-aware QoS routing protocol for
wireless sensor networks”, in: Proceedings of the IEEE Workshop on Mobile
and Wireless Networks (MWN 2003), Providence, RI, May 2003.
[11] T. He, J. A. Stankovic, C. Lu and T. Abdulzaher, “SPEED: A stateless
protocol for real-time communication in sensor networks” Proc. of International
Conference on Distributed Computing Systems, pp.46-55, May 2003.
[12] W.R. Heinzelman, A. Chandrakasan, and H. Balakrishnan, “Energy-efficient
Communication Protocol for Wireless Microsensor Networks”, in IEEE
Computer Society Proceedings of the Thirty Third Hawaii International
Conference on System Sciences (HICSS '00), Washington, DC, USA, Jan.
2000, vol. 8, pp. 8020.
[13] A Manjeshwar, D.P. Agrawal, “TEEN: A Routing Protocol for Enhanced
Efficiency in Wireless Sensor Networks”, ipdps, vol. 3, pp.30189a, 15th
International Parallel and Distributed Processing Symposium (IPDPS'01)
Workshops, 2001.
[14] Ossama Younis and Sonia Fahmy, “HEED: A hybrid, Energy-efficient,
Distributed Clustering Approach for Ad-hoc Networks”, IEEE Transactions on
Mobile Computing, vol. 3, no. 4, Oct.-Dec. 2004, pp. 366-369.
[15] A Abbasi and M. Younis. (2007), “A survey on clustering algorithms for
wireless sensor networks”, Computer Communications, Vol. 30, 2007, pp.
2826-2841.
[16] S. Lindsey and C.S. Raghavendra, “PEGASIS: Power efficient Gathering in
Sensor Information System”, Proceedings IEEE Aerospace Conference, vol. 3,
Big Sky, MT, Mar. 2002, pp. 1125-1130.
[17] Sibila Ratnaraj, Sarangapani Jagannathan, and Vittal Rao, “OEDSR:
Optimized Energy-Delay Sub-network Routing in Wireless Sensor Network”,
2006.
[18] Vinh TRAN QUANG and Takumi MIYOSHI, “Adaptive Routing Protocol
with Energy Efficiency and Event Clustering for Wireless Sensor Networks”,
IEICE Trans. Commun., Vol.E91–B, No.9 September 2008.
[19] Azzedine Boukerche, Richard Werner N. Pazzi, Regina B. Araujo2, “HPEQ
- A Hierarchical Periodic, Event-driven and Query-based Wireless Sensor
Network Protocol”, IEEE Conference on Local Computer Networks 30th
Anniversary (LCN’05), 2005
[20] OMNeT++, version 4.2, a discrete event simulation system,
http://www.omnetpp.org