Các phƣơng pháp định tuyến dựa vào năng lƣợng của nút cảm biến nhằm nâng cao thời gian sống của mạng

Một phần của tài liệu Nghiên cứu phát triển định tuyến tiết kiệm năng lượng cho mạng cảm biến không dây (Trang 56 - 64)

CHƢƠNG 2 TỐI ƢU ĐỊNH TUYẾN ĐA CHẶNG TIẾT KIỆM NĂNG LƢỢNG

2.2.Các phƣơng pháp định tuyến dựa vào năng lƣợng của nút cảm biến nhằm nâng cao thời gian sống của mạng

biến nhằm nâng cao thời gian sống của mạng

Nhằm giải quyết bài toán năng lượng trong mạng cảm biến không dây đa chặng, phần trên luận án đã trình bày kỹ thuật giảm thiểu gói tin dư thừa trong quá trình định tuyến và thu được kết quả khá tốt so với giao thức cũ. Tuy nhiên, giao thức mới đề xuất EERS vẫn còn hạn chế khi chưa xem xét đến mức năng lượng còn lại của nút cảm biến để điều khiển quá trình chọn đường sao cho cân bằng, nâng cao thời gian sống trong mạng. Với ý tưởng đó, phần luận án tiếp theo trình bày các kỹ thuật phát triển mới từ EERS nhằm kéo dài thời gian sống của mạng. Các kỹ thuật này dựa vào mức năng lượng còn lại của nút cảm biến và công suất phát của nút cảm biến để thực hiện định tuyến.

2.2.1. Đề xuất phƣơng pháp định tuyến dựa vào mức năng lƣợng các nút cảm

biến để loại bỏ tuyến đƣờng có mức năng lƣợng thấp

Trong mạng không dây đặc biệt (WSAN) năng lượng của các nút giảm dần theo thời gian và khi gửi, nhận bản tin. Năng lượng mất đi phụ thuộc vào số luồng dữ liệu và tốc độ luồng dữ liệu qua nút. Và do quá trình chọn đường mà mức độ sử dụng năng lượng này là khác nhau giữa các nút trong mạng. Các nút ở trung tâm mạng (thường có nhiều luồng dữ liệu đi qua) sẽ tiêu tốn nhiều năng lượng hơn các nút khác dẫn đến việc cạn năng lượng nhanh hơn. Các nút này thường là các nút ở giữa topo vật lý, phải tải nhiều luồng kết nối đi qua.

Mức năng lượng tại cùng một thời điểm của các nút khác nhau cũng khác nhau do nhiều lý do như: dung lượng pin khác nhau, công suất khác nhau, tham gia vào mạng tại thời điểm khác nhau dẫn đến các nút có năng lượng yếu trong mạng có thể dừng hoạt động sớm làm giảm thời gian sống của mạng, giảm tỷ lệ gửi gói tin thành công (Packet Delivery Ratio – PDR) và thông lượng (Throughput) của các kết nối đang đi qua nó. Nên việc cân bằng tải giữa các nút dựa vào năng lượng sẽ giúp giảm tải cho các nút có năng lượng yếu trong mạng kéo dài thời gian sống cho mạng, và tăng thoughput, PDR. Điều này được thực hiện bằng việc đưa năng lượng các nút vào việc định tuyến trong giao thức EERS.

Để làm việc này, luận án đề xuất giao thức Avoid Bad Route – ABR là giao thức được phát triển từ giao thức EERS với việc tìm đường dựa trên cả tiêu chí bước nhảy mạng hopcount và năng lượng của nút cảm biến. Trong thuật toán ABR bản tin RREQ và RREP được bổ sung

44

rp_energy trong RREP. Trường rq_min_energy sẽ lưu giá trị năng lượng của nút có năng

lượng nhỏ nhất trên đường đi qua để nút đích có cơ sở lựa chọn. Trường rp_energy trong bản

tin RREP lưu thông số năng lượng của tuyến đường được chọn để các nút cập nhật vào bảng định tuyến. 1 18 16 8 14 17 9 6 3 2 5 10 4 12 15 13 11 7 11J 2J 5J 5J 12J 6J 8J 10J

Hình 2.10. Ví dụ hoạt động của ABR

Ví dụ như trên hình 2.10, chúng ta cần tìm đường đi từ nút 1 đến nút 8. Như ta nhìn thấy, khi gửi bản tin tìm đường, nút 8 sẽ nhận được 3 bản tin tìm đường với các thông số hopcount khác nhau. Với các giao thức trước đây, nút 8 sẽ gửi bản tin trả lời theo cả 3 đường cho nút 1 sau đó nút 1 sẽ chọn đường có hopcount nhỏ nhất để đi. Như hình vẽ sẽ là đường 1-2-6-8. Nhưng ta quan sát trên hình 2.10, đường 1-2-6-8 có nút 6 có năng lượng rất thấp, chỉ còn 2J. Nếu chọn đường này, sau một thời gian ngắn nút 6 hết năng lượng dẫn đến đường này sẽ bị mất và phải tiến hành chọn lại đường, ngoài ra khi nút 6 không hoạt động nữa, nó sẽ ảnh hưởng đến toàn bộ mạng, ảnh hưởng đến thời gian sống của mạng. Vì vậy trong tiêu chí chọn đường, tại nút 8 chúng tôi đặt thêm một ngưỡng năng lượng để đảm bảo đường được chọn sẽ được đáp ứng được yêu cầu về năng lượng và các nút có năng lượng thấp sẽ ít được sử dụng hơn. Trong ví dụ này ta chọn ngưỡng bằng 3J. Khi đó chỉ có 2 đường 1-2-17-14-8 và 1-3-16- 18-15-8 thỏa mãn. Với hai đường này chúng ta sẽ chọn đường có hopcount ngắn hơn và có kết quả là 1-2-17-14. Trong trường hợp không có đường nào thỏa mãn, ngưỡng sẽ được tự gán bằng hiệu của giá trị lớn nhất trong số các rq_min-energy nhận được trừ đi 1 lượng nào đó được ước lượng dựa vào việc tiêu hao năng lượng của nút giữa 2 lần gửi bản tin tìm đường liên tiếp để lần tìm đường sau sẽ có tuyển thỏa mãn điều kiện năng lượng. Trong ví dụ này nếu

45

cho ngưỡng tại nút 8 bằng 10J. Lúc này ta thấy cả 3 đường đều không thỏa mãn điều kiện năng lượng. Đường 1-2-6-8 có năng lương bằng 2J; đường 1-2-17-14-8 có năng lượng bằng 5J; đường 1-3-16-18-15-8 có năng lượng bằng 6J. Lúc này ngưỡng sẽ tự giảm đi và bằng Max (2J, 5J, 6J) trừ đi 3J và có kết quả là 3J. Nút 1 chưa tìm được đường tới nút 8 sẽ gửi lại bản tin tìm đường và lúc này ngưỡng đã giảm xuống bằng 3J do đó đường 1-2-17-14-8 sẽ được chọn vì năng lượng thỏa mãn lớn hơn ngưỡng và có đường đi ngắn nhất. Cụ thể hoạt động của thuật toán được mô tả trong các lưu đồ thuật toán hình 2.11.

Begin

Create RREQ with rq_min_energy = limited

End

Broadcast RREQ Create new RREQ

t >= T Is there RREP

Yes No

No

Add route into routing table Send data packet to destination Yes

Hình 2.11. Thuật toán ABR thực hiện tại nút nguồn

Khi nút nguồn cần tìm đường đến đích, tương tự như giao thức EERS, nó sẽ sinh ra bản tin

tìm đường RREQ và gán thêm trường rq_min_energy vào bản tin. Trường này sẽ có giá trị

khởi tạo tại nút nguồn bằng vô cùng. Sau đó bản tin được nút nguồn gửi sang các nút lân cận.

Nút nguồn sinh ra một mốc thời gian . Nếu đến mốc thời gian này mà vẫn chưa nhận được

46

Và cứ như vậy đến khi tìm được đường tới đích.

Begin Receive RREQ Have destination information End Forward RREQ Yes Yes No Send RREP Rq_min_energy > Route energy threshold Rq_min_energy > Node_energy Rq_min_energy = Node_energy No Yes No (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.12. Thuật toán ABR thực hiện tại nút trung gian

Với nút trung gian được mô tả tại hình 2.12, khi nhận được bản tin RREQ nó sẽ kiểm tra xem nó có thông tin về nút đích hay không. Nếu không có thông tin về nút đích, nó so sánh giá

trị năng lượng rq_min_energy trong bản tin RREQ với năng lượng của nó. Nếu giá trị

rq_min_energy nhỏ hơn giá trị năng lượng của nó. Nó sẽ chuyển tiếp bản tin RREQ sang nút

tiếp theo. Trong trường hợp giá trị rq_min_energy lớn hơn giá trị năng lượng của nó, nó sẽ gán

rq_min_energy bằng giá trị năng lượng của nó sau đó forward bản tin RREQ với

rq_min_energy mới. Nếu nút trung gian có thông tin nút đích và giá trị năng lượng

rq_min_energy lớn hơn thông tin ngưỡng của đường đi đến đích đã được lưu trong bảng định tuyến, tức là đường đi thỏa mãn điều kiện năng lượng. Nút trung gian sẽ gửi bản tin reply. Còn

47

trong trường hợp nút trung gian có thông tin nút đích nhưng thông tin này không thỏa mãn điều kiện năng lượng, nút trung gian sẽ xử lý bản tin RREQ như trường hợp nó không biết thông tin về nút đích. Begin Destination_threshold_energy = 20 Temp_energy_threshold = 0 Receive RREQ End Send RREP (RREP includes Rp_energy = Destiantion_threshold_energy) Yes

Broadcast ID = 0 or Broadcast ID = Old Broadcast ID

Rq_min_energy >= Destiantion_threshold_energy Yes Temp_energy_threshold = max(Temp_energy_threshold, Rq_min_energy) Delete RREQ Destination_threshold_energy = Temp_energy_threshold – 3; Temp_energy_threshold = Rq_min_energy Rq_min_energy >= Destiantion_Threshold_energy Send RREP (RREP includes Rp_energy = Destiantion_Threshold_energy) Yes Delete RREQ No No No

Hình 2.13. Thuật toán ABR tại nút đích

Tại nút đích được mô tả trong hình 2.13, nút đích có một giá trị ngưỡng năng lượng để xác

định đường nào sẽ thỏa mãn. Giá trị này là Destination_threshold_energy và được khởi tạo

bằng 20J. Việc khởi tạo giá trị này phụ thuộc vào mô hình mạng và năng lượng của các nút trong mạng. Giá trị này khởi tạo càng lớn thì việc dùng ngưỡng để xác định đường đi sẽ được sử dụng sớm. Và khi đó sẽ ảnh hưởng đến delay của mạng. Và chúng tôi cũng dùng một biến

48

nhất của rq_min_energy từ các bản tin RREQ nhận được. Sau đó được sử dụng để điều chỉnh

lại ngưỡng năng lượng trên nút nếu ngưỡng quá cao so với giá trị năng lượng thực tế của các nút trên mạng. Với lưu đồ mô tả trên hình 2.13, khi nút đích nhận được bản tin tìm đường RREQ, nút đích sẽ kiểm tra xem bản tin đó được nhận lần đầu tiên hoặc là bản tin trùng lặp hay không bằng cách sử dụng giá trị Broadcast-ID trong bản tin. Nếu bản tin RREQ nhận

được là bản tin lần đầu tiên hoặc là bản tin trùng lặp, giá trị trường rq_min_energy trong bản

tin đó sẽ được so sánh với biến Temp_energy_threshold. Nếu giá trị rq_min_energy lớn hơn

giá trị Temp_energy_threshold thì Temp_energy_threshold sẽ được update giá trị mới bằng

rq_min_energy. Sau đó nút đích sẽ kiểm tra xem tuyến đường có thỏa mãn điều kiện năng

lượng hay không bằng cách so sánh giá trị Rq_min_energyDestination_threshold_energy.

Nếu giá trị Rq_min_energy lớn hơn Destination_threshold_energy tức là đường đi thỏa mãn

điều kiện năng lượng, nút đích sẽ gửi lại bản tin RREP thông báo về đường đi cho nút nguồn. Trong trường hợp không thỏa mãn điều kiện năng lượng nút đích sẽ hủy bản tin RREQ và chờ bản tin tiếp theo.

Nếu bản tin RREQ nhận được là bản tin thuộc vòng tìm kiếm tiếp theo, có nghĩa là vòng tìm kiếm trước đó không tìm được đường nào thỏa mãn điều kiện năng lượng. Nút đích thực

hiện giảm giá trị ngưỡng thấp hơn giá trị Temp_energy_threshold. Ở đây

Destination_threshold_energy = Temp_energy_threshold- 3. Temp_energy_threshold với cách

tính ở trên sẽ là giá trị năng lượng lớn nhất của các rq_min_energy trong vòng tìm đường thất (adsbygoogle = window.adsbygoogle || []).push({});

bại trước. Và 3 là con số ước lượng năng lượng các nút bị giảm giữa hai lần gửi bản tin RREQ từ nút nguồn. Lúc này nút đích đã có giá trị ngưỡng mới, nó sẽ so sánh với giá trị

rq_min_energy của bản tin RREQ nhận được và xác định tuyến đường thỏa mãn như trường

hợp trước. Nếu vẫn không có đường thỏa mãn, nút nguồn lại gửi tiếp bản tin RREQ và nút đích lại tiếp tục giảm ngưỡng đến khi phù hợp.

Với cách làm này, các tuyến đường nút nguồn nhận được sẽ đảm bảo về năng lượng để hoạt động, và các tuyến đường có nút năng lượng thấp sẽ hạn chế được sử dụng, do đó năng lượng các nút trong mạng sẽ giảm đều hơn và thời gian sống của mạng được tăng cường. Khi tuyến đường có mức năng lượng đảm bảo cũng sẽ ổn định hơn, giúp tăng tỷ lệ truyền gói tin thành công và băng thông của hệ thống mạng. Việc tuyến đường bị lỗi do mất kết nối trong quá trình đang truyền data cũng sẽ hạn chế hơn.

49

2.2.2. Đề xuất phƣơng pháp định tuyến dựa vào hai điều kiện để chọn đƣờng

đi tốt nhất - Routing Dual Criterion (RDC)

Như đã trình bày trong các phần trên, giao thức ERS và EERS sử dụng quá trình làm tràn và sử dụng điều kiện bước nhảy mạng hopcount để tìm đường đi tốt nhất. Trong các thuật toán này, các nút chỉ dùng thông số bước nhảy mạng – hopcount để tìm đường đi ngắn nhất từ nguồn đến đích. Và như vậy sẽ gặp phải các vấn đề như đã được trình bày ở phần trên: các nút trung tâm sẽ hết năng lượng sớm, thời gian sống của mạng bị hạn chế. Để giải quyết vấn đề này, luận án đã đề xuất một phương án như phần trên. Bên cạnh đó cũng phát triển một phương án khác đơn giản hơn để cân bằng mức độ sử dụng năng lượng các nút trong mạng, kéo dài thời gian sống của mạng là thuật toán chọn đường dựa vào hai điều kiện RDC. Trong thuật toán này, nút sẽ lựa chọn đường đi tốt nhất dựa vào hai tham số là hopcount và năng

lượng còn lại của nút. Để làm được việc đó, trường rp_min_energy được đưa và bản tin RREQ

và trường rp_energy được đưa vào bản tin RREP để thu được thông tin năng lượng còn lại nhỏ

nhất của các nút trên đường mà bản tin đó đi qua. Các trường này có giá trị khởi tạo bằng vô cùng và sẽ được thay đổi khi đi qua các nút. Giá trị của biến này được trình bày rõ ràng hơn ở trong ví dụ trên hình 2.14.

Hình 2.14. Sự thay đổi giá trị của biến rq_min_energy và rp_energy trong thuật toán RDC

Trong hình 2.14, giá trị của biến rq_min_energy trong bản tin RREQ hoặc rp_energy trong

bản tin RREP được nút S sinh ra và khởi tạo bằng vô cùng. Nút S gửi bản tin đến nút A. Nút A

so sánh năng lượng của nó với giá trị của biến rq_min_energy/ rp_energy. Theo mô hình, năng

lượng của nút A bằng 12 bé hơn giá trị của biến này. Biến này sẽ được gán bằng 12. Sau đó nút A gửi bản tin tới nút B. Nút B tiếp tục so sánh giá trị của biến này với năng lượng của nó. Năng lượng của B bằng 5, bé hơn giá trị của biến. Nút B gán giá trị của biến bằng 5 rồi gửi bản tin tới nút C. Nút C có năng lượng bằng 12 lớn hơn 5. Nút C giữ nguyên giá trị của biến bằng 5 và gửi bản tin tới nút D. Cứ tiếp tục như vậy, giá trị của biến rq_min_energy/ rp_energy là năng lượng bé nhất của các nút mà bản tin đi qua.

50

Với giá trị đó, thông số dùng lựa chọn đường đi tốt nhất lúc này sẽ là:

(2.1)

được gọi là chi phí (cost) của tuyến đường. Tuyến đường có bé nhất sẽ là tuyến đường

tốt nhất và được chọn. Để cụ thể hơn ta xét ví dụ như hình 2.15

S B B H E A 12 C I F K D G N 23 9 15 11 5 35 19 27 11

Hình 2.15. Ví dụ về hoạt động của thuật toán RDC

Trong hình 2.15, chúng ta cần tìm đường từ nút S đến nút D. Chúng ta có 3 tuyến đường từ S tới D. Đường 1: S-A-B-C-D có năng lượng nhỏ nhất bằng 5, hopcount bằng 4 nên M bằng 4/5. Đường 2: S-E-F-G-D có năng lượng nhỏ nhất bằng 9, hopcount bằng 4 nên M bằng 4/9. Đường 3: S-H-I-K-N-D có năng lượng nhỏ nhất bằng 19, hopcount bằng 5 nên M bằng 5/19. Nếu lựa chọn theo các phương pháp cũ, lựa chọn dựa vào hopcount lúc này tuyến đường 1 và 2 sẽ được lựa chọn do có hopcount bằng nhau và bé nhất. Và nút B sẽ nhanh chóng bị hết năng lượng và dừng hoạt động, ảnh hưởng đến toàn mạng. Khi sử dụng RDC, đường 3 sẽ được lựa chọn do có giá trị bé nhất. Nút B tiếp tục hoạt động, kéo dài thời gian sống của toàn bộ mạng.

Về chi tiết cách thức gửi và xử lý bản tin RREQ và RREP thuật toán RDC hoạt động tương tự EERS, chỉ khác ở thông số lựa chọn đường đi. EERS lựa chọn đường đi tốt nhất dựa vào

hopcount còn RDC dựa vào giá trị .

Quá trình duy trì cập nhật thông tin định tuyến của RDC được mô tả trong hình 2.16. Một nút nhận bản tin RREQ hoặc bản tin RREP. Nút đó sẽ kiểm tra thông tin đường đi trong bản tin đó mang. Nếu thông tin đường đi là mới, nút sẽ thêm thông tin đường đi đó vào bảng định

Một phần của tài liệu Nghiên cứu phát triển định tuyến tiết kiệm năng lượng cho mạng cảm biến không dây (Trang 56 - 64)