Có thể thấy rằng, thuật toán flooding theo 1HI là thuật toán dựa vào bên gửi chỉ dùng thông tin hàng xóm 1-chặng, theo đó kết quả của giao thức là chi phí nhỏ và dễ thực thi. Tuy nhiên, do những đặc tính của nó, thuật toán này có nhược điểm như sau: Thứ nhất, tập chuyển tiếp chỉ được tối ưu một cách cục bộ dựa vào thông tin hàng xóm 1-chặng. Do đó, số nút truyền lại vẫn tương đối cao. Thứ 2, các nút truyền lại được phân tán dày đặc theo biên mạng gây nên lãng phí, bởi vì hàng xóm của những nút mạng này đã nhận được thông báo flooding từ các nút truyền lại ở những chặng trước đó.
Do đó, dùng thuật toán 2HBI sẽ giảm đáng kể số nút truyền lại trong mạng. Ưu điểm của thuật toán này như sau:
1) 2HBI hoàn toàn thuận lợi cho thông tin vị trí địa lý để giảm số nút truyền lại một cách hiệu quả trong suốt quá trình flooding và giải quyết được vấn đề broadcast storm trong mạng ad-hoc.
2) 2HBI dùng khái niệm “thông tin lùi 2-chặng” để tối thiểu tập nút truyền lại ở mỗi chặng bằng cách dùng 3 qui tắc tối ưu.
3) 2HBI không đòi hỏi bất kỳ chi phí truyền thông phụ nào so với việc trao đổi các thông báo hello 1-chặng.
4) 2HBI có độ phức tạp thời gian nhỏ, O(nlogn), với n là số nút mạng
30
5) Với thuật toán 2HBI, nút gửi quyết định nút nào sẽ là nút truyền lại thông báo flooding (dựa vào bên gửi). Hơn nữa, nút nhận có thể từ chối việc chuyển tiếp thông báo.
Về thông tin lùi 2-chặng: Trong một mạng ad-hoc, nút gửi của một nút được gọi là nút lùi 1-chặng và nút gửi của nút lùi 1-chặng được gọi là nút lùi 2- chặng. Như hình vẽ 3.4, thông báo flooding được lan truyền từ nút nguồn 0 đến nút 3, sau đó nó được lan truyền từ nút 3 đến nút 4 và cứ thế tiếp tục. Do đó, trường hợp của nút 4, các nút lùi một và hai chặng tương ứng là nút 3 và nút 0. Khi đó, có thể xem thông tin lùi 2-chặng như là sự kết hợp thông tin tập chuyển tiếp của các nút lùi một và hai chặng với thông tin hàng xóm 1-chặng. Thông tin tập chuyển tiếp gồm định danh của các nút mạng và thông tin vị trí của tất cả các nút trong tập hợp đó.
Hình 3.4: Thông tin lùi 2-chặng của nút 4.
Thông tin lùi 2-chặng nhận được nhờ sự trợ giúp của cơ chế lan truyền thông tin tập chuyển tiếp, trong đó mỗi nút truyền lại cố định thông tin tập chuyển tiếp và nút gửi của nó cùng với thông báo flooding trước khi quảng bá thông báo. Dựa trên thông báo nhận được, nút truyền lại ở chặng tiếp theo sẽ kết hợp thông tin này với thông tin hàng xóm 1-chặng và do đó tạo nên toàn bộ thông tin lùi 2-chặng. Như trong hình 3.4, nút 4 nhận được thông tin tập chuyển tiếp của các nút 0 và 3 từ việc lan truyền thông báo flooding. Sau đó, thông tin này được kết hợp với thông tin hàng xóm 1-chặng. Vì vậy, nút 4 chứa toàn bộ thông tin lùi 2-chặng. Theo đó, mỗi nút mạng cần phải duy trì thông tin hàng xóm 1-chặng.
31
Ý tưởng chung của thuật toán 2HBI: Quá trình flooding bắt đầu khi một
nút nguồn cần truyền đi một thông báo. Trước tiên, nút nguồn chọn tập chuyển tiếp của mình. Sau đó, nút nguồn cố định tập chuyển tiếp cùng với thông báo flooding và quảng bá thông báo đó nếu tập chuyển tiếp khác tập rỗng. Dựa vào thông báo flooding nhận được, mỗi nút nhận thực hiện như sau: ngừng chuyển tiếp thông báo nếu như thông báo này bị lặp lại hoặc nút nhận không được gán như là nút truyền lại. Nếu định danh của nút nhận nằm trong tập chuyển tiếp của nút gửi thì nút nhận đó là nút truyền lại. Tiếp theo, mỗi nút truyền lại sẽ tính chính xác tập chuyển tiếp của mình tương tự với cách tính của nút nguồn. Sau đó, mỗi nút truyền lại dùng ba qui tắc tối ưu nhằm tối ưu tập chuyển tiếp của mình dựa vào thông tin lùi 2-chặng. Nếu tập chuyển tiếp tối ưu đó khác tập rỗng thì nút nhận sẽ cố định thông tin tập chuyển tiếp và nút gửi của mình cùng với thông báo flooding và quảng bá thông báo đó đến chặng tiếp theo. Bằng cách đó, thông báo flooding sẽ đi đến tất cả các nút mạng.
Chọn tập chuyển tiếp của một nút mạng: Đầu vào là danh sách các nút mạng hàng xóm. Mỗi nút mạng là nút truyền lại sẽ tính biên giới vùng phủ sóng của mình đến các nút mạng hàng xóm. Sau đó, gộp tất cả các biên giới của mỗi nút truyền lại và hàng xóm của nút cần tìm tập chuyển tiếp thành một tập hợp duy nhất. Tập này gọi là biên giới vùng phủ sóng của các nút mạng hàng xóm. Vì vậy, các nút mạng đóng góp vào biên giới trên chính là tập chuyển tiếp khởi tạo. Minh họa ở hình 3.5, biên giới vùng phủ sóng của các nút hàng xóm của nút 0 là đường biên dày. Cũng theo hình vẽ, chỉ có các nút hàng xóm là 2 và 3 đóng góp đến biên giới này. Do đó, tập chuyển tiếp khởi tạo của nút 0 gồm có nút 2 và nút 3. Theo thuật toán merge sort thì độ phức tạp thời gian của thuật toán chọn tập chuyển tiếp là O(nlogn), trong đó n là số nút mạng hàng xóm.
Tối ưu tập chuyển tiếp: Sau khi chọn tập chuyển tiếp, mỗi nút truyền lại sẽ tối ưu tập chuyển tiếp của mình dựa trên ba qui tắc tối ưu sau:
Qui tắc 1: Mỗi nút truyền lại loại bỏ từ tập chuyển tiếp của mình các nút mạng bị phủ sóng bởi nút gửi của nó.
Xét trường hợp nút truyền lại 4 trong hình 3.5, nút này vừa nhận được thông báo flooding từ nút 3. Giả sử tập chuyển tiếp khởi tạo của nút 4 gồm có bốn nút là: 3, 6, 7 và 8. Áp dụng qui tắc 1 thì các nút 3 và 7 được loại bỏ từ tập chuyển tiếp của nút 4. Do đó, tập chuyển tiếp còn lại của nút 4 gồm hai nút là 6 và 8. Ý nghĩa của qui tắc 1 là ngăn chặng thông báo flooding lan truyền ngược
32
trở lại. Khi đó, thông báo luôn luôn được lan truyền hướng về vùng chưa bị phủ sóng.
Qui tắc 2: Nút truyền lại là đóng với bên gửi khi loại bỏ từ tập chuyển tiếp của nó những nút mạng nằm trong vùng phủ sóng bị chồng chéo, gồm các nút mạng nằm trong vùng phủ sóng của nó và vùng phủ sóng của các nút truyền lại khác.
Hình 3.5: Quá trình flooding theo thuật toán 2HBI.
Để nhận được thông tin về vị trí của tất cả các nút mạng nằm trong tập chuyển tiếp của nút gửi, mỗi nút truyền lại tính chính xác tất cả các vùng phủ sóng chồng chéo với các nút truyền lại khác (gọi là vùng chồng chéo), ngay cả khi hai nút truyền lại không phải là hàng xóm với nhau. Sau đó, chỉ có nút truyền lại ở cách xa hơn từ nút gửi sẽ chọn các nút mạng nằm trong những vùng chồng chéo để thực hiện nhiệm vụ truyền lại. Điều này giúp cho mỗi nút truyền lại làm giảm thêm kích thước tập chuyển tiếp của nó một cách hiệu quả. Dựa vào qui tắc này, nút 8 được loại bỏ từ tập chuyển tiếp của nút 4 bởi vì nó nằm trong vùng chồng chéo với nút 5 ở cách xa hơn nút 4 kể từ nút gửi 3. Do đó, tập chuyển tiếp còn lại của nút 4 chỉ gồm có nút 6. Ưu tiên của việc chọn các nút truyền lại trong thuật toán 2HBI khác với trong thuật toán 1HI. Trong thuật toán 1HI, dùng định danh nút thấp hơn làm sự ưu tiên. Còn trong thuật toán 2HBI, dùng “khoảng cách giữa các nút truyền lại với nút gửi” làm sự ưu tiên. Cơ sở của việc ưu tiên này lấy từ khái niệm tham lam: nút mạng ở cách xa nút gửi hơn sẽ phủ sóng một phạm vi rộng hơn.
33
Mỗi nút truyền lại áp dụng các qui tắc 1 và 2 để tối ưu tập chuyển tiếp của mình. Ngoài ra, những nút truyền lại mà nút gửi của nó không phải là nút nguồn sẽ áp dụng thêm qui tắc 3 để tối ưu tập chuyển tiếp.
Qui tắc 3: Dựa vào thông tin tập chuyển tiếp của nút lùi 2-chặng, mỗi nút truyền lại loại bỏ từ tập chuyển tiếp của mình những nút mạng nằm trong vùng phủ sóng của các nút mạng là hàng xóm của nút lùi 2-chặng.
Mục đích của qui tắc 3 tương tự với qui tắc 1, nhằm ngăn chặng thông báo flooding lan truyền ngược trở lại. Như vậy, trong hình 3.5, nút mạng 6 nằm trong tập chuyển tiếp khởi tạo của nút 4. Tuy nhiên, nó cũng nằm trong vùng phủ sóng của nút 2, là hàng của nút 0. Vì vậy, nút 6 được xét đến bởi nút 2 và do đó nó được loại bỏ từ tập chuyển tiếp của nút 4. Cuối cùng, tập chuyển tiếp tối ưu của nút 4 là tập rỗng.
Việc tối ưu tập chuyển tiếp với sự trợ giúp của nút gửi sẽ làm giảm số nút truyền lại ở chặng tiếp theo. Khi đó, sẽ giảm số nút truyền lại trong mạng một cách đáng kể. Vì vậy, có thể xem thuật toán 2HBI là thuật toán flooding dựa vào bên gửi.