Flooding và Gossiping

Một phần của tài liệu Đề xuất các thuật toán định tuyến đem lại hiệu quả năng lượng trong mạng cảm biến không dây (Trang 35)

Flooding [19] là một kỹ thuật thường xuyên được sử dụng để tìm ra đường đi và phổ biến thông tin trong các mạng có dây và không dây Ad-hoc. Chiến lược định tuyến đơn giản và không đòi hỏi cấu hình mạng tốn kém và thuật toán tìm đường phức tạp. Flooding dùng phương pháp reactive (phản ứng lại), tức là khi mỗi nút nhận được một gói dữ liệu nó sẽ gửi đến tất cả các nút xung quanh nó. Sau khi truyền, một gói đi theo tất cả các đường có thể được nếu không bị mất kết nối, gói sẽ đến đích. Hơn nữa khi cấu hình mạng thay đổi, việc truyền gói sẽ theo những tuyến mới. Hình 2.4 minh họa nguyên

36

lý Flooding trong mạng truyền thông dữ liệu. Flooding dạng đơn giản nhất có thể làm cho các gói bị sao chép lại một cách không giới hạn khi đi qua các nút mạng.

Hình 2.4 : Flooding các gói dữ liệu trong mạng thông tin. [19]

Để ngăn chặn một gói tin lưu thông vô hạn trong mạng, một trường gọi là hop count được bổ sung vào gói tin. Ban đầu, hop count được đặt giá trị xấp xỉ đường kính mạng. Khi gói đi qua mạng hop count bị giảm đi một sau mỗi bước (một bước được tính là một lần truyền từ nút này sang nút kia). Khi

hop count về 0, gói tin sẽ bị hủy bỏ. Một phương pháp khác cũng được sử dụng đó là việc thêm vào gói tin một trường time-to-live (thời gian sống), trường này ghi lại thời gian mà một gói tin được phép tồn tại trong mạng. Khi thời gian kết thúc, gói tin sẽ bị hủy bỏ. Flooding có thể được cải tiến bằng cách xác nhận gói dữ liệu duy nhất, tức là mỗi nút mạng sẽ bỏ qua những gói đã nhận rồi.

Mặc dù, nguyên lý hoạt động đơn giản và phù hợp với cấu hình mạng có chi phí thấp nhưng Flooding gặp nhiều khó khăn khi áp dụng cho mạng WSNs. Nhược điểm đầu tiên của Flooding là gặp phải vấn đề traffic implosion (bùng nổ lưu lượng). Như trên hình 2.5 hiện tượng không mong muốn gây ra do bản sao của cùng một gói cùng gửi đến một nút.

37

Nhược điểm thứ hai là vấn đề overlap (chồng lấn) được minh họa trên hình 2.6. Overlap xảy ra khi hai nút bao phủ vùng giống nhau gửi các gói chứa thông tin tương tự nhau đến cùng một nút.

Nhược điểm thứ ba là nhược điểm nguy hiểm nhất của Flooding là resource blindness (sự mù quáng tài nguyên). Quy luật đơn giản của Flooding không xem xét đến nguồn năng lượng hạn chế của các nút. Năng lượng của các nút có thể suy giảm nhanh chóng, giảm đáng kể thời gian sống của mạng.

Hình 2.6 : Vấn đề overlap lưu lượng do Flooding [19]

Để giải quyết nhược điểm nêu trên một hướng mới cho định tuyến là phương pháp Gossiping. Tương tự như Flooding, Gossiping dùng quy luật đơn giản và không đòi hỏi cấu hình mạng đắt tiền hay thuật toán định tuyến phức tạp. Khác với Flooding, gói dữ liệu được phát quảng bá đến tất cả các nút, Gossiping chỉ yêu cầu mỗi nút gửi gói dữ liệu vừa nhận được đến một nút được lựa chọn ngẫu nhiên. Khi nhận được gói, nút lân cận lại chuyển tiếp gói dữ liệu đó đến một nút lựa chọn ngẫu nhiên khác. Quá trình cứ tiếp tục cho đến khi gói đến được đích hay hop count bị giới hạn. Gossiping tránh được vấn đề bùng nổ lưu lượng mạng bằng cách giới hạn số gói mà mỗi nút gửi đến các nút lân cận nó. Tuy nhiên độ trễ gói tại đích đến có thể rất lớn, đặc biệt trong mạng có kích thước lớn do chỉ có một liên kết được tạo thành tại một thời điểm.

2.2.1.2. SPIN

a. Nguyên lý hoạt động

Giao thức thông tin qua sự thỏa thuận (SPIN) [17] là họ các giao thức dựa trên thỏa thuận để phát thông tin trong mạng WSN. Đối tượng chính của các giao thức này là tính hiệu quả của việc phát thông tin từ một nút nào đó đến tất cả các nút khác trong mạng. Giao thức đơn giản như Flooding và

38

Gossiping thường được đề xuất để phát thông tin trong mạng WSN. Flooding yêu cầu mỗi nút sẽ gửi một bản sao của gói dữ liệu đến tất cả các nút lân cận cho đến khi thông tin được gửi đến tất cả các nút trong mạng. Mặt khác, Gossiping sử dụng tính ngẫu nhiên để giảm số bản sao của gói dữ liệu và yêu cầu chỉ có một nút nhận được một gói dữ liệu và sau đó chuyển tiếp đến một nút được lựa chọn ngẫu nhiên.

Cả hai giao thức Flooding và Gossiping đều sử dụng các nguyên tắc chuyển tiếp đơn giản và không đòi hỏi cấu hình phức tạp. Tuy nhiên, hai giao thức này có sự trễ gói lớn làm giảm chất lượng của mạng và lưu lượng tải, gây sự bùng nổ lưu lượng và chồng lấn các gói trong cùng một vùng phân bố. Các giao thức đơn giản như Flooding và Gossiping đều không tính đến nguồn năng lượng hiện tại làm giảm một cách đáng kể thời gian sống của mạng. Để giải quyết nhược điểm của các giao thức truyền thống người ta sử dụng giao thức định tuyến SPIN. Nguyên lý cơ bản của họ giao thức này là sự thỏa thuận dữ liệu và sự thích nghi tài nguyên mạng. Nguyên lý như sau :

- Thỏa thuận dữ liệu (data negotiation) yêu cầu các nút phải “học” nội dung của dữ liệu trước khi có bất kỳ dữ liệu nào được phát giữa các nút mạng. SPIN sử dụng data naming (dữ liệu đặt tên), theo đó các nút tiến hành kết hợp metadata (siêu dữ liệu) với dữ liệu tạo ra dữ liệu mô tả để thực hiện thỏa thuận trước khi phát dữ liệu thực tế. Các nút thu khi nhận được gói quảng cáo nếu muốn nhận gói dữ liệu thực phải gửi một gói yêu cầu cho nút nguồn. Nhờ đó, gói dữ liệu thực chỉ được gửi đến các nút quan tâm, hạn chế khả năng bị bùng nổ lưu lượng như trong Flooding và giảm đáng kể lưu lượng dư thừa trong mạng. Hơn nữa, việc sử dụng các dữ liệu meta descriptor loại bỏ khả năng overlap, vì các nút chỉ yêu cầu dữ liệu cần quan tâm.

- Sự thích ứng tài nguyên (Resource adaptation) cho phép các nút sử dụng giao thức SPIN điều chỉnh hoạt động theo trạng thái năng lượng hiện tại. Mỗi nút trong mạng có thể theo dõi sự tiêu thụ năng lượng trước khi phát hay xử lý dữ liệu. Khi mức năng lượng xuống thấp, nút sẽ giảm hay ngừng hoàn toàn các hoạt động như việc chuyển tiếp gói dữ liệu đến các nút khác. Và các nút có năng lượng nhiều hơn sẽ tiến hành chuyển tiếp gói tin. Do đó, SPIN giúp kéo dài thời gian sống của mạng.

SPIN thực hiện việc thỏa thuận và truyền dữ liệu thông qua 3 dạng thông điệp sau: [17]

39

+ Dạng thông điệp đầu tiên là gói ADV, được dùng để quảng cáo cho gói dữ liệu mới mà nút muốn phát. Nút có dữ liệu sẽ phát gói ADV chứa mô tả dữ liệu đến các nút lân cận.

+ Dạng thông điệp thứ hai là gói REQ, được dùng để yêu cầu nút nguồn phát gói dữ liệu đã quảng cáo trước đó. Một nút mạng nhận được gói ADV và thể hiện mong muốn nhận gói dữ liệu thực bằng cách phát đi thông điệp REQ.

+ Dạng thông điệp thứ 3 là DATA, chứa dữ liệu thực. Gói DATA thường có kích thước lớn hơn các gói ADV và REQ. Việc hạn chế các gói dư thưa làm giảm đáng kể năng lượng tiêu thụ tại các nút.

Hoạt động cơ bản của giao thức SPIN được minh họa chi tiết trên hình 2.7. Nút nguồn A, phát gói ADV quảng cáo gói dữ liệu mà nó muốn phát.

Hình 2.7: Hoạt động cơ bản của giao thứ SPIN [19]

Nút B nhận được gói ADV này. Nút B thể hiện mong muốn nhận gói dữ liệu được quảng cáo theo như mô tả của trong gói ADV. Vì thế nút B gửi gói REQ cho nút A. Sau đó nút A gửi gói dữ liệu thực cho nút B. Nút B sau khi nhận được gói dữ liệu lại phát gói ADV cho các nút C, D, E, F, G. Giả sử chỉ có 3 nút C, E, G quan tâm đến gói này. Các nút này phát thông điệp REQ cho nút B. Ngay sau đó nút B gửi dữ liệu cho các nút C, E, G. Quá trình cứ tiếp tục diễn ra cho đến khi gói dữ liệu đến được đích mong muốn.

b. Một số loại giao thức SPIN thông dụng [7, 19, 38] SPIN – PP (SPIN – Point – to – point):

Dạng đơn giản nhất của họ giao thức SPIN là SPIN-PP được thiết kế cho mạng liên lạc điểm – điểm (point – to - point). Thủ tục bắt tay ba bước được chỉ rõ trên hình 2.8. (adsbygoogle = window.adsbygoogle || []).push({});

40

Hình 2.8 : Thủ tục bắt tay trong giao thức SPIN – PP

 Bước 1, nút A có dữ liệu cần phát vì thế nút A phát gói ADV quảng cáo cho gói dữ liệu thực của mình.

 Bước 2, nút B quan tâm đến gói dữ liệu đó liền gửi gói REQ yêu cầu dữ liệu.

 Bước 3, nút A đáp ứng yêu cầu đó và gửi gói dữ liệu thực cho nút B Giao thức này thỏa thuận giữa các nút để tránh nguy cơ bị bùng nổ lưu lượng và vấn đề overlap trong giao thức Flooding và Gossiping. Theo kết quả mô phỏng của SPIN [37], giao thức này giảm 3.5 lần mức tiêu thụ năng lượng so với Flooding. Giao thức này còn đạt được tốc độ cao gần tối ưu so với lý thuyết.

SPIN – EC:

Một loại khác của giao thức này là giao thức SPIN – EC , kết hợp chặt chẽ kỹ thuật quan sát năng lượng dựa trên mức ngưỡng. Một nút chỉ tham gia vào các hoạt động của giao thức nếu nút có thể hoàn thành tất cả các hoạt động mà không làm giảm năng lượng dưới mức cho phép. Do đó, nếu một nút nhận được một gói quảng cáo, nó sẽ không gửi thông điệp REQ nếu nó xác định rằng nguồn năng lượng hiện tại của nó không đủ cao để gửi thông điệp REQ và nhận gói DATA tương ứng. Kết quả mô phỏng cho thấy giao thức SPIN – EC có thể truyền hơn 60% dữ liệu trên một đơn vị năng lượng so với Flooding. Hơn nữa, dữ liệu cho thấy SPIN – EC tiến rất gần với lý tưởng về số lượng dữ liệu có thể truyền trên một đơn vị năng lượng.

SPIN – BC:

Cả hai giao thức SPIN – PP và SPIN – EC đều được thiết kế cho liên lạc điểm. Một loại thứ 3 của họ giao thức SPIN, SPIN – BC được thiết kế cho mạng quảng bá. Trong các mạng này, các nút chia sẻ một kênh truyền duy nhất cho việc giao tiếp. Trong giao thức này, khi một nút gửi một gói dữ liệu qua kênh quảng bá thì gói dữ liệu này sẽ được nhận bởi tất cả các nút khác trong một phạm vi nhất định của nút gửi. Giao thức SPIN – BC tận dụng khả năng phát sóng của kênh và không yêu cầu một nút sau khi nhận được thông

41

điệp ADV phải đáp lại ngay lập tức gói REQ. Thay vào đó các nút đợi trong khoảng một khoảng thời gian nhất định, trong thời gian đó nó theo dõi kênh truyền. Nếu nút nghe thấy thông điệp REQ được phát ra từ một nút khác (nghĩa là nút kia mong muốn nhận được gói dữ liệu từ nút nguồn) và nút sẽ hủy bỏ gói REQ của nó, do đó loại bỏ được khả năng dư thừa của các gói REQ trong mạng. Khi nhận được gói REQ từ một nút nào đó trong mạng nút nguồn sẽ gửi thông điệp DATA chỉ một lần, ngay cả khi nó nhận được nhiều gói yêu cầu giống nhau từ các nút mạng.

Hoạt động cơ bản của giao thức SPIN – BC được miêu tả chi tiết trên hình 2.9.

Hình 2.9. Giao thức SPIN – BC

Trong mô hình này, nút có dữ liệu là nút A, gửi một gói ADV để mô tả dữ liệu của nó cho các nút lân cận. Tất cả các nút đều nghe thấy thông điệp này nhưng nút C là nút đầu tiên phát gói REQ để yêu cầu dữ liệu thực từ nút A. Vì đây là gói phát quảng bá nên các nút B và D cũng nghe được gói này và ngưng việc phát gói REQ của nó. Nút E và nút F không quan tâm và bỏ qua các gói này. Khi nghe được gói REQ từ nút C, nút A sẽ phát gói dữ liệu cho nút C. Tất cả các nút trong phạm vi truyền của nút A đều nhận được gói dữ liệu này, bao gồm cả nút E và F. Trong môi trường quảng bá, SPIN – BC giảm hao phí năng lượng bằng cách hạn chế các gói dư thừa trong mạng.

Giao thức SPIN – RL

Giao thức cuối cùng thuộc họ giao thức SPIN là giao thức SPIN – RL, mở rộng khả năng cho giao thức SPIN – BC để cải thiện độ tin cậy và lỗi thông điệp do suy hao kênh truyền. Các gói ADV và REQ được phát quảng bá lặp lại theo chu kỳ. Nếu một nút gửi yêu cầu REQ nhận gói dữ liệu nhưng sau khoảng thời gian định trước nó vẫn chưa nhận được thì nút này sẽ gửi yêu cầu lại một lần nữa. Hơn nữa, độ tin cậy được cải thiện còn do việc phát lại gói mô tả dữ liệu metadata theo chu kỳ. Các nút SPIN – RL hạn chế số lần

42

phát lại thông điệp DATA. Sau khi gửi thông điệp DATA, nút chờ hết một khoảng thời gian nhất định trước khi đáp ứng cho các yêu cầu khác cho các thông điệp dữ liệu tương tự.

Họ giao thức SPIN chỉ ra các nhược điểm chính của 2 giao thức Flooding và Gossiping. SPIN có hiệu suất sử dụng năng lượng và tốc độ phân phát dữ liệu cao hơn Flooding và Gossiping. Tuy nhiên, sự thỏa thuận cục bộ có thể không đủ để bao bọc hết toàn bộ mạng để tất cả các nút cho nhu cầu đều nhận được gói quảng bá và sau đó là gói dữ liệu mong muốn. Trường hợp này có thể xảy ra nếu các nút trung tâm không quan tâm đến gói dữ liệu và bỏ qua thông điệp ADV tương ứng sau khi nhận được gói này. Điều này hạn chế việc sử dụng của giao thức SPIN trong các ứng dụng đặc biệt như giám sát phát hiện xâm nhập và bảo vệ các công trình trọng yếu.

2.2.1.3 Directed Disffusion. [19, 38, 7]

Directed Disffusion là giao thức định tuyến trung tâm dữ liệu đối với việc truyền và phân bố thông tin trong mạng WSN. Mục tiêu chính của giao thức này là tiết kiệm năng lượng để tăng thời gian sống của mạng bằng cách tạo ra sự tương tác giữa các nút cảm biến, dựa vào việc trao đổi các bản tin, định vị trong vùng lân cận mạng. Sử dụng sự tương tác về vị trí nhận thấy có tập hợp tối thiểu các đường truyền dẫn. Đặc điểm duy nhất của giao thức này là sự kết hợp với khả năng của nút để có thể tập trung dữ liệu đáp ứng truy vấn của trạm gốc để tiết kiệm năng lượng.

Thành phần chính của giao thức này bao gồm 4 thành phần : thông điệp interests, data messages, gradients và reinforcements. Directed Disffusion sử dụng mô hình Publish – and – Subcribe trong đó một người kiểm tra tại trạm gốc sẽ miêu tả mỗi thông điệp interest bằng một cặp thuộc tính – giá trị. Thông điệp interests được xem như lời hỏi hay lời yêu cầu mà nút cần dữ liệu nào đó gửi đến các nút khác. Nút nào có thể đáp ứng được yêu cầu đó sẽ trả lời bằng dữ liệu tương ứng. Trạm gốc phát thông điệp interests quảng bá và theo chu kỳ đến tất cả các nút mạng để xác định xem có nút nào có thể phát dữ liệu mà nó đang cần hay không.

Mỗi nút cảm biến có một interest cache để lưu trữ các entry interest khác nhau. Mỗi một entry trong interest cache sẽ lưu trữ một interest khác nhau. Các entry cache này sẽ lưu trữ 3 trường sau:

43 nhận được sau cùng.

+ Nhiều trường gradient cho mỗi nút lân cận, sẽ lưu trữ tốc độ và hướng mà dữ liệu được gửi đi.

+ Trường duration chỉ ra thời gian sống của một interest.

Một gradient có thể coi như là một liên kết phản hồi khi mà nhận được bản tin interest. Hình 2.10 mô tả quá trình truyền interest trong một mạng WSN. Việc truyền thông điệp interest qua mạng kết hợp với việc xây dựng

Một phần của tài liệu Đề xuất các thuật toán định tuyến đem lại hiệu quả năng lượng trong mạng cảm biến không dây (Trang 35)