Giao thức bình đẳng

Một phần của tài liệu Nghiên cứu, cải tiến giao thức định tuyến LEACH hiệu quả về mặt năng lượng trong mạng cảm biến không dây (WSN) (Trang 33 - 39)

Với các giao thức bình đẳng thì các nút mạng đƣợc coi là có vai trò nhƣ nhau và chúng hợp tác với nhau để để thực hiện nhiệm vụ cảm biến.

Flooding và Gossiping

Kĩ thuật định tuyến ngập lụt (Flooding) đã đƣợc phát triển cho các mạng multi-hop. Theo kĩ thuật này, bất cứ khi nào một nút nhận đƣợc một gói tin, nó phát gói tin này đến tất cả các nút hàng xóm của nó trừ nút đã gửi cho nó. Điều này tiếp tục cho đến khi tất cả các nút trong mạng nhận đƣợc gói tin đó. Kết quả là, một gói tin có thể tràn ngập (flooded) toàn bộ mạng. Flooding có thể đƣợc kiểm soát bằng cách hạn chế việc phát lại gói tin cho đến khi gói tin đến đích hoặc đạt số lƣợng tối đa của các chặng (hop). Cũng có thể nói Flooding là một giao thức phản ứng và thực hiện khá đơn giản. Hình 2.3 là một minh họa của Flooding.

Hình 2.3 Flooding

Những lợi thế của Flooding là ở sự đơn giản của nó (không cần kết tốn kém duy trì tô pô mạng và các thuật toán định tuyến phức tạp). Tuy nhiên nó cũng có một số nhƣợc điểm sau:

- Bùng nổ (Implosion): Một nút có thể nhận đƣợc cùng một thông điệp từ các nút hàng xóm của nó.

- Chồng chéo (Overlap): Nếu hai nút chồng lấn khu vực cảm biến thì khi xảy một kích thích thì hai nút cảm biến cùng cảm biến và cùng gửi dữ liệu. Kết quả là các nút hàng xóm nhận đƣợc thông điệp trùng lặp.

- Mù tài nguyên (Resource blindness): Không tính đến nguồn năng lƣợng hiện có của các nút.

Nhuợc điểm bùng nổ và chồng chéo đƣợc minh họa nhƣ hình 2.4

Hình 2.4 Vấn đề bùng nổ (hình bên trái) và chồng chéo (hình bên phải) của Flooding

Một sự cải tiến của giao thức này là Gossiping (Hedetniemi và cộng sự. 1988), thuật toán này cải tiến ở chỗ mỗi nút sẽ ngẫu nhiên gửi gói tin mà nó nhận đƣợc đến một trong các nút hàng xóm của nó. Thuật toán này làm giảm số lƣợng các gói lan truyền trong mạng, tiết kiệm năng lƣợng hơn flooding. Tuy nhiên có nhƣợc điểm là có thể gói sẽ không bao giờ đến đƣợc đích, và làm tăng độ trễ truyền. Các kĩ thuật Flooding và Gossiping có thể đƣợc sử dụng bởi các giao thức cho các chức năng cụ thể nhƣ Sink có thể sử dụng Flooding hoặc Gossiping để xác định các nút hoạt động ngay sau khi các nút đƣợc triển khai. Hay sử dụng Flooding hoặc Gossiping để các nút thu thập thông tin từ nút hàng xóm khi khởi tạo mạng.

Sensor Protocols for Information via Negotiation (SPIN)

SPIN (Kulik và cộng sự 2002) là một họ các giao thức định tuyến đƣợc thiết kế để giải quyết những nhƣợc điểm của Flooding bằng thƣơng lƣợng và thích ứng tài nguyên. Do đó SPIN đƣợc thiết kế dựa trên hai ý tƣởng: (1) hoạt động hiệu quả và tiết kiệm năng lƣợng bằng cách gửi siêu dữ liệu (meta-data -là dữ liệu mô tả về dữ liệu cảm biến) thay vì gửi toàn bộ dữ liệu cảm biến ở nút cảm biến và (2) các nút trong một mạng phải nhận thức đƣợc sự thay đổi về nguồn năng lƣợng của mình và thích nghi với những thay đổi này để kéo dài tuổi thọ của mạng. SPIN có ba loại thông điệp là ADV, REQ và DATA.

- ADV: khi một nút có dữ liệu để gửi, nó quảng cáo thông qua quảng bá thông điệp này (chứa siêu dữ liệu) cho tất cả các nút hàng xóm.

- REQ: một nút quan tâm gửi thông báo này khi nó mong nhận một số dữ liệu.

- DATA: Thông điệp dữ liệu có chứa dữ liệu cảm biến thực tế

Các hoạt động cơ bản của SPIN đƣợc minh họa trong hình 2.5 với nút cảm biến A chứa dữ liệu, quảng cáo dữ liệu của mình cho hàng xóm của nó là nút cảm biến B, bằng cách gửi thông điệp ADV chứa các siêu dữ liệu mô tả dữ liệu cảm biến của nó (hình 2.5a). Node B muốn nhận dữ liệu này gửi một thông điệp REQ cho nút A (hình 2.5b). Sau khi nhận đƣợc thông điệp này của nút B thì nút A sẽ gửi dữ liệu cho nút B trong thông điệp DATA (hình 2.5c). Khi nhận đƣợc dữ liệu, nút B sẽ gửi một tin nhắn ADV để quảng cáo dữ liệu mới nhận đƣợc tới các nút láng giềng của nó (hình 2.5d). Chỉ có ba trong số các nƣớc láng giềng, các nút C, E và G, muốn có dữ liệu này. Các nút này nhắn REQ đến nút B (hình 2.5e), nút B cung cấp dữ liệu tới mỗi nút đó (hình 2.5f).

Hình 2.5 Các hoạt động cơ bản của giao thức SPIN

SPIN-PP

Là phiên bản đơn giản nhất của SPIN đƣợc thiết cho mạng truyền thông điểm-điểm. Giao thức này sử dụng giao thức bắt tay ba bƣớc nhƣ hình 2.6.

Hình 2.6Giao thức bắt tay ba bước trong SPIN-PP

Bƣớc 1, nút chứa dữ liệu, nút A, phát ra một gói quảng cáo (ADV). Trong bƣớc 2, nút B thể hiện việc muốn nhận dữ liệu bằng cách phát ra một yêu cầu dữ liệu (REQ). Ở bƣớc 3, nút A đáp ứng các yêu cầu và gửi một gói DATA đến nút B và hoàn thành bắt tay ba bƣớc.

SPIN-EC

Là một mở rộng của SPIN-PP với việc thêm cơ chế nhận biết tài nguyên dựa trên ngƣỡng để hoàn thành thƣơng lƣợng dữ liệu. Một nút quyết định tham gia hoạt động giao thức hay không phụ thuộc vào năng lƣợng hiện có của nó so với ngƣỡng. Nút không tham gia vào các hoạt động giao thức, tức là, nó không gửi một gói REQ, nếu nó không có đủ năng lƣợng để truyền tải các gói REQ và

nhận một gói DATA. Nếu một nút có nhiều năng lƣợng SPIN-EC hoạt động nhƣ SPIN-PP.

SPIN-BC

Không giống SPIN - PP và SPIN - EC đƣợc thiết kế cho truyền thông điểm- điểm, SPIN -BC đƣợc thiết kế cho mạng quảng bá. Với mạng WSN, khi một nút gửi đi một gói dữ liệu, các gói tin truyền đi đƣợc nhận bởi tất cả các nút khác trong phạm vi nhất định của nút gửi. Giao thức SPIN-BC tận dụng khả năng này và yêu một nút mà đã nhận đƣợc một gói thông điệp ADV thì không trả lời ngay lập tức với một gói REQ. Thay vào đó, nút chờ đợi trong một thời gian, trong thời gian đó nó sẽ theo dõi các kênh truyền thông. Nếu nó nghe thấy một thông điệp REQ do một nút khác mà cũng muốn nhận dữ liệu thì nó hủy bỏ việc phát thông điệp REQ của mình, nên sẽ tránh đƣợc các thông điệp REQ dƣ thừa. Hơn nữa, khi nhận đƣợc một thông điệp REQ, nút quảng cáo gửi thông điệp DATA chỉ một lần, ngay cả khi nó nhận đƣợc nhiều yêu cầu cho cùng một thông điệp. Các hoạt động cơ bản của giao thức SPIN đƣợc minh họa nhƣ hình 2.7.

Hình 2.7 Các hoạt động cơ bản của giao thức SPIN

Trong hình 2.7, nút giữ dữ liệu, nút A, sẽ gửi một gói ADV để quảng cáo dữ liệu tới các nút hàng xóm B, C, D, E và F (1). Tất cả các nút hàng xóm của A đều nghe thấy quảng cáo, nhƣng nút C là nút đầu tiên đầu tiên phát hành một gói REQ yêu cầu dữ liệu từ nút A (2). Tất cả các nút hàng xóm của A đều nhận đƣợc gói tin này. Các nút B và D mong muốn nhận đƣợc gói tin của nút A sẽ không phát hành gói REQ riêng của chúng. Các nút E và F không có quan đến dữ liệu quảng cáo nên bỏ qua thông điệp này. Khi nghe yêu cầu nút C, nút A trả lời bằng cách gửi các gói dữ liệu. Tất cả các nút trong phạm vi truyền dẫn của A nhận đƣợc các gói dữ liệu, bao gồm các nút E và F. Trong môi trƣờng phát sóng,

SPIN-BC có khả năng làm giảm tiêu thụ năng lƣợng bằng cách loại bỏ trao đổi dƣ thừa của yêu cầu dữ liệu và trả lời.

SPIN-RL (adsbygoogle = window.adsbygoogle || []).push({});

Là một cải tiến của SPIN-EC, cung cấp một cơ chế tin cậy. Nếu một nút nhận đƣợc một gói ADV nhƣng không nhận đƣợc gói DATA theo sau nó (do lỗi kênh truyền không dây), nó yêu cầu gói DATA từ nút hàng xóm mà có thể đã nhận đƣợc gói DATA. Hơn nữa, SPIN-RL giới hạn thời gian truyền lại của các nút vì vậy mà không truyền lại một gói dữ liệu trƣớc một khoảng thời gian quy định.

Directed Diffusion (Khuếch tán trực tiếp)

Với SPIN một nút cảm biến truyền dữ liệu về các quan sát của mình cho các nút quan tâm đến dữ liệu này. Kết quả là, luồng lƣu lƣợng trong SPIN đƣợc bắt đầu từ các cảm biến và thƣờng kết thúc tại Sink. Tuy nhiên, kiểu lƣu lƣợng này không thích hợp khi ngƣời sử dụng (ví dụ, Sink) yêu cầu những thông tin cụ thể từ các cảm biến. Directed Diffusionđã đƣợc phát triển để giải quyết yêu cầu này. Hoạt động của Directed Diffusion bao gồm bốn giai đoạn để xây dựng các tuyến đƣờng giữa Sink và các cảm biến thỏa mãn yêu cầu của Sink nhƣ hình 2.8.

Hình 2.8 Hoạt động của Directed Diffusion

Bốn giai đoạn là:

(1) Truyền interest (interest propagation).

Directed diffusion đƣợc khởi xƣớng khi Sink gửi tin nhắn interest tới tất cả các nút nhƣ hình 2.8(a). Tin nhắn interest đóng vai trò nhƣ tin nhắn thăm dò

để chỉ ra các nút với các dữ liệu phù hợp cho các nhiệm vụ cụ thể. Trong suốt nhiệm vụ, Sink tiếp tục định kỳ phát sóng tin nhắn interest.

(2) Thiết lập gradient (gradient setup).

Khi nhận đƣợc tin nhắn interest, mỗi nút cảm biến lƣu trữ nó trong một cache interest. Cache interest có một số trƣờng nhƣ timestamp, gradient, interval và duration. Trƣờng timestamp cho biết thời gian địa phƣơng khi interest đƣợc nhận. Trƣờng gradient chỉ ra các nút mà từ đó interest đƣợc nhận. Trƣờng gradient này đƣợc sử dụng để tạo thành đƣờng dẫn ngƣợc lại phía Sink. Trƣờng duration chỉ định thời gian mỗi interest đƣợc lƣu trữ tại bộ nhớ cache. Sau khi nhận interest, các nút cảm biến chuyển tiếp tin nhắn interest tới láng giềng phía dƣới của nó. Chuyển tiếp này có thể tƣơng tự nhƣ flooding. Khi interesst truyền qua mạng cảm biến, các gradient từ nút nguồn trở lại Sink đƣợc thiết lập nhƣ thể hiện trong hình 2.8(b)

(3) Reinforcement.

Vì dữ liệu ở nút nguồn có thể đƣợc gửi thông qua nhiều tuyến đƣờng đến Sink nên Sink có thể chỉ định một đƣờng cụ thể để truyền dữ liệu bằng việc gửi lại interest thông qua các nút đƣợc chỉ định tạo thành con đƣờng đó nhƣ thể hiện trong hình 2.8(c). Con đƣờng này có thể đƣợc lựa chọn theo một số quy tắc nhƣ chất lƣợng liên kết tốt nhất, số lƣợng các gói tin nhận đƣợc từ một hàng xóm, hoặc độ trễ thấp nhất.

(4) Cung cấp dữ liệu (data delivery).

Sau khi xác định đƣờng đi từ nút nguồn tới Sink, nút nguồn có thể gửi dữ liệu về Sink theo đƣờng đó nhƣ hình 2.8(d).

Một phần của tài liệu Nghiên cứu, cải tiến giao thức định tuyến LEACH hiệu quả về mặt năng lượng trong mạng cảm biến không dây (WSN) (Trang 33 - 39)