PHẦN II - giải thuật

51
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

Transcript of PHẦN II - giải thuật

Page 1: 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.

Page 2: PHẦN II - giải thuật

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

Page 3: PHẦN II - giải thuật

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)

Page 4: PHẦN II - giải thuật

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

Page 5: PHẦN II - giải thuật

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:

Page 6: PHẦN II - giải thuật

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.

Page 7: PHẦN II - giải thuậ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:

Page 8: PHẦN II - giải thuật

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

Page 9: PHẦN II - giải thuật

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.

Page 10: PHẦN II - giải thuật

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:

Page 11: PHẦN II - giải thuật

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.

Page 12: PHẦN II - giải thuật

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à

Page 13: PHẦN II - giải thuật

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.

Page 14: PHẦN II - giải thuật

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.

Page 15: PHẦN II - giải thuật

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.

Page 16: PHẦN II - giải thuật

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.

Page 17: PHẦN II - giải thuậ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:

Page 18: PHẦN II - giải thuật

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

Page 19: PHẦN II - giải thuật

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

Page 20: PHẦN II - giải thuật

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

Page 21: PHẦN II - giải thuậ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.

Page 22: PHẦN II - giải thuật

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

Page 23: PHẦN II - giải thuật

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:

Page 24: PHẦN II - giải thuật

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.

Page 25: PHẦN II - giải thuật

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)

Page 26: PHẦN II - giải thuật

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

Page 27: PHẦN II - giải thuật

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.

Page 28: PHẦN II - giải thuật

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.

Page 29: PHẦN II - giải thuật

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:

Page 30: PHẦN II - giải thuật

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.

Page 31: PHẦN II - giải thuật

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ế.

Page 32: PHẦN II - giải thuậ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.

Page 33: PHẦN II - giải thuật

[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.

Page 34: PHẦN II - giải thuật

[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