6. Phương pháp nghiên cứ u
2.2.2.1. Flooding và các biến thể
Flooding là một kỹ thuật chung thường dùng trong phát tán thông tin và tìm đường trong mạng có dây và không dây ad-hoc. Chiến thuật định tuyến đơn giản, 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 phản ứng lại: khi mỗi nút nhận được một gói điều khiển hay 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.
Để ngăn chặn một gói cứ đi vòng không xác định trong mạng, một trường gọi là hopcount được thêm vào gói. Đầu tiên, hopcount được đặt giá trị xấp xỉ
đường kính mạng. Khi gói đi qua mạng, hopcount bị giảm đi 1 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 hopcount về 0, gói sẽ bị bỏ đi. Một cách tương tựđược dùng là thêm vào trường time-to-live, trường này ghi lại thời gian gói được phép tồn tại trong mạng. Khi hết thời gian này, gói không được truyền đi nữa. Flooding có thể được cải tiến bằng cách xác nhận gói dữ liệu duy nhất, mỗi nút mạng sẽ bỏđi các gói đã nhận rồi.
Mặc dù sự đơn giản trong quy luật hoạt động và phù hợp với cấu hình mạng có chi phí thấp nhưng Flooding gặp nhiều bất lợi 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 đề gây ra do nhiều bản sao của một gói gửi đến cùng một nút. Nhược điểm thứ hai là vấn đề chồng lấn xảy ra khi hai nút cùng gửi gói đến cùng một nút. Nhược điểm thứ ba và là nhược điểm nguy hiểm nhất của Flooding là không xem xét đến việc tiết kiệm tài nguyên: quy luật đơn giản của Flooding không xem xét đến hạn chế về nguồn năng lượng của các nút. Năng lượng của nút có thể suy giảm nhanh chóng, giảm đáng kể thời gian sống của mạng.
Để giải quyết các nhược điểm nêu trên, một hướng mới gọi là Gossiping. Tương tự 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 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 đó đến một nút lựa chọn ngẫu nhiên khác. Quá trình cứ tiếp tục đến khi gói đến được đích đến hay hopcount 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.